Class: IsoDoc::Convert
Direct Known Subclasses
Constant Summary
Constants included from Function::XrefGen
Function::XrefGen::CHILD_EXAMPLES_XPATH, Function::XrefGen::CHILD_NOTES_XPATH, Function::XrefGen::SECTIONS_XPATH
Constants included from Function::Utils
Function::Utils::CLAUSE_ANCESTOR, Function::Utils::NOKOHEAD, Function::Utils::NOTE_CONTAINER_ANCESTOR
Constants included from Function::Table
Constants included from Function::Section
Function::Section::MIDDLE_CLAUSE, Function::Section::TERM_CLAUSE
Constants included from Function::References
Function::References::BIBLIOGRAPHY_XPATH, Function::References::ISO_PUBLISHER_XPATH
Constants included from Function::Lists
Constants included from Function::Cleanup
Function::Cleanup::FIGURE_WITH_FOOTNOTES
Constants included from Function::Blocks
Function::Blocks::EXAMPLE_TBL_ATTR
Instance Attribute Summary collapse
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Instance Method Summary collapse
- #convert(filename, file = nil, debug = false) ⇒ Object
- #convert1(docxml, filename, dir) ⇒ Object
- #convert_init(file, filename, debug) ⇒ Object
- #generate_css(filename, stripwordcss, fontheader) ⇒ Object
- #html_doc_path(file) ⇒ Object
-
#initialize(options) ⇒ Convert
constructor
htmlstylesheet: Generic stylesheet for HTML wordstylesheet: Generic stylesheet for Word standardsheet: Stylesheet specific to Standard header: Header file for Word htmlcoverpage: Cover page for HTML wordcoverpage: Cover page for Word htmlintropage: Introductory page for HTML wordintropage: Introductory page for Word i18nyaml: YAML file for internationalisation of text ulstyle: list style in Word CSS for unordered lists olstyle: list style in Word CSS for ordered lists.
- #metadata_init(lang, script, labels) ⇒ Object
Methods included from ClassUtils
Methods included from Function::XrefSectGen
#annex_name_lbl, #annex_names, #annex_names1, #back_anchor_names, #clause_names, #initial_anchor_names, #middle_section_asset_names, #preface_clause_name, #preface_names, #preface_names1, #section_names, #section_names1
Methods included from Function::XrefGen
#anchor_names, #anchor_struct, #anchor_struct_label, #anchor_struct_xref, #example_anchor_names, #get_anchors, #hierarchical_asset_names, #hierarchical_figure_names, #list_anchor_names, #list_item_anchor_names, #listlabel, #note_anchor_names, #sequential_asset_names, #sequential_figure_names, #termexample_anchor_names, #termnote_anchor_names, #termnote_label
Methods included from Function::Utils
#attr_code, #date_range, #extract_delims, #from_xhtml, #get_clause_id, #get_note_container_id, #header_strip, #insert_tab, #liquid, #noko, #ns, #populate_template, #sentence_join, #to_xhtml, #to_xhtml_fragment
Methods included from Function::ToWordHtml
#bookmark_parse, #define_head, #in_sourcecode, #info, #init_file, #make_body, #make_body1, #make_body2, #make_body3, #middle, #middle_title, #note?, #parse, #set_termdomain, #smallcap_parse, #text_parse
Methods included from Function::Terms
#admitted_term_parse, #definition_parse, #deprecated_term_parse, #modification_parse, #para_then_remainder, #term_parse, #termdef_parse, #termdocsource_parse, #termnote_parse, #termref_parse
Methods included from Function::Table
#make_table_attr, #make_tr_attr, #table_parse, #table_title_parse, #tbody_parse, #tfoot_parse, #thead_parse, #tr_parse
Methods included from Function::Section
#annex, #annex_name, #clause, #clause_name, #clause_parse, #clause_parse_title, #external_terms_boilerplate, #foreword, #inline_header_title, #internal_external_terms_boilerplate, #introduction, #scope, #symbols_abbrevs, #symbols_parse, #term_defs_boilerplate, #term_defs_boilerplate_cont, #terms_defs, #terms_defs_title, #terms_parse
Methods included from Function::References
#biblio_list, #bibliography, #bibliography_parse, #date_note_process, #docid_l10n, #format_ref, #implicit_reference, #iso_bibitem_entry, #iso_bibitem_entry_attrs, #iso_bibitem_ref_code, #iso_title, #noniso_bibitem, #norm_ref, #norm_ref_preface, #prefix_bracketed_ref, #ref_entry_code, #reference_format, #reference_names, #split_bibitems
Methods included from Function::Lists
#dl_parse, #dt_dd?, #dt_parse, #li_parse, #ol_depth, #ol_parse, #ol_style, #ul_parse
Methods included from Function::Inline
#anchor_linkend, #callout_parse, #eref_localities, #eref_parse, #error_parse, #get_linkend, #link_parse, #page_break, #section_break, #stem_parse, #xref_parse
Methods included from Function::I18n
#eref_localities1, #eref_localities1_zh, #i18n_init, l10n
Methods included from Function::Cleanup
#admonition_cleanup, #cleanup, #example_cleanup, #extract_symbols_list, #figure_aside_process, #figure_cleanup, #figure_get_or_make_dl, #footnote_cleanup, #inline_header_cleanup, #merge_fnref_into_fn_text, #new_fullcolspan_row, #remove_bottom_border, #symbol_key, #symbols_cleanup, #table_cleanup, #table_footnote_cleanup, #table_get_or_make_tfoot, #table_note_cleanup
Methods included from Function::Blocks
#admonition_parse, #annotation_parse, #example_div_parse, #example_label, #example_parse, #figure_key, #figure_name_parse, #figure_parse, #formula_parse, #formula_where, #image_parse, #image_title_parse, #note_label, #note_p_parse, #note_parse, #note_parse1, #para_attrs, #para_parse, #quote_attribution, #quote_parse, #sourcecode_name_parse, #sourcecode_parse
Constructor Details
#initialize(options) ⇒ Convert
htmlstylesheet: Generic stylesheet for HTML wordstylesheet: Generic stylesheet for Word standardsheet: Stylesheet specific to Standard header: Header file for Word htmlcoverpage: Cover page for HTML wordcoverpage: Cover page for Word htmlintropage: Introductory page for HTML wordintropage: Introductory page for Word i18nyaml: YAML file for internationalisation of text ulstyle: list style in Word CSS for unordered lists olstyle: list style in Word CSS for ordered lists
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/isodoc/convert.rb', line 19 def initialize() = @htmlstylesheet = [:htmlstylesheet] @wordstylesheet = [:wordstylesheet] @standardstylesheet = [:standardstylesheet] @header = [:header] @htmlcoverpage = [:htmlcoverpage] @wordcoverpage = [:wordcoverpage] @htmlintropage = [:htmlintropage] @wordintropage = [:wordintropage] @scripts = [:scripts] @i18nyaml = [:i18nyaml] @ulstyle = [:ulstyle] @olstyle = [:olstyle] @termdomain = "" @termexample = false @note = false @sourcecode = false @anchors = {} @footnotes = [] @comments = [] @in_footnote = false @in_comment = false @in_table = false @in_figure = false @seen_footnote = Set.new @c = HTMLEntities.new @openmathdelim = "`" @closemathdelim = "`" @lang = "en" @script = "Latn" @files_to_delete = [] @tmpimagedir = "_images" @maxwidth = 1200 @maxheight = 800 end |
Instance Attribute Details
#options ⇒ Object (readonly)
Returns the value of attribute options.
6 7 8 |
# File 'lib/isodoc/convert.rb', line 6 def end |
Instance Method Details
#convert(filename, file = nil, debug = false) ⇒ Object
96 97 98 99 100 101 102 103 104 |
# File 'lib/isodoc/convert.rb', line 96 def convert(filename, file = nil, debug = false) file = File.read(filename, encoding: "utf-8") if file.nil? @openmathdelim, @closemathdelim = extract_delims(file) docxml, filename, dir = convert_init(file, filename, debug) result = convert1(docxml, filename, dir) return result if debug postprocess(result, filename, dir) system "rm -fr #{dir}" end |
#convert1(docxml, filename, dir) ⇒ Object
70 71 72 73 74 75 76 77 78 79 |
# File 'lib/isodoc/convert.rb', line 70 def convert1(docxml, filename, dir) anchor_names docxml noko do |xml| xml.html do |html| html.parent.add_namespace("epub", "http://www.idpf.org/2007/ops") define_head html, filename, dir make_body(html, docxml) end end.join("\n") end |
#convert_init(file, filename, debug) ⇒ Object
85 86 87 88 89 90 91 92 93 94 |
# File 'lib/isodoc/convert.rb', line 85 def convert_init(file, filename, debug) docxml = Nokogiri::XML(file) filename, dir = init_file(filename, debug) docxml.root.default_namespace = "" lang = docxml&.at(ns("//bibdata/language"))&.text || @lang script = docxml&.at(ns("//bibdata/script"))&.text || @script i18n_init(lang, script) (lang, script, @labels) [docxml, filename, dir] end |
#generate_css(filename, stripwordcss, fontheader) ⇒ Object
60 61 62 63 64 65 66 67 68 |
# File 'lib/isodoc/convert.rb', line 60 def generate_css(filename, stripwordcss, fontheader) stylesheet = File.read(filename, encoding: "UTF-8") stylesheet.gsub!(/(\s|\{)mso-[^:]+:[^;]+;/m, "\\1") if stripwordcss engine = Sass::Engine.new(fontheader + stylesheet, syntax: :scss) outname = File.basename(filename, ".*") + ".css" File.open(outname, "w:UTF-8") { |f| f.write(engine.render) } @files_to_delete << outname outname end |
#html_doc_path(file) ⇒ Object
56 57 58 |
# File 'lib/isodoc/convert.rb', line 56 def html_doc_path(file) File.join(File.dirname(__FILE__), File.join("html", file)) end |
#metadata_init(lang, script, labels) ⇒ Object
81 82 83 |
# File 'lib/isodoc/convert.rb', line 81 def (lang, script, labels) = Metadata.new(lang, script, labels) end |