diff options
Diffstat (limited to 'org')
| -rw-r--r-- | org/COPYRIGHT | 2 | ||||
| -rw-r--r-- | org/compile_time_info.org | 25 | ||||
| -rw-r--r-- | org/default_misc.org | 38 | ||||
| -rw-r--r-- | org/default_paths.org | 47 | ||||
| -rw-r--r-- | org/default_regex.org | 90 | ||||
| -rw-r--r-- | org/default_shared.org | 20 | ||||
| -rw-r--r-- | org/imports.org | 17 | ||||
| -rw-r--r-- | org/in_source_files.org | 49 | ||||
| -rw-r--r-- | org/meta_conf_make_meta.org | 45 | ||||
| -rw-r--r-- | org/meta_debugs.org | 79 | ||||
| -rw-r--r-- | org/metaverse.org | 407 | ||||
| -rw-r--r-- | org/out_harvest_metadata.org | 25 | ||||
| -rw-r--r-- | org/out_latex.org | 189 | ||||
| -rw-r--r-- | org/out_metadata.org | 23 | ||||
| -rw-r--r-- | org/out_odt.org | 139 | ||||
| -rw-r--r-- | org/out_sqlite.org | 133 | ||||
| -rw-r--r-- | org/out_src_pod.org | 29 | ||||
| -rw-r--r-- | org/out_xmls.org | 165 | ||||
| -rw-r--r-- | org/out_xmls_css.org | 85 | ||||
| -rw-r--r-- | org/out_zip.org | 21 | ||||
| -rw-r--r-- | org/output_hub.org | 43 | ||||
| -rw-r--r-- | org/output_show.org | 33 | ||||
| -rw-r--r-- | org/spine.org | 84 | ||||
| -rw-r--r-- | org/spine_build_scaffold.org | 21 | ||||
| -rw-r--r-- | org/spine_info.org | 41 | 
25 files changed, 923 insertions, 927 deletions
| diff --git a/org/COPYRIGHT b/org/COPYRIGHT index 2010396..2217fc4 100644 --- a/org/COPYRIGHT +++ b/org/COPYRIGHT @@ -5,7 +5,7 @@    - Author: Ralph Amissah      [ralph.amissah@gmail.com] -  - Copyright: (C) 2015 - 2019 Ralph Amissah +  - Copyright: (C) 2015 - 2020 Ralph Amissah    - Spine, Doc Reform (related to SiSU) uses standard:      - docReform markup syntax diff --git a/org/compile_time_info.org b/org/compile_time_info.org index 8590b39..53470db 100644 --- a/org/compile_time_info.org +++ b/org/compile_time_info.org @@ -4,16 +4,15 @@  #+FILETAGS:    :spine:compile:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  [[./spine.org][spine]]  [[./][org/]]  * compilation info @@ -25,7 +24,7 @@ version(Windows) {} else { ... }  ** _module template_                                :module:compile_time_info: -#+begin_src d  :tangle "../src/doc_reform/conf/compile_time_info.d" +#+BEGIN_SRC d  :tangle "../src/doc_reform/conf/compile_time_info.d"  /++    compile_time_info  +/ @@ -33,14 +32,14 @@ module doc_reform.conf.compile_time_info;  template CompileTimeInfo() {    <<spine_compile_time_info>>  } -#+end_src +#+END_SRC  ** complile time os  OS type shows during compilation  *** set os flags -#+name: spine_compile_time_info +#+NAME: spine_compile_time_info  #+BEGIN_SRC d  version(Windows) {    pragma(msg, "[ Windows compilation ]"); @@ -98,7 +97,7 @@ static if(sysWindows) {  ** 64 bit compilation? -#+name: spine_compile_time_info +#+NAME: spine_compile_time_info  #+BEGIN_SRC d  version(D_LP64) {    enum bits = "64 bit"; diff --git a/org/default_misc.org b/org/default_misc.org index d5fd76d..d0328f9 100644 --- a/org/default_misc.org +++ b/org/default_misc.org @@ -4,22 +4,21 @@  #+FILETAGS:    :spine:default:misc:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  [[./spine.org][spine]]  [[./][org/]]  * meta defaults                                                 :module:meta:  ** _module template_ -#+name: tangle_defaults +#+NAME: tangle_defaults  #+BEGIN_SRC d :tangle "../src/doc_reform/meta/defaults.d"  /++    default settings @@ -36,7 +35,7 @@ module doc_reform.meta.defaults;  ** template: flags regex initialize                            :regex_flags:  *** flags -#+name: meta_defaults_template_init_flags +#+NAME: meta_defaults_template_init_flags  #+BEGIN_SRC d  template spineRgxInitFlags() {    /+ regex flags +/ @@ -84,7 +83,7 @@ template spineRgxInitFlags() {  *** node -#+name: meta_defaults_template_node +#+NAME: meta_defaults_template_node  #+BEGIN_SRC d  template spineNode() {    @safe static string[string] node_metadata_heading_str() { @@ -133,7 +132,7 @@ template spineNode() {  ** template: harvest -#+name: meta_defaults_template_harvest +#+NAME: meta_defaults_template_harvest  #+BEGIN_SRC d  template spineHarvest() {    @safe auto spineHarvest() { @@ -171,7 +170,7 @@ template spineHarvest() {  ** template: bibliography                                           :biblio: -#+name: meta_defaults_template_biblio +#+NAME: meta_defaults_template_biblio  #+BEGIN_SRC d  template spineBiblio() {    // required: deemed_author (author || editor); year; fulltitle; @@ -215,6 +214,7 @@ template spineBiblio() {  * 1. output defaults                                          :module:output:  ** _module template_ +#+NAME: tangle_defaults  #+BEGIN_SRC d :tangle "../src/doc_reform/io_out/defaults.d"  /++    default settings @@ -227,7 +227,7 @@ module doc_reform.io_out.defaults;  ** imports -#+name: defaults_imports +#+NAME: defaults_imports  #+BEGIN_SRC d  import    std.algorithm, @@ -254,11 +254,11 @@ import  21 special characters used: -#+BEGIN_SRC text +#+BEGIN_SRC txt  【】〖〗┥┝┤├¤░┘┙┚┼┿╂┊┏┚┆■☼  #+END_SRC -#+name: defaults_template_markup +#+NAME: defaults_template_markup  #+BEGIN_SRC d  template InternalMarkup() {    import std.array; @@ -308,7 +308,7 @@ template InternalMarkup() {  *** template: language codes -#+name: defaults_template_language_codes +#+NAME: defaults_template_language_codes  #+BEGIN_SRC d  template spineLanguageCodes() {    /+ language codes +/ @@ -401,7 +401,7 @@ template spineLanguageCodes() {  * __END__  ** +set colors for terminal+ (unused)                        :colors:terminal: -#+name: meta_ansi_colors +#+NAME: meta_ansi_colors  #+BEGIN_SRC d  static string[string] scr_txt_color = [    "off"           : "\033[0m", diff --git a/org/default_paths.org b/org/default_paths.org index 2d03aa6..1ab7a0a 100644 --- a/org/default_paths.org +++ b/org/default_paths.org @@ -4,16 +4,15 @@  #+FILETAGS:    :spine:paths:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  [[./spine.org][spine]]  [[./][org/]]  * 0. source paths @@ -43,7 +42,7 @@ import  ** _manifest_                                                       :manifest: -#+name: template_paths_src +#+NAME: template_paths_src  #+BEGIN_SRC d  template PodManifest() {    mixin spineRgxInit; @@ -118,7 +117,7 @@ pod      │   └── video      └── pod.manifest -#+name: template_paths_src +#+NAME: template_paths_src  #+BEGIN_SRC d  template PathMatters() {    mixin spineRgxInit; @@ -466,7 +465,7 @@ template PathMatters() {  ** _config_ (dr_document_make & config_local_site)                    :config: -#+name: template_paths_src +#+NAME: template_paths_src  #+BEGIN_SRC d  template ConfigFilePaths() {    mixin spineRgxInit; @@ -640,7 +639,7 @@ filelist for processing [things to ponder]  *** manual source -#+name: template_paths_src +#+NAME: template_paths_src  #+BEGIN_SRC d  template spinePathsSRC() {    mixin spineRgxInit; @@ -695,7 +694,7 @@ template spinePathsSRC() {  *** pods internal, zipped, unzipped -#+name: template_paths_pods +#+NAME: template_paths_pods  #+BEGIN_SRC d  template spinePathsPods() {    mixin spineRgxInit; @@ -990,7 +989,7 @@ import doc_reform.meta.rgx;    - if pod and file have same name, keep name (makes no sense to repeat pod      name) NO dr_markup.sisu_markup should be sisu_markup -#+name: template_paths_out +#+NAME: template_paths_out  #+BEGIN_SRC d  template spineOutPaths() {    auto spineOutPaths()( @@ -1032,7 +1031,7 @@ template spineOutPathSQLite() {  ** set -#+name: template_paths_out +#+NAME: template_paths_out  #+BEGIN_SRC d  template spineOutPathsFnPd() {    /+ TODO stuff to work out here +/ @@ -1076,7 +1075,7 @@ template spineOutPathsFnPd() {  ** _html_                                                               :html:  *** relative -#+name: template_paths_html +#+NAME: template_paths_html  #+BEGIN_SRC d  template spineDocRootTreeHTML() {    mixin spineRgxInit; @@ -1142,7 +1141,7 @@ template spineDocRootTreeHTML() {  *** absolute disk path -#+name: template_paths_html +#+NAME: template_paths_html  #+BEGIN_SRC d  template spinePathsHTML() {    mixin spineRgxInit; @@ -1208,7 +1207,7 @@ template spinePathsHTML() {  *** urls -#+name: template_paths_html +#+NAME: template_paths_html  #+BEGIN_SRC d  template spineUrlsHTML() {    import std.format; @@ -1316,7 +1315,7 @@ template spineUrlsHTML() {  ** _epub_                                                               :epub: -#+name: template_paths_epub +#+NAME: template_paths_epub  #+BEGIN_SRC d  template spinePathsEPUB() {    mixin spineRgxInit; @@ -1427,7 +1426,7 @@ template spinePathsEPUB() {  ** _odt_                                                                 :odt: -#+name: template_paths_odf +#+NAME: template_paths_odf  #+BEGIN_SRC d  template spinePathsODT() {    mixin spineRgxInit; @@ -1497,7 +1496,7 @@ template spinePathsODT() {  ** _latex_                                                             :latex: -#+name: template_paths_latex +#+NAME: template_paths_latex  #+BEGIN_SRC d  template spinePathsLaTeX() {    mixin spineRgxInit; @@ -1533,7 +1532,7 @@ template spinePathsLaTeX() {  ** _sqlite_                                                           :sqlite:  *** discrete -#+name: template_paths_sqlite +#+NAME: template_paths_sqlite  #+BEGIN_SRC d  template spinePathsSQLiteDiscrete() {    mixin spineRgxInit; @@ -1565,7 +1564,7 @@ template spinePathsSQLiteDiscrete() {  *** TODO collection -#+name: template_paths_sqlite +#+NAME: template_paths_sqlite  #+BEGIN_SRC d  template spinePathsSQLite() {    mixin spineRgxInit; diff --git a/org/default_regex.org b/org/default_regex.org index 3dd9cd1..6891147 100644 --- a/org/default_regex.org +++ b/org/default_regex.org @@ -4,16 +4,15 @@  #+FILETAGS:    :spine:regex:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  [[./spine.org][spine]]  [[./][org/]]  * meta ctRegex @@ -25,13 +24,13 @@ http://dlang.org/phobos/std_regex.html  22 special characters used: -#+BEGIN_SRC text +#+BEGIN_SRC txt  【】〖〗┥┝┤├¤░┘┙┚┼┿╂┊┏┚┆■☼  #+END_SRC  ** _module template_                                                  :module: -#+name: tangle_meta_rgx +#+NAME: tangle_meta_rgx  #+BEGIN_SRC d :tangle "../src/doc_reform/meta/rgx.d"  /++    regex: regular expressions used in sisu document parser @@ -48,7 +47,7 @@ static template spineRgxInit() {  ** misc                                                               :misc: -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  /+ misc +/  // static true_dollar                                    = ctRegex!(`\$`, "gm"); @@ -86,7 +85,7 @@ static numeric_col                                    = ctRegex!(`^[ 0-9,.%$£  ** comments                                                        :comment: -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  /+ comments +/  static comment                                        = ctRegex!(`^%+ `); @@ -94,7 +93,7 @@ static comment                                        = ctRegex!(`^%+ `);  ** config -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  /+ header +/  #+END_SRC @@ -102,7 +101,7 @@ static comment                                        = ctRegex!(`^%+ `);  ** native headers  *** native header                                           :native:header: -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  /+ header +/  static variable_doc_title                             = ctRegex!(`@title`); @@ -114,7 +113,7 @@ static yaml_config                                    = ctRegex!(`^[a-z]+\s*:\s*  ** heading & paragraph operators                        :paragraph:operator: -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  /+ heading & paragraph operators +/  static heading_a                                      = ctRegex!(`^:?[A][~] `, "m"); @@ -145,7 +144,7 @@ static para_inline_link_anchor                        = ctRegex!(`\*[~](?P<ancho  ** blocked markup  *** blocked markup curly & tic                                      :block: -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  /+ blocked markup +/  static block_open                                     = ctRegex!("^((code(?:[.][a-z][0-9a-z#+_]+)?|(?:poem|group|block|quote)(?:[.][a-z][0-9a-z_]+)?|table)(?:[(][ a-zA-Z0-9;:,]*[)])?[{][ ]*$)|^`{3} (code(?:[.][a-z][0-9a-z#+_]+)?|(?:poem|group|block|quote)(?:[.][a-z][0-9a-z_]+)?|table)(?:[(][ a-zA-Z0-9;:,]*[)])?|^[{]table[(](?:h;)?(?P<columns>(?:[ ,]+[0-9]+)+)[)][}]"); @@ -154,7 +153,7 @@ static block_poem_open                                = ctRegex!("^((poem(?:[(][  *** blocked markup tic                                          :block:tic: -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  /+ blocked markup tics +/  static block_tic_code_open                            = ctRegex!("^`{3} code(?:[.](?P<syntax>[a-z][0-9a-z#+_]+))?(?:[(](?P<attrib>[ a-zA-Z0-9;:,]*)[)])?"); @@ -168,7 +167,7 @@ static block_tic_close                                = ctRegex!("^(`{3})$","m")  *** blocked markup curly                                      :block:curly: -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  /+ blocked markup curly +/  static block_curly_code_open                          = ctRegex!(`^(?:code(?:[.](?P<syntax>[a-z][0-9a-z_]+))?(?:[(](?P<attrib>[ a-zA-Z0-9;:,]*)[)])?[{][ ]*$)`); @@ -189,14 +188,14 @@ static block_curly_table_special_markup               = ctRegex!(`^[{]table[(](?  *** block sub-matches                                               :block:  **** code -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  static code_numbering                                 = ctRegex!(`(?P<number>\blinenumber\b|\bnumber\b|\blnr\b)`);  #+END_SRC  **** table -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  static table_head_instructions                        = ctRegex!(`(?:(?P<c_heading>h);)?(?:[ ]+c(?P<c_num>[0-9]):)?(?P<c_widths>(?:[, ]+[0-9]+[lr]?)+)`);  static table_col_widths_and_alignment                 = ctRegex!(`(?P<width>[0-9]+)(?P<align>[lr]?)`); @@ -210,7 +209,7 @@ static table_col_separator_nl                         = ctRegex!(`[┊]$`, "mg")  ** inline markup                                           :inline:footnote:  *** footnotes & endnotes -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  /+ inline markup footnotes endnotes +/  static inline_notes_curly_gen                         = ctRegex!(`~\{.+?\}~`, "m"); @@ -228,7 +227,7 @@ static note_ref                                       = ctRegex!(`^\S+?noteref_(  *** links/ urls                                           :inline:footnote: -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  static webserv_url_doc_root                           = ctRegex!(`(?P<url>(?P<domain>https?:\/\/[^ /]+)\/(?P<path>\S*))`, "mg");  static smid_inline_url_generic                        = ctRegex!(`(?:^|[}(\[ ])(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)[a-zA-Z0-9_#]`, "mg"); @@ -241,7 +240,7 @@ static smid_inline_link_endnote_url_helper            = ctRegex!(`\{~\^\s+(?P<co  *** images                                                         :images: -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  static image                                           = ctRegex!(`([a-zA-Z0-9._-]+?\.(?:png|gif|jpg))`, "mg");  static smid_image                                      = ctRegex!(`(?P<pre>(?:^|[ ]|[^\S]?)[{┥](?:~\^\s+|\s*))(?P<image>[a-zA-Z0-9._-]+?\.(?:png|gif|jpg))(?P<post>(?:.*?)\s*[}┝](?:image|┤.*?├|(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)\S+?)(?=[;:!,?.]?([ )\]]|$)))`, "mg"); @@ -254,7 +253,7 @@ static smid_image_delimit                              = ctRegex!(`(?P<pre>^|[ ]  *** inline markup book index                             :inline:bookindex: -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  /+ inline markup book index +/  static book_index                                     = ctRegex!(`^=\{\s*(?P<bookindex>.+?)\}$`, "m"); @@ -265,7 +264,7 @@ static book_index_close                               = ctRegex!(`^(.*?)\}$`, "m  ** switch  *** switch off auto-heading number -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  static auto_heading_numbering_lv1                    = ctRegex!(`^1~`, "m");  static auto_heading_numbering_lv2                    = ctRegex!(`^2~`, "m"); @@ -280,7 +279,7 @@ static auto_heading_numbering_off_lv4                = ctRegex!(`^4~\S*?-\s`, "m  ** no object_number object                                :ocn:off:object: -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  /+ no object_number object +/  static object_number_off                            = ctRegex!(`~#[ ]*$`, "m"); @@ -291,7 +290,7 @@ static repeated_character_line_separator            = ctRegex!(`^(?:[ ]*(?:(?:[.  ** no object_number block                                  :ocn:off:block: -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  /+ no object_number block +/  static object_number_off_block                      = ctRegex!(`^--~#$`); @@ -302,7 +301,7 @@ static object_number_block_marks                    = ctRegex!(`^--[+~-]#$`);  ** ignore outside code blocks                                   :block:code: -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  /+ ignore outside code blocks +/  static skip_from_regular_parse    = ctRegex!(`^(--[+~-]#|-[\\]{2}-|=[.\\]{2}=)$`); @@ -310,7 +309,7 @@ static skip_from_regular_parse    = ctRegex!(`^(--[+~-]#|-[\\]{2}-|=[.\\]{2}=)$`  ** line & page breaks                                                :break: -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  /+ line & page breaks +/  static break_string                                   = ctRegex!(`』`); @@ -318,7 +317,7 @@ static break_string                                   = ctRegex!(`』`);  ** biblio tags                                                 :biblio:tags: -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  /+ biblio tags +/  static biblio_tags                                    = ctRegex!(`^(is|au|author_raw|author|author_arr|editor_raw|ed|editor_arr|ti|title|subtitle|fulltitle|lng|language|trans|src|jo|journal|in|vol|volume|edn|edition|yr|year|pl|place|pb|pub|publisher|url|pg|pages|note|short_name|id):\s+(.+)`); @@ -327,7 +326,7 @@ static biblio_abbreviations                           = ctRegex!(`^(au|ed|ti|lng  ** bookindex split                                         :bookindex:split: -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  /+ bookindex split +/  static bi_main_terms_split                            = ctRegex!(`\s*;\s*`); @@ -338,7 +337,7 @@ static bi_term_and_object_numbers_match               = ctRegex!(`^(.+?)\+(\d+)`  ** topic register split (document classify) -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  static topic_register_main_terms_split                = ctRegex!(`\s*;\s*`);  static topic_register_main_term_plus_rest_split       = ctRegex!(`\s*:\s*`); @@ -348,7 +347,7 @@ static topic_register_multiple_sub_terms_split        = ctRegex!(`␣([^|␣]+(?  ** language codes                                           :language:codes: -#+name: meta_rgx +#+NAME: meta_rgx  #+BEGIN_SRC d  /+ language codes +/  auto language_code_and_filename                                    = @@ -364,6 +363,7 @@ http://dlang.org/phobos/std_regex.html  ** _module template_                                           :module:output: +#+NAME: tangle_meta_rgx  #+BEGIN_SRC d :tangle "../src/doc_reform/io_out/rgx.d"  /++    regex: regular expressions used in sisu document parser @@ -381,7 +381,7 @@ static template spineOutputRgxInit() {  ** special characters  *** xhtml special characters -#+name: sp_ch_xhtml_rgx +#+NAME: sp_ch_xhtml_rgx  #+BEGIN_SRC d  static xhtml_ampersand                            = ctRegex!(`[&]`, "m");      // &  static xhtml_quotation                            = ctRegex!(`["]`, "m");      // " @@ -392,7 +392,7 @@ static xhtml_line_break                           = ctRegex!(` [\\]{2}`, "m"); /  *** latex special characters -#+name: sp_ch_xhtml_rgx +#+NAME: sp_ch_xhtml_rgx  #+BEGIN_SRC d  static latex_special_char                         = ctRegex!(`([%${}_#&\\])`);  static latex_special_char_for_escape              = ctRegex!(`([%${}_#\\])`); @@ -409,7 +409,7 @@ static latex_clean_bookindex_linebreak            = ctRegex!(`\s*\\\\\\\\\s*`, "  * 2. ctRegex defaults shared by meta & output (generic)  ** misc generic -#+name: prgmkup_rgx +#+NAME: prgmkup_rgx  #+BEGIN_SRC d  static newline                                        = ctRegex!("\n", "mg");  static space                                          = ctRegex!(`[ ]`, "mg"); @@ -420,7 +420,7 @@ static nbsp_char                                      = ctRegex!(`░`, "mg");  ** filename (& path) (including insert file)     :insert:file:path:filename: -#+name: prgmkup_rgx +#+NAME: prgmkup_rgx  #+BEGIN_SRC d  static src_pth_sst_or_ssm                             = ctRegex!(`^(?P<path>[/]?(?:[a-zA-Z0-9._-]+/)*)(?P<filename>[a-zA-Z0-9._-]+[.](?P<extension>ss[tm]))$`);  static src_pth_pod_sst_or_ssm                         = ctRegex!(`^(?P<podpath>[/]?(?:[a-zA-Z0-9._-]+/)*)media/text/[a-z]{2}/(?P<filename>[a-zA-Z0-9][a-zA-Z0-9._-]*?[.]ss[tm])$`); @@ -441,7 +441,7 @@ static src_formalised_file_path_parts                 = ctRegex!(`(?P<pth>(?:[/a  *** inline breaks -#+name: prgmkup_rgx +#+NAME: prgmkup_rgx  #+BEGIN_SRC d  /+ line breaks +/  static br_empty_line                                  = ctRegex!(`\n[ ]*\n`, "mg"); @@ -452,7 +452,7 @@ static br_nl                                          = ctRegex!(`┙`, "mg");  *** inline (internal program) markup footnotes endnotes   :inline:footnote: -#+name: prgmkup_rgx +#+NAME: prgmkup_rgx  #+BEGIN_SRC d  /+ inline markup footnotes endnotes +/  static inline_notes_al                                = ctRegex!(`【(?:[*+]\s+|\s*)(.+?)】`, "mg"); @@ -472,7 +472,7 @@ static inline_text_and_note_al_                       = ctRegex!(`(.+?(?:【[*+]  *** inline links -#+name: prgmkup_rgx +#+NAME: prgmkup_rgx  #+BEGIN_SRC d  /+ inline markup links +/  static inline_image                                   = ctRegex!(`(?P<pre>┥)☼(?P<imginf>(?P<img>[a-zA-Z0-9._-]+?\.(?:jpg|gif|png)),w(?P<width>\d+)h(?P<height>\d+))\s*(?P<post>.*?┝┤.*?├)`, "mg"); @@ -499,7 +499,7 @@ static quotation_mark_sql_insert_delimiter            = ctRegex!("[']", "mg");  *** inline markup font face mod                          :inline:font:face: -#+name: prgmkup_rgx +#+NAME: prgmkup_rgx  #+BEGIN_SRC d  /+ inline markup font face mod +/  static inline_mark_emphasis                         = ctRegex!(`(?P<mark>[*])\{(?P<text>.+?)\}[*]`, "mg"); @@ -514,7 +514,7 @@ static inline_mark_mono                             = ctRegex!(`(?P<mark>[#])\{(  static inline_mark_cite                             = ctRegex!(`(?P<mark>["])\{(?P<text>.+?)\}["]`, "mg");  #+END_SRC -#+name: prgmkup_rgx +#+NAME: prgmkup_rgx  #+BEGIN_SRC d  static inline_faces_line                              = ctRegex!(`^[*!/_]_ (?P<text>.+?)((?: [\\]{2}|[~]#){0,2}$)`);  static inline_emphasis_line                           = ctRegex!(`^\*_ (?P<text>.+?)(?P<tail>(?: [\\]{2}|[~]#){0,2}$)`); @@ -523,7 +523,7 @@ static inline_italics_line                            = ctRegex!(`^/_ (?P<text>.  static inline_underscore_line                         = ctRegex!(`^__ (?P<text>.+?)(?P<tail>(?: [\\]{2}|[~]#){0,2}$)`);  #+END_SRC -#+name: prgmkup_rgx +#+NAME: prgmkup_rgx  #+BEGIN_SRC d  /+ inline markup font face mod +/  static inline_emphasis                                = ctRegex!(`[*]┨(?P<text>.+?)┣[*]`, "mg"); @@ -542,7 +542,7 @@ static inline_fontface_clean                          = ctRegex!(`[*!_/^,+■‖  *** table related -#+name: prgmkup_rgx +#+NAME: prgmkup_rgx  #+BEGIN_SRC d  /+ table delimiters +/  static table_delimiter_col                           = ctRegex!("[ ]*[┊][ ]*", "mg"); diff --git a/org/default_shared.org b/org/default_shared.org index b0e242b..daff731 100644 --- a/org/default_shared.org +++ b/org/default_shared.org @@ -4,16 +4,15 @@  #+FILETAGS:    :spine:default:shared:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  [[./spine.org][spine]]  [[./][org/]]  * shared @@ -28,7 +27,8 @@ module doc_reform.share.defaults;  #+END_SRC  ** template: messages                                             :messages: -#+name: shared_messages + +#+NAME: shared_messages  #+BEGIN_SRC d  template Msg() {    import std.stdio; diff --git a/org/imports.org b/org/imports.org index fd6998e..0d8e20f 100644 --- a/org/imports.org +++ b/org/imports.org @@ -4,16 +4,15 @@  #+FILETAGS:    :spine:imports:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  * imports for _meta_                                                     :meta:  ** package dir diff --git a/org/in_source_files.org b/org/in_source_files.org index a498688..b958c22 100644 --- a/org/in_source_files.org +++ b/org/in_source_files.org @@ -4,21 +4,20 @@  #+FILETAGS:    :spine:sourcefile:read:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  [[./spine.org][spine]]  [[./][org/]]  * imports -#+name: imports_std +#+NAME: imports_std  #+BEGIN_SRC d  import    doc_reform.meta, @@ -44,7 +43,7 @@ module doc_reform.io_in.read_config_files;  *** 0. read config files (config_local_site & dr_document_make) (yaml)  **** 1. site configuration -#+name: meta_config_file_hub +#+NAME: meta_config_file_hub  #+BEGIN_SRC d  static template readConfigSite() {    import @@ -151,7 +150,7 @@ webserv:  **** 2. document make/config -#+name: meta_config_file_hub +#+NAME: meta_config_file_hub  #+BEGIN_SRC d  static template readConfigDoc() {    import @@ -206,7 +205,7 @@ static template readConfigDoc() {  *** YAML config (config_local_site & dr_document_make) :file:config:hub: -#+name: meta_config_file_hub +#+NAME: meta_config_file_hub  #+BEGIN_SRC d  static template configReadSiteYAML() {    <<imports_std>> @@ -360,7 +359,7 @@ static template spineRawMarkupContent() {  ** get markup source, read file                              :source:markup:  *** read file, source string [#A]                                  :string: -#+name: meta_markup_source_raw_read_file_source_string +#+NAME: meta_markup_source_raw_read_file_source_string  #+BEGIN_SRC d  @safe final private string readInMarkupSource(in char[] fn_src) {    enforce( @@ -392,7 +391,7 @@ static template spineRawMarkupContent() {  here you split document header and body, an array.length == 2  split is on first match of level A~ (which is required) -#+name: meta_markup_source_raw_doc_header_and_content_split +#+NAME: meta_markup_source_raw_doc_header_and_content_split  #+BEGIN_SRC d  @trusted final private char[][] header0Content1(in string src_text) { // cast(char[])    /+ split string on _first_ match of "^:?A~\s" into [header, content] array/tuple +/ @@ -411,7 +410,7 @@ split is on first match of level A~ (which is required)  *** source line array                                               :array: -#+name: meta_markup_source_raw_source_line_array +#+NAME: meta_markup_source_raw_source_line_array  #+BEGIN_SRC d  @trusted final private char[][] markupSourceLineArray(in char[] src_text) { // cast(char[])    char[][] source_line_arr @@ -426,7 +425,7 @@ split is on first match of level A~ (which is required)  **** read in file -#+name: meta_markup_source_raw_read_in_file +#+NAME: meta_markup_source_raw_read_in_file  #+BEGIN_SRC d  @safe string markupSourceReadIn(in string fn_src) {    static auto rgx = Rgx(); @@ -447,7 +446,7 @@ split is on first match of level A~ (which is required)  - file insert list  - [image list?] -#+name: meta_markup_source_raw_tuple_of_header_and_body +#+NAME: meta_markup_source_raw_tuple_of_header_and_body  #+BEGIN_SRC d  @safe HeaderContentInsertsImages markupSourceHeaderContentRawLineTupleArray(in string source_txt_str) {    string[] file_insert_list = []; @@ -468,7 +467,7 @@ split is on first match of level A~ (which is required)  **** get insert source line array -#+name: meta_markup_source_raw_get_insert_source_line_array +#+NAME: meta_markup_source_raw_get_insert_source_line_array  #+BEGIN_SRC d  @safe final char[][] getInsertMarkupSourceContentRawLineArray(    in char[]    fn_src_insert, @@ -491,7 +490,7 @@ split is on first match of level A~ (which is required)  *** scan inserts (sub-document) source                    :scan_insert_src:  **** scan subdoc source -#+name: meta_inserts_scan +#+NAME: meta_inserts_scan  #+BEGIN_SRC d  char[][] contents_insert;  int[string] type1 = flags_type_init; @@ -501,7 +500,7 @@ auto markup_src_file_path = fn_pth_full.captures[1];  **** loop insert (sub-document) -#+name: meta_inserts_scan_loop +#+NAME: meta_inserts_scan_loop  #+BEGIN_SRC d  if (type1["curly_code"] == 1) {    type1["header_make"] = 0; @@ -574,7 +573,7 @@ if (type1["curly_code"] == 1) {  **** post loop -#+name: meta_inserts_scan_post +#+NAME: meta_inserts_scan_post  #+BEGIN_SRC d  ContentsAndImages t = tuple(    contents_insert, @@ -586,7 +585,7 @@ return t;  *** scan document source                                         :scan_src:  **** scan doc source -#+name: meta_master_doc_scan_for_insert_filenames +#+NAME: meta_master_doc_scan_for_insert_filenames  #+BEGIN_SRC d  char[][] contents;  int[string] type = flags_type_init; @@ -599,7 +598,7 @@ string[] insert_file_list =[];  **** include inserts: _loop master_ scan for inserts (insert documents) -#+name: meta_master_doc_scan_for_insert_filenames_loop +#+NAME: meta_master_doc_scan_for_insert_filenames_loop  #+BEGIN_SRC d  if (type["curly_code"] == 1) {    if (line.matchFirst(rgx.block_curly_code_close)) { @@ -671,7 +670,7 @@ if (type["curly_code"] == 1) {  **** post loop -#+name: meta_master_doc_scan_for_insert_filenames_post +#+NAME: meta_master_doc_scan_for_insert_filenames_post  #+BEGIN_SRC d  string[] images = [];  foreach(i; uniq(_images.sort())) { diff --git a/org/meta_conf_make_meta.org b/org/meta_conf_make_meta.org index a319758..898db4f 100644 --- a/org/meta_conf_make_meta.org +++ b/org/meta_conf_make_meta.org @@ -4,22 +4,21 @@  #+FILETAGS:    :spine:config:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  [[./spine.org][spine]]  [[./][org/]]  * 0. generic  ** imports -#+name: meta_defaults_imports +#+NAME: meta_defaults_imports  #+BEGIN_SRC d  import    std.algorithm, @@ -51,7 +50,7 @@ module doc_reform.meta.conf_make_meta_structs;  ** initialize, imports etc. -#+name: meta_defaults_template_structs +#+NAME: meta_defaults_template_structs  #+BEGIN_SRC d  import    std.exception, @@ -74,7 +73,7 @@ static auto mkup = InlineMarkup();  ** struct Generic ConfComposite -#+name: meta_defaults_template_structs +#+NAME: meta_defaults_template_structs  #+BEGIN_SRC d  @safe string url_markup(string line) {    string line_ = line @@ -186,7 +185,7 @@ struct confCompositeMakeBuild {  ** initialize make & meta  *** composite make -#+name: meta_defaults_template_structs +#+NAME: meta_defaults_template_structs  #+BEGIN_SRC d  struct ConfCompositeMakeInit {    string[]   bold; @@ -211,7 +210,7 @@ struct ConfCompositeMakeInit {  *** struct: conf site local -#+name: meta_defaults_template_structs +#+NAME: meta_defaults_template_structs  #+BEGIN_SRC d  struct ConfCompositeSiteLocal {    string webserv_url_doc_root; @@ -253,7 +252,7 @@ struct ConfCompositeSiteLocal {  *** struct: composite meta -#+name: meta_defaults_template_structs +#+NAME: meta_defaults_template_structs  #+BEGIN_SRC d  struct MetaComposite {    string   classify_dewey; @@ -313,7 +312,7 @@ struct MetaComposite {  *** composite structs -#+name: meta_defaults_template_structs +#+NAME: meta_defaults_template_structs  #+BEGIN_SRC d  struct ConfComposite {    MetaComposite               meta; @@ -325,7 +324,7 @@ struct ConfComposite {  *** JSONValue -#+name: meta_defaults_template_structs +#+NAME: meta_defaults_template_structs  #+BEGIN_SRC d  JSONValue config_jsonstr = `{  }`; @@ -376,7 +375,7 @@ static template contentYAMLtoSpineStruct() {  **  make -#+name: yaml_objects_make +#+NAME: yaml_objects_make  #+BEGIN_SRC d  /+ make ------------------------------------------------------------------- +/  if ("make" in _yaml @@ -533,7 +532,7 @@ if ("make" in _yaml  **  conf -#+name: yaml_objects_conf +#+NAME: yaml_objects_conf  #+BEGIN_SRC d  /+ conf ------------------------------------------------------------------- +/  if ("webserv" in _yaml @@ -773,7 +772,7 @@ if ("search" in _yaml  **  meta -#+name: yaml_objects_meta +#+NAME: yaml_objects_meta  #+BEGIN_SRC d  /+ meta ------------------------------------------------------------------- +/  if (_struct_composite.meta.creator_author.empty) { @@ -1200,7 +1199,7 @@ static template contentJSONtoSpineStruct() {  **  make -#+name: json_objects +#+NAME: json_objects  #+BEGIN_SRC d  /+ make ------------------------------------------------------------------- +/  if ("make" in _json.object) { @@ -1365,7 +1364,7 @@ if ("make" in _json.object) {  **  conf -#+name: json_objects +#+NAME: json_objects  #+BEGIN_SRC d  /+ conf ------------------------------------------------------------------- +/  if ("webserv" in _json.object) { @@ -1536,7 +1535,7 @@ if ("search" in _json.object) {  **  meta -#+name: json_objects +#+NAME: json_objects  #+BEGIN_SRC d  /+ meta ------------------------------------------------------------------- +/  if (_struct_composite.meta.creator_author.empty) { diff --git a/org/meta_debugs.org b/org/meta_debugs.org index f17c363..71c3d55 100644 --- a/org/meta_debugs.org +++ b/org/meta_debugs.org @@ -4,16 +4,15 @@  #+FILETAGS:    :spine:debugs:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  [[./spine.org][spine]]  [[./][org/]]  * 1. abstraction debugs                        :module:spine:meta_doc_debugs: @@ -46,7 +45,7 @@ template spineDebugs() {  ** imports -#+name: debug_imports +#+NAME: debug_imports  #+BEGIN_SRC d  import    doc_reform.meta.defaults, @@ -70,7 +69,7 @@ import  ** initialize                                                       :report: -#+name: initialize +#+NAME: initialize  #+BEGIN_SRC d  static auto rgx = Rgx();  auto markup = InlineMarkup(); @@ -79,7 +78,7 @@ string key;  ** (parent)                                                         :parent: -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(parent) {    writefln( @@ -107,7 +106,7 @@ debug(parent) {  ** (dumpdoc)                                                       :objects: -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(dumpdoc) {    writefln( @@ -120,7 +119,7 @@ debug(dumpdoc) {  ** (segnames)                                                      :objects: -#+name: meta_output_debugs_checkdoc +#+NAME: meta_output_debugs_checkdoc  #+BEGIN_SRC d  debug(checkdoc) {    void out_segnames(S,T)( @@ -143,7 +142,7 @@ debug(checkdoc) {  ** shared output section arrange  *** out toc -#+name: meta_output_debugs_checkdoc +#+NAME: meta_output_debugs_checkdoc  #+BEGIN_SRC d  debug(checkdoc) {    void out_toc(S)( @@ -167,7 +166,7 @@ debug(checkdoc) {  *** out endnotes                                                 :endnotes: -#+name: meta_output_debugs_checkdoc +#+NAME: meta_output_debugs_checkdoc  #+BEGIN_SRC d  debug(checkdoc) {    void out_endnotes(S)( @@ -189,7 +188,7 @@ debug(checkdoc) {  *** out bookindex                                               :bookindex: -#+name: meta_output_debugs_checkdoc +#+NAME: meta_output_debugs_checkdoc  #+BEGIN_SRC d  debug(checkdoc) {    void out_bookindex(S)( @@ -213,7 +212,7 @@ debug(checkdoc) {  ** sections  *** heading_section                                               :heading: -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(section_head) {    key="head"; @@ -233,7 +232,7 @@ debug(section_head) {  *** toc_section (seg & scroll)  **** toc -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(section_toc) {    key="toc"; @@ -243,7 +242,7 @@ debug(section_toc) {  **** toc seg -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(section_toc) {    key="toc"; @@ -253,7 +252,7 @@ debug(section_toc) {  **** toc scroll -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(section_toc) {    key="toc"; @@ -263,7 +262,7 @@ debug(section_toc) {  *** body_section                                                     :body: -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(section_body) {    key="body"; @@ -282,7 +281,7 @@ debug(section_body) {  *** dom structure                                                    :body: -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(toc_nav_dom) {    enum DomTags { none, open, close, close_and_open, open_still, } @@ -344,7 +343,7 @@ debug(toc_nav_dom) {  *** decendants -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(decendants) {    foreach (sect; doc_matters.has.keys_seq.scroll) { @@ -360,7 +359,7 @@ debug(decendants) {  *** endnotes_section (seg & scroll)                              :endnotes:  **** endnotes -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(section_endnotes) {    key="endnotes"; @@ -370,7 +369,7 @@ debug(section_endnotes) {  **** endnotes seg -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(section_endnotes_seg) {    key="endnotes"; @@ -380,7 +379,7 @@ debug(section_endnotes_seg) {  *** glossary_section                                             :glossary: -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(section_glossary) {    key="glossary"; @@ -399,7 +398,7 @@ debug(section_glossary) {  *** bibliography_section (seg & scroll)                      :bibliography: -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(section_bibliography) {    key="bibliography"; @@ -419,7 +418,7 @@ debug(section_bibliography) {  *** bookindex_section (seg & scroll)                            :bookindex:  **** bookindex -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(section_bookindex) {    key="bookindex"; @@ -429,7 +428,7 @@ debug(section_bookindex) {  **** bookindex seg -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(section_bookindex) {    key="bookindex"; @@ -439,7 +438,7 @@ debug(section_bookindex) {  **** bookindex scroll -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(section_bookindex_scroll) {    key="bookindex_scroll"; @@ -449,7 +448,7 @@ debug(section_bookindex_scroll) {  *** section_blurb                                                   :blurb: -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(blurb_section) {    key="blurb"; @@ -468,7 +467,7 @@ debug(blurb_section) {  ** (objects)                                                       :objects: -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(objects) {    writefln( @@ -491,7 +490,7 @@ debug(objects) {  ** (headermakejson)                                            :json:header: -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(headermakejson) {    writefln( @@ -523,7 +522,7 @@ debug(headermakejson) {  ** (headermetadatajson)                                        :json:header: -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(headermetadatajson) {    writefln( @@ -651,7 +650,7 @@ debug(headermetadatajson) {  ** anchor tags -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(anchor) {    writefln( @@ -677,7 +676,7 @@ debug(anchor) {  ** (headings)                                                     :headings: -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(heading) {                         // heading    foreach (k; doc_matters.has.keys_seq.seg) { @@ -698,7 +697,7 @@ debug(heading) {                         // heading  ** (summary) [+1]                                                  :summary: -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(headings) {    writefln( @@ -721,7 +720,7 @@ debug(headings) {  }  #+END_SRC -#+name: meta_output_debugs +#+NAME: meta_output_debugs  #+BEGIN_SRC d  debug(summary) {    string[string] check = [ @@ -732,7 +731,7 @@ debug(summary) {  *** compare number of object_number for known sisu markup output (checkdoc) -#+name: meta_output_debugs_summary +#+NAME: meta_output_debugs_summary  #+BEGIN_SRC d  debug(checkdoc) {    if (auto mfn=match(doc_matters.src.filename, rgx.src_fn)) { diff --git a/org/metaverse.org b/org/metaverse.org index 0483473..c1d4442 100644 --- a/org/metaverse.org +++ b/org/metaverse.org @@ -4,16 +4,15 @@  #+FILETAGS:    :spine:abstraction:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  - [[./spine.org][spine]]  [[./][org/]] @@ -142,7 +141,7 @@ template docAbstraction() {  *** imports                                                       :imports:  [[./meta_defaults.org][meta_defaults]] -#+name: abs_top_imports +#+NAME: abs_top_imports  #+BEGIN_SRC d  import doc_reform.meta;  import @@ -159,7 +158,7 @@ import  *** mixins                                                         :mixins: -#+name: abs_top_mixins +#+NAME: abs_top_mixins  #+BEGIN_SRC d  mixin ObjectSetter;  mixin InternalMarkup; @@ -169,7 +168,7 @@ mixin spineRgxInit;  *** initialize                                                 :initialize:  **** initialize general -#+name: abs_top_init_struct +#+NAME: abs_top_init_struct  #+BEGIN_SRC d  /+ initialize +/  ObjGenericComposite[] the_table_of_contents_section; @@ -265,7 +264,7 @@ enum DomTags { none, open, close, close_and_open, open_still, }  **** method heading ancestors -#+name: abs_top_init_struct +#+NAME: abs_top_init_struct  #+BEGIN_SRC d  @safe pure ObjGenericComposite obj_heading_ancestors()(    ObjGenericComposite  obj, @@ -324,7 +323,7 @@ enum DomTags { none, open, close, close_and_open, open_still, }  **** method dom markup tags -#+name: abs_top_init_struct +#+NAME: abs_top_init_struct  #+BEGIN_SRC d  @safe pure ObjGenericComposite obj_dom_structure_set_markup_tags()(    ObjGenericComposite  obj, @@ -374,7 +373,7 @@ enum DomTags { none, open, close, close_and_open, open_still, }  **** method dom collapsed tags -#+name: abs_top_init_struct +#+NAME: abs_top_init_struct  #+BEGIN_SRC d  @safe pure ObjGenericComposite obj_dom_set_collapsed_tags()(    ObjGenericComposite  obj, @@ -424,7 +423,7 @@ enum DomTags { none, open, close, close_and_open, open_still, }  **** method ocn emit -#+name: abs_top_init_struct +#+NAME: abs_top_init_struct  #+BEGIN_SRC d  @safe static auto ocn_emit(int ocn_status_flag) {    return object_citation_number.ocn_emitter(ocn_status_flag); @@ -491,7 +490,7 @@ enum sObj { content, anchor_tag, notes_reg, notes_star, links, image_no_dimensio  *** inline para tag associations -#+name: abs_inline_para_tag_associations +#+NAME: abs_inline_para_tag_associations  #+BEGIN_SRC d  @safe string[string][string] inline_para_link_anchor()(    string[string]          an_object, @@ -513,7 +512,7 @@ enum sObj { content, anchor_tag, notes_reg, notes_star, links, image_no_dimensio  *** scope -#+name: abs_init_rest +#+NAME: abs_init_rest  #+BEGIN_SRC d  scope(success) {  } @@ -534,7 +533,7 @@ scope(exit) {  *** init rest -#+name: abs_init_rest +#+NAME: abs_init_rest  #+BEGIN_SRC d  mixin spineRgxInitFlags;  mixin spineNode; @@ -649,7 +648,7 @@ int cnt1 = 1; int cnt2 = 1; int cnt3 = 1;  *** make tests -#+name: make_tests +#+NAME: make_tests  #+BEGIN_SRC d  enum Substitute { match, markup, }  debug (substitutions) { @@ -681,7 +680,7 @@ debug (substitutions) {  ** 2. ↻ *LOOP* _loop: process document body_ [+6]                         :loop:  *** Loop scope                                                      :scope: -#+name: abs_in_loop_body_00 +#+NAME: abs_in_loop_body_00  #+BEGIN_SRC d  /+ scope +/  scope(exit) { @@ -709,7 +708,7 @@ debug(srclines) {  *** check whether object_number is on or turned off                   :ocn: -#+name: abs_in_loop_body_00 +#+NAME: abs_in_loop_body_00  #+BEGIN_SRC d  if (!line.empty) {    obj_type_status = line._check_ocn_status_(obj_type_status); @@ -719,7 +718,7 @@ if (!line.empty) {  *** separate _code blocks_ from _other markup text_ [+5] [#A]  **** _code blocks_                                            :block:code: -#+name: abs_in_loop_body_00_code_block +#+NAME: abs_in_loop_body_00_code_block  #+BEGIN_SRC d  /+ block object: code +/  line.flow_txt_block_code(an_object, obj_type_status); @@ -729,7 +728,7 @@ continue;  **** _non code objects_ (non-code blocks & regular text: by line) [+4] :non_code:  ***** inline fontface markup -#+name: abs_in_loop_body_non_code_obj +#+NAME: abs_in_loop_body_non_code_obj  #+BEGIN_SRC d  line = line.inline_markup_faces; // by text line (rather than by text object), linebreaks in para problematic  #+END_SRC @@ -737,7 +736,7 @@ line = line.inline_markup_faces; // by text line (rather than by text object), l  ***** in section (biblio, glossary, blurb) +(block group)+ [+1] :block:active:  ****** in section: biblio                                       :biblio: -#+name: abs_in_loop_body_non_code_obj +#+NAME: abs_in_loop_body_non_code_obj  #+BEGIN_SRC d  if ((line.matchFirst(rgx.heading_biblio)    && obj_type_status["para"]  != State.on @@ -773,7 +772,7 @@ if there is a glossary section you need to:    - need indentation and regular paragraph inline markup  - reconstitute the document with the glossary section following the endnotes -#+name: abs_in_loop_body_non_code_obj +#+NAME: abs_in_loop_body_non_code_obj  #+BEGIN_SRC d  } else if ((line.matchFirst(rgx.heading_glossary)    && obj_type_status["para"]  != State.on @@ -887,7 +886,7 @@ if there is a blurb section you need to:    - need regular paragraph inline markup  - reconstitute the document with the blurb section at the very end of the doucment -#+name: abs_in_loop_body_non_code_obj +#+NAME: abs_in_loop_body_non_code_obj  #+BEGIN_SRC d  } else if ((line.matchFirst(rgx.heading_blurb)    && obj_type_status["para"]  != State.on @@ -1048,7 +1047,7 @@ if there is a blurb section you need to:  ***** in blocks [+1]                                       :block:active:  ****** in block: quote                                           :quote: -#+name: abs_in_loop_body_non_code_obj +#+NAME: abs_in_loop_body_non_code_obj  #+BEGIN_SRC d  } else if (obj_type_status["quote"] == TriState.on) {                          /+ within block object: quote +/    line = line @@ -1060,7 +1059,7 @@ if there is a blurb section you need to:  ****** in block: group                                           :group: -#+name: abs_in_loop_body_non_code_obj +#+NAME: abs_in_loop_body_non_code_obj  #+BEGIN_SRC d  /+ within block object: group +/  } else if (obj_type_status["group"] == TriState.on) {                          /+ within block object: group +/ @@ -1074,7 +1073,7 @@ if there is a blurb section you need to:  ****** in block: block                                           :block: -#+name: abs_in_loop_body_non_code_obj +#+NAME: abs_in_loop_body_non_code_obj  #+BEGIN_SRC d  } else if (obj_type_status["block"] == TriState.on) {                          /+ within block object: block +/    line = line @@ -1090,7 +1089,7 @@ if there is a blurb section you need to:  ****** in block: poem                                             :poem: -#+name: abs_in_loop_body_non_code_obj +#+NAME: abs_in_loop_body_non_code_obj  #+BEGIN_SRC d  } else if (obj_type_status["poem"] == TriState.on) {                           /+ within block object: poem +/    an_object = line.flow_txt_block_poem(an_object, obj_type_status, cntr, object_number_poem, conf_make_meta, tag_in_seg); @@ -1099,7 +1098,7 @@ if there is a blurb section you need to:  ****** in block: table                                           :table: -#+name: abs_in_loop_body_non_code_obj +#+NAME: abs_in_loop_body_non_code_obj  #+BEGIN_SRC d  } else if (obj_type_status["table"] == TriState.on) {                          /+ within block object: table +/    an_object = line.flow_txt_block_table(an_object, obj_type_status, conf_make_meta); @@ -1109,7 +1108,7 @@ if there is a blurb section you need to:  ***** not identified as being within block group (could still be, or not) [+3]  ****** assert -#+name: abs_in_loop_body_open_block_obj_assert +#+NAME: abs_in_loop_body_open_block_obj_assert  #+BEGIN_SRC d  assert(    (obj_type_status["blocks"] == TriState.off) @@ -1121,7 +1120,7 @@ assertions_flag_types_block_status_none_or_closed(obj_type_status);  ****** catch misc +block open+ -#+name: abs_in_loop_body_open_block_obj +#+NAME: abs_in_loop_body_open_block_obj  #+BEGIN_SRC d  if (line.matchFirst(rgx.block_poem_open)) {                                    /+ poem to verse exceptions! +/    object_reset(an_object); @@ -1135,7 +1134,7 @@ continue;  ****** line not empty [+2]  ******* asserts                                                :assert: -#+name: abs_in_loop_body_not_block_obj +#+NAME: abs_in_loop_body_not_block_obj  #+BEGIN_SRC d  assert(    !line.empty, @@ -1163,7 +1162,7 @@ if (obj_type_status["blocks"] == TriState.closing) {  ******* book index                                          :bookindex: -#+name: abs_in_loop_body_not_block_obj +#+NAME: abs_in_loop_body_not_block_obj  #+BEGIN_SRC d  if (line.matchFirst(rgx.book_index)  || line.matchFirst(rgx.book_index_open) @@ -1173,14 +1172,14 @@ if (line.matchFirst(rgx.book_index)  ******* not book index [+1] -#+name: abs_in_loop_body_not_block_obj +#+NAME: abs_in_loop_body_not_block_obj  #+BEGIN_SRC d  } else {                                                                       /+ not book_index +/  #+END_SRC  ******** matched: comment                              :comment:match: -#+name: abs_in_loop_body_not_block_obj +#+NAME: abs_in_loop_body_not_block_obj  #+BEGIN_SRC d    an_object_key="body_nugget";    if (auto m = line.matchFirst(rgx.comment)) {                                 /+ matched comment +/ @@ -1202,7 +1201,7 @@ if (line.matchFirst(rgx.book_index)  ******** flag !set & line !exist: heading or para  :heading:paragraph: -#+name: abs_in_loop_body_not_block_obj +#+NAME: abs_in_loop_body_not_block_obj  #+BEGIN_SRC d    } else if (((line_occur["para"] == State.off)    && (line_occur["heading"] == State.off)) @@ -1239,7 +1238,7 @@ if (line.matchFirst(rgx.book_index)  ******** line exist: heading                                 :heading: -#+name: abs_in_loop_body_not_block_obj +#+NAME: abs_in_loop_body_not_block_obj  #+BEGIN_SRC d    } else if (line_occur["heading"] > State.off) {                              /+ heading +/      debug(heading) { @@ -1251,7 +1250,7 @@ if (line.matchFirst(rgx.book_index)  ******** line exist: para                                       :para: -#+name: abs_in_loop_body_not_block_obj +#+NAME: abs_in_loop_body_not_block_obj  #+BEGIN_SRC d    } else if (line_occur["para"] > State.off) {                                 /+ paragraph +/      debug(para) { @@ -1268,7 +1267,7 @@ if (line.matchFirst(rgx.book_index)  ****** line empty, with block flag -#+name: abs_in_loop_body_not_block_obj_line_empty_blocks_flags +#+NAME: abs_in_loop_body_not_block_obj_line_empty_blocks_flags  #+BEGIN_SRC d  an_object = line.flow_block_flag_line_empty_(    an_object, @@ -1288,7 +1287,7 @@ an_object = line.flow_block_flag_line_empty_(  ****** line empty [+1]  ******* assert line empty                                      :assert: -#+name: abs_in_loop_body_not_block_obj_line_empty +#+NAME: abs_in_loop_body_not_block_obj_line_empty  #+BEGIN_SRC d  assert(    line.empty, @@ -1303,7 +1302,7 @@ assert(  ******* heading object                                 :heading:object: -#+name: abs_in_loop_body_not_block_obj_line_empty +#+NAME: abs_in_loop_body_not_block_obj_line_empty  #+BEGIN_SRC d  if (_new_doc) {    tag_assoc = tag_assoc.init; @@ -1436,7 +1435,7 @@ if ((obj_type_status["heading"] == State.on)  ******* paragraph object                             :paragraph:object: -#+name: abs_in_loop_body_not_block_obj_line_empty +#+NAME: abs_in_loop_body_not_block_obj_line_empty  #+BEGIN_SRC d  } else if ((obj_type_status["para"] == State.on)  && (line_occur["para"] > State.off)) { @@ -1504,7 +1503,7 @@ if ((obj_type_status["heading"] == State.on)  *** regular _text objects_ identified                        :text:paragraph: -#+name: abs_in_loop_body_01 +#+NAME: abs_in_loop_body_01  #+BEGIN_SRC d  /+ unless (the_document_body_section.length == 0) ? +/  if (the_document_body_section.length > 0) { @@ -1568,7 +1567,7 @@ if (the_document_body_section.length > 0) {  *** tie up preparation of document sections  **** endnotes section (scroll & seg)                            :endnotes: -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  auto en_tuple    = note_section.endnote_objects(obj_cite_digits, opt_action); @@ -1588,7 +1587,7 @@ debug(endnotes) {  **** no glossary section?                                       :glossary: -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  if (an_object["glossary_nugget"].length == 0) {    comp_obj_heading_                                 = comp_obj_heading_.init; @@ -1617,7 +1616,7 @@ debug(glossary) {  **** bibliography section (objects)                         :bibliography: -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  auto biblio_unsorted_incomplete = biblio_arr_json.dup;  auto biblio = Bibliography(); @@ -1625,7 +1624,7 @@ auto biblio_ordered    = biblio.flow_bibliography_(biblio_unsorted_incomplete, bib_arr_json);  #+END_SRC -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  if (biblio_ordered.length > 0) {    { @@ -1698,7 +1697,7 @@ if (biblio_ordered.length > 0) {  ***** format biblio string -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  string out_;  foreach (entry; biblio_ordered) { @@ -1733,7 +1732,7 @@ foreach (entry; biblio_ordered) {  }  #+END_SRC -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  debug(bibliosection) {    foreach (o; the_bibliography_section) { @@ -1778,7 +1777,7 @@ JSONValue biblio_entry_tags_jsonstr =  `{  **** bookindex section (scroll & seg)                         :book:index: -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  auto bi = BookIndexReportSection();  auto bi_tuple @@ -1799,7 +1798,7 @@ debug(bookindex) {  **** no blurb section?                                             :blurb: -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  if (an_object["blurb_nugget"].length == 0) {    comp_obj_heading_                                = comp_obj_heading_.init; @@ -1830,7 +1829,7 @@ debug(blurb) {  **** toc backmatter, table of contents backmatter (scroll & seg) :contents: -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  indent=[    "hang_position" : 1, @@ -1931,7 +1930,7 @@ debug(toc) {  **** doc head (separate document head from body, make space for toc) -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  the_document_head_section ~= the_document_body_section[0];  the_document_body_section=the_document_body_section[1..$]; @@ -1955,7 +1954,7 @@ NOTE there are issues attempting to do this on first pass as:  ***** Methods  ****** get ancestors markup -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  @safe int[] _get_ancestors_markup(O)(O obj, ref int[] _ancestors_markup) {    if (obj.metainfo.is_a == "heading") { @@ -2048,7 +2047,7 @@ NOTE there are issues attempting to do this on first pass as:  ****** get ancestors collapsed -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  @safe int[] _get_ancestors_collapsed(O)(O obj, ref int[] _ancestors_collapsed) {    if (obj.metainfo.is_a == "heading") { @@ -2141,7 +2140,7 @@ NOTE there are issues attempting to do this on first pass as:  - substantive object numbers already exist  - number un-numbered non-substantive text -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  /+ multiple 1~ levels, loop through document body +/  if (the_document_body_section.length > 1) { @@ -2169,7 +2168,7 @@ if (the_document_body_section.length > 1) {  ***** ↻ Loop section: endnotes [en] -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  if (the_endnotes_section.length > 1) {    segnames["html"] ~= "endnotes"; @@ -2190,7 +2189,7 @@ if (the_endnotes_section.length > 1) {  ***** ↻ Loop section: glossary [gl] -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  if (the_glossary_section.length > 1) {    segnames["html"] ~= "glossary"; @@ -2211,7 +2210,7 @@ if (the_glossary_section.length > 1) {  ***** ↻ Loop section: bibliography [bb] -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  if (the_bibliography_section.length > 1) {    segnames["html"] ~= "bibliography"; @@ -2232,7 +2231,7 @@ if (the_bibliography_section.length > 1) {  ***** ↻ Loop section: book index [bi] -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  if (the_bookindex_section.length > 1) {    segnames["html"] ~= "bookindex"; @@ -2253,7 +2252,7 @@ if (the_bookindex_section.length > 1) {  ***** ↻ Loop section: blurb [bl] -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  if (the_blurb_section.length > 1) {    segnames["html"] ~= "blurb"; @@ -2313,7 +2312,7 @@ Build here:  ***** Methods  ****** decendants -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  @safe auto get_decendants()(ObjGenericComposite[] document_sections) {    int[string] _heading_ocn_decendants; @@ -2366,7 +2365,7 @@ Build here:  ****** images: extract -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  string[] _images;  @safe string[] extract_images()(string content_block) { @@ -2381,7 +2380,7 @@ string[] segnames_0_to_4;  ****** images: dimensions -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  @system auto _image_dimensions(O,M)(O obj, M manifested) {    if (obj.has.image_without_dimensions) { @@ -2434,7 +2433,7 @@ string[] segnames_0_to_4;        - book index      - footnotes and footnote numbers -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  @safe auto _links(O)(O obj) {    if (auto m = obj.text.match(rgx.inline_link_stow_uri)) { @@ -2459,7 +2458,7 @@ string[] segnames_0_to_4;  ***** ↻ Loop section: head -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  foreach (ref obj; the_document_head_section) {    if (obj.metainfo.is_a == "heading") { @@ -2491,7 +2490,7 @@ foreach (ref obj; the_document_head_section) {  ***** ↻ Loop section: toc [to] -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  if (the_table_of_contents_section.length > 1) {    /+ scroll +/ @@ -2521,7 +2520,7 @@ if (the_table_of_contents_section.length > 1) {  ***** ↻ Loop section: document body [bd] -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  /+ multiple 1~ levels, loop through document body +/  if (the_document_body_section.length > 1) { @@ -2572,7 +2571,7 @@ auto image_list = (_images.sort()).uniq;  - endnotes have their own number, (also use in node) and they belong to calling object -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  /+ optional only one 1~ level +/  if (the_endnotes_section.length > 1) { @@ -2615,7 +2614,7 @@ if (the_endnotes_section.length > 1) {  - add glossary numbering, (also use in node) no need to show in text -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  /+ optional only one 1~ level +/  if (the_glossary_section.length > 1) { @@ -2658,7 +2657,7 @@ if (the_glossary_section.length > 1) {  - add bibliography numbering, (also use in node) no need to show in text -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  /+ optional only one 1~ level +/  if (the_bibliography_section.length > 1) { @@ -2701,7 +2700,7 @@ if (the_bibliography_section.length > 1) {  - add book index numbering?, (also use in node) no need to show in text -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  /+ optional only one 1~ level +/  int ocn_       = obj_cite_digits.object_number; @@ -2754,7 +2753,7 @@ if (the_bookindex_section.length > 1) {                                        /  ***** ↻ Loop section: blurb [bl] -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  /+ optional only one 1~ level +/  if (the_blurb_section.length > 1) { @@ -2795,7 +2794,7 @@ if (the_blurb_section.length > 1) {  ***** ↻ Loop sections: get decendants -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  if (the_document_body_section.length > 1) {    auto pairs = get_decendants( @@ -2893,7 +2892,7 @@ if (the_document_body_section.length > 1) {  **** TODO update BUG? -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d    /+ TODO      - note create/insert heading object sole purpose eof close all open tags @@ -2931,7 +2930,7 @@ comp_obj_heading_ = comp_obj_heading_.obj_heading_ancestors(lv_ancestors_txt);  ** 4. _return document tuple_                                           :post:  *** _the document_                                                 :document: -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  ObjGenericComposite[][string] document_the = [    "head":             the_document_head_section, @@ -2951,7 +2950,7 @@ ObjGenericComposite[][string] document_the = [  *** document _section keys_ sequence -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  string[][string] document_section_keys_sequenced = [    "scroll": ["head", "toc", "body",], @@ -2999,7 +2998,7 @@ if ((opt_action.html)  *** dup -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  string[] segnames_4        = segnames["html"].dup;  string[] segnames_lv1_to_4 = segnames["epub"].dup; @@ -3011,7 +3010,7 @@ debug(segnames) {  *** clean out structure -#+name: abs_post +#+NAME: abs_post  #+BEGIN_SRC d  destroy(the_document_head_section);  destroy(the_table_of_contents_section); @@ -3038,7 +3037,7 @@ dom_structure_collapsed_tags_status_buffer   = [ 0, 0, 0, 0, 0, 0, 0, 0, 0,];  *** doc_has struct -#+name: abs_struct_doc_has +#+NAME: abs_struct_doc_has  #+BEGIN_SRC d  @safe auto doc_has() {    struct DocHas_ { @@ -3094,7 +3093,7 @@ dom_structure_collapsed_tags_status_buffer   = [ 0, 0, 0, 0, 0, 0, 0, 0, 0,];  *** _return the document tuple_ [#A]                           :return:tuple: -#+name: abs_return_tuple +#+NAME: abs_return_tuple  #+BEGIN_SRC d  auto t = tuple(    document_the, @@ -3110,7 +3109,7 @@ functions used in document abstraction  *** set & resets                                                    :reset:  **** object reset: remove (clean)                          :object:remove: -#+name: abs_functions_object_reset +#+NAME: abs_functions_object_reset  #+BEGIN_SRC d  @safe static string[string] object_reset()(string[string] an_object) {    an_object.remove("body_nugget"); @@ -3124,7 +3123,7 @@ functions used in document abstraction  **** set, initialize or re-initialize                                :set: -#+name: abs_functions_header_set_common +#+NAME: abs_functions_header_set_common  #+BEGIN_SRC d  @system void flow_common_reset_()(    return ref int[string]     line_occur, @@ -3141,7 +3140,7 @@ functions used in document abstraction  *** check object_number status in document                            :ocn: -#+name: abs_functions_ocn_status +#+NAME: abs_functions_ocn_status  #+BEGIN_SRC d  @safe static int[string] _check_ocn_status_()(    char[]           line, @@ -3207,7 +3206,7 @@ functions used in document abstraction  *** make substitutions  **** project -#+name: abs_functions_substitutions +#+NAME: abs_functions_substitutions  #+BEGIN_SRC d  @safe char[] _doc_header_and_make_substitutions_(CMM)(    char[]  line, @@ -3228,7 +3227,7 @@ functions used in document abstraction  **** fontface -#+name: abs_functions_substitutions +#+NAME: abs_functions_substitutions  #+BEGIN_SRC d  @safe char[] _doc_header_and_make_substitutions_fontface_(CMM)(    char[]  line, @@ -3261,7 +3260,7 @@ functions used in document abstraction  **** block start (open) block                                      :start:  ***** { block starts function -#+name: abs_functions_block +#+NAME: abs_functions_block  #+BEGIN_SRC d  @safe void flow_txt_block_start()(               char[]         line, @@ -3273,14 +3272,14 @@ functions used in document abstraction  ****** block (various) curly open                                :curly: -#+name: abs_functions_block +#+NAME: abs_functions_block  #+BEGIN_SRC d    static auto rgx = Rgx();  #+END_SRC  ******* code -#+name: abs_functions_block +#+NAME: abs_functions_block  #+BEGIN_SRC d    if (auto m = line.matchFirst(rgx.block_curly_code_open)) {      dochas["codeblock"]++; @@ -3300,7 +3299,7 @@ functions used in document abstraction  ******* poem -#+name: abs_functions_block +#+NAME: abs_functions_block  #+BEGIN_SRC d    } else if (auto m = line.matchFirst(rgx.block_curly_poem_open)) {      dochas["poem"]++; @@ -3322,7 +3321,7 @@ functions used in document abstraction  ******* group -#+name: abs_functions_block +#+NAME: abs_functions_block  #+BEGIN_SRC d    } else if (auto m = line.matchFirst(rgx.block_curly_group_open)) {      dochas["group"]++; @@ -3342,7 +3341,7 @@ functions used in document abstraction  ******* block -#+name: abs_functions_block +#+NAME: abs_functions_block  #+BEGIN_SRC d    } else if (auto m = line.matchFirst(rgx.block_curly_block_open)) {      dochas["block"]++; @@ -3362,7 +3361,7 @@ functions used in document abstraction  ******* quote -#+name: abs_functions_block +#+NAME: abs_functions_block  #+BEGIN_SRC d    } else if (auto m = line.matchFirst(rgx.block_curly_quote_open)) {      dochas["quote"]++; @@ -3382,7 +3381,7 @@ functions used in document abstraction  ******* table -#+name: abs_functions_block +#+NAME: abs_functions_block  #+BEGIN_SRC d    } else if (auto m = line.matchFirst(rgx.block_curly_table_open)) {           /+ curly table open +/      debug(table) {                             // table (curly) open @@ -3401,7 +3400,7 @@ functions used in document abstraction  ******* table special -#+name: abs_functions_block +#+NAME: abs_functions_block  #+BEGIN_SRC d    } else if (auto m = line.matchFirst(rgx.block_curly_table_special_markup)) { /+ table: special table block markup syntax! +/      dochas["table"]++; @@ -3415,7 +3414,7 @@ functions used in document abstraction  ****** block (various) tic open                                    :tic:  ******* code -#+name: abs_functions_block +#+NAME: abs_functions_block  #+BEGIN_SRC d    } else if (auto m = line.matchFirst(rgx.block_tic_code_open)) {      dochas["codeblock"]++; @@ -3435,7 +3434,7 @@ functions used in document abstraction  ******* poem -#+name: abs_functions_block +#+NAME: abs_functions_block  #+BEGIN_SRC d    } else if (auto m = line.matchFirst(rgx.block_tic_poem_open)) {      dochas["poem"]++; @@ -3457,7 +3456,7 @@ functions used in document abstraction  ******* group -#+name: abs_functions_block +#+NAME: abs_functions_block  #+BEGIN_SRC d    } else if (auto m = line.matchFirst(rgx.block_tic_group_open)) {      dochas["group"]++; @@ -3477,7 +3476,7 @@ functions used in document abstraction  ******* block -#+name: abs_functions_block +#+NAME: abs_functions_block  #+BEGIN_SRC d    } else if (auto m = line.matchFirst(rgx.block_tic_block_open)) {      dochas["block"]++; @@ -3497,7 +3496,7 @@ functions used in document abstraction  ******* quote -#+name: abs_functions_block +#+NAME: abs_functions_block  #+BEGIN_SRC d    } else if (auto m = line.matchFirst(rgx.block_tic_quote_open)) {      dochas["quote"]++; @@ -3517,7 +3516,7 @@ functions used in document abstraction  ******* table -#+name: abs_functions_block +#+NAME: abs_functions_block  #+BEGIN_SRC d    } else if (auto m = line.matchFirst(rgx.block_tic_table_open)) {             /+ tic table open +/      debug(table) {                             // table (tic) open @@ -3537,7 +3536,7 @@ functions used in document abstraction  ***** } -#+name: abs_functions_block +#+NAME: abs_functions_block  #+BEGIN_SRC d  }  #+END_SRC @@ -3545,7 +3544,7 @@ functions used in document abstraction  **** block continue (an open block)                             :continue:  ***** _code block_ (special status, deal with first)                 :code: -#+name: abs_functions_block_code +#+NAME: abs_functions_block_code  #+BEGIN_SRC d  @safe void flow_txt_block_code()(               char[]          line, @@ -3594,7 +3593,7 @@ functions used in document abstraction  ***** biblio block                                               :biblio:  ****** biblio tag map -#+name: abs_functions_block_biblio +#+NAME: abs_functions_block_biblio  #+BEGIN_SRC d  @safe final string biblio_tag_map()(string abr) {    auto btm = [ @@ -3619,7 +3618,7 @@ functions used in document abstraction  ******* +consider+ -#+name: none +#+NAME: none  #+BEGIN_SRC d  final string biblio_tag_map_()(string abr) {    string name; @@ -3646,7 +3645,7 @@ final string biblio_tag_map_()(string abr) {  ****** biblio block -#+name: abs_functions_block_biblio +#+NAME: abs_functions_block_biblio  #+BEGIN_SRC d  @system void flow_txt_block_biblio(    char[]                 line, @@ -3781,7 +3780,7 @@ final string biblio_tag_map_()(string abr) {  ***** quote block                                                 :quote: -#+name: abs_functions_block_quote +#+NAME: abs_functions_block_quote  #+BEGIN_SRC d  @safe string[string] flow_txt_block_quote()(               char[]          line, @@ -3829,7 +3828,7 @@ final string biblio_tag_map_()(string abr) {  - apply inline markup  - discard leading and newline whitespace -#+name: abs_functions_block_group +#+NAME: abs_functions_block_group  #+BEGIN_SRC d  @safe string[string] flow_txt_block_group()(               char[]          line, @@ -3878,7 +3877,7 @@ final string biblio_tag_map_()(string abr) {  - keep whitespace indentation  - keep newlines -#+name: abs_functions_block_block +#+NAME: abs_functions_block_block  #+BEGIN_SRC d  @safe string[string] flow_txt_block_block()(               char[]          line, @@ -3925,7 +3924,7 @@ final string biblio_tag_map_()(string abr) {  why extra object stuff only in poem/verse? -#+name: abs_functions_block_poem +#+NAME: abs_functions_block_poem  #+BEGIN_SRC d  @safe string[string]  flow_txt_block_poem(CMM)(               char[]          line, @@ -4189,7 +4188,7 @@ you need:    - show table walls, bool  - table content marked up in uniform way -#+name: abs_functions_block_table +#+NAME: abs_functions_block_table  #+BEGIN_SRC d  @system string[string] flow_txt_block_table(CMM)(               char[]          line, @@ -4259,7 +4258,7 @@ process and use an_object["table_head"] (then empty it)    - table_column_widths, int[] column widths (as given or calculate average)    - show table walls, bool -#+name: abs_functions_block_line_status_empty +#+NAME: abs_functions_block_line_status_empty  #+BEGIN_SRC d  @system void flow_table_closed_make_special_notation_table_(N,CMM)(               char[]                line, @@ -4308,7 +4307,7 @@ process and use an_object["table_head"] (then empty it)  ***** { line empty, _make block_ -#+name: abs_functions_block_line_status_empty +#+NAME: abs_functions_block_line_status_empty  #+BEGIN_SRC d  @system string[string] flow_block_flag_line_empty_(B,N,CMM,Ts)(               char[]                   line, @@ -4339,7 +4338,7 @@ process and use an_object["table_head"] (then empty it)  ****** make: quote block -#+name: abs_functions_block_line_status_empty +#+NAME: abs_functions_block_line_status_empty  #+BEGIN_SRC d    if (obj_type_status["quote"] == TriState.closing) {      obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]); @@ -4396,7 +4395,7 @@ process and use an_object["table_head"] (then empty it)  ****** make: group block -#+name: abs_functions_block_line_status_empty +#+NAME: abs_functions_block_line_status_empty  #+BEGIN_SRC d    } else if (obj_type_status["group"] == TriState.closing) {      obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]); @@ -4453,7 +4452,7 @@ process and use an_object["table_head"] (then empty it)  ****** make: block -#+name: abs_functions_block_line_status_empty +#+NAME: abs_functions_block_line_status_empty  #+BEGIN_SRC d    } else if (obj_type_status["block"] == TriState.closing) {      obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]); @@ -4509,7 +4508,7 @@ process and use an_object["table_head"] (then empty it)  ****** make: poem -#+name: abs_functions_block_line_status_empty +#+NAME: abs_functions_block_line_status_empty  #+BEGIN_SRC d    } else if (obj_type_status["poem"] == TriState.closing) {      an_object["bookindex_nugget"] @@ -4552,7 +4551,7 @@ process and use an_object["table_head"] (then empty it)  ****** make: code block -#+name: abs_functions_block_line_status_empty +#+NAME: abs_functions_block_line_status_empty  #+BEGIN_SRC d    } else if (obj_type_status["code"] == TriState.closing) {      obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]); @@ -4609,7 +4608,7 @@ process and use an_object["table_head"] (then empty it)  ****** make: table -#+name: abs_functions_block_line_status_empty +#+NAME: abs_functions_block_line_status_empty  #+BEGIN_SRC d    } else if (obj_type_status["table"] == TriState.closing) {      comp_obj_block = comp_obj_block.init; @@ -4658,7 +4657,7 @@ process and use an_object["table_head"] (then empty it)  ***** } -#+name: abs_functions_block_line_status_empty +#+NAME: abs_functions_block_line_status_empty  #+BEGIN_SRC d    return an_object;  } @@ -4666,7 +4665,7 @@ process and use an_object["table_head"] (then empty it)  *** book index                                                  :bookindex: -#+name: abs_functions_book_index +#+NAME: abs_functions_book_index  #+BEGIN_SRC d  @system string[string] flow_book_index_(B)(               char[]          line, @@ -4723,7 +4722,7 @@ process and use an_object["table_head"] (then empty it)  *** heading or paragraph                                :heading:paragraph:  **** heading found                                               :heading: -#+name: abs_functions_heading +#+NAME: abs_functions_heading  #+BEGIN_SRC d  @safe string[string] flow_heading_found_()(               char[]                line, @@ -4810,7 +4809,7 @@ process and use an_object["table_head"] (then empty it)  **** heading make set                                            :heading: -#+name: abs_functions_heading +#+NAME: abs_functions_heading  #+BEGIN_SRC d  @safe char[] flow_heading_make_set_()(               char[]                line, @@ -4872,7 +4871,7 @@ process and use an_object["table_head"] (then empty it)  **** heading match                                               :heading: -#+name: abs_functions_heading +#+NAME: abs_functions_heading  #+BEGIN_SRC d  @safe string[string] flow_heading_matched_(CMM)(               char[]          line, @@ -5031,7 +5030,7 @@ process and use an_object["table_head"] (then empty it)  **** para match                                                     :para: -#+name: abs_functions_para +#+NAME: abs_functions_para  #+BEGIN_SRC d  @safe string[string] flow_para_match_()(               char[]         line, @@ -5090,7 +5089,7 @@ process and use an_object["table_head"] (then empty it)  **** text font face -#+name: abs_functions_para +#+NAME: abs_functions_para  #+BEGIN_SRC d  @safe char[] font_faces_line()(    char[]  textline, @@ -5127,7 +5126,7 @@ process and use an_object["table_head"] (then empty it)  ***** table instructions -#+name: abs_functions_table +#+NAME: abs_functions_table  #+BEGIN_SRC d  @safe ObjGenericComposite flow_table_instructions(H)(    return ref ObjGenericComposite  table_object, @@ -5158,7 +5157,7 @@ process and use an_object["table_head"] (then empty it)  ***** table array munge -#+name: abs_functions_table +#+NAME: abs_functions_table  #+BEGIN_SRC d  @safe ObjGenericComposite flow_table_array_munge(T)(    return ref ObjGenericComposite  table_object, @@ -5288,7 +5287,7 @@ process and use an_object["table_head"] (then empty it)  ***** table substantive munge -#+name: abs_functions_table +#+NAME: abs_functions_table  #+BEGIN_SRC d  @system ObjGenericComposite flow_table_substantive_munge(T)(    return ref ObjGenericComposite  table_object, @@ -5310,7 +5309,7 @@ process and use an_object["table_head"] (then empty it)  ***** table substantive munge special -#+name: abs_functions_table +#+NAME: abs_functions_table  #+BEGIN_SRC d  @system ObjGenericComposite flow_table_substantive_munge_special(T)(    return ref ObjGenericComposite  table_object, @@ -5334,7 +5333,7 @@ process and use an_object["table_head"] (then empty it)  **** object                                                       :object:  ***** ocn                                                           :ocn: -#+name: meta_emitters_ocn +#+NAME: meta_emitters_ocn  #+BEGIN_SRC d  @safe pure struct OCNemitter {    int ocn_digit, ocn_object_number, ocn_on_, ocn_off_, ocn_bkidx, ocn_bkidx_; @@ -5390,7 +5389,7 @@ process and use an_object["table_head"] (then empty it)  ****** { struct, inline markup munge -#+name: meta_emitters_obj_inline_markup_munge +#+NAME: meta_emitters_obj_inline_markup_munge  #+BEGIN_SRC d  @safe static struct ObjInlineMarkupMunge {    string[string] obj_txt; @@ -5408,7 +5407,7 @@ process and use an_object["table_head"] (then empty it)    }  #+END_SRC -#+name: meta_emitters_obj_inline_markup_munge +#+NAME: meta_emitters_obj_inline_markup_munge  #+BEGIN_SRC d    @safe static auto images()(string obj_txt_in) {      static auto mng = InlineMarkup(); @@ -5444,7 +5443,7 @@ process and use an_object["table_head"] (then empty it)  ******* footnotes endnotes markup -#+name: meta_emitters_obj_inline_markup_munge +#+NAME: meta_emitters_obj_inline_markup_munge  #+BEGIN_SRC d    @safe TxtPlusHasFootnotes footnotes_endnotes_markup_and_number_or_stars()(string obj_txt_in, bool reset_note_numbers) {      /+ endnotes (regular) +/ @@ -5514,7 +5513,7 @@ process and use an_object["table_head"] (then empty it)  ******* object notes and links -#+name: meta_emitters_obj_inline_markup_munge +#+NAME: meta_emitters_obj_inline_markup_munge  #+BEGIN_SRC d    @safe private TxtPlusHasFootnotesUrlsImages object_notes_and_links_()(      string obj_txt_in, @@ -5585,7 +5584,7 @@ process and use an_object["table_head"] (then empty it)  - identified text by heading level marker followed by text until two new lines  - general markup -#+name: meta_emitters_obj_inline_markup_munge +#+NAME: meta_emitters_obj_inline_markup_munge  #+BEGIN_SRC d    @safe auto munge_heading()(      string obj_txt_in, @@ -5616,7 +5615,7 @@ process and use an_object["table_head"] (then empty it)    - footnotes/endnotes    - links -#+name: meta_emitters_obj_inline_markup_munge +#+NAME: meta_emitters_obj_inline_markup_munge  #+BEGIN_SRC d    @safe auto munge_para()(string obj_txt_in) {      obj_txt["munge"]=(obj_txt_in) @@ -5635,7 +5634,7 @@ process and use an_object["table_head"] (then empty it)  ******* quote -#+name: meta_emitters_obj_inline_markup_munge +#+NAME: meta_emitters_obj_inline_markup_munge  #+BEGIN_SRC d    @safe string munge_quote()(string obj_txt_in) {      obj_txt["munge"]=obj_txt_in; @@ -5654,7 +5653,7 @@ process and use an_object["table_head"] (then empty it)    - links  - newlines detected and kept? -#+name: meta_emitters_obj_inline_markup_munge +#+NAME: meta_emitters_obj_inline_markup_munge  #+BEGIN_SRC d    @safe auto munge_group(string obj_txt_in) {      obj_txt["munge"]=obj_txt_in; @@ -5674,7 +5673,7 @@ process and use an_object["table_head"] (then empty it)    - links  - newlines detected and kept? -#+name: meta_emitters_obj_inline_markup_munge +#+NAME: meta_emitters_obj_inline_markup_munge  #+BEGIN_SRC d    @safe auto munge_block()(string obj_txt_in) {      obj_txt["munge"]=obj_txt_in; @@ -5694,7 +5693,7 @@ process and use an_object["table_head"] (then empty it)    - footnotes/endnotes    - links? -#+name: meta_emitters_obj_inline_markup_munge +#+NAME: meta_emitters_obj_inline_markup_munge  #+BEGIN_SRC d    @safe auto munge_verse()(string obj_txt_in) {      obj_txt["munge"]=obj_txt_in; @@ -5713,7 +5712,7 @@ process and use an_object["table_head"] (then empty it)  - no general markup  - one special character represented by mkup.nbsp ░ -#+name: meta_emitters_obj_inline_markup_munge +#+NAME: meta_emitters_obj_inline_markup_munge  #+BEGIN_SRC d    @safe string munge_code()(string obj_txt_in) {      obj_txt_in = obj_txt_in.replaceAll(rgx.space, mkup.nbsp); @@ -5728,7 +5727,7 @@ process and use an_object["table_head"] (then empty it)  - table block identified by open an close tags  - table markup -#+name: meta_emitters_obj_inline_markup_munge +#+NAME: meta_emitters_obj_inline_markup_munge  #+BEGIN_SRC d    @safe string munge_table()(string obj_txt_in) {      obj_txt["munge"]=obj_txt_in; @@ -5740,7 +5739,7 @@ process and use an_object["table_head"] (then empty it)  ******* comment -#+name: meta_emitters_obj_inline_markup_munge +#+NAME: meta_emitters_obj_inline_markup_munge  #+BEGIN_SRC d    @safe string munge_comment()(string obj_txt_in) {      obj_txt["munge"]=obj_txt_in; @@ -5752,7 +5751,7 @@ process and use an_object["table_head"] (then empty it)  ****** } -#+name: meta_emitters_obj_inline_markup_munge +#+NAME: meta_emitters_obj_inline_markup_munge  #+BEGIN_SRC d  }  #+END_SRC @@ -5760,7 +5759,7 @@ process and use an_object["table_head"] (then empty it)  ***** toc, tags, object inline markup                     :markup:inline:  ****** { -#+name: meta_emitters_obj_inline_markup +#+NAME: meta_emitters_obj_inline_markup  #+BEGIN_SRC d  static struct ObjInlineMarkup {    static auto rgx = Rgx(); @@ -5771,7 +5770,7 @@ static struct ObjInlineMarkup {  ******* object inline markup and anchor tags              :markup:inline: -#+name: meta_emitters_obj_inline_markup_and_anchor_tags_and_misc +#+NAME: meta_emitters_obj_inline_markup_and_anchor_tags_and_misc  #+BEGIN_SRC d    @safe TxtAndAnchorTagPlusHasFootnotesUrlsImages obj_inline_markup_and_anchor_tags_and_misc(CMM)(      string[string]   obj_, @@ -5870,7 +5869,7 @@ static struct ObjInlineMarkup {  ******* toc (table of contents), build, gather headings   :markup:inline: -#+name: meta_emitters_obj_inline_markup_table_of_contents +#+NAME: meta_emitters_obj_inline_markup_table_of_contents  #+BEGIN_SRC d    @safe auto _clean_heading_toc_()(      char[] heading_toc_, @@ -5971,14 +5970,14 @@ static struct ObjInlineMarkup {  ******* private: -#+name: meta_emitters_obj_inline_markup_private +#+NAME: meta_emitters_obj_inline_markup_private  #+BEGIN_SRC d  private:  #+END_SRC  ******** make heading number & segment anchor tags if instructed :markup:inline:segment:anchor:tags: -#+name: meta_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags +#+NAME: meta_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags  #+BEGIN_SRC d    static int[] heading_num = [ 0, 0, 0, 0 ];    static string heading_number_auto_composite = ""; @@ -6131,7 +6130,7 @@ private:  ******** make segment anchor tags if not provided :markup:inline:segment:anchor:tags: -#+name: meta_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags +#+NAME: meta_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags  #+BEGIN_SRC d    static int heading_num_lev1 = 0;    @safe static string _make_segment_anchor_tags_if_none_provided()( @@ -6171,7 +6170,7 @@ private:  ****** } -#+name: meta_emitters_obj_inline_markup_close +#+NAME: meta_emitters_obj_inline_markup_close  #+BEGIN_SRC d  }  #+END_SRC @@ -6179,7 +6178,7 @@ private:  ***** object attrib                                          :attributes:  ****** { attributes structure open, public -#+name: meta_emitters_obj_attributes +#+NAME: meta_emitters_obj_attributes  #+BEGIN_SRC d  struct ObjAttributes {    string[string] _obj_attrib; @@ -6187,7 +6186,7 @@ struct ObjAttributes {  ******* emitter obj attributes, public -#+name: meta_emitters_obj_attributes_public +#+NAME: meta_emitters_obj_attributes_public  #+BEGIN_SRC d    @safe string obj_attributes()(      string              obj_is_, @@ -6254,7 +6253,7 @@ struct ObjAttributes {  ******* private -#+name: meta_emitters_obj_attributes_private +#+NAME: meta_emitters_obj_attributes_private  #+BEGIN_SRC d    private:    string _obj_attributes; @@ -6262,7 +6261,7 @@ struct ObjAttributes {  ******** para & blocks -#+name: meta_emitters_obj_attributes_private_an_attribute +#+NAME: meta_emitters_obj_attributes_private_an_attribute  #+BEGIN_SRC d    @safe string txt_para_and_blocks()(string obj_txt_in) {      if (obj_txt_in.matchFirst(rgx.para_bullet)) { @@ -6292,7 +6291,7 @@ struct ObjAttributes {  ******** heading -#+name: meta_emitters_obj_attributes_private_an_attribute +#+NAME: meta_emitters_obj_attributes_private_an_attribute  #+BEGIN_SRC d    @safe string txt_heading()(string obj_txt_in) {      _obj_attributes = " \"use\": \"content\"," @@ -6306,7 +6305,7 @@ struct ObjAttributes {  ******** para -#+name: meta_emitters_obj_attributes_private_an_attribute +#+NAME: meta_emitters_obj_attributes_private_an_attribute  #+BEGIN_SRC d    @safe string txt_para()(string obj_txt_in) {      _obj_attributes = " \"use\": \"content\"," @@ -6320,7 +6319,7 @@ struct ObjAttributes {  ******** quote -#+name: meta_emitters_obj_attributes_private_an_attribute +#+NAME: meta_emitters_obj_attributes_private_an_attribute  #+BEGIN_SRC d    @safe string txt_quote()(string obj_txt_in) {      _obj_attributes = " \"use\": \"content\"," @@ -6334,7 +6333,7 @@ struct ObjAttributes {  ******** group -#+name: meta_emitters_obj_attributes_private_an_attribute +#+NAME: meta_emitters_obj_attributes_private_an_attribute  #+BEGIN_SRC d    @safe string txt_group()(string obj_txt_in) {      _obj_attributes = " \"use\": \"content\"," @@ -6348,7 +6347,7 @@ struct ObjAttributes {  ******** block -#+name: meta_emitters_obj_attributes_private_an_attribute +#+NAME: meta_emitters_obj_attributes_private_an_attribute  #+BEGIN_SRC d    @safe string txt_block()(string obj_txt_in) {      _obj_attributes = " \"use\": \"content\"," @@ -6362,7 +6361,7 @@ struct ObjAttributes {  ******** verse -#+name: meta_emitters_obj_attributes_private_an_attribute +#+NAME: meta_emitters_obj_attributes_private_an_attribute  #+BEGIN_SRC d    @safe string txt_verse()(string obj_txt_in) {      _obj_attributes = " \"use\": \"content\"," @@ -6376,7 +6375,7 @@ struct ObjAttributes {  ******** code -#+name: meta_emitters_obj_attributes_private_an_attribute +#+NAME: meta_emitters_obj_attributes_private_an_attribute  #+BEGIN_SRC d    @safe string txt_code()(string obj_txt_in) {      _obj_attributes = " \"use\": \"content\"," @@ -6390,7 +6389,7 @@ struct ObjAttributes {  ******** table -#+name: meta_emitters_obj_attributes_private_an_attribute +#+NAME: meta_emitters_obj_attributes_private_an_attribute  #+BEGIN_SRC d    @safe string txt_table()(string obj_txt_in) {      _obj_attributes = " \"use\": \"content\"," @@ -6404,7 +6403,7 @@ struct ObjAttributes {  ******** comment -#+name: meta_emitters_obj_attributes_private_an_attribute +#+NAME: meta_emitters_obj_attributes_private_an_attribute  #+BEGIN_SRC d    @safe string txt_comment()(string obj_txt_in) {      _obj_attributes = " \"use\": \"comment\"," @@ -6418,7 +6417,7 @@ struct ObjAttributes {  ******** set additional attribute values, parse as json -#+name: meta_emitters_obj_attributes_private_json +#+NAME: meta_emitters_obj_attributes_private_json  #+BEGIN_SRC d    @safe string _set_additional_values_parse_as_json()(      string              _obj_attrib, @@ -6447,7 +6446,7 @@ struct ObjAttributes {  ****** } -#+name: meta_emitters_obj_attributes_private_close +#+NAME: meta_emitters_obj_attributes_private_close  #+BEGIN_SRC d  }  #+END_SRC @@ -6455,7 +6454,7 @@ struct ObjAttributes {  **** book index                                               :book:index:  ***** book index nugget hash                                :hash:nugget: -#+name: meta_emitters_book_index_nugget +#+NAME: meta_emitters_book_index_nugget  #+BEGIN_SRC d  struct BookIndexNuggetHash {    string main_term, sub_term, sub_term_bits; @@ -6535,7 +6534,7 @@ struct BookIndexNuggetHash {  ***** book index (sort &) report indented               :report:indented: -#+name: meta_emitters_book_index_report_indented +#+NAME: meta_emitters_book_index_report_indented  #+BEGIN_SRC d  struct BookIndexReportIndent {    int mkn, skn; @@ -6568,7 +6567,7 @@ struct BookIndexReportIndent {  ***** book index (sort &) report section                 :report:section:  ****** { book index struct open -#+name: meta_emitters_book_index_report_section +#+NAME: meta_emitters_book_index_report_section  #+BEGIN_SRC d  struct BookIndexReportSection {    int  mkn, skn; @@ -6578,7 +6577,7 @@ struct BookIndexReportSection {  ******* bookindex write section -#+name: meta_emitters_book_index_report_section +#+NAME: meta_emitters_book_index_report_section  #+BEGIN_SRC d    @safe void bookindex_write_section()(      string[][string][string] bookindex_unordered_hashes @@ -6613,7 +6612,7 @@ struct BookIndexReportSection {  ******* book index (sort &) build section                :report:section: -#+name: meta_emitters_book_index_report_section +#+NAME: meta_emitters_book_index_report_section  #+BEGIN_SRC d    @system auto bookindex_build_abstraction_section(N,B)(      string[][string][string] bookindex_unordered_hashes, @@ -6776,14 +6775,14 @@ struct BookIndexReportSection {  ****** } -#+name: meta_emitters_book_index_report_section +#+NAME: meta_emitters_book_index_report_section  #+BEGIN_SRC d  }  #+END_SRC  **** (end)notes section                                 :endnotes:section: -#+name: meta_emitters_endnotes +#+NAME: meta_emitters_endnotes  #+BEGIN_SRC d  struct NotesSection {    string[string] object_notes; @@ -6794,7 +6793,7 @@ struct NotesSection {  ***** { gather notes for endnote section struct open -#+name: meta_emitters_endnotes +#+NAME: meta_emitters_endnotes  #+BEGIN_SRC d    @safe private auto gather_notes_for_endnote_section(      ObjGenericComposite[] contents_am, @@ -6880,7 +6879,7 @@ struct NotesSection {  ****** gathered notes -#+name: meta_emitters_endnotes +#+NAME: meta_emitters_endnotes  #+BEGIN_SRC d    @safe private auto gathered_notes() {      string[][string] endnotes_; @@ -6897,7 +6896,7 @@ struct NotesSection {  ****** endnote objects -#+name: meta_emitters_endnotes +#+NAME: meta_emitters_endnotes  #+BEGIN_SRC d    @safe private auto endnote_objects(N,O)(      N              obj_cite_digits, @@ -7013,7 +7012,7 @@ struct NotesSection {  ***** } -#+name: meta_emitters_endnotes +#+NAME: meta_emitters_endnotes  #+BEGIN_SRC d  }  #+END_SRC @@ -7021,14 +7020,14 @@ struct NotesSection {  **** bibliography                                           :bibliography:  ***** { biblio struct -#+name: meta_emitters_bibliography +#+NAME: meta_emitters_bibliography  #+BEGIN_SRC d  struct Bibliography {  #+END_SRC  ****** biblio -#+name: meta_emitters_bibliography +#+NAME: meta_emitters_bibliography  #+BEGIN_SRC d  @system public JSONValue[] flow_bibliography_()(      return ref string[]    biblio_unsorted_incomplete, @@ -7059,7 +7058,7 @@ struct Bibliography {  ****** biblio unsorted complete -#+name: meta_emitters_bibliography +#+NAME: meta_emitters_bibliography  #+BEGIN_SRC d    @system final private JSONValue[] biblio_make_unsorted_array_of_json_objects()(      string[]      biblio_unordered, @@ -7093,7 +7092,7 @@ struct Bibliography {  ****** biblio sort -#+name: meta_emitters_bibliography +#+NAME: meta_emitters_bibliography  #+BEGIN_SRC d    @system final private JSONValue[] biblio_sort()(JSONValue[] biblio_unordered) {      JSONValue[] biblio_sorted_; @@ -7114,7 +7113,7 @@ struct Bibliography {  ****** biblio debug -#+name: meta_emitters_bibliography +#+NAME: meta_emitters_bibliography  #+BEGIN_SRC d    @system void biblio_debug()(JSONValue[] biblio_sorted) {      debug(biblio0) { @@ -7129,7 +7128,7 @@ struct Bibliography {  ***** } -#+name: meta_emitters_bibliography +#+NAME: meta_emitters_bibliography  #+BEGIN_SRC d  }  #+END_SRC @@ -7137,7 +7136,7 @@ struct Bibliography {  **** node structure metadata                     :structure:metadata:node:  ***** { metadata node struct -#+name: meta_emitters_metadata +#+NAME: meta_emitters_metadata  #+BEGIN_SRC d  struct NodeStructureMetadata {    int lv, lv0, lv1, lv2, lv3, lv4, lv5, lv6, lv7; @@ -7148,7 +7147,7 @@ struct NodeStructureMetadata {  ****** node metadata emitter -#+name: meta_emitters_metadata +#+NAME: meta_emitters_metadata  #+BEGIN_SRC d    @safe ObjGenericComposite node_location_emitter(La,Ta,N)(      string         lev_markup_number, @@ -7208,7 +7207,7 @@ struct NodeStructureMetadata {  ****** node metadata emitter heading, (including most segnames & their pointers) -#+name: meta_emitters_metadata +#+NAME: meta_emitters_metadata  #+BEGIN_SRC d    @safe ObjGenericComposite node_emitter_heading(Hd,TaL,TA,N,fNr,fNs,fL)(      string         _text, @@ -7410,7 +7409,7 @@ struct NodeStructureMetadata {  ***** } -#+name: meta_emitters_metadata +#+NAME: meta_emitters_metadata  #+BEGIN_SRC d  }  #+END_SRC @@ -7418,7 +7417,7 @@ struct NodeStructureMetadata {  *** function assertions                                        :assertions:  **** assertions on markup document structure               :doc_structure: -#+name: abs_functions_assertions +#+NAME: abs_functions_assertions  #+BEGIN_SRC d  @safe pure void assertions_doc_structure()(    string[string]  an_object, @@ -7599,7 +7598,7 @@ struct NodeStructureMetadata {  **** assertions on blocks                                         :blocks: -#+name: abs_functions_assertions +#+NAME: abs_functions_assertions  #+BEGIN_SRC d  @safe pure void assertions_flag_types_block_status_none_or_closed()(int[string] obj_type_status) {    assert( @@ -7627,7 +7626,7 @@ struct NodeStructureMetadata {  *** doc sect keys seq -#+name: template_doc_sect_keys_seq +#+NAME: template_doc_sect_keys_seq  #+BEGIN_SRC d  template docSectKeysSeq() {    @safe auto docSectKeysSeq(string[][string] document_section_keys_sequenced) { @@ -7686,7 +7685,7 @@ struct HeadingAttrib {  *** _composite object_ [#A] -#+name: meta_structs_init +#+NAME: meta_structs_init  #+BEGIN_SRC d  struct DocObj_MetaInfo_ {    string                 is_of_part                         = ""; // frontmatter, body, backmatter @@ -7765,7 +7764,7 @@ struct DocObj_MetaInfo_ {  **** object text attributes -#+name: meta_structs_init +#+NAME: meta_structs_init  #+BEGIN_SRC d  struct DocObj_TxtAttrib_ {    int                    indent_base                         = 0; @@ -7777,7 +7776,7 @@ struct DocObj_TxtAttrib_ {  **** object has within it -#+name: meta_structs_init +#+NAME: meta_structs_init  #+BEGIN_SRC d  struct DocObj_Has_ {    bool                   inline_links                        = false; @@ -7790,7 +7789,7 @@ struct DocObj_Has_ {  **** table attributes -#+name: meta_structs_init +#+NAME: meta_structs_init  #+BEGIN_SRC d  struct DocObj_Table_ {    int                    number_of_columns                   = 0; @@ -7803,7 +7802,7 @@ struct DocObj_Table_ {  **** code attributes -#+name: meta_structs_init +#+NAME: meta_structs_init  #+BEGIN_SRC d  struct DocObj_CodeBlock_ {    string                 syntax                              = ""; @@ -7813,7 +7812,7 @@ struct DocObj_CodeBlock_ {  **** stow (things to be protected from regular text transformations, so far links) -#+name: meta_structs_init +#+NAME: meta_structs_init  #+BEGIN_SRC d  struct DocObj_Stow_ {    string[]               link                               = []; @@ -7822,7 +7821,7 @@ struct DocObj_Stow_ {  **** pointers -#+name: meta_structs_init +#+NAME: meta_structs_init  #+BEGIN_SRC d  struct DocObj_Pointer_ {    int                    doc_object                          = 0; @@ -7833,7 +7832,7 @@ struct DocObj_Pointer_ {  **** tags -#+name: meta_structs_init +#+NAME: meta_structs_init  #+BEGIN_SRC d  struct DocObj_Tags_ {    string[]               heading_ancestors_text              = [ "", "", "", "", "", "", "", "", ]; @@ -7852,7 +7851,7 @@ struct DocObj_Tags_ {  **** composite object the parts -#+name: meta_structs_init +#+NAME: meta_structs_init  #+BEGIN_SRC d  struct ObjGenericComposite {    string                 text                                = ""; @@ -7869,7 +7868,7 @@ struct ObjGenericComposite {  *** The Objects: generic composite object array -#+name: meta_structs_init +#+NAME: meta_structs_init  #+BEGIN_SRC d  struct TheObjects {    ObjGenericComposite[] oca; diff --git a/org/out_harvest_metadata.org b/org/out_harvest_metadata.org index cb26cf0..ba62bd1 100644 --- a/org/out_harvest_metadata.org +++ b/org/out_harvest_metadata.org @@ -4,16 +4,15 @@  #+FILETAGS:    :spine:hub:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :results silent :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  * document harvest _summary_         :module:spine:metadoc_show_summary: @@ -37,7 +36,7 @@ template spineMetaDocHarvest() {  ** init  *** imports -#+name: metadoc_harvest_imports +#+NAME: metadoc_harvest_imports  #+BEGIN_SRC d  import    doc_reform.meta.defaults, @@ -56,14 +55,14 @@ import  *** initialize                                                     :report: -#+name: metadoc_harvest_initialize +#+NAME: metadoc_harvest_initialize  #+BEGIN_SRC d  static auto mkup = InlineMarkup();  #+END_SRC  ** harvest summary -#+name: meta_metadoc_harvest_summary +#+NAME: meta_metadoc_harvest_summary  #+BEGIN_SRC d  auto min_repeat_number = 66;  auto char_repeat_number = (doc_matters.conf_make_meta.meta.title_full.length @@ -84,7 +83,7 @@ writefln(  ** return harvest -#+name: meta_metadoc_harvest +#+NAME: meta_metadoc_harvest  #+BEGIN_SRC d  import doc_reform.io_out.paths_output;  auto pth_html_abs                  = spinePathsHTML!()(doc_matters.output_path, doc_matters.src.language); diff --git a/org/out_latex.org b/org/out_latex.org index cb73d5c..9424078 100644 --- a/org/out_latex.org +++ b/org/out_latex.org @@ -4,14 +4,15 @@  #+FILETAGS:    :spine:output:latex:pdf:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :results silent :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  - [[./spine.org][spine]]  [[./][org/]]  - [[./output_hub.org][output_hub]] @@ -48,7 +49,7 @@ template outputLaTeX() {  ** write latex output                                            :latex:out: -#+name: output_latex +#+NAME: output_latex  #+BEGIN_SRC d  void writeOutputLaTeX(T,M)(    const T    latex_content, @@ -89,7 +90,7 @@ void writeOutputLaTeX(T,M)(  ** latex output hub [#A]                                     :latex:pdf:out: -#+name: output_latex +#+NAME: output_latex  #+BEGIN_SRC d  void outputLaTeX(D,M)(    const    D   doc_abstraction, @@ -111,7 +112,7 @@ void outputLaTeX(D,M)(  * stuff  ** output imports -#+name: output_latex_imports +#+NAME: output_latex_imports  #+BEGIN_SRC d  import doc_reform.io_out;  import @@ -125,7 +126,7 @@ import  ** shared  *** paper dimensions (struct) -#+name: output_latex_shared +#+NAME: output_latex_shared  #+BEGIN_SRC d      auto paper() {        struct PaperType { @@ -242,7 +243,7 @@ import  *** latex \escape special characters  **** general -#+name: output_latex_shared +#+NAME: output_latex_shared  #+BEGIN_SRC d  @safe string sp_char_esc(O)(    string      _txt, @@ -271,7 +272,7 @@ import  }  #+END_SRC -#+name: output_latex_shared +#+NAME: output_latex_shared  #+BEGIN_SRC d  @safe string sp_char_esc_txt()(    string      _txt, @@ -313,7 +314,7 @@ import  - bold, italics, underscore, strikethrough -#+name: output_latex_shared +#+NAME: output_latex_shared  #+BEGIN_SRC d  @safe string fontface()(    string      _txt, @@ -336,7 +337,7 @@ _txt = _txt  **** spaces  ***** leading hardspace -#+name: output_latex_shared +#+NAME: output_latex_shared  #+BEGIN_SRC d  @safe string leading_hardspaces()(    string      _txt, @@ -353,7 +354,7 @@ _txt = _txt  ***** nbsp character -#+name: output_latex_shared +#+NAME: output_latex_shared  #+BEGIN_SRC d  @safe string nbsp_char()(string _txt) {    if (_txt.match(rgx.nbsp_char)) { @@ -365,7 +366,7 @@ _txt = _txt  ***** remove nbsp character -#+name: output_latex_shared +#+NAME: output_latex_shared  #+BEGIN_SRC d  @safe string nbsp_char_to_space()(string _txt) {    if (_txt.match(rgx.nbsp_char)) { @@ -378,7 +379,7 @@ _txt = _txt  **** links and images  ***** links / urls -#+name: output_latex_shared +#+NAME: output_latex_shared  #+BEGIN_SRC d  @safe string links_and_images(O,M)(    string      _txt, @@ -430,7 +431,7 @@ _txt = _txt  *** footnotes  **** footnotes -#+name: output_latex_shared +#+NAME: output_latex_shared  #+BEGIN_SRC d  @safe string footnotes()(    string      _txt, @@ -451,7 +452,7 @@ _txt = _txt  **** footnote remove -#+name: output_latex_shared +#+NAME: output_latex_shared  #+BEGIN_SRC d  @safe string remove_footnotes()(    string      _txt, @@ -466,7 +467,7 @@ _txt = _txt  *** para  **** para -#+name: output_latex_shared +#+NAME: output_latex_shared  #+BEGIN_SRC d  @safe string para(O)(    string      _txt, @@ -487,7 +488,7 @@ _txt = _txt  **** bookindex para -#+name: output_latex_shared +#+NAME: output_latex_shared  #+BEGIN_SRC d  @safe string bookindex(O)(    string      _txt, @@ -508,7 +509,7 @@ _txt = _txt  *** bullets & indentation -#+name: output_latex_head +#+NAME: output_latex_head  #+BEGIN_SRC d  @safe string bullets_and_indentation(O)(    string      _txt, @@ -553,7 +554,7 @@ _txt = _txt  *** heading -#+name: output_latex_shared_0 +#+NAME: output_latex_shared_0  #+BEGIN_SRC d    @safe string heading(O,M)(      string      _txt, @@ -727,7 +728,7 @@ _txt = _txt  - (hardspace not honored) clear hardspace marker -#+name: output_latex_shared_0 +#+NAME: output_latex_shared_0  #+BEGIN_SRC d  string group(O,M)(    string      _txt, @@ -755,7 +756,7 @@ string group(O,M)(  - (hardspace honored) \hardspace -#+name: output_latex_shared_0 +#+NAME: output_latex_shared_0  #+BEGIN_SRC d  string block(O,M)(    string      _txt, @@ -787,7 +788,7 @@ string block(O,M)(  - (hardspace honored) \hardspace -#+name: output_latex_shared_0 +#+NAME: output_latex_shared_0  #+BEGIN_SRC d  string verse(O,M)(    string      _txt, @@ -819,7 +820,7 @@ string verse(O,M)(  - (hardspace honored) \begin{lstlisting} clear hardspace marker -#+name: output_latex_shared_0 +#+NAME: output_latex_shared_0  #+BEGIN_SRC d  string codeblock(O,M)(    string      _txt, @@ -851,7 +852,7 @@ string codeblock(O,M)(  ***** tablarize -#+name: output_latex_shared_0 +#+NAME: output_latex_shared_0  #+BEGIN_SRC d  auto tablarize(O)(    string            _txt, @@ -890,7 +891,7 @@ auto tablarize(O)(  ***** table -#+name: output_latex_shared_0 +#+NAME: output_latex_shared_0  #+BEGIN_SRC d  string table(O,M)(    string      _txt, @@ -945,7 +946,7 @@ string table(O,M)(  *** latex head                                                       :head:  **** latex head function -#+name: output_latex_head +#+NAME: output_latex_head  #+BEGIN_SRC d  string latex_head(M)(                          M    doc_matters, @@ -956,7 +957,7 @@ string latex_head(M)(  ***** paper type dimensions  ****** struct -#+name: output_latex_head +#+NAME: output_latex_head  #+BEGIN_SRC d    struct paperType {      string a4_portrait; @@ -969,7 +970,7 @@ string latex_head(M)(  ****** footer -#+name: output_latex_head +#+NAME: output_latex_head  #+BEGIN_SRC d    string _footer(M)(M doc_matters) {      string _ft = "\\lfoot[\\textrm{\\thepage}]"; @@ -1003,18 +1004,18 @@ string latex_head(M)(  ****** a4, portrait -#+name: output_latex_head_1_format_string +#+NAME: output_latex_head_1_format_string  #+BEGIN_SRC d    paper.a4_portrait    = format(q"┃  #+END_SRC -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC latex  \documentclass[12pt,a4paper,titlepage]{scrartcl}  \setlength{\textheight}{228mm} \setlength{\textwidth}{160mm}  #+END_SRC -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d  ┃",    ); @@ -1022,18 +1023,18 @@ string latex_head(M)(  ****** a4, landscape -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d    paper.a4_landscape    = format(q"┃  #+END_SRC -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC latex  \documentclass[11pt,a4paper,landscape,titlepage,twocolumn]{scrartcl}  \setlength{\textheight}{160mm} \setlength{\textwidth}{238mm}  #+END_SRC -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d  ┃",    ); @@ -1041,18 +1042,18 @@ string latex_head(M)(  ****** us letter, portrait -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d    paper.us_letter_portrait    = format(q"┃  #+END_SRC -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC latex  \documentclass[12pt,letterpaper,titlepage]{scrartcl}  \setlength{\textheight}{212mm} \setlength{\textwidth}{166mm}  #+END_SRC -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d  ┃",    ); @@ -1060,18 +1061,18 @@ string latex_head(M)(  ****** us letter, landscape -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d    paper.us_letter_landscape    = format(q"┃  #+END_SRC -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC latex  \documentclass[11pt,letterpaper,landscape,titlepage,twocolumn]{scrartcl}  \setlength{\textheight}{166mm} \setlength{\textwidth}{226mm}  #+END_SRC -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d  ┃",    ); @@ -1080,7 +1081,7 @@ string latex_head(M)(  ***** paper margins  ****** struct -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d    struct paperMargins {      string portrait; @@ -1091,19 +1092,19 @@ string latex_head(M)(  ****** portrait -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d    margins.portrait    = format(q"┃  #+END_SRC -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC latex  \setlength{\oddsidemargin}{0mm} \setlength{\evensidemargin}{0mm}  \setlength{\topmargin}{-12pt} \setlength{\headheight}{12pt}  \setlength{\headsep}{35pt}  #+END_SRC -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d  ┃",    ); @@ -1111,19 +1112,19 @@ string latex_head(M)(  ****** landscape -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d    margins.landscape    = format(q"┃  #+END_SRC -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC latex  \setlength{\oddsidemargin}{6mm} \setlength{\evensidemargin}{6mm}  \setlength{\topmargin}{-12mm} \setlength{\headheight}{12pt}  \setlength{\headsep}{20pt}  #+END_SRC -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d  ┃",    ); @@ -1132,7 +1133,7 @@ string latex_head(M)(  ***** multicol  ****** struct -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d    struct columnsMulti {      string portrait; @@ -1143,17 +1144,17 @@ string latex_head(M)(  ****** portrait -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d    multicol.portrait    = format(q"┃  #+END_SRC -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC latex  \usepackage{multicol}  #+END_SRC -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d  ┃",    ); @@ -1161,7 +1162,7 @@ string latex_head(M)(  ****** landscape -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d    multicol.landscape    = "";  #+END_SRC @@ -1169,7 +1170,7 @@ string latex_head(M)(  ***** color links  ****** struct -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d    struct colorLinks {      string mono; @@ -1180,12 +1181,12 @@ string latex_head(M)(  ****** mono -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d    links.mono    = format(q"┃  #+END_SRC -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC latex  \usepackage[xetex,    colorlinks=true, @@ -1194,7 +1195,7 @@ string latex_head(M)(    linkcolor=myblack,  #+END_SRC -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d  ┃",    ); @@ -1202,12 +1203,12 @@ string latex_head(M)(  ****** color -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC d    links.color    = format(q"┃  #+END_SRC -#+name: output_latex_head_1_tex +#+NAME: output_latex_head_1_tex  #+BEGIN_SRC latex  \usepackage[xetex,    colorlinks=true, @@ -1216,7 +1217,7 @@ string latex_head(M)(    linkcolor=myred,    %% \href{...} and \pageref{...}  #+END_SRC -#+name: output_latex_head_1_format_string_variables +#+NAME: output_latex_head_1_format_string_variables  #+BEGIN_SRC d  ┃",    ); @@ -1224,14 +1225,14 @@ string latex_head(M)(  **** latex head starts -#+name: output_latex_head_0_format_string +#+NAME: output_latex_head_0_format_string  #+BEGIN_SRC d    string _latex_head = format(q"┃%%%% spine LaTeX output  #+END_SRC  ***** description comment -#+name: output_latex_head_0_tex +#+NAME: output_latex_head_0_tex  #+BEGIN_SRC latex  %%%% Generated by: %s  %%%% D version: %s @@ -1247,7 +1248,7 @@ string latex_head(M)(  - paper.us_letter_portrait  - paper.us_letter_landscape -#+name: output_latex_head_0_tex +#+NAME: output_latex_head_0_tex  #+BEGIN_SRC latex  %s  #+END_SRC @@ -1257,14 +1258,14 @@ string latex_head(M)(  - margins.portrait  - margins.landscape -#+name: output_latex_head_0_tex +#+NAME: output_latex_head_0_tex  #+BEGIN_SRC latex  %s  #+END_SRC  ***** margin shared -#+name: output_latex_head_0_tex +#+NAME: output_latex_head_0_tex  #+BEGIN_SRC latex  \setlength{\marginparsep}{4mm}  \setlength{\marginparwidth}{8mm} @@ -1272,14 +1273,14 @@ string latex_head(M)(  ***** multicol (portrait | landscape) -#+name: output_latex_head_0_tex +#+NAME: output_latex_head_0_tex  #+BEGIN_SRC latex  %s  #+END_SRC  ***** language & font -#+name: output_latex_head_0_tex +#+NAME: output_latex_head_0_tex  #+BEGIN_SRC latex  \usepackage{polyglossia, ucs, fontspec, xltxtra, xunicode}  \setmainlanguage{%s} @@ -1293,7 +1294,7 @@ string latex_head(M)(  ***** latex head -#+name: output_latex_head_0_tex +#+NAME: output_latex_head_0_tex  #+BEGIN_SRC latex  \usepackage{alltt}  \usepackage{thumbpdf} @@ -1301,14 +1302,14 @@ string latex_head(M)(  ***** color links: no = mono | yes = color -#+name: output_latex_head_0_tex +#+NAME: output_latex_head_0_tex  #+BEGIN_SRC latex  %s  #+END_SRC  ***** metadata -#+name: output_latex_head_0_tex +#+NAME: output_latex_head_0_tex  #+BEGIN_SRC latex    pdftitle={%s},    pdfauthor={%s}, @@ -1342,7 +1343,7 @@ string latex_head(M)(  ***** define colors -#+name: output_latex_head_0_tex +#+NAME: output_latex_head_0_tex  #+BEGIN_SRC latex  \usepackage[usenames]{color}  \definecolor{myblack}{rgb}{0,0,0} @@ -1354,7 +1355,7 @@ string latex_head(M)(  ***** latex head -#+name: output_latex_head_0_tex +#+NAME: output_latex_head_0_tex  #+BEGIN_SRC latex  \usepackage{url}  \urlstyle{sf} @@ -1364,7 +1365,7 @@ string latex_head(M)(  ***** latex head -#+name: output_latex_head_0_tex +#+NAME: output_latex_head_0_tex  #+BEGIN_SRC latex  \usepackage{textcomp}  \usepackage[parfill]{parskip} @@ -1386,7 +1387,7 @@ string latex_head(M)(  ***** indent, bullet, list -#+name: output_latex_head_0_tex +#+NAME: output_latex_head_0_tex  #+BEGIN_SRC latex  \usepackage[multiple,ragged]{footmisc}  \setlength\footnotemargin{12pt} @@ -1430,7 +1431,7 @@ string latex_head(M)(  ***** part, section, subsection, paragraph, subparagraph -#+name: output_latex_head_0_tex +#+NAME: output_latex_head_0_tex  #+BEGIN_SRC latex  \usepackage{fancyhdr}  \lhead{} @@ -1464,7 +1465,7 @@ string latex_head(M)(  ***** latex head misc. including defined commands -#+name: output_latex_head_0_tex +#+NAME: output_latex_head_0_tex  #+BEGIN_SRC latex  \selectlanguage{%s}  \lhead[ ]{ } @@ -1525,7 +1526,7 @@ string latex_head(M)(  **** latex head format inclusions -#+name: output_latex_head_0_format_string_variables +#+NAME: output_latex_head_0_format_string_variables  #+BEGIN_SRC d  ┃",    doc_matters.opt.action.debug_do ? "" : doc_matters.generator_program.name_and_version.strip, @@ -1549,7 +1550,7 @@ string latex_head(M)(  **** latex head return -#+name: output_latex_head_close +#+NAME: output_latex_head_close  #+BEGIN_SRC d    return _latex_head.strip;  } @@ -1558,7 +1559,7 @@ string latex_head(M)(  *** ↻ latex body                                             :content:body:  **** latex body function -#+name: output_latex_body +#+NAME: output_latex_body  #+BEGIN_SRC d  string latex_body(D,M)(    const    D   doc_abstraction, @@ -1571,7 +1572,7 @@ string latex_body(D,M)(  **** ↻ loop open -#+name: output_latex_body +#+NAME: output_latex_body  #+BEGIN_SRC d    foreach (part; doc_matters.has.keys_seq.latex) {      foreach (obj; doc_abstraction[part]) { @@ -1581,7 +1582,7 @@ string latex_body(D,M)(  **** ↻ within loop  ***** frontmatter -#+name: output_latex_body +#+NAME: output_latex_body  #+BEGIN_SRC d        case "frontmatter":              assert(part == "head" || "toc");          _txt = obj.text @@ -1608,7 +1609,7 @@ string latex_body(D,M)(  ***** body -#+name: output_latex_body +#+NAME: output_latex_body  #+BEGIN_SRC d        case "body":                     assert(part == "body" || "head"); // surprise          _txt = obj.text @@ -1670,7 +1671,7 @@ string latex_body(D,M)(  ***** backmatter -#+name: output_latex_body +#+NAME: output_latex_body  #+BEGIN_SRC d        case "backmatter":          assert(part == "endnotes" || "glossary" || "bibliography" || "bookindex" || "blurb" || "tail"); @@ -1730,7 +1731,7 @@ string latex_body(D,M)(  ***** after -#+name: output_latex_body +#+NAME: output_latex_body  #+BEGIN_SRC d        case "comment":          break; @@ -1755,7 +1756,7 @@ string latex_body(D,M)(  **** latex body return -#+name: output_latex_body +#+NAME: output_latex_body  #+BEGIN_SRC d    return _latex_body;  } @@ -1764,7 +1765,7 @@ string latex_body(D,M)(  *** latex tail                                                       :tail:  **** latex tail function -#+name: output_latex_tail +#+NAME: output_latex_tail  #+BEGIN_SRC d  string latex_tail(M)(                          M    doc_matters, @@ -1773,7 +1774,7 @@ string latex_tail(M)(  **** latex tail starts -#+name: output_latex_tail +#+NAME: output_latex_tail  #+BEGIN_SRC d    string _latex_tail = format(q"┃  #+END_SRC @@ -1783,7 +1784,7 @@ string latex_tail(M)(  ***** latex document end -#+name: output_latex_tail_tex +#+NAME: output_latex_tail_tex  #+BEGIN_SRC latex  \end{document} @@ -1791,7 +1792,7 @@ string latex_tail(M)(  **** latex tail format inclusions -#+name: output_latex_tail_close +#+NAME: output_latex_tail_close  #+BEGIN_SRC d  ┃",    // doc_matters.conf_make_meta.meta.title_full, @@ -1801,7 +1802,7 @@ string latex_tail(M)(  **** latex tail return -#+name: output_latex_tail_close +#+NAME: output_latex_tail_close  #+BEGIN_SRC d    return _latex_tail;  } diff --git a/org/out_metadata.org b/org/out_metadata.org index 3208994..f7a428f 100644 --- a/org/out_metadata.org +++ b/org/out_metadata.org @@ -4,16 +4,15 @@  #+FILETAGS:    :spine:output:metadata:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  * document harvest _summary_         :module:spine:metadoc_show_summary: @@ -37,7 +36,7 @@ template outputMetadata() {  ** imports -#+name: output_imports +#+NAME: output_imports  #+BEGIN_SRC d  import std.file;  import std.format; @@ -48,7 +47,7 @@ string[] metadata_;  ** metadata -#+name: output_metadata +#+NAME: output_metadata  #+BEGIN_SRC d  static auto mkup = InlineMarkup();  if (doc_matters.opt.action.debug_do) { @@ -233,7 +232,7 @@ metadata_write_output(doc_matters, metadata_);  ** metadata write output -#+name: output_metadata_write +#+NAME: output_metadata_write  #+BEGIN_SRC d  @safe void metadata_write_output(M)(M doc_matters, string[] metadata_) {    auto pth_html = spinePathsHTML!()(doc_matters.output_path, doc_matters.src.language); diff --git a/org/out_odt.org b/org/out_odt.org index 224f303..c2ec6e0 100644 --- a/org/out_odt.org +++ b/org/out_odt.org @@ -4,14 +4,15 @@  #+FILETAGS:    :spine:output:xml:odt:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :results silent :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  - [[./spine.org][spine]]  [[./][org/]]  - [[./output_hub.org][output_hub]] @@ -87,7 +88,7 @@ template outputODT() {  **** object attrib  ***** tags -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string _tags(O)(const O obj) {    string _tags = ""; @@ -111,7 +112,7 @@ template outputODT() {  ****** anchor tags -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string _xhtml_anchor_tags(O)(O obj) {    const(string[]) anchor_tags = obj.tags.anchor_tags; @@ -129,7 +130,7 @@ template outputODT() {  ***** ocn object number display -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string obj_num(O)(const O obj) { // TODO    string _on; @@ -145,8 +146,8 @@ template outputODT() {  ***** footnotes -#+name: odt_format_objects -#+begin_src d +#+NAME: odt_format_objects +#+BEGIN_SRC d  @safe string _footnotes()(string _txt) {    static auto rgx = Rgx();    _txt = _txt.replaceAll( @@ -166,11 +167,11 @@ template outputODT() {    );    return _txt;  } -#+end_src +#+END_SRC  ***** bullet -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string _bullet(O)(const O obj) {    string _b = ""; @@ -183,7 +184,7 @@ template outputODT() {  ***** para (with bullet, indent levels, footnotes extracted) -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string _indent(O)(string _txt, const O obj) { // TODO    // if (obj.attrib.indent_base > 0 || @@ -297,7 +298,7 @@ template outputODT() {  ***** block type -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string _block_type_delimiters(O)(string[] _block_lines, const O obj) { // TODO    string _block = ""; @@ -338,7 +339,7 @@ template outputODT() {  ***** special characters -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string _special_characters(O)(string _txt, const O obj) {    _txt = _txt @@ -353,7 +354,7 @@ template outputODT() {  ***** preserve white space -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string _preserve_white_spaces(O)(string _txt, const O obj) {    if (obj.metainfo.is_a == "code" || obj.metainfo.is_a == "verse" || obj.metainfo.is_a == "block") { @@ -366,7 +367,7 @@ template outputODT() {  ***** font_face -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  string _font_face(string _txt){    _txt = _txt @@ -386,7 +387,7 @@ string _font_face(string _txt){  ***** object number -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe auto _obj_num(O)(O obj) { // NOT USED YET    struct objNum { @@ -415,7 +416,7 @@ string _font_face(string _txt){  ***** break page -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string _break_page()() {    return format(q"┃ @@ -436,7 +437,7 @@ string _font_face(string _txt){  ***** empty lines break -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string _empty_line_break(O)(string _txt, const O obj) {    if (obj.metainfo.is_a == "code" || obj.metainfo.is_a == "verse" || obj.metainfo.is_a == "block") { @@ -449,7 +450,7 @@ string _font_face(string _txt){  ***** links: url, mail -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string _links(O)(string _txt, const O obj) {    if (obj.metainfo.is_a != "code") { @@ -495,7 +496,7 @@ string _font_face(string _txt){  ***** image -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string _images(O)(string _txt, const O obj) {    if (_txt.match(rgx.inline_image)) { @@ -512,7 +513,7 @@ string _font_face(string _txt){  **** markup hub (including font face) -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string markup(O)(const O obj) {    /+ markup TODO +/ @@ -534,7 +535,7 @@ string _font_face(string _txt){  **** para type  ***** heading -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string heading(O,M)(    const        O  obj, @@ -584,7 +585,7 @@ string _font_face(string _txt){  ***** para -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string para(O,M)(    const        O  obj, @@ -610,7 +611,7 @@ string _font_face(string _txt){  **** block type  ***** quote -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string quote(O,M)(    const        O  obj, @@ -631,7 +632,7 @@ string _font_face(string _txt){    - preserves double newlines (paragraph delimiter)  - the "group" delimiter is different from the "block" delimiter in that groups do not preserve whitespace, the "block" mark does -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string group(O,M)(    const        O  obj, @@ -666,7 +667,7 @@ string _font_face(string _txt){      - "^[ ]"        - count number only at beginning of line and replace each -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string block(O,M)(    const        O  obj, @@ -689,7 +690,7 @@ string _font_face(string _txt){    - preserves spaces    - preserves newlines -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string verse(O,M)(    const        O  obj, @@ -708,7 +709,7 @@ string _font_face(string _txt){  ***** code -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe string code(O,M)(    const        O  obj, @@ -762,7 +763,7 @@ string _font_face(string _txt){  ***** table  ****** tablarize -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  @safe Tuple!(string, string) tablarize(O)(    const        O    obj, @@ -802,7 +803,7 @@ string _font_face(string _txt){  ****** table -#+name: odt_format_objects +#+NAME: odt_format_objects  #+BEGIN_SRC d  int _table_number = 0;  @safe string table(O,M)( @@ -842,7 +843,7 @@ int _table_number = 0;  ** write odt output                                            :odf:odt:out: -#+name: output_odt +#+NAME: output_odt  #+BEGIN_SRC d  void writeOutputODT(W,I)(    const W    odt_content, @@ -931,7 +932,7 @@ void writeOutputODT(W,I)(  ** odt output hub [#A]                                         :odf:odt:out: -#+name: output_odt +#+NAME: output_odt  #+BEGIN_SRC d  void outputODT(D,I)(    const    D   doc_abstraction, @@ -967,7 +968,7 @@ void outputODT(D,I)(  ** shared  *** output imports -#+name: output_imports +#+NAME: output_imports  #+BEGIN_SRC d  import doc_reform.io_out;  import @@ -985,7 +986,7 @@ import  *** make directory tree -#+name: output_odt_fixed_dirtree +#+NAME: output_odt_fixed_dirtree  #+BEGIN_SRC d  void dirtree(I)(    I   doc_matters, @@ -1009,7 +1010,7 @@ void dirtree(I)(  ** fixed items  *** mimetype                                                     :mimetype: -#+name: output_odt_fixed_mimetype +#+NAME: output_odt_fixed_mimetype  #+BEGIN_SRC d  @safe string mimetype() {    string mimetype_ = format(q"┃application/vnd.oasis.opendocument.text┃"); @@ -1019,13 +1020,13 @@ void dirtree(I)(  *** manifest.rdf                                             :manifest_rdf: -#+name: output_odt_fixed_manifest_rdf +#+NAME: output_odt_fixed_manifest_rdf  #+BEGIN_SRC d  @safe string manifest_rdf() {    string _manifest_rdf = format(q"┃<?xml version="1.0" encoding="utf-8"?>  #+END_SRC -#+name: output_odt_fixed_manifest_rdf +#+NAME: output_odt_fixed_manifest_rdf  #+BEGIN_SRC xml  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">    <rdf:Description rdf:about="styles.xml"> @@ -1046,7 +1047,7 @@ void dirtree(I)(  </rdf:RDF>  #+END_SRC -#+name: output_odt_fixed_manifest_rdf +#+NAME: output_odt_fixed_manifest_rdf  #+BEGIN_SRC d  ┃");    return _manifest_rdf; @@ -1055,13 +1056,13 @@ void dirtree(I)(  *** settings.xml                                                 :settings: -#+name: output_odt_fixed_settings_xml +#+NAME: output_odt_fixed_settings_xml  #+BEGIN_SRC d  @safe string settings_xml() {    string _settings_xml = format(q"┃<?xml version="1.0" encoding="UTF-8"?>  #+END_SRC -#+name: output_odt_fixed_settings_xml +#+NAME: output_odt_fixed_settings_xml  #+BEGIN_SRC xml  <office:document-settings xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:xl="http://www.w3.org/1999/xlink" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" office:version="1.2">    <office:settings> @@ -1160,7 +1161,7 @@ void dirtree(I)(  </office:document-settings>  #+END_SRC -#+name: output_odt_fixed_settings_xml +#+NAME: output_odt_fixed_settings_xml  #+BEGIN_SRC d  ┃");    return _settings_xml; @@ -1169,13 +1170,13 @@ void dirtree(I)(  *** styles.xml                                                 :styles_xml: -#+name: output_odt_fixed_styles_xml +#+NAME: output_odt_fixed_styles_xml  #+BEGIN_SRC d  @safe string styles_xml() {    string _styles_xml = format(q"┃<?xml version="1.0" encoding="UTF-8"?>  #+END_SRC -#+name: output_odt_fixed_styles_xml +#+NAME: output_odt_fixed_styles_xml  #+BEGIN_SRC xml  <office:document-styles xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2">    <office:font-face-decls> @@ -2070,7 +2071,7 @@ void dirtree(I)(  </office:document-styles>  #+END_SRC -#+name: output_odt_fixed_styles_xml +#+NAME: output_odt_fixed_styles_xml  #+BEGIN_SRC d  ┃");    return _styles_xml; @@ -2082,7 +2083,7 @@ void dirtree(I)(  **** content head  ***** head open -#+name: output_odt_variable_content_xml +#+NAME: output_odt_variable_content_xml  #+BEGIN_SRC d  @safe string odt_head(I)(I doc_matters) {    string _has_tables = format(q"┃ @@ -2090,7 +2091,7 @@ void dirtree(I)(  ***** if table include within head -#+name: output_odt_variable_content_xml +#+NAME: output_odt_variable_content_xml  #+BEGIN_SRC xml    <style:style style:name="Table1" style:family="table">      <style:table-properties style:width="16.999cm" table:align="margins"/> @@ -2168,7 +2169,7 @@ void dirtree(I)(  ***** head -#+name: output_odt_variable_content_xml +#+NAME: output_odt_variable_content_xml  #+BEGIN_SRC d  ┃",);    string _odt_head = format(q"┃<?xml version="1.0" encoding="UTF-8"?> @@ -2176,7 +2177,7 @@ void dirtree(I)(  ***** head xml -#+name: output_odt_variable_content_xml +#+NAME: output_odt_variable_content_xml  #+BEGIN_SRC xml  <office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2">  <office:scripts/> @@ -2209,7 +2210,7 @@ void dirtree(I)(  ***** head close -#+name: output_odt_variable_content_xml +#+NAME: output_odt_variable_content_xml  #+BEGIN_SRC d  ┃",    (doc_matters.has.tables > 0) ? _has_tables : "", @@ -2221,7 +2222,7 @@ void dirtree(I)(  **** ↻ content body  ***** body open -#+name: output_odt_variable_content_xml +#+NAME: output_odt_variable_content_xml  #+BEGIN_SRC d  @safe string odt_body(D,I)(    const D    doc_abstraction, @@ -2236,7 +2237,7 @@ void dirtree(I)(  ***** ↻ the loop & outer switch (sections & objects) format output -#+name: output_odt_variable_content_xml +#+NAME: output_odt_variable_content_xml  #+BEGIN_SRC d    foreach (part; doc_matters.has.keys_seq.scroll) {      foreach (obj; doc_abstraction[part]) { @@ -2245,7 +2246,7 @@ void dirtree(I)(  ****** frontmatter -#+name: output_odt_variable_content_xml +#+NAME: output_odt_variable_content_xml  #+BEGIN_SRC d        case "frontmatter":              assert(part == "head" || "toc");          switch (obj.metainfo.is_of_type) { @@ -2270,7 +2271,7 @@ void dirtree(I)(  ****** body -#+name: output_odt_variable_content_xml +#+NAME: output_odt_variable_content_xml  #+BEGIN_SRC d        case "body":                     assert(part == "body" || "head"); // surprise          switch (obj.metainfo.is_of_type) { @@ -2321,7 +2322,7 @@ void dirtree(I)(  ****** backmatter -#+name: output_odt_variable_content_xml +#+NAME: output_odt_variable_content_xml  #+BEGIN_SRC d        case "backmatter":          assert(part == "endnotes" || "glossary" || "bibliography" || "bookindex" || "blurb" || "tail"); @@ -2371,7 +2372,7 @@ void dirtree(I)(  ***** closings & post loop -#+name: output_odt_variable_content_xml +#+NAME: output_odt_variable_content_xml  #+BEGIN_SRC d        }      } @@ -2382,13 +2383,13 @@ void dirtree(I)(  **** content book index? -#+name: output_odt_variable_content_xml +#+NAME: output_odt_variable_content_xml  #+BEGIN_SRC d  #+END_SRC  **** content tail -#+name: output_odt_variable_content_xml +#+NAME: output_odt_variable_content_xml  #+BEGIN_SRC d  @safe string odt_tail() {    string _odt_tail = format(q"┃<text:p text:style-name="P_normal">spine: <<text:a xl:type="simple" xl:href="http://www.doc_reform.org">www.doc_reform.org</text:a>> and <<text:a xl:type="simple" xl:href="http://www.sisudoc.org">www.sisudoc.org</text:a>></text:p> @@ -2399,7 +2400,7 @@ void dirtree(I)(  **** hub -#+name: output_odt_variable_content_xml +#+NAME: output_odt_variable_content_xml  #+BEGIN_SRC d  @safe string content_xml(D,I)(    const D    doc_abstraction, @@ -2420,7 +2421,7 @@ void dirtree(I)(      - META-INF/manifest.xml        - image list changes -#+name: output_odt_variable_manifest_xml +#+NAME: output_odt_variable_manifest_xml  #+BEGIN_SRC d  @safe string manifest_xml(M)(    auto ref              M    doc_matters, @@ -2433,7 +2434,7 @@ void dirtree(I)(    string _manifest_xml = format(q"┃<?xml version="1.0" encoding="UTF-8"?>  #+END_SRC -#+name: output_odt_variable_manifest_xml +#+NAME: output_odt_variable_manifest_xml  #+BEGIN_SRC xml  <manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" manifest:version="1.2">    <manifest:file-entry manifest:media-type="application/vnd.oasis.opendocument.text" manifest:version="1.2" manifest:full-path="/"/> @@ -2447,7 +2448,7 @@ void dirtree(I)(  </manifest:manifest>  #+END_SRC -#+name: output_odt_variable_manifest_xml +#+NAME: output_odt_variable_manifest_xml  #+BEGIN_SRC d  ┃",  _images.join("\n"), @@ -2458,7 +2459,7 @@ _images.join("\n"),  *** meta.xml (time stamp)                                        :meta_xml: -#+name: output_odt_variable_meta_xml +#+NAME: output_odt_variable_meta_xml  #+BEGIN_SRC d  @safe string meta_xml(M)(    auto ref              M    doc_matters, @@ -2467,7 +2468,7 @@ _images.join("\n"),    string _meta_xml = format(q"┃<?xml version="1.0" encoding="UTF-8"?>  #+END_SRC -#+name: output_odt_variable_meta_xml +#+NAME: output_odt_variable_meta_xml  #+BEGIN_SRC xml  <office:document-meta xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:grddl="http://www.w3.org/2003/g/data-view#" office:version="1.2">    <office:meta> @@ -2479,7 +2480,7 @@ _images.join("\n"),  </office:document-meta>  #+END_SRC -#+name: output_odt_variable_meta_xml +#+NAME: output_odt_variable_meta_xml  #+BEGIN_SRC d  ┃",  doc_matters.generator_program.name_and_version, @@ -2492,7 +2493,7 @@ doc_matters.generated_time,  *** copy images                                                    :images: -#+name: output_odt_variable_copy_odt_images +#+NAME: output_odt_variable_copy_odt_images  #+BEGIN_SRC d  @safe void images_cp(M)(    auto ref              M    doc_matters, diff --git a/org/out_sqlite.org b/org/out_sqlite.org index 5e56ad1..14e3ab0 100644 --- a/org/out_sqlite.org +++ b/org/out_sqlite.org @@ -4,16 +4,15 @@  #+FILETAGS:    :spine:output:db:sql:sqlite:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  - [[./spine.org][spine]]  [[./][org/]]  - [[./output_hub.org][output_hub]] @@ -277,7 +276,7 @@ template SQLiteDbDrop() {  ** 1. [#A] sqlite_db_statement                                   :statement:  *** collection -#+name: sqlite_db_statement_composite_collection +#+NAME: sqlite_db_statement_composite_collection  #+BEGIN_SRC d  {    string _db_statement; @@ -308,7 +307,7 @@ template SQLiteDbDrop() {  *** discrete -#+name: sqlite_db_statement_composite_discrete +#+NAME: sqlite_db_statement_composite_discrete  #+BEGIN_SRC d  {    string _db_statement; @@ -324,7 +323,7 @@ template SQLiteDbDrop() {  ** 2. imports -#+name: output_imports +#+NAME: output_imports  #+BEGIN_SRC d  import doc_reform.io_out;  import @@ -347,7 +346,7 @@ import      - [X] clean url markers, leave plain link text      - [X] place urls after text object and its endnotes -#+name: sanitize_text_for_search +#+NAME: sanitize_text_for_search  #+BEGIN_SRC d  string generic_munge_sanitize_text_for_search(    string _txt, @@ -396,7 +395,7 @@ light html objects  ***** munge  ****** general munge (special characters, inline markup, move notes) -#+name: sanitize_and_munge_inline_html +#+NAME: sanitize_and_munge_inline_html  #+BEGIN_SRC d  string munge_html(M,O)(          M    doc_matters, @@ -450,7 +449,7 @@ string munge_html(M,O)(  ****** special characters -#+name: sanitize_and_munge_inline_html +#+NAME: sanitize_and_munge_inline_html  #+BEGIN_SRC d  string html_special_characters(string _txt){    _txt = _txt @@ -466,7 +465,7 @@ string html_special_characters(string _txt){  ****** special characters for code -#+name: sanitize_and_munge_inline_html +#+NAME: sanitize_and_munge_inline_html  #+BEGIN_SRC d  string html_special_characters_code(string _txt){    _txt = _txt @@ -481,7 +480,7 @@ string html_special_characters_code(string _txt){  ****** font_face -#+name: sanitize_and_munge_inline_html +#+NAME: sanitize_and_munge_inline_html  #+BEGIN_SRC d  string html_font_face(string _txt){    _txt = _txt @@ -502,7 +501,7 @@ string html_font_face(string _txt){  ****** inline markup  ******* images -#+name: sanitize_and_munge_inline_html +#+NAME: sanitize_and_munge_inline_html  #+BEGIN_SRC d  string inline_images(M,O)(                 M  doc_matters, @@ -533,7 +532,7 @@ string inline_images(M,O)(  ******* links  ******** scroll, seg, epub -#+name: sanitize_and_munge_inline_html +#+NAME: sanitize_and_munge_inline_html  #+BEGIN_SRC d  string inline_links(M,O)(                 M doc_matters, @@ -641,7 +640,7 @@ string inline_links(M,O)(  ******* notes  ******** scroll -#+name: sanitize_and_munge_inline_html +#+NAME: sanitize_and_munge_inline_html  #+BEGIN_SRC d  string inline_notes_scroll(M,O)(                 M   doc_matters, @@ -671,7 +670,7 @@ string inline_notes_scroll(M,O)(  ******** seg -#+name: sanitize_and_munge_inline_html +#+NAME: sanitize_and_munge_inline_html  #+BEGIN_SRC d  Tuple!(string, string[]) inline_notes_seg(M,O)(                 M     doc_matters, @@ -716,7 +715,7 @@ Tuple!(string, string[]) inline_notes_seg(M,O)(  ******* inline markup -#+name: sanitize_and_munge_inline_html +#+NAME: sanitize_and_munge_inline_html  #+BEGIN_SRC d  string xml_type="seg"; /+ set html document type to be linked to here (seg|scroll) +/  string inline_markup(M,O)( @@ -734,7 +733,7 @@ string inline_markup(M,O)(  ***** objects  ****** heading -#+name: html_objects +#+NAME: html_objects  #+BEGIN_SRC d  string html_heading(M,O)(          M   doc_matters, @@ -758,7 +757,7 @@ string html_heading(M,O)(  ******* +fancy+ -##+name: prepare_objects_html +##+NAME: prepare_objects_html  #+BEGIN_SRC d  string html_heading(M,O)(          M   doc_matters, @@ -780,7 +779,7 @@ string html_heading(M,O)(  ****** para -#+name: html_objects +#+NAME: html_objects  #+BEGIN_SRC d  string html_para(M,O)(          M   doc_matters, @@ -807,7 +806,7 @@ string html_para(M,O)(  ****** quote -#+name: html_objects +#+NAME: html_objects  #+BEGIN_SRC d  string html_quote(M,O)(          M   doc_matters, @@ -830,7 +829,7 @@ string html_quote(M,O)(  ****** group -#+name: html_objects +#+NAME: html_objects  #+BEGIN_SRC d  string html_group(M,O)(          M   doc_matters, @@ -853,7 +852,7 @@ string html_group(M,O)(  ****** block -#+name: html_objects +#+NAME: html_objects  #+BEGIN_SRC d  string html_block(M,O)(          M   doc_matters, @@ -875,7 +874,7 @@ string html_block(M,O)(  ****** verse -#+name: html_objects +#+NAME: html_objects  #+BEGIN_SRC d  string html_verse(M,O)(          M   doc_matters, @@ -896,7 +895,7 @@ string html_verse(M,O)(  ****** code -#+name: html_objects +#+NAME: html_objects  #+BEGIN_SRC d  string html_code(O)(    const O   obj, @@ -916,7 +915,7 @@ string html_code(O)(  ****** table -#+name: html_objects +#+NAME: html_objects  #+BEGIN_SRC d  string html_table(M,O)(          M   doc_matters, @@ -988,7 +987,7 @@ string html_table(M,O)(  *** 2. hub (sqlite_format_and_load_objects)  **** sql related -#+name: sqlite_load_object +#+NAME: sqlite_load_object  #+BEGIN_SRC d  string sqlite_load_string(M,O)(          M   doc_matters, @@ -999,7 +998,7 @@ string sqlite_load_string(M,O)(  }  #+END_SRC -#+name: sqlite_load_object +#+NAME: sqlite_load_object  #+BEGIN_SRC d  string postgresql_load_string(M,O)(          M   doc_matters, @@ -1010,7 +1009,7 @@ string postgresql_load_string(M,O)(  }  #+END_SRC -#+name: sqlite_load_object +#+NAME: sqlite_load_object  #+BEGIN_SRC d  string sqlite_statement(O)(    const O          obj, @@ -1030,7 +1029,7 @@ string sqlite_statement(O)(  **** heading -#+name: hub_format_and_sqlite_load_objects +#+NAME: hub_format_and_sqlite_load_objects  #+BEGIN_SRC d  string[string] heading(M,O)(          M   doc_matters, @@ -1059,7 +1058,7 @@ string[string] heading(M,O)(  **** para -#+name: hub_format_and_sqlite_load_objects +#+NAME: hub_format_and_sqlite_load_objects  #+BEGIN_SRC d  string[string] para(M,O)(          M   doc_matters, @@ -1088,7 +1087,7 @@ string[string] para(M,O)(  **** quote -#+name: hub_format_and_sqlite_load_objects +#+NAME: hub_format_and_sqlite_load_objects  #+BEGIN_SRC d  string[string] quote(M,O)(          M   doc_matters, @@ -1116,7 +1115,7 @@ string[string] quote(M,O)(  #+END_SRC  **** group -#+name: hub_format_and_sqlite_load_objects +#+NAME: hub_format_and_sqlite_load_objects  #+BEGIN_SRC d  string[string] group(M,O)(          M   doc_matters, @@ -1145,7 +1144,7 @@ string[string] group(M,O)(  **** block -#+name: hub_format_and_sqlite_load_objects +#+NAME: hub_format_and_sqlite_load_objects  #+BEGIN_SRC d  string[string] block(M,O)(          M   doc_matters, @@ -1174,7 +1173,7 @@ string[string] block(M,O)(  **** verse -#+name: hub_format_and_sqlite_load_objects +#+NAME: hub_format_and_sqlite_load_objects  #+BEGIN_SRC d  string[string] verse(M,O)(          M   doc_matters, @@ -1203,7 +1202,7 @@ string[string] verse(M,O)(  **** code -#+name: hub_format_and_sqlite_load_objects +#+NAME: hub_format_and_sqlite_load_objects  #+BEGIN_SRC d  string[string] code(M,O)(          M   doc_matters, @@ -1232,7 +1231,7 @@ string[string] code(M,O)(  **** table -#+name: hub_format_and_sqlite_load_objects +#+NAME: hub_format_and_sqlite_load_objects  #+BEGIN_SRC d  string[string] table(M,O)(          M   doc_matters, @@ -1261,7 +1260,7 @@ string[string] table(M,O)(  ** 4. ↻ loop, identify, load - loop template -#+name: sqlite_objects_loop +#+NAME: sqlite_objects_loop  #+BEGIN_SRC d  auto format_and_sqlite_load = SQLiteFormatAndLoadObject!()(doc_matters);  string[string] obj_txt; @@ -1444,7 +1443,7 @@ return _insert_doc_objects.join.to!(char[]).toUTF8;  *** drop index and tables  **** DROP INDEX IF EXISTS -#+name: sqlite_statement_drop_existing_index +#+NAME: sqlite_statement_drop_existing_index  #+BEGIN_SRC sql  DROP INDEX IF EXISTS idx_ocn;  DROP INDEX IF EXISTS idx_uid; @@ -1460,7 +1459,7 @@ DROP INDEX IF EXISTS idx_classify_topic_register;  **** DROP TABLE IF EXISTS -#+name: sqlite_statement_drop_existing_tables +#+NAME: sqlite_statement_drop_existing_tables  #+BEGIN_SRC sql  DROP TABLE IF EXISTS metadata_and_text;  DROP TABLE IF EXISTS topic_register; @@ -1471,7 +1470,7 @@ DROP TABLE IF EXISTS urls;  *** create tables and index  **** CREATE TABLE metadata_and_text -#+name: sqlite_statement_create_table_metadata_and_src_txt +#+NAME: sqlite_statement_create_table_metadata_and_src_txt  #+BEGIN_SRC sql  CREATE TABLE metadata_and_text (    uid                              VARCHAR(256)      UNIQUE, -- filename, language char, pod/txt (decide on delimiter [,;:/]) @@ -1564,7 +1563,7 @@ CREATE TABLE metadata_and_text (  **** CREATE TABLE topic_register -#+name: sqlite_statement_create_table_topic_register +#+NAME: sqlite_statement_create_table_topic_register  #+BEGIN_SRC sql  CREATE TABLE topic_register (    -- tid                              BIGINT            PRIMARY KEY, @@ -1584,7 +1583,7 @@ CREATE TABLE topic_register (  **** CREATE TABLE site_urls ? -#+name: sqlite_statement_create_table_site_urls +#+NAME: sqlite_statement_create_table_site_urls  #+BEGIN_SRC sql  CREATE TABLE site_urls (    -- tid                              BIGINT            PRIMARY KEY, @@ -1599,7 +1598,7 @@ CREATE TABLE site_urls (  **** CREATE TABLE doc_objects -#+name: sqlite_statement_create_table_objects +#+NAME: sqlite_statement_create_table_objects  #+BEGIN_SRC sql  CREATE TABLE doc_objects (    lid                              BIGINT            PRIMARY KEY, @@ -1625,7 +1624,7 @@ CREATE TABLE doc_objects (  **** CREATE INDEX -#+name: sqlite_statement_create_index +#+NAME: sqlite_statement_create_index  #+BEGIN_SRC sql  CREATE INDEX idx_ocn ON doc_objects(ocn);  CREATE INDEX idx_digest_clean ON doc_objects(digest_clean); @@ -1645,7 +1644,7 @@ CREATE INDEX idx_topics ON metadata_and_text(classify_topic_register);  **** DELETE uid rows doc matters & metadata  ***** sql statement: dlang format -#+name: sqlite_formatted_delete +#+NAME: sqlite_formatted_delete  #+BEGIN_SRC d  string _uid = doc_matters.src.doc_uid;  string _delete_uid = format(q"┃ @@ -1653,7 +1652,7 @@ string _delete_uid = format(q"┃  ***** DELETE FROM ... WHERE -#+name: sqlite_formatted_delete +#+NAME: sqlite_formatted_delete  #+BEGIN_SRC sql  DELETE FROM metadata_and_text  WHERE uid = '%s'; @@ -1663,7 +1662,7 @@ WHERE uid_metadata_and_text = '%s';  ***** VALUES -#+name: sqlite_formatted_delete +#+NAME: sqlite_formatted_delete  #+BEGIN_SRC d  ┃",    _uid, @@ -1675,7 +1674,7 @@ WHERE uid_metadata_and_text = '%s';  **** INSERT doc matters & metadata  ***** sql statement: dlang format -#+name: sqlite_formatted_insertions_doc_matters_metadata +#+NAME: sqlite_formatted_insertions_doc_matters_metadata  #+BEGIN_SRC d  string _uid = SQLinsertDelimiter!()(doc_matters.src.doc_uid);  string _insert_metadata = format(q"┃ @@ -1683,7 +1682,7 @@ string _insert_metadata = format(q"┃  ***** INSERT INTO -#+name: sqlite_formatted_insertions_doc_matters_metadata +#+NAME: sqlite_formatted_insertions_doc_matters_metadata  #+BEGIN_SRC sql    INSERT INTO metadata_and_text (      uid, @@ -1739,7 +1738,7 @@ string _insert_metadata = format(q"┃  ***** VALUES -#+name: sqlite_formatted_insertions_doc_matters_metadata +#+NAME: sqlite_formatted_insertions_doc_matters_metadata  #+BEGIN_SRC sql    VALUES (      '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' @@ -1748,7 +1747,7 @@ string _insert_metadata = format(q"┃  ***** dlang values for formatting -#+name: sqlite_formatted_insertions_doc_matters_metadata +#+NAME: sqlite_formatted_insertions_doc_matters_metadata  #+BEGIN_SRC d  ┃",    _uid, @@ -1808,7 +1807,7 @@ writeln(doc_matters.conf_make_meta.meta.classify_topic_register_arr);  ***** { if topic register then loop topic register array -#+name: sqlite_formatted_insertions_topic_register +#+NAME: sqlite_formatted_insertions_topic_register  #+BEGIN_SRC d  if (doc_matters.conf_make_meta.meta.classify_topic_register_arr.length > 0) { @@ -1819,14 +1818,14 @@ if (doc_matters.conf_make_meta.meta.classify_topic_register_arr.length > 0) {  ***** sql statement: dlang format -#+name: sqlite_formatted_insertions_topic_register +#+NAME: sqlite_formatted_insertions_topic_register  #+BEGIN_SRC d  _insert_topics ~= format(q"┃  #+END_SRC  ***** INSERT INTO -#+name: sqlite_formatted_insertions_topic_register +#+NAME: sqlite_formatted_insertions_topic_register  #+BEGIN_SRC sql    INSERT INTO topic_register (      uid_metadata_and_text, @@ -1840,7 +1839,7 @@ _insert_topics ~= format(q"┃  ***** VALUES -#+name: sqlite_formatted_insertions_topic_register +#+NAME: sqlite_formatted_insertions_topic_register  #+BEGIN_SRC sql    VALUES (      '%s', '%s', '%s', '%s', '%s', '%s' @@ -1849,7 +1848,7 @@ _insert_topics ~= format(q"┃  ***** dlang values for formatting -#+name: sqlite_formatted_insertions_topic_register +#+NAME: sqlite_formatted_insertions_topic_register  #+BEGIN_SRC d  ┃",    _uid, @@ -1863,7 +1862,7 @@ _insert_topics ~= format(q"┃  ***** } close topic register & loop topic register array -#+name: sqlite_formatted_insertions_topic_register +#+NAME: sqlite_formatted_insertions_topic_register  #+BEGIN_SRC d    }  } @@ -1880,14 +1879,14 @@ either:  ***** sql statement: dlang format -#+name: sqlite_formatted_insertions_doc_objects +#+NAME: sqlite_formatted_insertions_doc_objects  #+BEGIN_SRC d  string _insert_doc_objects_row = format(q"┃  #+END_SRC  ***** INSERT INTO -#+name: sqlite_formatted_insertions_doc_objects +#+NAME: sqlite_formatted_insertions_doc_objects  #+BEGIN_SRC sql    INSERT INTO doc_objects (      uid_metadata_and_text, @@ -1904,7 +1903,7 @@ string _insert_doc_objects_row = format(q"┃  ***** VALUES -#+name: sqlite_formatted_insertions_doc_objects +#+NAME: sqlite_formatted_insertions_doc_objects  #+BEGIN_SRC sql    VALUES (      '%s', %s, '%s', '%s', '%s', %s, '%s', '%s', '%s' @@ -1913,7 +1912,7 @@ string _insert_doc_objects_row = format(q"┃  ***** dlang values for formatting -#+name: sqlite_formatted_insertions_doc_objects +#+NAME: sqlite_formatted_insertions_doc_objects  #+BEGIN_SRC d  ┃",    _uid, diff --git a/org/out_src_pod.org b/org/out_src_pod.org index 9f87629..7727f36 100644 --- a/org/out_src_pod.org +++ b/org/out_src_pod.org @@ -4,16 +4,15 @@  #+FILETAGS:    :spine:output:source:pod:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  - [[./spine.org][spine]]  [[./][org/]]  - [[./output_hub.org][output_hub]] @@ -42,7 +41,7 @@ template spinePod() {  ** init  *** imports -#+name: output_imports +#+NAME: output_imports  #+BEGIN_SRC d  import doc_reform.io_out;  import @@ -58,7 +57,7 @@ import  *** init -#+name: source_pod_init +#+NAME: source_pod_init  #+BEGIN_SRC d  debug(asserts) {    // static assert(is(typeof(doc_matters) == tuple)); @@ -76,7 +75,7 @@ assert (doc_matters.src.filename.match(rgx.src_fn));  *** pod zip archive -#+name: source_pod_archive +#+NAME: source_pod_archive  #+BEGIN_SRC d  @system auto pod_archive(Z)(    string _source_type, @@ -107,7 +106,7 @@ assert (doc_matters.src.filename.match(rgx.src_fn));  ** mkdir                                                             :mkdir: -#+name: source_pod_mkdirs +#+NAME: source_pod_mkdirs  #+BEGIN_SRC d  /+ create directory structure +/  if (!exists(pths_pod.pod_dir_())) { @@ -141,7 +140,7 @@ if (doc_matters.opt.action.source) {  ** copy                                                               :copy: -#+name: source_pod_copy +#+NAME: source_pod_copy  #+BEGIN_SRC d  debug(pod) {    writeln(__LINE__, ": ", @@ -389,7 +388,7 @@ auto fn_pod = pths_pod.pod_filename(doc_matters.src.filename).zpod;  ** sha256 of pod.zip, zip debug, read zip archive -#+name: source_pod_copy +#+NAME: source_pod_copy  #+BEGIN_SRC d  if (exists(fn_pod)) {    try { diff --git a/org/out_xmls.org b/org/out_xmls.org index ed3c92a..b5107f2 100644 --- a/org/out_xmls.org +++ b/org/out_xmls.org @@ -4,16 +4,15 @@  #+FILETAGS:    :spine:output:xml:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  - [[./spine.org][spine]]  [[./][org/]]  - [[./output_hub.org][output_hub]] @@ -37,7 +36,7 @@ template outputXHTMLs() {  *** output imports -#+name: output_imports +#+NAME: output_imports  #+BEGIN_SRC d  import doc_reform.io_out;  import @@ -56,7 +55,7 @@ import  *** misc  **** div delimiter -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string div_delimit(               string  part, @@ -92,7 +91,7 @@ import  **** special characters text -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string special_characters_text(string _txt) {    _txt = _txt @@ -107,7 +106,7 @@ import  **** special characters -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string special_characters(O)(    const  O         obj, @@ -123,7 +122,7 @@ import  **** font_face -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string font_face(string _txt) {    _txt = _txt @@ -143,7 +142,7 @@ import  **** anchor tags -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string _xhtml_anchor_tags(O)(O obj) {    const(string[]) anchor_tags = obj.tags.anchor_tags; @@ -162,7 +161,7 @@ import  **** doc head & tails  ***** metadata -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string header_metadata(M)(    M  doc_matters, @@ -205,7 +204,7 @@ import  ***** site info button -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string site_info_button(M)(    M  doc_matters, @@ -235,7 +234,7 @@ import  ***** search form -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string inline_search_form(M)(    M  doc_matters, @@ -272,7 +271,7 @@ import  ***** html head & head banner -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string html_head(M)(    M  doc_matters, @@ -328,7 +327,7 @@ import  ***** epub seg head -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string epub3_seg_head(M)(    M  doc_matters, @@ -402,7 +401,7 @@ import  ***** xhtml tail -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string tail() {    string o; @@ -418,7 +417,7 @@ import  *** inline markup  **** images -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string inline_images(O,M)(    string          _txt, @@ -451,7 +450,7 @@ import  **** links  ***** scroll, seg, epub -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string inline_links(O,M)(    string          _txt, @@ -549,7 +548,7 @@ import  **** notes  ***** scroll -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string inline_notes_scroll(O,M)(    string          _txt, @@ -586,7 +585,7 @@ import  ***** seg -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe Tuple!(string, string[]) inline_notes_seg(O,M)(              string  _txt, @@ -657,7 +656,7 @@ import  **** inline markup  ***** scroll -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string inline_markup_scroll(O,M)(    string          _txt, @@ -679,7 +678,7 @@ import  ***** seg -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe auto inline_markup_seg(O,M)(    string          _txt, @@ -706,7 +705,7 @@ import  *** toc  **** subtoc -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string lev4_heading_subtoc(O,M)(    const        O  obj, @@ -739,7 +738,7 @@ import  **** navigation pre next svg -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe auto nav_pre_next_svg(O,M)(    const        O  obj, @@ -822,7 +821,7 @@ import  *** heading  **** heading -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string heading(O,M)(          string _txt, @@ -893,7 +892,7 @@ import  **** scroll -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string heading_scroll(O,M)(    string          _txt, @@ -909,7 +908,7 @@ import  **** seg -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe Tuple!(string, string[]) heading_seg(O,M)(    string          _txt, @@ -933,7 +932,7 @@ import  *** para  **** para -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string para(O,M)(          string _txt, @@ -989,7 +988,7 @@ import  **** scroll -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string para_scroll(O,M)(    string          _txt, @@ -1008,7 +1007,7 @@ import  **** seg -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe Tuple!(string, string[]) para_seg(O,M)(    string          _txt, @@ -1032,7 +1031,7 @@ import  *** quote  **** quote -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string quote(O,M)(          string _txt, @@ -1074,7 +1073,7 @@ import  **** scroll -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string quote_scroll(O,M)(    string          _txt, @@ -1090,7 +1089,7 @@ import  **** seg -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe Tuple!(string, string[]) quote_seg(O,M)(    string          _txt, @@ -1114,7 +1113,7 @@ import  *** group  **** group -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string group(O,M)(          string _txt, @@ -1156,7 +1155,7 @@ import  **** scroll -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string group_scroll(O,M)(    string          _txt, @@ -1173,7 +1172,7 @@ import  **** seg -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe Tuple!(string, string[]) group_seg(O,M)(    string          _txt, @@ -1197,7 +1196,7 @@ import  *** block  **** block -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string block(O,M)(          string _txt, @@ -1235,7 +1234,7 @@ import  **** scroll -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string block_scroll(O,M)(    string          _txt, @@ -1252,7 +1251,7 @@ import  **** seg -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe Tuple!(string, string[]) block_seg(O,M)(    string          _txt, @@ -1276,7 +1275,7 @@ import  *** poem verse  **** verse -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string verse(O,M)(          string _txt, @@ -1314,7 +1313,7 @@ import  **** scroll -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string verse_scroll(O,M)(    string          _txt, @@ -1331,7 +1330,7 @@ import  **** seg -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe Tuple!(string, string[]) verse_seg(O,M)(    string          _txt, @@ -1354,7 +1353,7 @@ import  *** code -#+name: xhtml_format_objects_code +#+NAME: xhtml_format_objects_code  #+BEGIN_SRC d  @safe string code(O,M)(          string _txt, @@ -1426,7 +1425,7 @@ align="left|right|center"  "style=\"text-align:"  ~ "right\"" -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe Tuple!(string, string) tablarize(O)(    string            _txt, @@ -1465,7 +1464,7 @@ align="left|right|center"  **** table -#+name: xhtml_format_objects +#+NAME: xhtml_format_objects  #+BEGIN_SRC d  @safe string table(O,M)(          string _txt, @@ -1521,7 +1520,7 @@ template outputHTML() {  ** scroll                                                           :scroll:  *** ↻ loop & switch (sections & objects) format html output -#+name: output_html_scroll +#+NAME: output_html_scroll  #+BEGIN_SRC d  @safe void scroll(D,M)(    const        D    doc_abstraction, @@ -1539,7 +1538,7 @@ template outputHTML() {  **** ↻ the loops & outer switch (sections & objects) format output -#+name: output_html_scroll +#+NAME: output_html_scroll  #+BEGIN_SRC d    foreach (part; doc_matters.has.keys_seq.scroll) {      foreach (obj; doc_abstraction[part]) { @@ -1550,7 +1549,7 @@ template outputHTML() {  ***** frontmatter -#+name: output_html_scroll +#+NAME: output_html_scroll  #+BEGIN_SRC d        case "frontmatter":              assert(part == "head" || "toc");          switch (obj.metainfo.is_of_type) { @@ -1586,7 +1585,7 @@ template outputHTML() {  ***** body -#+name: output_html_scroll +#+NAME: output_html_scroll  #+BEGIN_SRC d        case "body":                     assert(part == "body" || "head");          switch (obj.metainfo.is_of_type) { @@ -1654,7 +1653,7 @@ template outputHTML() {  ***** backmatter -#+name: output_html_scroll +#+NAME: output_html_scroll  #+BEGIN_SRC d        case "backmatter":          assert(part == "endnotes" || "glossary" || "bibliography" || "bookindex" || "blurb" || "tail"); @@ -1715,7 +1714,7 @@ template outputHTML() {  ***** closings & post loop -#+name: output_html_scroll +#+NAME: output_html_scroll  #+BEGIN_SRC d        }      } @@ -1727,7 +1726,7 @@ template outputHTML() {  *** write output file -#+name: output_html_scroll +#+NAME: output_html_scroll  #+BEGIN_SRC d  @trusted void scroll_write_output(D,M)(    D doc, @@ -1757,7 +1756,7 @@ template outputHTML() {  ** seg                                                                 :seg:  *** ↻ loop & switch (sections & objects) format html output -#+name: output_html_seg +#+NAME: output_html_seg  #+BEGIN_SRC d  @safe void seg(D,M)(    const D    doc_abstraction, @@ -1779,7 +1778,7 @@ template outputHTML() {  **** ↻ the loop (sections & objects) format output -#+name: output_html_seg +#+NAME: output_html_seg  #+BEGIN_SRC d    foreach (part; doc_matters.has.keys_seq.seg) {      foreach (obj; doc_abstraction[part]) { @@ -1789,7 +1788,7 @@ template outputHTML() {  ***** all headings -#+name: output_html_seg +#+NAME: output_html_seg  #+BEGIN_SRC d        if (obj.metainfo.is_a == "heading") {          assert(part == "head" || "toc" || "body" || "endnotes" || "glossary" || "bibliography" || "bookindex" || "blurb" || "tail"); @@ -1862,7 +1861,7 @@ template outputHTML() {  ***** non-heading -#+name: output_html_seg +#+NAME: output_html_seg  #+BEGIN_SRC d        } else {          assert(part == "head" || "toc" || "body" || "endnotes" || "glossary" || "bibliography" || "bookindex" || "blurb" || "tail"); @@ -1871,7 +1870,7 @@ template outputHTML() {  ****** frontmatter -#+name: output_html_seg +#+NAME: output_html_seg  #+BEGIN_SRC d          case "frontmatter":             assert(part == "head" || "toc");            switch (obj.metainfo.is_of_type) { @@ -1905,7 +1904,7 @@ template outputHTML() {  ****** body -#+name: output_html_seg +#+NAME: output_html_seg  #+BEGIN_SRC d          case "body":                    assert(part == "body");            switch (obj.metainfo.is_of_type) { @@ -1981,7 +1980,7 @@ template outputHTML() {  ****** backmatter -#+name: output_html_seg +#+NAME: output_html_seg  #+BEGIN_SRC d          case "backmatter":            assert(part == "endnotes" || "glossary" || "bibliography" || "bookindex" || "blurb" || "tail"); @@ -2047,7 +2046,7 @@ template outputHTML() {  ***** closings & post loop -#+name: output_html_seg +#+NAME: output_html_seg  #+BEGIN_SRC d        }      } @@ -2058,7 +2057,7 @@ template outputHTML() {  *** write output files -#+name: output_html_seg +#+NAME: output_html_seg  #+BEGIN_SRC d  @trusted void seg_write_output(D,E,M)( // @system?    D doc_html, @@ -2098,7 +2097,7 @@ template outputHTML() {  ** css                                                                 :css: -#+name: output_html_css +#+NAME: output_html_css  #+BEGIN_SRC d  @safe void css(M)(M doc_matters) {    auto css = spineCss(doc_matters); @@ -2119,7 +2118,7 @@ template outputHTML() {  ** images                                                           :images: -#+name: copy_html_images +#+NAME: copy_html_images  #+BEGIN_SRC d  @trusted void images_cp(M)( // @system    M    doc_matters, @@ -2188,7 +2187,7 @@ template outputEPub3() {  - mimetype file indicating that zip file contains an EPUB -#+name: output_epub3_fixed +#+NAME: output_epub3_fixed  #+BEGIN_SRC d  @safe string epub3_mimetypes() {    string o; @@ -2201,7 +2200,7 @@ template outputEPub3() {  - identifies the root package document (so systems can find it), [unchanged from epub2] -#+name: output_epub3_fixed +#+NAME: output_epub3_fixed  #+BEGIN_SRC d  @safe string epub3_container_xml() {    string o; @@ -2223,7 +2222,7 @@ xmlns="urn:oasis:names:tc:opendocument:xmlns:container">  - provides the default reading order  - identifies the navigation document -#+name: output_epub3_constructs +#+NAME: output_epub3_constructs  #+BEGIN_SRC d  @safe string epub3_oebps_content(D,M,P)(D doc_abstraction, M doc_matters, P parts) {    auto xhtml_format = outputXHTMLs(); @@ -2329,7 +2328,7 @@ xmlns="urn:oasis:names:tc:opendocument:xmlns:container">  - toc_nav.xhtml declared as nav file in content.opf (epub3 navigation document) -#+name: output_epub3_constructs +#+NAME: output_epub3_constructs  #+BEGIN_SRC d  @safe string epub3_oebps_toc_nav_xhtml(D,I)(D doc_abstraction, I doc_matters) {    enum DomTags { none, open, close, close_and_open, open_still, } @@ -2417,7 +2416,7 @@ xmlns="urn:oasis:names:tc:opendocument:xmlns:container">  - toc.ncx (epub2 navigation document)    - (replaced in epub3 by a declared xhtml nav file, in our case toc_nav.xhtml) -#+name: output_epub3_constructs +#+NAME: output_epub3_constructs  #+BEGIN_SRC d  @safe string epub2_oebps_toc_ncx(D,I)(D doc_abstraction, I doc_matters) {    int counter = 0; @@ -2513,7 +2512,7 @@ xmlns="urn:oasis:names:tc:opendocument:xmlns:container">  ** the document contents                                               :seg:  *** ↻ loop & switch (sections & objects) format epub3 xhtml output -#+name: output_epub3_xhtml_seg +#+NAME: output_epub3_xhtml_seg  #+BEGIN_SRC d  @system void outputEPub3(D,I)(    const D    doc_abstraction, @@ -2544,7 +2543,7 @@ xmlns="urn:oasis:names:tc:opendocument:xmlns:container">  **** ↻ the loop (sections & objects) format output -#+name: output_epub3_xhtml_seg +#+NAME: output_epub3_xhtml_seg  #+BEGIN_SRC d    foreach (part; doc_matters.has.keys_seq.seg) {      foreach (obj; doc_abstraction[part]) { @@ -2553,7 +2552,7 @@ xmlns="urn:oasis:names:tc:opendocument:xmlns:container">  ***** all headings -#+name: output_epub3_xhtml_seg +#+NAME: output_epub3_xhtml_seg  #+BEGIN_SRC d        if (obj.metainfo.is_a == "heading") {          assert(part == "head" || "toc" || "body" || "endnotes" || "glossary" || "bibliography" || "bookindex" || "blurb" || "tail"); @@ -2622,7 +2621,7 @@ xmlns="urn:oasis:names:tc:opendocument:xmlns:container">  ***** non-heading -#+name: output_epub3_xhtml_seg +#+NAME: output_epub3_xhtml_seg  #+BEGIN_SRC d        } else {          assert(part == "head" || "toc" || "body" || "endnotes" || "glossary" || "bibliography" || "bookindex" || "blurb" || "tail"); @@ -2631,7 +2630,7 @@ xmlns="urn:oasis:names:tc:opendocument:xmlns:container">  ****** frontmatter -#+name: output_epub3_xhtml_seg +#+NAME: output_epub3_xhtml_seg  #+BEGIN_SRC d          case "frontmatter":             assert(part == "head" || "toc");            switch (obj.metainfo.is_of_type) { @@ -2666,7 +2665,7 @@ xmlns="urn:oasis:names:tc:opendocument:xmlns:container">  ****** body -#+name: output_epub3_xhtml_seg +#+NAME: output_epub3_xhtml_seg  #+BEGIN_SRC d          case "body":                    assert(part == "body");            switch (obj.metainfo.is_of_type) { @@ -2742,7 +2741,7 @@ xmlns="urn:oasis:names:tc:opendocument:xmlns:container">  ****** backmatter -#+name: output_epub3_xhtml_seg +#+NAME: output_epub3_xhtml_seg  #+BEGIN_SRC d          case "backmatter":            assert(part == "endnotes" || "glossary" || "bibliography" || "bookindex" || "blurb" || "tail"); @@ -2853,7 +2852,7 @@ xmlns="urn:oasis:names:tc:opendocument:xmlns:container">  ***** closings & post loop -#+name: output_epub3_xhtml_seg +#+NAME: output_epub3_xhtml_seg  #+BEGIN_SRC d        }      } @@ -2870,7 +2869,7 @@ xmlns="urn:oasis:names:tc:opendocument:xmlns:container">  ** write output files                                            :write:zip: -#+name: output_epub3_xhtml_seg +#+NAME: output_epub3_xhtml_seg  #+BEGIN_SRC d  @system void epub3_write_output_files(W,M)(    W epub_write, @@ -3066,7 +3065,7 @@ xmlns="urn:oasis:names:tc:opendocument:xmlns:container">  ** zip debug, read zip  archive                                        :zip: -#+name: output_epub3_xhtml_seg +#+NAME: output_epub3_xhtml_seg  #+BEGIN_SRC d    debug(epub_archive) {      if (exists(fn_epub)) { diff --git a/org/out_xmls_css.org b/org/out_xmls_css.org index b1f9a77..443f788 100644 --- a/org/out_xmls_css.org +++ b/org/out_xmls_css.org @@ -4,16 +4,15 @@  #+FILETAGS:    :spine:output:xmls:css:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  - [[./spine.org][spine]]  [[./][org/]]  - [[./output_hub.org][output_hub]] @@ -106,7 +105,7 @@ template spineCss() {  *** html shared  **** general -#+name: css_light_shared +#+NAME: css_light_shared  #+BEGIN_SRC css    *{      padding                  : 0px; @@ -125,7 +124,7 @@ template spineCss() {  **** link -#+name: css_light_shared +#+NAME: css_light_shared  #+BEGIN_SRC css    a:link {      color                    : #003399; @@ -162,7 +161,7 @@ template spineCss() {  **** div -#+name: css_light_shared +#+NAME: css_light_shared  #+BEGIN_SRC css    div {      margin-left              : 0; @@ -280,7 +279,7 @@ template spineCss() {  **** paragraphs headings blocks  ***** misc -#+name: css_light_shared +#+NAME: css_light_shared  #+BEGIN_SRC css    .norm, .bold, .verse, .group, .block, .alt {      line-height              : 133%%; @@ -306,7 +305,7 @@ template spineCss() {    }  #+END_SRC -#+name: css_light_shared +#+NAME: css_light_shared  #+BEGIN_SRC css    img {      max-width                : 100%%; @@ -316,7 +315,7 @@ template spineCss() {  ***** code block -#+name: css_light_shared +#+NAME: css_light_shared  #+BEGIN_SRC css    pre {      width                    : auto; @@ -383,7 +382,7 @@ template spineCss() {  ***** paragraph general -#+name: css_light_shared +#+NAME: css_light_shared  #+BEGIN_SRC css    p.spaced { white-space     : pre; }    p.block { @@ -504,14 +503,14 @@ template spineCss() {  ***** paragraph indent -#+name: css_light_shared +#+NAME: css_light_shared  #+BEGIN_SRC css  %s  #+END_SRC  ***** misc including tables & lists -#+name: css_light_shared +#+NAME: css_light_shared  #+BEGIN_SRC css    note { white-space         : pre; }    label.ocn { @@ -580,7 +579,7 @@ template spineCss() {  ***** headings -#+name: css_light_shared +#+NAME: css_light_shared  #+BEGIN_SRC css    h0, h1, h2, h3, h4, h5, h6, h7 {      font-weight              : bold; @@ -685,7 +684,7 @@ template spineCss() {  *** html seg  **** previous next -#+name: css_light_html_seg +#+NAME: css_light_html_seg  #+BEGIN_SRC css    .icon-bar {      width                    : 100%%; @@ -765,7 +764,7 @@ template spineCss() {  **** flex -#+name: css_light_html_seg +#+NAME: css_light_html_seg  #+BEGIN_SRC css    /* flex */    .flex-menu-bar { @@ -802,7 +801,7 @@ template spineCss() {  Consider what if anything should be used here -#+name: css_light_html_seg +#+NAME: css_light_html_seg  #+BEGIN_SRC css    /* grid */    .wrapper { @@ -891,7 +890,7 @@ Consider what if anything should be used here  *** html scroll  **** flex -#+name: css_light_html_scroll +#+NAME: css_light_html_scroll  #+BEGIN_SRC css    /* flex */    .flex-menu-bar { @@ -926,7 +925,7 @@ Consider what if anything should be used here  **** grid -#+name: css_light_html_scroll +#+NAME: css_light_html_scroll  #+BEGIN_SRC css    /* grid */    .wrapper { @@ -1014,7 +1013,7 @@ Consider what if anything should be used here  *** epub xhtml -#+name: css_light_epub +#+NAME: css_light_epub  #+BEGIN_SRC css  #+END_SRC @@ -1022,7 +1021,7 @@ Consider what if anything should be used here  *** html shared  **** general -#+name: css_dark_shared +#+NAME: css_dark_shared  #+BEGIN_SRC css    *{      padding                  : 0px; @@ -1041,7 +1040,7 @@ Consider what if anything should be used here  **** link -#+name: css_dark_shared +#+NAME: css_dark_shared  #+BEGIN_SRC css    a:link {      color                    : #FFFFFF; @@ -1078,7 +1077,7 @@ Consider what if anything should be used here  **** div -#+name: css_dark_shared +#+NAME: css_dark_shared  #+BEGIN_SRC css    div {      margin-left              : 0; @@ -1196,7 +1195,7 @@ Consider what if anything should be used here  **** paragraphs headings blocks  ***** misc -#+name: css_dark_shared +#+NAME: css_dark_shared  #+BEGIN_SRC css    .norm, .bold, .verse, .group, .block, .alt {      line-height              : 133%%; @@ -1222,7 +1221,7 @@ Consider what if anything should be used here    }  #+END_SRC -#+name: css_dark_shared +#+NAME: css_dark_shared  #+BEGIN_SRC css    img {      max-width                : 100%%; @@ -1232,7 +1231,7 @@ Consider what if anything should be used here  ***** code block -#+name: css_dark_shared +#+NAME: css_dark_shared  #+BEGIN_SRC css    pre {      width                    : auto; @@ -1298,7 +1297,7 @@ Consider what if anything should be used here  ***** paragraph general -#+name: css_dark_shared +#+NAME: css_dark_shared  #+BEGIN_SRC css    p.spaced { white-space     : pre; }    p.block { @@ -1419,14 +1418,14 @@ Consider what if anything should be used here  ***** paragraph indent -#+name: css_dark_shared +#+NAME: css_dark_shared  #+BEGIN_SRC css  %s  #+END_SRC  ***** misc including tables & lists -#+name: css_dark_shared +#+NAME: css_dark_shared  #+BEGIN_SRC css    note { white-space         : pre; }    label.ocn { @@ -1495,7 +1494,7 @@ Consider what if anything should be used here  ***** headings -#+name: css_dark_shared +#+NAME: css_dark_shared  #+BEGIN_SRC css    h0, h1, h2, h3, h4, h5, h6, h7 {      font-weight              : bold; @@ -1600,7 +1599,7 @@ Consider what if anything should be used here  *** html seg  **** previous next -#+name: css_dark_html_seg +#+NAME: css_dark_html_seg  #+BEGIN_SRC css    .icon-bar {      width                    : 100%%; @@ -1680,7 +1679,7 @@ Consider what if anything should be used here  **** flex -#+name: css_dark_html_seg +#+NAME: css_dark_html_seg  #+BEGIN_SRC css    /* flex */    .flex-menu-bar { @@ -1717,7 +1716,7 @@ Consider what if anything should be used here  Consider what if anything should be used here -#+name: css_dark_html_seg +#+NAME: css_dark_html_seg  #+BEGIN_SRC css    /* grid */    .wrapper { @@ -1806,7 +1805,7 @@ Consider what if anything should be used here  *** html scroll  **** flex -#+name: css_dark_html_scroll +#+NAME: css_dark_html_scroll  #+BEGIN_SRC css    /* flex */    .flex-menu-bar { @@ -1841,7 +1840,7 @@ Consider what if anything should be used here  **** grid -#+name: css_dark_html_scroll +#+NAME: css_dark_html_scroll  #+BEGIN_SRC css    /* grid */    .wrapper { @@ -1929,21 +1928,21 @@ Consider what if anything should be used here  *** epub xhtml -#+name: css_dark_epub +#+NAME: css_dark_epub  #+BEGIN_SRC css  #+END_SRC  ** variables  *** ocn (visible or hidden) -#+name: css_insert_shared_insert_variable_ocn_color_values +#+NAME: css_insert_shared_insert_variable_ocn_color_values  #+BEGIN_SRC css      string _color_ocn_light  = (doc_matters.opt.action.ocn_hidden) ? "#FFFFFF" : "#777777";      string _color_ocn_dark   = (doc_matters.opt.action.ocn_hidden) ? "#000000" : "#BBBBBB";  #+END_SRC  *** indent levels -#+name: css_insert_shared_insert_variable_indent_values +#+NAME: css_insert_shared_insert_variable_indent_values  #+BEGIN_SRC css      string _css_indent = format(q"┃    /* indent */ diff --git a/org/out_zip.org b/org/out_zip.org index f8821ff..9f4b7f2 100644 --- a/org/out_zip.org +++ b/org/out_zip.org @@ -1,20 +1,17 @@  -*- mode: org -*-  #+TITLE:       spine (doc_reform) output zip +#+DESCRIPTION: documents - structuring, publishing in multiple formats & search  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah -#+DESCRIPTION: documents - structuring, publishing in multiple formats & search -#+KEYWORDS +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+FILETAGS:            :spine:rel:output: -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  - [[./spine.org][spine]]  [[./][org/]]  - [[./output_hub.org][output_hub]] diff --git a/org/output_hub.org b/org/output_hub.org index 4f2d3e0..b2985be 100644 --- a/org/output_hub.org +++ b/org/output_hub.org @@ -4,16 +4,15 @@  #+FILETAGS:    :spine:output:hub:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  - [[./spine.org][spine]]  [[./][org/]] @@ -69,7 +68,7 @@ template outputHubOp() {  ** initialize / imports -#+name: output_imports +#+NAME: output_imports  #+BEGIN_SRC d  import doc_reform.io_out,    doc_reform.io_out.metadata, @@ -84,7 +83,7 @@ import doc_reform.io_out,  **** source: _dr_src_ &/or _pod_                                  :source:pod:  - [[./output_pod.org][output_pod]] -#+name: output_scheduled_task +#+NAME: output_scheduled_task  #+BEGIN_SRC d  if (sched == outTask.source_or_pod) {    if (doc_matters.opt.action.source) { @@ -106,7 +105,7 @@ if (sched == outTask.source_or_pod) {  **** epub                                                           :epub: -#+name: output_scheduled_task +#+NAME: output_scheduled_task  #+BEGIN_SRC d  if (sched == outTask.epub) {    msg.v("epub3 processing... "); @@ -119,7 +118,7 @@ if (sched == outTask.epub) {  **** html                                                           :html:  ***** metadata                                                 :metadata: -#+name: output_scheduled_task +#+NAME: output_scheduled_task  #+BEGIN_SRC d  if (sched == outTask.html_stuff) {    outputMetadata!()(doc_matters); @@ -129,7 +128,7 @@ if (sched == outTask.html_stuff) {  ***** scroll                                                     :scroll: -#+name: output_scheduled_task +#+NAME: output_scheduled_task  #+BEGIN_SRC d  if (sched == outTask.html_scroll) {    msg.v("html scroll processing... "); @@ -141,7 +140,7 @@ if (sched == outTask.html_scroll) {  ***** seg                                                           :seg: -#+name: output_scheduled_task +#+NAME: output_scheduled_task  #+BEGIN_SRC d  if (sched == outTask.html_seg) {    msg.v("html seg processing... "); @@ -153,7 +152,7 @@ if (sched == outTask.html_seg) {  ***** css, images etc                                        :css:images: -#+name: output_scheduled_task +#+NAME: output_scheduled_task  #+BEGIN_SRC d  if (sched == outTask.html_stuff) {    import doc_reform.io_out.html; @@ -165,7 +164,7 @@ if (sched == outTask.html_stuff) {  **** latex / pdf                                               :latex:pdf: -#+name: output_scheduled_task +#+NAME: output_scheduled_task  #+BEGIN_SRC d  if (sched == outTask.latex) {    msg.v("latex processing... (available for downstream processing & pdf output"); @@ -177,7 +176,7 @@ if (sched == outTask.latex) {  **** odf / odt                                                   :odf:odt: -#+name: output_scheduled_task +#+NAME: output_scheduled_task  #+BEGIN_SRC d  if (sched == outTask.odt) {    msg.v("odf:odt processing... "); @@ -189,7 +188,7 @@ if (sched == outTask.odt) {  **** sqlite discrete                                              :sqlite: -#+name: output_scheduled_task +#+NAME: output_scheduled_task  #+BEGIN_SRC d  if (sched == outTask.sqlite) {    msg.v("sqlite processing... "); @@ -203,7 +202,7 @@ if (sched == outTask.sqlite) {  **** sqlite collection                                            :sqlite:  ***** update / populate                                          :update: -#+name: output_shared_sqlite_db +#+NAME: output_shared_sqlite_db  #+BEGIN_SRC d  if (doc_matters.opt.action.sqlite_update) {    msg.v("sqlite update processing..."); @@ -221,7 +220,7 @@ if (doc_matters.opt.action.sqlite_update) {  ***** no markup source files to process  ******  drop                                                      :drop: -#+name: output_options_op +#+NAME: output_options_op  #+BEGIN_SRC d  if ((opt_action.sqlite_db_drop)) {    if ((opt_action.verbose)) { @@ -237,7 +236,7 @@ if ((opt_action.sqlite_db_drop)) {  ******  create                                                  :create: -#+name: output_options_op +#+NAME: output_options_op  #+BEGIN_SRC d  if ((opt_action.sqlite_db_create)) {    if ((opt_action.verbose)) { diff --git a/org/output_show.org b/org/output_show.org index 951c88a..4fd23de 100644 --- a/org/output_show.org +++ b/org/output_show.org @@ -4,16 +4,15 @@  #+FILETAGS:    :spine:hub:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :results silent :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  * document abstraction _summary_         :module:spine:metadoc_show_summary:  ** _module template_ metadoc summary @@ -40,7 +39,7 @@ template spineMetaDocSummary() {  ** (last ocn) -#+name: meta_metadoc_show_summary_document +#+NAME: meta_metadoc_show_summary_document  #+BEGIN_SRC d  string[string] check = [    "last_object_number" : "NA [debug \"checkdoc\" not run]", @@ -70,7 +69,7 @@ foreach (k; doc_matters.has.keys_seq.seg) {  ** document summary -#+name: meta_metadoc_show_summary_document +#+NAME: meta_metadoc_show_summary_document  #+BEGIN_SRC d  writefln(    "%s\n\"%s\", %s\n%s [%s]\n%s\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%s", @@ -158,7 +157,7 @@ template spineShowConfig() {  ** show config -#+name: meta_metadoc_show_config +#+NAME: meta_metadoc_show_config  #+BEGIN_SRC d  writefln(    "%s\n\"%s\", %s\n%s\n%s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n", @@ -260,7 +259,7 @@ template spineShowMake() {  ** show make -#+name: meta_metadoc_show_make +#+NAME: meta_metadoc_show_make  #+BEGIN_SRC d  writefln(    "%s\n\"%s\", %s\n%s\n%s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n", @@ -331,7 +330,7 @@ template spineShowMetaData() {  ** show metadata -#+name: meta_metadoc_show_metadata +#+NAME: meta_metadoc_show_metadata  #+BEGIN_SRC d  writefln(    "%s\n\"%s\", %s\n%s\n%s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n", @@ -426,7 +425,7 @@ writefln(  *** imports -#+name: metadoc_show_imports_shared +#+NAME: metadoc_show_imports_shared  #+BEGIN_SRC d  import    std.array, @@ -442,7 +441,7 @@ import  *** imports -#+name: metadoc_show_summary_imports +#+NAME: metadoc_show_summary_imports  #+BEGIN_SRC d  import    doc_reform.meta.defaults, @@ -451,7 +450,7 @@ import  *** initialize                                                     :report: -#+name: metadoc_show_initialize +#+NAME: metadoc_show_initialize  #+BEGIN_SRC d  auto markup = InlineMarkup();  auto min_repeat_number = 66; diff --git a/org/spine.org b/org/spine.org index 5c66ce6..58d76ed 100644 --- a/org/spine.org +++ b/org/spine.org @@ -4,30 +4,43 @@  #+FILETAGS:    :spine:hub:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :results silent :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  [[../maker.org][maker.org makefile]]  [[./][org/]]  * 0. version.txt (set version)                                      :version: -** set program version -- set program version +** 0. set program tangle -#+BEGIN_SRC d  :tangle "../views/version.txt" -/+ obt - org generated file +/ +#+BEGIN_SRC txt  :tangle "../views/version.txt" +<<spine_version_struct>> +<<spine_version_current_set>> +<<spine_compiler_restrictions>> +#+END_SRC + +** program version struct + +#+NAME: spine_version_struct +#+BEGIN_SRC d +/+ obt - org-mode generated file +/  struct Version {    int major;    int minor;    int patch;  } +#+END_SRC + +** TODO set program version + +#+NAME: spine_version_current_set +#+BEGIN_SRC d  enum _ver = Version(0, 9, 2);  #+END_SRC @@ -36,7 +49,8 @@ enum _ver = Version(0, 9, 2);  http://dlang.org/spec/version.html#predefined-versions -#+BEGIN_SRC d  :tangle "../views/version.txt" +#+NAME: spine_compiler_restrictions +#+BEGIN_SRC d  version (Posix) {    version (DigitalMars) {    } else version (LDC) { @@ -60,14 +74,14 @@ version (Posix) {    - process file    - output -** 0. spine src/spine                                             :template: +** 0. spine src/spine                                              :template:  - process files (act according to requirements of each type)    - by sourcefilename    - by sourcefiles contents identifier    - by zip filename -#+BEGIN_SRC d  :tangle "../src/doc_reform/spine.d" :shebang #!/usr/bin/env rdmd +#+BEGIN_SRC d  :tangle "../src/doc_reform/spine.d" :shebang "#!/usr/bin/env rdmd"  <<doc_header_including_copyright_and_license>>  module doc_reform.sisu_document_parser;  import @@ -143,7 +157,7 @@ homepage    "http://sisudoc.org"  *** document header including copyright & license  #+NAME: doc_header_including_copyright_and_license -#+BEGIN_SRC text +#+BEGIN_SRC txt  /+  - Name: Spine, Doc Reform    - Description: documents, structuring, processing, publishing, search @@ -152,7 +166,7 @@ homepage    "http://sisudoc.org"    - Author: Ralph Amissah      [ralph.amissah@gmail.com] -  - Copyright: (C) 2015 - 2019 Ralph Amissah, All Rights +  - Copyright: (C) 2015 - 2020 Ralph Amissah, All Rights      Reserved.    - License: AGPL 3 or later: @@ -197,10 +211,10 @@ homepage    "http://sisudoc.org"  +/  #+END_SRC -** 1. pre-loop init                                                   :init: +** 1. pre-loop init                                                    :init:  *** init -**** imports                                                      :import: -***** spine                                                       :spine: +**** imports                                                         :import: +***** spine                                                           :spine:  #+NAME: imports_spine  #+BEGIN_SRC d @@ -248,8 +262,8 @@ import  keep up to date, configuration in ../maker.org -**** mixins                                                        :mixin: -***** version.txt                                               :version: +**** mixins                                                           :mixin: +***** version.txt                                                   :version:  #+NAME: mixin_spine_version  #+BEGIN_SRC d @@ -263,7 +277,7 @@ mixin(import("version.txt"));  mixin CompileTimeInfo;  #+END_SRC -***** spine "main" mixins                                         :spine: +***** spine "main" mixins                                             :spine:  #+NAME: spine_mixin  #+BEGIN_SRC d @@ -274,14 +288,14 @@ mixin spineRgxInitFlags;  mixin outputHub;  #+END_SRC -**** init                                                           :init: +**** init                                                              :init:  #+NAME: spine_init  #+BEGIN_SRC d  auto hvst = spineHarvest!();  #+END_SRC -**** args                                                           :args: +**** args                                                              :args:  #+NAME: spine_init  #+BEGIN_SRC d @@ -291,7 +305,7 @@ enum dAM { abstraction, matters }  static auto rgx = Rgx();  #+END_SRC -*** scope (run complete)                                            :scope: +*** scope (run complete)                                              :scope:  #+NAME: spine_init  #+BEGIN_SRC d @@ -313,7 +327,7 @@ scope(failure) {  }  #+END_SRC -*** getopt args for loop                                      :args:getopt: +*** getopt args for loop                                        :args:getopt:  **** set getopt options  - set getopt options @@ -967,8 +981,8 @@ if (!(_opt_action.skip_output)) {  }  #+END_SRC -** _2. processing: (loop each file)_ [+2]                         :loop:files: -*** scope (loop)                                                    :scope: +** _2. processing: (loop each file)_ [+2]                          :loop:files: +*** scope (loop)                                                      :scope:  #+NAME: spine_each_file_do_scope  #+BEGIN_SRC d @@ -1076,7 +1090,7 @@ if (doc_matters.opt.action.show_config  }  #+END_SRC -***** abstraction harvest                           :abstraction:harvest: +***** abstraction harvest                               :abstraction:harvest:  - abstraction harvest  #+NAME: spine_each_file_do_debugs_checkdoc @@ -1098,7 +1112,7 @@ if (doc_matters.opt.action.harvest) {  }  #+END_SRC -**** 1. _debug_ (document parts, checkdoc)                  :debug:checkdoc: +**** 1. _debug_ (document parts, checkdoc)                     :debug:checkdoc:  - [[./meta_output_debugs.org][meta_output_debugs]]  #+NAME: spine_each_file_do_debugs_checkdoc @@ -1109,7 +1123,7 @@ if (doc_matters.opt.action.debug_do) {  }  #+END_SRC -**** 2. _process outputs_                                          :outputs: +**** 2. _process outputs_                                             :outputs:  - [[./output_hub.org][output_hub]]  #+NAME: spine_each_file_do_selected_output @@ -1130,7 +1144,7 @@ if (!(doc_matters.opt.action.skip_output)) {  }  #+END_SRC -*** scope (on loop exit)                                       :scope:exit: +*** scope (on loop exit)                                         :scope:exit:  #+NAME: spine_each_file_do_scope_exit  #+BEGIN_SRC d @@ -1155,7 +1169,7 @@ break; // terminate, stop  #+END_SRC  * 2. pre-processing -** Output _document abstraction functions_            :module:spine:abstraction: +** Output _document abstraction functions_           :module:spine:abstraction:  *** 0 module template  - abstraction template diff --git a/org/spine_build_scaffold.org b/org/spine_build_scaffold.org index 017a732..bbd23d5 100644 --- a/org/spine_build_scaffold.org +++ b/org/spine_build_scaffold.org @@ -4,16 +4,15 @@  #+FILETAGS:    :spine:makefile:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :padline no :exports code :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  [[./org/spine.org][spine.org]]  [[./org/][org/]] @@ -52,7 +51,7 @@ PRG_DOCDIR=./docs  EMACSLISP=/usr/share/emacs/site-lisp  ORG_VER_AVAILABLE=$(shell echo `ls -d ~/.emacs.d/elpa/org-???????? | cut -d '-' -f2`)  EMACSLISP_ORG=~/.emacs.d/elpa/org-$($(shell echo $(ORG_VER_AVAILABLE))) -ORG_CONTRIB_VER_AVAILABLE=$(shell echo `ls -d ~/.emacs.d/elpa/org-plus-???????? | cut -d '-' -f2`) +ORG_CONTRIB_VER_AVAILABLE=$(shell echo `ls -d ~/.emacs.d/elpa/org-plus-contrib-???????? | cut -d '-' -f2`)  EMACSLISP_ORG_CONTRIB=~/.emacs.d/elpa/org-plus-contrib-$($(shell echo $(ORG_CONTRIB_VER_AVAILABLE)))  ORGFILELIST=$(shell echo `ls -1 org/*.org`)  ORGFILES="" @@ -844,7 +843,7 @@ name                "spine"  description         "sisu document parser"  homepage            "http://sisudoc.org"  authors             "Ralph Amissah" -copyright           "Copyright (C) 2016 - 2019 Ralph Amissah" +copyright           "Copyright (C) 2016 - 2020 Ralph Amissah"  license             "AGPL-3.0+"  targetPath          "./bin"  #sourcePath          "./src/doc_reform" diff --git a/org/spine_info.org b/org/spine_info.org index a80089f..04b91a6 100644 --- a/org/spine_info.org +++ b/org/spine_info.org @@ -4,20 +4,19 @@  #+FILETAGS:    :spine:info:  #+AUTHOR:      Ralph Amissah  #+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT:   Copyright (C) 2015 - 2019 Ralph Amissah +#+COPYRIGHT:   Copyright (C) 2015 - 2020 Ralph Amissah  #+LANGUAGE:    en -#+STARTUP:     indent content hideblocks hidestars -#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t -#+OPTIONS:     TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc -#+OPTIONS:     author:nil email:nil creator:nil timestamp:nil -#+PROPERTY:    header-args :results silent :padline no :exports code :cache no :noweb yes -#+EXPORT_SELECT_TAGS:  export -#+EXPORT_EXCLUDE_TAGS: noexport -#+TAGS: assert(a) class(c) debug(d) mixin(m) spine(s) tangle(T) template(t) WEB(W) noexport(n) +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no  * README -#+BEGIN_SRC text  :tangle "../README" +#+BEGIN_SRC txt  :tangle "../README"  project_name:  Spine, Doc Reform    description: [        "documents, structuring, processing, publishing", @@ -31,7 +30,7 @@ project_name:  Spine, Doc Reform        name:    Ralph Amissah        email:   ralph.amissah@gmail.com -    copyright: "(C) 2015 - 2019 Ralph Amissah, All Rights Reserved." +    copyright: "(C) 2015 - 2020 Ralph Amissah, All Rights Reserved."      license:   "AGPL 3 or later" @@ -45,7 +44,7 @@ project_name:  Spine, Doc Reform  ** notices  *** project (project root) ./ -#+BEGIN_SRC text  :tangle "../COPYRIGHT" +#+BEGIN_SRC txt  :tangle "../COPYRIGHT"  <<spine_copyright>>  <<spine_license_agpl3>>  <<spine_extra>> @@ -53,7 +52,7 @@ project_name:  Spine, Doc Reform  *** code source ./src -#+BEGIN_SRC text  :tangle "../src/COPYRIGHT" +#+BEGIN_SRC txt  :tangle "../src/COPYRIGHT"  <<spine_copyright>>  <<spine_license_agpl3>>  <<spine_extra>> @@ -61,7 +60,7 @@ project_name:  Spine, Doc Reform  *** code source ./src/spine -#+BEGIN_SRC text  :tangle "../src/doc_reform/COPYRIGHT" +#+BEGIN_SRC txt  :tangle "../src/doc_reform/COPYRIGHT"  <<spine_copyright>>  <<spine_license_agpl3>>  <<spine_extra>> @@ -69,14 +68,14 @@ project_name:  Spine, Doc Reform  *** org files ./org -#+BEGIN_SRC text  :tangle "./COPYRIGHT" +#+BEGIN_SRC txt  :tangle "./COPYRIGHT"  <<spine_copyright>>  <<spine_extra>>  #+END_SRC  *** data (markup samples) ./data -#+BEGIN_SRC text  :tangle "../data/COPYRIGHT" +#+BEGIN_SRC txt  :tangle "../data/COPYRIGHT"  <<data>>  #+END_SRC @@ -84,7 +83,7 @@ project_name:  Spine, Doc Reform  *** copyright  #+NAME: spine_copyright -#+BEGIN_SRC text +#+BEGIN_SRC txt  - Name: Spine, Doc Reform    - Description: documents, structuring, processing, publishing, search      - static content generator @@ -92,14 +91,14 @@ project_name:  Spine, Doc Reform    - Author: Ralph Amissah      [ralph.amissah@gmail.com] -  - Copyright: (C) 2015 - 2019 Ralph Amissah +  - Copyright: (C) 2015 - 2020 Ralph Amissah  #+END_SRC  *** license  #+NAME: spine_license_agpl3 -#+BEGIN_SRC text +#+BEGIN_SRC txt    - code under src/      - License: AGPL 3 or later: @@ -131,7 +130,7 @@ project_name:  Spine, Doc Reform  *** tail  #+NAME: spine_extra -#+BEGIN_SRC text +#+BEGIN_SRC txt    - Spine, Doc Reform (related to SiSU) uses standard:      - docReform markup syntax        - standard SiSU markup syntax with modified headers and minor @@ -151,7 +150,7 @@ project_name:  Spine, Doc Reform  *** data  #+NAME: spine_extra -#+BEGIN_SRC text +#+BEGIN_SRC txt  - Spine, Doc Reform (SiSU) markup samples    Individual document content Copyright (Author) [as stated in document header]    Individual document content License (Author) [as stated in document header] | 
