lib/asciidoctor/standoc/render.rb in metanorma-standoc-1.11.4 vs lib/asciidoctor/standoc/render.rb in metanorma-standoc-2.0.0

- old
+ new

@@ -1,115 +1,3 @@ -module Asciidoctor - module Standoc - module Base - def html_extract_attributes(node) - { - script: node.attr("script"), - bodyfont: node.attr("body-font"), - headerfont: node.attr("header-font"), - monospacefont: node.attr("monospace-font"), - i18nyaml: node.attr("i18nyaml"), - scope: node.attr("scope"), - htmlstylesheet: node.attr("htmlstylesheet"), - htmlstylesheet_override: node.attr("htmlstylesheet-override"), - htmlcoverpage: node.attr("htmlcoverpage"), - htmlintropage: node.attr("htmlintropage"), - scripts: node.attr("scripts"), - scripts_override: node.attr("scripts-override"), - scripts_pdf: node.attr("scripts-pdf"), - datauriimage: node.attr("data-uri-image") != "false", - htmltoclevels: node.attr("htmltoclevels") || node.attr("toclevels"), - doctoclevels: node.attr("doctoclevels") || node.attr("toclevels"), - break_up_urls_in_tables: node.attr("break-up-urls-in-tables"), - suppressasciimathdup: node.attr("suppress-asciimath-dup"), - bare: node.attr("bare"), - sectionsplit: node.attr("sectionsplit"), - baseassetpath: node.attr("base-asset-path"), - aligncrosselements: node.attr("align-cross-elements"), - } - end +require "asciidoctor/standoc/deprecated" +require "metanorma/standoc/render" - def html_converter(node) - IsoDoc::HtmlConvert.new(html_extract_attributes(node)) - end - - def pdf_converter(node) - return nil if node.attr("no-pdf") - - IsoDoc::Standoc::PdfConvert.new(pdf_extract_attributes(node)) - end - - def doc_extract_attributes(node) - attrs = { - script: node.attr("script"), - bodyfont: node.attr("body-font"), - headerfont: node.attr("header-font"), - monospacefont: node.attr("monospace-font"), - i18nyaml: node.attr("i18nyaml"), - scope: node.attr("scope"), - wordstylesheet: node.attr("wordstylesheet"), - wordstylesheet_override: node.attr("wordstylesheet-override"), - standardstylesheet: node.attr("standardstylesheet"), - header: node.attr("header"), - wordcoverpage: node.attr("wordcoverpage"), - wordintropage: node.attr("wordintropage"), - ulstyle: node.attr("ulstyle"), - olstyle: node.attr("olstyle"), - htmltoclevels: node.attr("htmltoclevels") || node.attr("toclevels"), - doctoclevels: node.attr("doctoclevels") || node.attr("toclevels"), - break_up_urls_in_tables: node.attr("break-up-urls-in-tables"), - suppressasciimathdup: node.attr("suppress-asciimath-dup"), - bare: node.attr("bare"), - baseassetpath: node.attr("base-asset-path"), - aligncrosselements: node.attr("align-cross-elements"), - } - - if fonts_manifest = node.attr(FONTS_MANIFEST) - attrs[IsoDoc::XslfoPdfConvert::MN2PDF_OPTIONS] = { - IsoDoc::XslfoPdfConvert::MN2PDF_FONT_MANIFEST => fonts_manifest, - } - end - - attrs - end - - def pdf_extract_attributes(node) - %w(pdf-encrypt pdf-encryption-length pdf-user-password - pdf-owner-password pdf-allow-copy-content pdf-allow-edit-content - pdf-allow-assemble-document pdf-allow-edit-annotations - pdf-allow-print pdf-allow-print-hq pdf-allow-fill-in-forms - pdf-allow-access-content pdf-encrypt-metadata) - .each_with_object({}) do |x, m| - m[x.gsub(/-/, "").to_i] = node.attr(x) - end - end - - def doc_converter(node) - IsoDoc::WordConvert.new(doc_extract_attributes(node)) - end - - def presentation_xml_converter(node) - IsoDoc::PresentationXMLConvert.new(html_extract_attributes(node)) - end - - def default_fonts(node) - b = node.attr("body-font") || - (node.attr("script") == "Hans" ? '"Source Han Sans",serif' : '"Cambria",serif') - h = node.attr("header-font") || - (node.attr("script") == "Hans" ? '"Source Han Sans",sans-serif' : '"Cambria",serif') - m = node.attr("monospace-font") || '"Courier New",monospace' - "$bodyfont: #{b};\n$headerfont: #{h};\n$monospacefont: #{m};\n" - end - - def outputs(node, ret) - File.open("#{@filename}.xml", "w:UTF-8") { |f| f.write(ret) } - presentation_xml_converter(node).convert("#{@filename}.xml") - html_converter(node).convert("#{@filename}.presentation.xml", - nil, false, "#{@filename}.html") - doc_converter(node).convert("#{@filename}.presentation.xml", - nil, false, "#{@filename}.doc") - pdf_converter(node)&.convert("#{@filename}.presentation.xml", - nil, false, "#{@filename}.pdf") - end - end - end -end