From 52049eb825cca32a2d2e6596fe5160b3f33ba74d Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Fri, 24 Jan 2020 15:42:37 -0500 Subject: update headers and year --- org/COPYRIGHT | 2 +- org/compile_time_info.org | 25 ++- org/default_misc.org | 38 ++-- org/default_paths.org | 47 +++-- org/default_regex.org | 90 +++++----- org/default_shared.org | 20 +-- org/imports.org | 17 +- org/in_source_files.org | 49 +++--- org/meta_conf_make_meta.org | 45 +++-- org/meta_debugs.org | 79 +++++---- org/metaverse.org | 407 +++++++++++++++++++++---------------------- org/out_harvest_metadata.org | 25 ++- org/out_latex.org | 189 ++++++++++---------- org/out_metadata.org | 23 ++- org/out_odt.org | 139 +++++++-------- org/out_sqlite.org | 133 +++++++------- org/out_src_pod.org | 29 ++- org/out_xmls.org | 165 +++++++++--------- org/out_xmls_css.org | 85 +++++---- org/out_zip.org | 21 +-- org/output_hub.org | 43 +++-- org/output_show.org | 33 ++-- org/spine.org | 84 +++++---- org/spine_build_scaffold.org | 21 ++- org/spine_info.org | 41 +++-- 25 files changed, 923 insertions(+), 927 deletions(-) (limited to 'org') 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() { <> } -#+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(?:[ ,]+[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[a-z][0-9a-z#+_]+))?(?:[(](?P[ 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[a-z][0-9a-z_]+))?(?:[(](?P[ 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\blinenumber\b|\bnumber\b|\blnr\b)`); #+END_SRC **** table -#+name: meta_rgx +#+NAME: meta_rgx #+BEGIN_SRC d static table_head_instructions = ctRegex!(`(?:(?Ph);)?(?:[ ]+c(?P[0-9]):)?(?P(?:[, ]+[0-9]+[lr]?)+)`); static table_col_widths_and_alignment = ctRegex!(`(?P[0-9]+)(?P[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(?Phttps?:\/\/[^ /]+)\/(?P\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(?:^|[ ]|[^\S]?)[{┥](?:~\^\s+|\s*))(?P[a-zA-Z0-9._-]+?\.(?:png|gif|jpg))(?P(?:.*?)\s*[}┝](?:image|┤.*?├|(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)\S+?)(?=[;:!,?.]?([ )\]]|$)))`, "mg"); @@ -254,7 +253,7 @@ static smid_image_delimit = ctRegex!(`(?P
^|[ ]
 
 *** 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.+?)\}$`, "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[/]?(?:[a-zA-Z0-9._-]+/)*)(?P[a-zA-Z0-9._-]+[.](?Pss[tm]))$`);
 static src_pth_pod_sst_or_ssm                         = ctRegex!(`^(?P[/]?(?:[a-zA-Z0-9._-]+/)*)media/text/[a-z]{2}/(?P[a-zA-Z0-9][a-zA-Z0-9._-]*?[.]ss[tm])$`);
@@ -441,7 +441,7 @@ static src_formalised_file_path_parts                 = ctRegex!(`(?P(?:[/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
┥)☼(?P(?P[a-zA-Z0-9._-]+?\.(?:jpg|gif|png)),w(?P\d+)h(?P\d+))\s*(?P.*?┝┤.*?├)`, "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[*])\{(?P.+?)\}[*]`, "mg");
@@ -514,7 +514,7 @@ static inline_mark_mono                             = ctRegex!(`(?P[#])\{(
 static inline_mark_cite                             = ctRegex!(`(?P["])\{(?P.+?)\}["]`, "mg");
 #+END_SRC
 
-#+name: prgmkup_rgx
+#+NAME: prgmkup_rgx
 #+BEGIN_SRC d
 static inline_faces_line                              = ctRegex!(`^[*!/_]_ (?P.+?)((?: [\\]{2}|[~]#){0,2}$)`);
 static inline_emphasis_line                           = ctRegex!(`^\*_ (?P.+?)(?P(?: [\\]{2}|[~]#){0,2}$)`);
@@ -523,7 +523,7 @@ static inline_italics_line                            = ctRegex!(`^/_ (?P.
 static inline_underscore_line                         = ctRegex!(`^__ (?P.+?)(?P(?: [\\]{2}|[~]#){0,2}$)`);
 #+END_SRC
 
-#+name: prgmkup_rgx
+#+NAME: prgmkup_rgx
 #+BEGIN_SRC d
 /+ inline markup font face mod +/
 static inline_emphasis                                = ctRegex!(`[*]┨(?P.+?)┣[*]`, "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() {
   <>
@@ -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"┃
 #+END_SRC
 
-#+name: output_odt_fixed_manifest_rdf
+#+NAME: output_odt_fixed_manifest_rdf
 #+BEGIN_SRC xml
 
   
@@ -1046,7 +1047,7 @@ void dirtree(I)(
 
 #+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"┃
 #+END_SRC
 
-#+name: output_odt_fixed_settings_xml
+#+NAME: output_odt_fixed_settings_xml
 #+BEGIN_SRC xml
 
   
@@ -1160,7 +1161,7 @@ void dirtree(I)(
 
 #+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"┃
 #+END_SRC
 
-#+name: output_odt_fixed_styles_xml
+#+NAME: output_odt_fixed_styles_xml
 #+BEGIN_SRC xml
 
   
@@ -2070,7 +2071,7 @@ void dirtree(I)(
 
 #+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
   
     
@@ -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"┃
@@ -2176,7 +2177,7 @@ void dirtree(I)(
 
 ***** head xml
 
-#+name: output_odt_variable_content_xml
+#+NAME: output_odt_variable_content_xml
 #+BEGIN_SRC xml
 
 
@@ -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"┃spine: <www.doc_reform.org> and <www.sisudoc.org>
@@ -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"┃
 #+END_SRC
 
-#+name: output_odt_variable_manifest_xml
+#+NAME: output_odt_variable_manifest_xml
 #+BEGIN_SRC xml
 
   
@@ -2447,7 +2448,7 @@ void dirtree(I)(
 
 #+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"┃
 #+END_SRC
 
-#+name: output_odt_variable_meta_xml
+#+NAME: output_odt_variable_meta_xml
 #+BEGIN_SRC xml
 
   
@@ -2479,7 +2480,7 @@ _images.join("\n"),
 
 #+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"
+<>
+<>
+<>
+#+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"
 <>
 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"
 <>
 <>
 <>
@@ -53,7 +52,7 @@ project_name:  Spine, Doc Reform
 
 *** code source ./src
 
-#+BEGIN_SRC text  :tangle "../src/COPYRIGHT"
+#+BEGIN_SRC txt  :tangle "../src/COPYRIGHT"
 <>
 <>
 <>
@@ -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"
 <>
 <>
 <>
@@ -69,14 +68,14 @@ project_name:  Spine, Doc Reform
 
 *** org files ./org
 
-#+BEGIN_SRC text  :tangle "./COPYRIGHT"
+#+BEGIN_SRC txt  :tangle "./COPYRIGHT"
 <>
 <>
 #+END_SRC
 
 *** data (markup samples) ./data
 
-#+BEGIN_SRC text  :tangle "../data/COPYRIGHT"
+#+BEGIN_SRC txt  :tangle "../data/COPYRIGHT"
 <>
 #+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]
-- 
cgit v1.2.3