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