lib/asciidoctor/standoc/macros.rb in metanorma-standoc-1.10.6 vs lib/asciidoctor/standoc/macros.rb in metanorma-standoc-1.10.7

- old
+ new

@@ -4,10 +4,11 @@ require "yaml" require "csv" require_relative "./macros_plantuml" require_relative "./macros_terms" require_relative "./macros_form" +require_relative "./macros_note" require_relative "./datamodel/attributes_table_preprocessor" require_relative "./datamodel/diagram_preprocessor" require "metanorma-plugin-datastruct" require "metanorma-plugin-lutaml" @@ -39,20 +40,20 @@ end def process(_parent, target, attr) args = preprocess_attrs(attr) or return ret = "<index-xref also='#{target == 'also'}'>"\ - "<primary>#{args[:primary]}</primary>" + "<primary>#{args[:primary]}</primary>" ret += "<secondary>#{args[:secondary]}</secondary>" if args[:secondary] ret += "<tertiary>#{args[:tertiary]}</tertiary>" if args[:tertiary] ret + "<target>#{args[:target]}</target></index-xref>" end end class IndexRangeInlineMacro < Asciidoctor::Extensions::InlineMacroProcessor use_dsl - named "index-range".to_sym + named :"index-range" parse_content_as :text def process(parent, target, attr) text = attr["text"] text = "((#{text}))" unless /^\(\(.+\)\)$/.match?(text) @@ -119,39 +120,10 @@ "<ruby>#{target}<rp>#{rpbegin}</rp><rt>#{rt}</rt>"\ "<rp>#{rpend}</rp></ruby>" end end - class ToDoAdmonitionBlock < Extensions::BlockProcessor - use_dsl - named :TODO - on_contexts :example, :paragraph - - def process(parent, reader, attrs) - attrs["name"] = "todo" - attrs["caption"] = "TODO" - create_block(parent, :admonition, reader.lines, attrs, - content_model: :compound) - end - end - - class ToDoInlineAdmonitionBlock < Extensions::Treeprocessor - def process(document) - (document.find_by context: :paragraph).each do |para| - next unless /^TODO: /.match? para.lines[0] - - parent = para.parent - para.set_attr("name", "todo") - para.set_attr("caption", "TODO") - para.lines[0].sub!(/^TODO: /, "") - todo = Block.new(parent, :admonition, attributes: para.attributes, - source: para.lines, content_model: :compound) - parent.blocks[parent.blocks.index(para)] = todo - end - end - end - class AutonumberInlineMacro < Extensions::InlineMacroProcessor use_dsl named :autonumber parse_content_as :text @@ -175,22 +147,10 @@ %{<variant lang=#{lang}>#{out}</variant>} end end end - class FootnoteBlockInlineMacro < Asciidoctor::Extensions::InlineMacroProcessor - use_dsl - named :footnoteblock - parse_content_as :text - using_format :short - - def process(parent, _target, attrs) - out = Asciidoctor::Inline.new(parent, :quoted, attrs["text"]).convert - %{<footnoteblock>#{out}</footnoteblock>} - end - end - class AddMacro < Asciidoctor::Extensions::InlineMacroProcessor use_dsl named :add parse_content_as :text using_format :short @@ -225,9 +185,20 @@ x.sub!(/^(["'])(.+)\1/, "\\2") m = /^(.*?)(:\d+)?$/.match(x) %{<toc-xpath depth='#{m[2]&.sub(/:/, '') || 1}'>#{m[1]}</toc-xpath>} end.join "<toc>#{content}</toc>" + end + end + + class PassInlineMacro < Asciidoctor::Extensions::InlineMacroProcessor + use_dsl + named :"pass-format" + + def process(parent, target, attrs) + format = target || "metanorma" + out = Asciidoctor::Inline.new(parent, :quoted, attrs[1]).convert + %{<passthrough formats="#{format}">#{out}</passthrough>} end end end end