Module: Asciidoctor::Standoc::Utils
- Included in:
- Converter
- Defined in:
- lib/asciidoctor/standoc/utils.rb
Defined Under Namespace
Classes: EmptyAttr
Constant Summary collapse
- NOKOHEAD =
<<~HERE.freeze <!DOCTYPE html SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <meta charset="UTF-8" /> </head> <body> </body> </html> HERE
- SUBCLAUSE_XPATH =
"//clause[not(parent::sections)]"\ "[not(ancestor::boilerplate)]".freeze
Instance Method Summary collapse
- #attr_code(attributes) ⇒ Object
- #convert(node, transform = nil, opts = {}) ⇒ Object
- #document_ns_attributes(_doc) ⇒ Object
- #isodoc(lang, script, i18nyaml = nil) ⇒ Object
-
#noko(&block) ⇒ Object
block for processing XML document fragments as XHTML, to allow for HTMLentities Unescape special chars used in Asciidoctor substitution processing.
-
#wrap_in_para(node, out) ⇒ Object
if the contents of node are blocks, output them to out; else, wrap them in <p>.
Instance Method Details
#attr_code(attributes) ⇒ Object
43 44 45 46 47 48 |
# File 'lib/asciidoctor/standoc/utils.rb', line 43 def attr_code(attributes) attributes = attributes.reject { |_, val| val.nil? }.map attributes.map do |k, v| [k, (v.is_a? String) ? HTMLEntities.new.decode(v) : v] end.to_h end |
#convert(node, transform = nil, opts = {}) ⇒ Object
12 13 14 15 |
# File 'lib/asciidoctor/standoc/utils.rb', line 12 def convert(node, transform = nil, opts = {}) transform ||= node.node_name opts.empty? ? (send transform, node) : (send transform, node, opts) end |
#document_ns_attributes(_doc) ⇒ Object
17 18 19 |
# File 'lib/asciidoctor/standoc/utils.rb', line 17 def document_ns_attributes(_doc) nil end |
#isodoc(lang, script, i18nyaml = nil) ⇒ Object
62 63 64 65 66 67 |
# File 'lib/asciidoctor/standoc/utils.rb', line 62 def isodoc(lang, script, i18nyaml = nil) conv = html_converter(EmptyAttr.new) i18n = conv.i18n_init(lang, script, i18nyaml) conv.(lang, script, i18n) conv end |
#noko(&block) ⇒ Object
block for processing XML document fragments as XHTML, to allow for HTMLentities Unescape special chars used in Asciidoctor substitution processing
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/asciidoctor/standoc/utils.rb', line 32 def noko(&block) doc = ::Nokogiri::XML.parse(NOKOHEAD) fragment = doc.fragment("") ::Nokogiri::XML::Builder.with fragment, &block fragment.to_xml(encoding: "US-ASCII", indent: 0).lines.map do |l| l.gsub(/>\n$/, ">").gsub(/\s*\n$/m, " ").gsub("–", "\u0096"). gsub("—", "\u0097").gsub("–", "\u0096"). gsub("—", "\u0097") end end |
#wrap_in_para(node, out) ⇒ Object
if the contents of node are blocks, output them to out; else, wrap them in <p>
52 53 54 55 56 57 |
# File 'lib/asciidoctor/standoc/utils.rb', line 52 def wrap_in_para(node, out) if node.blocks? then out << node.content else out.p { |p| p << node.content } end end |