Sha256: 256aab205c30577177449f5ce03dda77655278a1a87b5cd1829356cd6fca075a
Contents?: true
Size: 1.75 KB
Versions: 21
Compression:
Stored size: 1.75 KB
Contents
require_relative "xref/xref_anchor" require_relative "xref/xref_counter" require_relative "xref/xref_gen_seq" require_relative "xref/xref_gen" require_relative "xref/xref_sect_gen" require_relative "class_utils" require_relative "function/utils" module IsoDoc class Xref include XrefGen::Anchor include XrefGen::Blocks include XrefGen::Sections include Function::Utils attr_reader :klass def initialize(lang, script, klass, i18n, options = {}) @anchors = {} @lang = lang @script = script @klass = klass @options = options @i18n = i18n @labels = @i18n.get @klass.i18n = @i18n end def get @anchors end def anchor(ident, lbl, warning = true) return nil if ident.nil? || ident.empty? if warning && !@anchors[ident] @seen ||= Seen_Anchor.instance @seen.seen(ident) or warn "No label has been processed for ID #{ident}" @seen.add(ident) return "[#{ident}]" end @anchors.dig(ident, lbl) end # extract names for all anchors, xref and label def parse(docxml) amend_preprocess(docxml) initial_anchor_names(docxml) back_anchor_names(docxml) # preempt clause notes with all other types of note (ISO default) note_anchor_names(docxml.xpath(ns("//table | //figure"))) note_anchor_names(docxml.xpath(ns(SECTIONS_XPATH))) example_anchor_names(docxml.xpath(ns(SECTIONS_XPATH))) list_anchor_names(docxml.xpath(ns(SECTIONS_XPATH))) deflist_anchor_names(docxml.xpath(ns(SECTIONS_XPATH))) bookmark_anchor_names(docxml) end def ns(xpath) Common::ns(xpath) end def l10n(text, lang = @lang, script = @script) @i18n.l10n(text, lang, script) end end end
Version data entries
21 entries across 21 versions & 1 rubygems