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
- #default_script(lang) ⇒ 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
42 43 44 45 46 47 |
# File 'lib/asciidoctor/standoc/utils.rb', line 42 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
11 12 13 14 |
# File 'lib/asciidoctor/standoc/utils.rb', line 11 def convert(node, transform = nil, opts = {}) transform ||= node.node_name opts.empty? ? (send transform, node) : (send transform, node, opts) end |
#default_script(lang) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/asciidoctor/standoc/utils.rb', line 68 def default_script(lang) case lang when "ar", "fa" "Arab" when "ur" "Aran" when "ru", "bg" "Cyrl" when "hi" "Deva" when "el" "Grek" when "zh" "Hans" when "ko" "Kore" when "he" "Hebr" when "ja" "Jpan" else "Latn" end end |
#document_ns_attributes(_doc) ⇒ Object
16 17 18 |
# File 'lib/asciidoctor/standoc/utils.rb', line 16 def document_ns_attributes(_doc) nil end |
#isodoc(lang, script, i18nyaml = nil) ⇒ Object
61 62 63 64 65 66 |
# File 'lib/asciidoctor/standoc/utils.rb', line 61 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
31 32 33 34 35 36 37 38 39 40 |
# File 'lib/asciidoctor/standoc/utils.rb', line 31 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>
51 52 53 54 55 56 |
# File 'lib/asciidoctor/standoc/utils.rb', line 51 def wrap_in_para(node, out) if node.blocks? then out << node.content else out.p { |p| p << node.content } end end |