Sha256: a6b465ee386c0e7332cf0f6a2f953567ce9fba39e04999d202e6e94df5537e5e

Contents?: true

Size: 1.45 KB

Versions: 8

Compression:

Stored size: 1.45 KB

Contents

module Metanorma
  module Standoc
    class ToDoAdmonitionBlock < Asciidoctor::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 < Asciidoctor::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 = Asciidoctor::Block
            .new(parent, :admonition, attributes: para.attributes,
                                      source: para.lines,
                                      content_model: :compound)
          parent.blocks[parent.blocks.index(para)] = todo
        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
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
metanorma-standoc-2.1.1 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.1.0 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.0.7 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.0.6 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.0.5.3 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.0.5.2 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.0.5.1 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.0.5 lib/metanorma/standoc/macros_note.rb