class Metanorma::Standoc::PseudocodeBlockMacro
Public Instance Methods
init_indent(line)
click to toggle source
# File lib/metanorma/standoc/macros.rb, line 71 def init_indent(line) /^(?<prefix>[ \t]*)(?<suffix>.*)$/ =~ line prefix = prefix.gsub(/\t/, "\u00a0\u00a0\u00a0\u00a0") .gsub(/ /, "\u00a0") prefix + suffix end
process(parent, reader, attrs)
click to toggle source
# File lib/metanorma/standoc/macros.rb, line 92 def process(parent, reader, attrs) attrs["role"] = "pseudocode" lines = reader.lines.map { |m| init_indent(m) } create_block(parent, :example, supply_br(lines), attrs, content_model: :compound) end
supply_br(lines)
click to toggle source
# File lib/metanorma/standoc/macros.rb, line 78 def supply_br(lines) ignore = false lines.each_with_index do |l, i| /^(--+|====+|\|===|\.\.\.\.+|\*\*\*\*+|\+\+\+\++|````+|____\+)$/ .match(l) && (ignore = !ignore) next if l.empty? || l.match(/ \+$/) || /^\[.*\]$/.match?(l) || ignore next if i == lines.size - 1 || i < lines.size - 1 && lines[i + 1].empty? lines[i] += " +" end lines end