Sha256: 4dc01d6219d25ce0145f2baef5a164d601622f13cf2c4c87553a810a2e10c7b3

Contents?: true

Size: 533 Bytes

Versions: 2

Compression:

Stored size: 533 Bytes

Contents

require "asciidoctor/extensions"

class PseudocodeBlockMacro < Asciidoctor::Extensions::BlockProcessor
  use_dsl
  named :pseudocode
  on_context :example, :sourcecode

  def init_indent(s)
    /^(?<prefix>[ \t]*)(?<suffix>.*)$/ =~ s
    prefix = prefix.gsub(/\t/, "\u00a0\u00a0\u00a0\u00a0").gsub(/ /, "\u00a0")
    prefix + suffix
  end

  def process parent, reader, attrs
    attrs['role'] = 'pseudocode'
    create_block parent, :example, reader.lines.map { |m| init_indent(m) }, attrs,
      content_model: :compound
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
metanorma-itu-0.2.8 lib/asciidoctor/itu/macros.rb
metanorma-itu-0.2.7 lib/asciidoctor/itu/macros.rb