Sha256: c768132b94e84596c18fa557e02333c3c01f3c0289f192f5b0f9c99461d51ea4

Contents?: true

Size: 1.98 KB

Versions: 82

Compression:

Stored size: 1.98 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]

          para.set_attr("name", "todo")
          para.set_attr("caption", "TODO")
          para.lines[0].sub!(/^TODO: /, "")
          para.context = :admonition
        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 EditorAdmonitionBlock < Asciidoctor::Extensions::BlockProcessor
      use_dsl
      named :EDITOR
      on_contexts :example, :paragraph

      def process(parent, reader, attrs)
        attrs["name"] = "editorial"
        attrs["caption"] = "EDITOR"
        create_block(parent, :admonition, reader.lines, attrs,
                     content_model: :compound)
      end
    end

    class EditorInlineAdmonitionBlock < Asciidoctor::Extensions::Treeprocessor
      def process(document)
        (document.find_by context: :paragraph).each do |para|
          next unless /^EDITOR: /.match? para.lines[0]

          para.set_attr("name", "editorial")
          para.set_attr("caption", "EDITOR")
          para.lines[0].sub!(/^EDITOR: /, "")
          para.context = :admonition
        end
      end
    end
  end
end

Version data entries

82 entries across 82 versions & 1 rubygems

Version Path
metanorma-standoc-3.0.0 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.10.5 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.10.4 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.10.3 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.10.2 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.10.1 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.10.0 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.9.10 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.9.9 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.9.8 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.9.7 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.9.6 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.9.5 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.9.4 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.9.3 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.9.2 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.9.1 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.9.0 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.8.11 lib/metanorma/standoc/macros_note.rb
metanorma-standoc-2.8.10 lib/metanorma/standoc/macros_note.rb