Class: Asciidoctor::Standoc::Converter

Inherits:
Object
  • Object
show all
Includes:
Converter, Base, Blocks, Cleanup, Front, Inline, Lists, Section, Table, Utils, Validate, Writer
Defined in:
lib/asciidoctor/standoc/converter.rb

Overview

A Converter implementation that generates Standoc output, and a document schema encapsulation of the document for validation

Constant Summary

Constants included from Validate

Validate::SOURCELOCALITY

Constants included from Cleanup

Asciidoctor::Standoc::Cleanup::ABBRnoSYM, Asciidoctor::Standoc::Cleanup::ELEMS_ALLOW_NOTES, Asciidoctor::Standoc::Cleanup::IDREF, Asciidoctor::Standoc::Cleanup::ISO_PUBLISHER_XPATH, Asciidoctor::Standoc::Cleanup::LOCALITY_RE, Asciidoctor::Standoc::Cleanup::LOCALITY_REGEX_STR, Asciidoctor::Standoc::Cleanup::MATHML_NS, Asciidoctor::Standoc::Cleanup::NAMECHAR, Asciidoctor::Standoc::Cleanup::NAMESTARTCHAR, Asciidoctor::Standoc::Cleanup::NORM_REF, Asciidoctor::Standoc::Cleanup::NO_SYMABBR, Asciidoctor::Standoc::Cleanup::SYMABBR, Asciidoctor::Standoc::Cleanup::SYMnoABBR, Asciidoctor::Standoc::Cleanup::TERM_CLAUSE, Asciidoctor::Standoc::Cleanup::TEXT_ELEMS

Constants included from Utils

Utils::NOKOHEAD, Utils::SUBCLAUSE_XPATH

Constants included from Lists

Lists::ISO_REF, Lists::ISO_REF_ALL_PARTS, Lists::ISO_REF_NO_YEAR, Lists::MALFORMED_REF, Lists::NON_ISO_REF

Constants included from Base

Base::TERM_REFERENCE_RE, Base::TERM_REFERENCE_RE_STR, Base::XML_NAMESPACE, Base::XML_ROOT_TAG

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Validate

#asset_style, #asset_title_style, #content_validate, #formattedstr_strip, #hanging_para_style, #iev_validate, #init_iev, #repeat_id_validate, #repeat_id_validate1, #schema_validate, #section_validate, #sourcecode_style, #style_warning, #validate

Methods included from Cleanup

#add_to_hash, #align_callouts_to_annotations, #anchor_cleanup, #anchor_cleanup1, #asciimath2mathml, #bibabstract_location, #bibdata_anchor_cleanup, #bibdata_cleanup, #bibdata_docidentifier_cleanup, #bibitem_cleanup, #biblio_cleanup, #biblio_nested, #biblio_renumber, #biblio_reorder, #biblio_reorder1, #boilerplate, #boilerplate_cleanup, #boilerplate_file, #boilerplate_isodoc, #bookmark_cleanup, #bpart_cleanup, #callout_cleanup, #change_clauses, #clausebefore_cleanup, #cleanup, #concept_cleanup, #concept_eref_cleanup, #concept_termbase_cleanup, #concept_xref_cleanup, #create_amend, #create_amend1, #create_amend2, #dd_bib_extract, #dl1_table_cleanup, #dl2_table_cleanup, #dl_bib_extract, #docid_prefix, #docidentifier_cleanup, #element_name_cleanup, #empty_element_cleanup, #empty_text_before_first_element, #external_terms_boilerplate, #extract_from_p, #extract_localities, #extract_localities1, #extract_notes_from_biblio, #extract_symbols_list, #fetch_local_bibitem, #fetch_termbase, #figure_cleanup, #figure_dl_cleanup1, #figure_dl_cleanup2, #figure_footnote_cleanup, #fold_notes_into_biblio, #footnote_block_cleanup, #footnote_cleanup, #footnote_content, #format_ref, #formula_cleanup, #formula_cleanup_where1, #formula_cleanup_where2, #get_or_make_title, #grkletters, #header_rows_cleanup, #img_cleanup, #initial_boilerplate, #inject_id, #insert_thead, #internal_external_terms_boilerplate, #link_callouts_to_annotations, #link_unwrap, #make_abstract, #make_annexes, #make_bibliography, #make_preface, #mathml_cleanup, #mathml_italicise, #mathml_mi_italics, #mathml_namespace, #mathml_preserve_space, #maxlevel, #merge_annotations_into_sourcecode, #mi_italicise?, #move_attrs_to_amend, #move_clauses_into_preface, #norm_ref_preface, #normref_cleanup, #note_cleanup, #notes_table_cleanup, #obligations_cleanup, #obligations_cleanup_info, #obligations_cleanup_inherit, #obligations_cleanup_norm, #omit_docid_prefix, #origin_cleanup, #other_footnote_renumber, #other_footnote_renumber1, #p_unwrap, #para_cleanup, #preface_clausebefore_cleanup, #quotesource_cleanup, #read_local_bibitem, #ref_cleanup, #ref_dl_cleanup, #reference_names, #replace_title, #requirement_cleanup, #requirement_cleanup1, #requirement_descriptions, #requirement_inherit, #script_cleanup, #section_names_refs_cleanup, #section_names_terms_cleanup, #sections_clausebefore_cleanup, #sections_cleanup, #sections_level_cleanup, #sections_names_cleanup, #sections_order_cleanup, #smartquotes_cleanup, #sort_biblio, #strip_initial_space, #subfigure_cleanup, #symbol_key, #symbols_cleanup, #table_cleanup, #table_footnote_renumber, #table_footnote_renumber1, #term_children_cleanup, #term_defs_boilerplate, #term_defs_boilerplate_cont, #termdef_boilerplate_cleanup, #termdef_cleanup, #termdef_from_termbase, #termdef_stem_cleanup, #termdef_subclause_cleanup, #termdef_unnest_cleanup, #termdefinition_cleanup, #termdocsource_cleanup, #termdomain1_cleanup, #termdomain_cleanup, #termnote_example_cleanup, #textcleanup, #title_footnote_move, #to_ncname, #to_xreftarget, #tq, #validate_ref_dl, #variant_cleanup, #xml_unescape_mathml, #xref_cleanup, #xref_to_eref, #xreftarget_cleanup

Methods included from Utils

anchor_or_uuid, asciidoc_sub, #attr_code, #convert, #datauri2mime, #datauri2mime1, #document_ns_attributes, endash_date, flatten_rawtext, flatten_rawtext_lines, #isodoc, localdir, #noko, reqt_subpart, set_nested_value, smartformat, #wrap_in_para

Methods included from Table

#table, #table_attrs

Methods included from Section

#abstract_parse, #acknowledgements_parse, #annex_parse, #bibitem_parse, #bibliography_parse, #clause_parse, #emend_biblio, #fetch_ref, #foreword_parse, #global_ievcache_name, #in_biblio?, #in_norm_ref?, #in_terms?, #init_bib_caches, #init_iev_caches, #introduction_parse, #local_ievcache_name, #nonterm_symbols_parse, #nonterm_term_def_subclause_parse, #norm_ref_parse, #preamble, #reference, #scope_parse, #section, #section_attributes, #sectiontype, #sectiontype1, #sectiontype_streamline, #set_obligation, #smart_render_xml, #symbols_attrs, #symbols_parse, #term_def_parse, #term_def_subclause_parse, #term_def_subclause_parse1

Methods included from Blocks

#admonition, #admonition_attrs, #example, #example_attrs, #example_proper, #figure_attrs, #figure_title, #formula_attrs, #id_attr, #id_unnum_attrs, #image, #keep_attrs, #listing, #listing_attrs, #literal, #literal_attrs, #note, #note_attrs, #open, #para_attrs, #paragraph, #pass, #pseudocode_example, #quote, #quote_attribution, #quote_attrs, #req_classif_parse, #reqt_attrs, #reqt_subpart_attrs, #requirement, #requirement_classification, #requirement_subpart, #sidebar, #sidebar_attrs, #stem, #term_example, #termnote, #termnote_attrs, #todo, #todo_attrs

Methods included from Inline

#datauri, #image_attributes, #inline_anchor, #inline_anchor_bibref, #inline_anchor_link, #inline_anchor_ref, #inline_anchor_xref, #inline_anchor_xref_attrs, #inline_break, #inline_callout, #inline_footnote, #inline_image, #inline_indexterm, #inline_quoted, #latex_parse, #page_break, #refid?, #stem_parse, #thematic_break, #xml_encode

Methods included from Lists

#analyse_ref_code, #analyse_ref_nofetch, #analyse_ref_numeric, #analyse_ref_repo_path, #colist, #conditional_date, #dd, #dl_attrs, #dlist, #docid, #docnumber, #dt, #id_and_year, #iso_publisher, #isorefmatches, #isorefmatches2, #isorefmatches2_1, #isorefmatches3, #isorefmatches3_1, #isorefrender1, #li, #mn_code, #norm_year, #ol_attrs, #olist, #olist_style, #plaintxt, #ref_attributes, #ref_normalise, #ref_normalise_no_format, #reference1, #reference1_matches, #refitem, #refitem1, #refitem_render, #refitem_render1, #set_date_range, #ul_attrs, #ul_li, #ul_li_attrs, #ulist, #use_my_anchor

Methods included from Front

#committee_component, #csv_split, #datetypes, #default_publisher, #metadata, #metadata_author, #metadata_committee, #metadata_copyright, #metadata_date, #metadata_date1, #metadata_doctype, #metadata_ext, #metadata_getrelation, #metadata_ics, #metadata_id, #metadata_keywords, #metadata_language, #metadata_note, #metadata_other_id, #metadata_publisher, #metadata_relations, #metadata_script, #metadata_series, #metadata_source, #metadata_status, #metadata_version, #org_abbrev, #org_address, #organization, #person_affiliation, #person_name, #personal_author, #personal_author1, #personal_contact, #personal_role, #relation_normalise, #relaton_relation_descriptions, #relaton_relations, #title, #title_english, #title_otherlangs

Methods included from Base

#add_term_source, #clean_exit, #content, #default_fonts, #doc_converter, #doc_extract_attributes, #doctype, #document, #draft?, #extract_termsource_refs, #front, #html_converter, #html_extract_attributes, #init, #makexml, #makexml1, #middle, #outputs, #presentation_xml_converter, #skip, #term_source_attrs, #termsource, #version, #xml_namespace, #xml_root_tag

Constructor Details

#initialize(backend, opts) ⇒ Converter

Returns a new instance of Converter.



67
68
69
70
71
72
73
74
# File 'lib/asciidoctor/standoc/converter.rb', line 67

def initialize(backend, opts)
  super
  basebackend "html"
  outfilesuffix ".xml"
  @libdir = File.dirname(self.class::_file || __FILE__)

  install_fonts(opts)
end

Class Attribute Details

._fileObject

Returns the value of attribute _file.



77
78
79
# File 'lib/asciidoctor/standoc/converter.rb', line 77

def _file
  @_file
end

Class Method Details

.inherited(k) ⇒ Object



80
81
82
# File 'lib/asciidoctor/standoc/converter.rb', line 80

def self.inherited(k)
  k._file = caller_locations.first.absolute_path
end

Instance Method Details

#flavor_nameObject



89
90
91
# File 'lib/asciidoctor/standoc/converter.rb', line 89

def flavor_name
  self.class.name.split("::")&.[](-2).downcase
end

#fonts_manifestObject



93
94
95
# File 'lib/asciidoctor/standoc/converter.rb', line 93

def fonts_manifest
  File.expand_path(File.join(@libdir, "../../metanorma/", flavor_name, "fonts_manifest.yaml"))
end

#html_doc_path(file) ⇒ Object

path to isodoc assets in child gems



85
86
87
# File 'lib/asciidoctor/standoc/converter.rb', line 85

def html_doc_path(file)
  File.join(@libdir, "../../isodoc/html", file)
end

#install_fonts(options = {}) ⇒ Object



97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/asciidoctor/standoc/converter.rb', line 97

def install_fonts(options={})
  if options[:no_install_fonts]
    Metanorma::Util.log("[fontist] Skip font installation because" \
      " --no-install-fonts argument passed", :debug)
    return
  end

  if fonts_manifest.nil? || !File.exist?(fonts_manifest)
    Metanorma::Util.log("[fontist] Skip font installation because" \
      " font manifest file doesn't exists/defined", :debug)
    return
  end

  begin
    Fontist::Manifest::Install.call(
      fonts_manifest,
      confirmation: options[:agree_to_terms] ? "yes" : "no"
    )
  rescue Fontist::Errors::LicensingError
    if !options[:agree_to_terms]
      Metanorma::Util.log("[fontist] --agree-to-terms option missing." \
        " You must accept font licenses to install fonts.", :debug)
    elsif options[:continue_without_fonts]
      Metanorma::Util.log("[fontist] Processing will continue without" \
        " fonts installed", :debug)
    else
      Metanorma::Util.log("[fontist] Aborting without proper fonts" \
        " installed", :fatal)
    end
  rescue Fontist::Errors::NonSupportedFontError
    flavor = flavor_name || "cli"
    Metanorma::Util.log("[fontist] '#{font}' font is not supported. " \
      "Please go to github.com/metanorma/metanorma-#{flavor}/issues" \
      " to report this issue.", :info)
  end
end