diff options
Diffstat (limited to 'org')
| -rw-r--r-- | org/ao_conf_make_meta.org | 75 | ||||
| -rw-r--r-- | org/ao_defaults.org | 1154 | ||||
| -rw-r--r-- | org/sdp.org | 4 | 
3 files changed, 642 insertions, 591 deletions
| diff --git a/org/ao_conf_make_meta.org b/org/ao_conf_make_meta.org index 4205af7..12dfbbe 100644 --- a/org/ao_conf_make_meta.org +++ b/org/ao_conf_make_meta.org @@ -29,30 +29,38 @@  +/  template SiSUheaderExtractHub() {    private import -    std.regex; +    std.exception, +    std.regex, +    std.stdio, +    std.traits, +    std.typecons, +    std.utf, +    std.conv : to; +  private import sdlang;    private import -    ao_rgx; -  struct SiSUheaderExtractHub { -    mixin SiSUheaderExtractNative; -    mixin SiSUheaderExtractSDLang; -    auto rgx = Rgx(); -    private auto SiSUheaderExtractHub(Src, DocMake)( -      Src     header_src, -      DocMake conf_doc_make_aa -    ) { -      debug(asserts){ -        static assert(is(typeof(header_src)       == char[])); -        static assert(is(typeof(conf_doc_make_aa) == string[string][string])); -      } -      auto head_native = HeaderDocMetadataAndMakeNativeToAA(); -      auto head_sdlang = HeaderExtractSDL(); -      auto header_make_and_meta_tuple = (match(header_src, rgx.native_header_meta_title)) -      ? (head_native.headerNativeToAA(header_src)) -      : (head_sdlang.headerSDLangToAA(header_src, conf_doc_make_aa)); -      static assert(!isTypeTuple!(header_make_and_meta_tuple)); -      static assert(header_make_and_meta_tuple.length==2); -      return header_make_and_meta_tuple; +    ao_rgx, +    ao_conf_make_meta_native, +    ao_conf_make_meta_sdlang; +  mixin SiSUrgxInit; +  mixin SiSUheaderExtractNative; +  mixin SiSUheaderExtractSDLang; +  auto rgx = Rgx(); +  auto SiSUheaderExtractHub(Src, DocMake)( +    Src     header_src, +    DocMake conf_doc_make_aa +  ) { +    debug(asserts){ +      static assert(is(typeof(header_src)       == char[])); +      static assert(is(typeof(conf_doc_make_aa) == string[string][string]));      } +    auto head_native = HeaderDocMetadataAndMakeNativeToAA(); +    auto head_sdlang = HeaderExtractSDL(); +    auto header_make_and_meta_tuple = (match(header_src, rgx.native_header_meta_title)) +    ? (head_native.headerNativeToAA(header_src)) +    : (head_sdlang.headerSDLangToAA(header_src, conf_doc_make_aa)); +    static assert(!isTypeTuple!(header_make_and_meta_tuple)); +    static assert(header_make_and_meta_tuple.length==2); +    return header_make_and_meta_tuple;    }  }  #+END_SRC @@ -68,10 +76,15 @@ template SiSUheaderExtractNative() {    private import      std.exception,      std.regex, +    std.stdio, +    std.string, +    std.traits, +    std.typecons,      std.utf,      std.conv : to;    private import -    ao_rgx; +    ao_rgx, +    ao_defaults;    struct HeaderDocMetadataAndMakeNativeToAA {      mixin SiSUregisters;      mixin SiSUrgxInitFlags; @@ -93,9 +106,17 @@ template SiSUheaderExtractNative() {  +/  template SiSUheaderExtractSDLang() {    private import -    std.regex; +    std.exception, +    std.regex, +    std.stdio, +    std.string, +    std.traits, +    std.typecons, +    std.utf, +    std.conv : to;    private import -    ao_rgx; +    ao_rgx, +    ao_defaults;    struct HeaderExtractSDL {      mixin SiSUregisters;      mixin SiSUrgxInit; @@ -679,8 +700,8 @@ private auto headerSDLangGet(Hs)(Hs src_header) {      writeln("--------------");      Value test = header_sdlang.tags["title"][0].values[0];      assert(test == typeid(string)); -    writeln(header_sdlang.maybe.tags["title"]); -    writeln(header_sdlang.maybe.tags["title"][0].maybe.attributes["subtitle"]); +    // writeln(header_sdlang.maybe.tags["title"]); +    // writeln(header_sdlang.maybe.tags["title"][0].maybe.attributes["subtitle"]);    }    return header_sdlang; // sdlang.ast.Tag  } diff --git a/org/ao_defaults.org b/org/ao_defaults.org index db9709a..cdf8734 100644 --- a/org/ao_defaults.org +++ b/org/ao_defaults.org @@ -21,7 +21,28 @@  /++    default settings  +/ -<<ao_defaults_templates>> +template SiSUregisters() { +  <<ao_defaults_imports>> +  <<ao_defaults_template_registers>> +} +template SiSUrgxInitFlags() { +  <<ao_defaults_template_init_flags>> +} +template SiSUnode() { +  <<ao_defaults_template_node>> +} +template SiSUbiblio() { +  <<ao_defaults_template_biblio>> +} +template SiSUpaths() { +  <<ao_defaults_template_paths>> +} +template InternalMarkup() { +  <<ao_defaults_template_markup>> +} +template SiSUlanguageCodes() { +  <<ao_defaults_template_language_codes>> +}  #+END_SRC  ** 2. rgx:                                                          :ao_rgx: @@ -32,8 +53,8 @@    regex: regular expressions used in sisu document parser  +/  template SiSUrgxInit() { +  private import ao_defaults;    struct Rgx { -    mixin SiSUlanguageCodes;      <<ao_rgx>>    }  } @@ -41,257 +62,280 @@ template SiSUrgxInit() {  * 1. default templates                                    :template:defaults:  [[./sdp.org][sdp]] [[./][org/]] +** template: imports + +#+name: ao_defaults_template_imports +#+BEGIN_SRC d +private import +  std.algorithm, +  std.array, +  std.container, +  std.exception, +  std.file, +  std.getopt, +  std.json, +  std.path, +  std.process, +  std.range, +  std.regex, +  std.stdio, +  std.string, +  std.traits, +  std.typecons, +  std.uni, +  std.utf, +  std.conv : to; +#+END_SRC +  ** template: settings metadata associative array indexes          :settings: -#+name: ao_defaults_templates +#+name: ao_defaults_template_registers  #+BEGIN_SRC d -template SiSUregisters() { -  string[string][string] conf_aa() { -    auto conf_ = [ -      "webserv": [ -         "url_root"         : "", -         "path"             : "~/sdp_www" , -         "images"           : "" , -         "cgi"              : "/usr/local/lib/sdp-cgi" -      ], -      "webserv_cgi": [ -         "host"             : "localhost", -         "base_path"        : "", -         "port"             : "8081", -         "user"             : "", -         "file_links"       : "www.sisudoc.org" -      ], -      "processing": [ -         "path"             : "~", -         "dir"              : "_sisu_processing", -         "concord_max"      : "400000" -      ], -      "flag": [ -         "act0"             : "--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --manifest --verbose", -         "act1"             : "--digest --text --html --manifest", -         "act2"             : "--digest --text --html --epub --pdf --manifest", -         "act3"             : "--digest --qrcode --text --html --epub --concordance --pdf --manifest", -         "act4"             : "--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --manifest", -         "act5"             : "--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --sqlite --manifest", -         "act6"             : "--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --manifest", -         "act7"             : "--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --source --sisupod --manifest", -         "act8"             : "--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --pg --update --manifest", -         "act9"             : "--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --pg --update --source --sisupod --manifest" -      ], -      "default": [ -         "papersize"        : "a4,letter", -         "text_wrap"        : "78", -         "emphasis"         : "bold", -         "language"         : "en", -         "digest"           : "sha256" -      ], -      "permission": [ -         "share_source"     : "" -       ], -      "program_select": [ -         "editor"           : "vim", -         "epub_viewer"      : "ebook-viewer", -         "html_viewer"      : "xombrero", -         "odf_viewer"       : "lowriter", -         "pdf_viewer"       : "evince", -         "xml_viewer"       : "xml-viewer" -      ], -      "search": [ -         "flag"             : "", -         "action"           : "", -         "db"               : "", -         "title"            : "" -      ] -    ]; -    return conf_; -  } -  string[string][string] make_aa() { -    auto make_ = [ -      "make": [ -        "bold"              : "", -        "breaks"            : "", -        "cover_image"       : "", -        "css"               : "", -        "emphasis"          : "", -        "footer"            : "", -        "headings"          : "", -        "home_button_image" : "", -        "home_button_text"  : "", -        "italics"           : "", -        "num_top"           : "", -        "num_depth"         : "", -        "substitute"        : "", -        "texpdf_font"       : "" -      ] -    ]; -    return make_; -  } -  string[string][string] meta_aa() { -    auto meta_ = [ -      "classify": [ -        "dewey"             : "", -        "keywords"          : "", -        "loc"               : "", -        "subject"           : "", -        "topic_register"    : "" -      ], -      "creator": [ -        "author"            : "", -        "author_email"      : "", -        "illustrator"       : "", -        "translator"        : "" -      ], -      "date": [ -        "added_to_site"     : "", -        "available"         : "", -        "created"           : "", -        "issued"            : "", -        "modified"          : "", -        "published"         : "", -        "valid"             : "" -      ], -      "identifier": [ -        "isbn"              : "", -        "oclc"              : "", -        "pg"                : "" -      ], -      "links": [ -        "link"              : "" -      ], -      "notes": [ -        "abstract"          : "", -        "description"       : "" -      ], -      "original": [ -        "language"          : "", -        "source"            : "", -        "title"             : "" -      ], -      "publisher": [ -        "name"              : "" -      ], -      "rights": [ -        "copyright"         : "", -        "cover"             : "", -        "illustrations"     : "", -        "license"           : "" -      ], -      "title": [ -        "edition"           : "", -        "full"              : "", -        "language"          : "", -        "main"              : "", -        "note"              : "", -        "sub"               : "", -        "subtitle"          : "" -      ] -    ]; -    return meta_; -  } +string[string][string] conf_aa() { +  auto conf_ = [ +    "webserv": [ +       "url_root"         : "", +       "path"             : "~/sdp_www" , +       "images"           : "" , +       "cgi"              : "/usr/local/lib/sdp-cgi" +    ], +    "webserv_cgi": [ +       "host"             : "localhost", +       "base_path"        : "", +       "port"             : "8081", +       "user"             : "", +       "file_links"       : "www.sisudoc.org" +    ], +    "processing": [ +       "path"             : "~", +       "dir"              : "_sisu_processing", +       "concord_max"      : "400000" +    ], +    "flag": [ +       "act0"             : "--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --manifest --verbose", +       "act1"             : "--digest --text --html --manifest", +       "act2"             : "--digest --text --html --epub --pdf --manifest", +       "act3"             : "--digest --qrcode --text --html --epub --concordance --pdf --manifest", +       "act4"             : "--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --manifest", +       "act5"             : "--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --sqlite --manifest", +       "act6"             : "--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --manifest", +       "act7"             : "--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --source --sisupod --manifest", +       "act8"             : "--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --pg --update --manifest", +       "act9"             : "--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --pg --update --source --sisupod --manifest" +    ], +    "default": [ +       "papersize"        : "a4,letter", +       "text_wrap"        : "78", +       "emphasis"         : "bold", +       "language"         : "en", +       "digest"           : "sha256" +    ], +    "permission": [ +       "share_source"     : "" +     ], +    "program_select": [ +       "editor"           : "vim", +       "epub_viewer"      : "ebook-viewer", +       "html_viewer"      : "xombrero", +       "odf_viewer"       : "lowriter", +       "pdf_viewer"       : "evince", +       "xml_viewer"       : "xml-viewer" +    ], +    "search": [ +       "flag"             : "", +       "action"           : "", +       "db"               : "", +       "title"            : "" +    ] +  ]; +  return conf_; +} +string[string][string] make_aa() { +  auto make_ = [ +    "make": [ +      "bold"              : "", +      "breaks"            : "", +      "cover_image"       : "", +      "css"               : "", +      "emphasis"          : "", +      "footer"            : "", +      "headings"          : "", +      "home_button_image" : "", +      "home_button_text"  : "", +      "italics"           : "", +      "num_top"           : "", +      "num_depth"         : "", +      "substitute"        : "", +      "texpdf_font"       : "" +    ] +  ]; +  return make_; +} +string[string][string] meta_aa() { +  auto meta_ = [ +    "classify": [ +      "dewey"             : "", +      "keywords"          : "", +      "loc"               : "", +      "subject"           : "", +      "topic_register"    : "" +    ], +    "creator": [ +      "author"            : "", +      "author_email"      : "", +      "illustrator"       : "", +      "translator"        : "" +    ], +    "date": [ +      "added_to_site"     : "", +      "available"         : "", +      "created"           : "", +      "issued"            : "", +      "modified"          : "", +      "published"         : "", +      "valid"             : "" +    ], +    "identifier": [ +      "isbn"              : "", +      "oclc"              : "", +      "pg"                : "" +    ], +    "links": [ +      "link"              : "" +    ], +    "notes": [ +      "abstract"          : "", +      "description"       : "" +    ], +    "original": [ +      "language"          : "", +      "source"            : "", +      "title"             : "" +    ], +    "publisher": [ +      "name"              : "" +    ], +    "rights": [ +      "copyright"         : "", +      "cover"             : "", +      "illustrations"     : "", +      "license"           : "" +    ], +    "title": [ +      "edition"           : "", +      "full"              : "", +      "language"          : "", +      "main"              : "", +      "note"              : "", +      "sub"               : "", +      "subtitle"          : "" +    ] +  ]; +  return meta_; +}  #+END_SRC  ** template: metadata associative array indexes                     :header: -#+name: ao_defaults_templates +#+name: ao_defaults_template_registers  #+BEGIN_SRC d -  auto ptr_head_main = -    [ -      "classify", -      "creator", -      "date", -      "identifier", -      "links", -      "make",             /+ make +/ -      "original", -      "notes", -      "rights", -      "title" -    ]; -  auto ptr_head_sub_classify = -    [ -      "dewey", -      "keywords", -      "loc", -      "subject", -      "topic_register" -    ]; -  auto ptr_head_sub_creator = -    [ -      "author", -      "author_email", -      "cover", -      "illustrator", -      "translator" -    ]; -  auto ptr_head_sub_date = -    [ -      "added_to_site", -      "available", -      "created", -      "issued", -      "modified", -      "published", -      "valid" -    ]; -  auto ptr_head_sub_identifier = -    [ -      "isbn", -      "oclc", -      "pg" -    ]; -  /+ make +/ -  auto ptr_head_sub_make = -    [ -      "cover_image", -      "home_button_image", -      "home_button_text", -      "footer", "headings", -      "num_top", "num_depth", -      "breaks", -      "substitute", -      "bold", -      "italics", -      "emphasis", -      "texpdf_font", -      "css" -    ]; -  auto ptr_head_sub_notes = -    [ -      "abstract", -      "description" -    ]; -  auto ptr_head_sub_original = -    [ -      "language", -      "source", -      "title" -    ]; -  auto ptr_head_sub_publisher = -    [ "name" ]; -  auto ptr_head_sub_rights = -    [ -      "copyright", -      "cover", -      "illustrations", -      "license" -    ]; -  auto ptr_head_sub_title = -    [ -      "edition", -      "full", -      "language", -      "main", -      "note", -      "sub" -    ]; -  auto config_jsonstr = `{ -  }`; -} +auto ptr_head_main = +  [ +    "classify", +    "creator", +    "date", +    "identifier", +    "links", +    "make",             /+ make +/ +    "original", +    "notes", +    "rights", +    "title" +  ]; +auto ptr_head_sub_classify = +  [ +    "dewey", +    "keywords", +    "loc", +    "subject", +    "topic_register" +  ]; +auto ptr_head_sub_creator = +  [ +    "author", +    "author_email", +    "cover", +    "illustrator", +    "translator" +  ]; +auto ptr_head_sub_date = +  [ +    "added_to_site", +    "available", +    "created", +    "issued", +    "modified", +    "published", +    "valid" +  ]; +auto ptr_head_sub_identifier = +  [ +    "isbn", +    "oclc", +    "pg" +  ]; +/+ make +/ +auto ptr_head_sub_make = +  [ +    "cover_image", +    "home_button_image", +    "home_button_text", +    "footer", "headings", +    "num_top", "num_depth", +    "breaks", +    "substitute", +    "bold", +    "italics", +    "emphasis", +    "texpdf_font", +    "css" +  ]; +auto ptr_head_sub_notes = +  [ +    "abstract", +    "description" +  ]; +auto ptr_head_sub_original = +  [ +    "language", +    "source", +    "title" +  ]; +auto ptr_head_sub_publisher = +  [ "name" ]; +auto ptr_head_sub_rights = +  [ +    "copyright", +    "cover", +    "illustrations", +    "license" +  ]; +auto ptr_head_sub_title = +  [ +    "edition", +    "full", +    "language", +    "main", +    "note", +    "sub" +  ]; +auto config_jsonstr = `{ +}`;  #+END_SRC  *** notes headers -#+name: ao_defaults_templates +#+name: ao_defaults_template  #+BEGIN_SRC d  /+    /+ @@ -371,363 +415,351 @@ header.  ** template: language codes -#+name: ao_defaults_templates +#+name: ao_defaults_template_language_codes  #+BEGIN_SRC d -template SiSUlanguageCodes() { -  /+ language codes +/ -  struct Lang { -    string[string][string] codes() { -      auto _lang_codes = [ -        "am":    [ "c": "am",    "n": "Amharic",           "t": "Amharic",                   "xlp": "amharic"      ], -        "bg":    [ "c": "bg",    "n": "Bulgarian",         "t": "Български (Bəlgarski)",     "xlp": "bulgarian"    ], -        "bn":    [ "c": "bn",    "n": "Bengali",           "t": "Bengali",                   "xlp": "bengali"      ], -        "br":    [ "c": "br",    "n": "Breton",            "t": "Breton",                    "xlp": "breton"       ], -        "ca":    [ "c": "ca",    "n": "Catalan",           "t": "catalan",                   "xlp": "catalan"      ], -        "cs":    [ "c": "cs",    "n": "Czech",             "t": "česky",                     "xlp": "czech"        ], -        "cy":    [ "c": "cy",    "n": "Welsh",             "t": "Welsh",                     "xlp": "welsh"        ], -        "da":    [ "c": "da",    "n": "Danish",            "t": "dansk",                     "xlp": "danish"       ], -        "de":    [ "c": "de",    "n": "German",            "t": "Deutsch",                   "xlp": "german"       ], -        "el":    [ "c": "el",    "n": "Greek",             "t": "Ελληνικά (Ellinika)",       "xlp": "greek"        ], -        "en":    [ "c": "en",    "n": "English",           "t": "English",                   "xlp": "english"      ], -        "eo":    [ "c": "eo",    "n": "Esperanto",         "t": "Esperanto",                 "xlp": "esperanto"    ], -        "es":    [ "c": "es",    "n": "Spanish",           "t": "español",                   "xlp": "spanish"      ], -        "et":    [ "c": "et",    "n": "Estonian",          "t": "Estonian",                  "xlp": "estonian"     ], -        "eu":    [ "c": "eu",    "n": "Basque",            "t": "basque",                    "xlp": "basque"       ], -        "fi":    [ "c": "fi",    "n": "Finnish",           "t": "suomi",                     "xlp": "finnish"      ], -        "fr":    [ "c": "fr",    "n": "French",            "t": "français",                  "xlp": "french"       ], -        "ga":    [ "c": "ga",    "n": "Irish",             "t": "Irish",                     "xlp": "irish"        ], -        "gl":    [ "c": "gl",    "n": "Galician",          "t": "Galician",                  "xlp": "galician"     ], -        "he":    [ "c": "he",    "n": "Hebrew",            "t": "Hebrew",                    "xlp": "hebrew"       ], -        "hi":    [ "c": "hi",    "n": "Hindi",             "t": "Hindi",                     "xlp": "hindi"        ], -        "hr":    [ "c": "hr",    "n": "Croatian",          "t": "Croatian",                  "xlp": "croatian"     ], -        "hy":    [ "c": "hy",    "n": "Armenian",          "t": "Armenian",                  "xlp": "armenian"     ], -        "ia":    [ "c": "ia",    "n": "Interlingua",       "t": "Interlingua",               "xlp": "interlingua"  ], -        "is":    [ "c": "is",    "n": "Icelandic",         "t": "Icelandic",                 "xlp": "icelandic"    ], -        "it":    [ "c": "it",    "n": "Italian",           "t": "Italiano",                  "xlp": "italian"      ], -        "ja":    [ "c": "ja",    "n": "Japanese",          "t": "日本語 (Nihongo)",         "xlp": "japanese"      ], -        "ko":    [ "c": "ko",    "n": "Korean",            "t": "Korean",                    "xlp": "korean"       ], -        "la":    [ "c": "la",    "n": "Latin",             "t": "Latin",                     "xlp": "latin"        ], -        "lo":    [ "c": "lo",    "n": "Lao",               "t": "Lao",                       "xlp": "lao"          ], -        "lt":    [ "c": "lt",    "n": "Lithuanian",        "t": "Lithuanian",                "xlp": "lithuanian"   ], -        "lv":    [ "c": "lv",    "n": "Latvian",           "t": "Latvian",                   "xlp": "latvian"      ], -        "ml":    [ "c": "ml",    "n": "Malayalam",         "t": "Malayalam",                 "xlp": "malayalam"    ], -        "mr":    [ "c": "mr",    "n": "Marathi",           "t": "Marathi",                   "xlp": "marathi"      ], -        "nl":    [ "c": "nl",    "n": "Dutch",             "t": "Nederlands",                "xlp": "dutch"        ], -        "no":    [ "c": "no",    "n": "Norwegian",         "t": "norsk",                     "xlp": "norsk"        ], -        "nn":    [ "c": "nn",    "n": "Norwegian Nynorsk", "t": "nynorsk",                   "xlp": "nynorsk"      ], -        "oc":    [ "c": "oc",    "n": "Occitan",           "t": "Occitan",                   "xlp": "occitan"      ], -        "pl":    [ "c": "pl",    "n": "Polish",            "t": "polski",                    "xlp": "polish"       ], -        "pt":    [ "c": "pt",    "n": "Portuguese",        "t": "Português",                 "xlp": "portuges"     ], -        "pt_BR": [ "c": "pt_BR", "n": "Portuguese Brazil", "t": "Brazilian Português",       "xlp": "brazilian"    ], -        "ro":    [ "c": "ro",    "n": "Romanian",          "t": "română",                    "xlp": "romanian"     ], -        "ru":    [ "c": "ru",    "n": "Russian",           "t": "Русский (Russkij)",         "xlp": "russian"      ], -        "sa":    [ "c": "sa",    "n": "Sanskrit",          "t": "Sanskrit",                  "xlp": "sanskrit"     ], -        "se":    [ "c": "se",    "n": "Sami",              "t": "Samin",                     "xlp": "samin"        ], -        "sk":    [ "c": "sk",    "n": "Slovak",            "t": "slovensky",                 "xlp": "slovak"       ], -        "sl":    [ "c": "sl",    "n": "Slovenian",         "t": "Slovenian",                 "xlp": "slovenian"    ], -        "sq":    [ "c": "sq",    "n": "Albanian",          "t": "Albanian",                  "xlp": "albanian"     ], -        "sr":    [ "c": "sr",    "n": "Serbian",           "t": "Serbian",                   "xlp": "serbian"      ], -        "sv":    [ "c": "sv",    "n": "Swedish",           "t": "svenska",                   "xlp": "swedish"      ], -        "ta":    [ "c": "ta",    "n": "Tamil",             "t": "Tamil",                     "xlp": "tamil"        ], -        "te":    [ "c": "te",    "n": "Telugu",            "t": "Telugu",                    "xlp": "telugu"       ], -        "th":    [ "c": "th",    "n": "Thai",              "t": "Thai",                      "xlp": "thai"         ], -        "tk":    [ "c": "tk",    "n": "Turkmen",           "t": "Turkmen",                   "xlp": "turkmen"      ], -        "tr":    [ "c": "tr",    "n": "Turkish",           "t": "Türkçe",                    "xlp": "turkish"      ], -        "uk":    [ "c": "uk",    "n": "Ukranian",          "t": "українська (ukrajins\"ka)", "xlp": "ukrainian"    ], -        "ur":    [ "c": "ur",    "n": "Urdu",              "t": "Urdu",                      "xlp": "urdu"         ], -        "us":    [ "c": "en",    "n": "English (American)","t": "English",                   "xlp": "english"      ], -        "vi":    [ "c": "vi",    "n": "Vietnamese",        "t": "Vietnamese",                "xlp": "vietnamese"   ], -        "zh":    [ "c": "zh",    "n": "Chinese",           "t": "中文",                     "xlp": "chinese"       ], -        "en":    [ "c": "en",    "n": "English",           "t": "English",                   "xlp": "english"      ], -        "xx":    [ "c": "xx",    "n": "Default",           "t": "English",                   "xlp": "english"      ], -      ]; -      return _lang_codes; -    } -    string[] code_arr_ptr() { -      auto _lang_codes = ["am", "bg", "bn", "br", "ca", "cs", "cy", "da", "de", "el", "en", "eo", "es", "et", "eu", "fi", "fr", "ga", "gl", "he", "hi", "hr", "hy", "ia", "is", "it", "ja", "ko", "la", "lo", "lt", "lv", "ml", "mr", "nl", "no", "nn", "oc", "pl", "pt", "pt_BR", "ro", "ru", "sa", "se", "sk", "sl", "sq", "sr", "sv", "ta", "te", "th", "tk", "tr", "uk", "ur", "us", "vi", "zh", "en", "xx",]; -      return _lang_codes; -    } -    string[] code_arr() { -      auto _lang_codes = ["am", "bg", "bn", "br", "ca", "cs", "cy", "da", "de", "el", "en", "eo", "es", "et", "eu", "fi", "fr", "ga", "gl", "he", "hi", "hr", "hy", "ia", "is", "it", "ja", "ko", "la", "lo", "lt", "lv", "ml", "mr", "nl", "no", "nn", "oc", "pl", "pt", "pt_BR", "ro", "ru", "sa", "se", "sk", "sl", "sq", "sr", "sv", "ta", "te", "th", "tk", "tr", "uk", "ur", "vi", "zh"]; -      return _lang_codes; -    } -    auto codes_() { -      // return join(code_arr,"|"); -      return "(" ~ join(code_arr,"|") ~ ")"; -    } -    auto codes_regex() { -      return regex(codes_); -    } +/+ language codes +/ +struct Lang { +  string[string][string] codes() { +    auto _lang_codes = [ +      "am":    [ "c": "am",    "n": "Amharic",           "t": "Amharic",                   "xlp": "amharic"      ], +      "bg":    [ "c": "bg",    "n": "Bulgarian",         "t": "Български (Bəlgarski)",     "xlp": "bulgarian"    ], +      "bn":    [ "c": "bn",    "n": "Bengali",           "t": "Bengali",                   "xlp": "bengali"      ], +      "br":    [ "c": "br",    "n": "Breton",            "t": "Breton",                    "xlp": "breton"       ], +      "ca":    [ "c": "ca",    "n": "Catalan",           "t": "catalan",                   "xlp": "catalan"      ], +      "cs":    [ "c": "cs",    "n": "Czech",             "t": "česky",                     "xlp": "czech"        ], +      "cy":    [ "c": "cy",    "n": "Welsh",             "t": "Welsh",                     "xlp": "welsh"        ], +      "da":    [ "c": "da",    "n": "Danish",            "t": "dansk",                     "xlp": "danish"       ], +      "de":    [ "c": "de",    "n": "German",            "t": "Deutsch",                   "xlp": "german"       ], +      "el":    [ "c": "el",    "n": "Greek",             "t": "Ελληνικά (Ellinika)",       "xlp": "greek"        ], +      "en":    [ "c": "en",    "n": "English",           "t": "English",                   "xlp": "english"      ], +      "eo":    [ "c": "eo",    "n": "Esperanto",         "t": "Esperanto",                 "xlp": "esperanto"    ], +      "es":    [ "c": "es",    "n": "Spanish",           "t": "español",                   "xlp": "spanish"      ], +      "et":    [ "c": "et",    "n": "Estonian",          "t": "Estonian",                  "xlp": "estonian"     ], +      "eu":    [ "c": "eu",    "n": "Basque",            "t": "basque",                    "xlp": "basque"       ], +      "fi":    [ "c": "fi",    "n": "Finnish",           "t": "suomi",                     "xlp": "finnish"      ], +      "fr":    [ "c": "fr",    "n": "French",            "t": "français",                  "xlp": "french"       ], +      "ga":    [ "c": "ga",    "n": "Irish",             "t": "Irish",                     "xlp": "irish"        ], +      "gl":    [ "c": "gl",    "n": "Galician",          "t": "Galician",                  "xlp": "galician"     ], +      "he":    [ "c": "he",    "n": "Hebrew",            "t": "Hebrew",                    "xlp": "hebrew"       ], +      "hi":    [ "c": "hi",    "n": "Hindi",             "t": "Hindi",                     "xlp": "hindi"        ], +      "hr":    [ "c": "hr",    "n": "Croatian",          "t": "Croatian",                  "xlp": "croatian"     ], +      "hy":    [ "c": "hy",    "n": "Armenian",          "t": "Armenian",                  "xlp": "armenian"     ], +      "ia":    [ "c": "ia",    "n": "Interlingua",       "t": "Interlingua",               "xlp": "interlingua"  ], +      "is":    [ "c": "is",    "n": "Icelandic",         "t": "Icelandic",                 "xlp": "icelandic"    ], +      "it":    [ "c": "it",    "n": "Italian",           "t": "Italiano",                  "xlp": "italian"      ], +      "ja":    [ "c": "ja",    "n": "Japanese",          "t": "日本語 (Nihongo)",         "xlp": "japanese"      ], +      "ko":    [ "c": "ko",    "n": "Korean",            "t": "Korean",                    "xlp": "korean"       ], +      "la":    [ "c": "la",    "n": "Latin",             "t": "Latin",                     "xlp": "latin"        ], +      "lo":    [ "c": "lo",    "n": "Lao",               "t": "Lao",                       "xlp": "lao"          ], +      "lt":    [ "c": "lt",    "n": "Lithuanian",        "t": "Lithuanian",                "xlp": "lithuanian"   ], +      "lv":    [ "c": "lv",    "n": "Latvian",           "t": "Latvian",                   "xlp": "latvian"      ], +      "ml":    [ "c": "ml",    "n": "Malayalam",         "t": "Malayalam",                 "xlp": "malayalam"    ], +      "mr":    [ "c": "mr",    "n": "Marathi",           "t": "Marathi",                   "xlp": "marathi"      ], +      "nl":    [ "c": "nl",    "n": "Dutch",             "t": "Nederlands",                "xlp": "dutch"        ], +      "no":    [ "c": "no",    "n": "Norwegian",         "t": "norsk",                     "xlp": "norsk"        ], +      "nn":    [ "c": "nn",    "n": "Norwegian Nynorsk", "t": "nynorsk",                   "xlp": "nynorsk"      ], +      "oc":    [ "c": "oc",    "n": "Occitan",           "t": "Occitan",                   "xlp": "occitan"      ], +      "pl":    [ "c": "pl",    "n": "Polish",            "t": "polski",                    "xlp": "polish"       ], +      "pt":    [ "c": "pt",    "n": "Portuguese",        "t": "Português",                 "xlp": "portuges"     ], +      "pt_BR": [ "c": "pt_BR", "n": "Portuguese Brazil", "t": "Brazilian Português",       "xlp": "brazilian"    ], +      "ro":    [ "c": "ro",    "n": "Romanian",          "t": "română",                    "xlp": "romanian"     ], +      "ru":    [ "c": "ru",    "n": "Russian",           "t": "Русский (Russkij)",         "xlp": "russian"      ], +      "sa":    [ "c": "sa",    "n": "Sanskrit",          "t": "Sanskrit",                  "xlp": "sanskrit"     ], +      "se":    [ "c": "se",    "n": "Sami",              "t": "Samin",                     "xlp": "samin"        ], +      "sk":    [ "c": "sk",    "n": "Slovak",            "t": "slovensky",                 "xlp": "slovak"       ], +      "sl":    [ "c": "sl",    "n": "Slovenian",         "t": "Slovenian",                 "xlp": "slovenian"    ], +      "sq":    [ "c": "sq",    "n": "Albanian",          "t": "Albanian",                  "xlp": "albanian"     ], +      "sr":    [ "c": "sr",    "n": "Serbian",           "t": "Serbian",                   "xlp": "serbian"      ], +      "sv":    [ "c": "sv",    "n": "Swedish",           "t": "svenska",                   "xlp": "swedish"      ], +      "ta":    [ "c": "ta",    "n": "Tamil",             "t": "Tamil",                     "xlp": "tamil"        ], +      "te":    [ "c": "te",    "n": "Telugu",            "t": "Telugu",                    "xlp": "telugu"       ], +      "th":    [ "c": "th",    "n": "Thai",              "t": "Thai",                      "xlp": "thai"         ], +      "tk":    [ "c": "tk",    "n": "Turkmen",           "t": "Turkmen",                   "xlp": "turkmen"      ], +      "tr":    [ "c": "tr",    "n": "Turkish",           "t": "Türkçe",                    "xlp": "turkish"      ], +      "uk":    [ "c": "uk",    "n": "Ukranian",          "t": "українська (ukrajins\"ka)", "xlp": "ukrainian"    ], +      "ur":    [ "c": "ur",    "n": "Urdu",              "t": "Urdu",                      "xlp": "urdu"         ], +      "us":    [ "c": "en",    "n": "English (American)","t": "English",                   "xlp": "english"      ], +      "vi":    [ "c": "vi",    "n": "Vietnamese",        "t": "Vietnamese",                "xlp": "vietnamese"   ], +      "zh":    [ "c": "zh",    "n": "Chinese",           "t": "中文",                     "xlp": "chinese"       ], +      "en":    [ "c": "en",    "n": "English",           "t": "English",                   "xlp": "english"      ], +      "xx":    [ "c": "xx",    "n": "Default",           "t": "English",                   "xlp": "english"      ], +    ]; +    return _lang_codes; +  } +  string[] code_arr_ptr() { +    auto _lang_codes = ["am", "bg", "bn", "br", "ca", "cs", "cy", "da", "de", "el", "en", "eo", "es", "et", "eu", "fi", "fr", "ga", "gl", "he", "hi", "hr", "hy", "ia", "is", "it", "ja", "ko", "la", "lo", "lt", "lv", "ml", "mr", "nl", "no", "nn", "oc", "pl", "pt", "pt_BR", "ro", "ru", "sa", "se", "sk", "sl", "sq", "sr", "sv", "ta", "te", "th", "tk", "tr", "uk", "ur", "us", "vi", "zh", "en", "xx",]; +    return _lang_codes; +  } +  string[] code_arr() { +    auto _lang_codes = ["am", "bg", "bn", "br", "ca", "cs", "cy", "da", "de", "el", "en", "eo", "es", "et", "eu", "fi", "fr", "ga", "gl", "he", "hi", "hr", "hy", "ia", "is", "it", "ja", "ko", "la", "lo", "lt", "lv", "ml", "mr", "nl", "no", "nn", "oc", "pl", "pt", "pt_BR", "ro", "ru", "sa", "se", "sk", "sl", "sq", "sr", "sv", "ta", "te", "th", "tk", "tr", "uk", "ur", "vi", "zh"]; +    return _lang_codes; +  } +  auto codes_() { +    // return join(code_arr,"|"); +    return "(" ~ join(code_arr,"|") ~ ")"; +  } +  auto codes_regex() { +    return regex(codes_);    }  }  #+END_SRC  ** template: flags regex initialize                            :regex_flags: -#+name: ao_defaults_templates +#+name: ao_defaults_template_init_flags  #+BEGIN_SRC d  /+ regex flags +/ -template SiSUrgxInitFlags() { -  int[string] flags_type_init() { -    int[string] flags_type_init = [ -      "make_headings"        : 0, -      "header_make"          : 0, -      "header_meta"          : 0, -      "heading"              : 0, -      "biblio_section"       : 0, -      "glossary_section"     : 0, -      "blurb_section"        : 0, -      "para"                 : 0, -      "blocks"               : 0, // 0..2 generic -      "code"                 : 0, // 0..2 -      "poem"                 : 0, // 0..2 -      "table"                : 0, // 0..2 -      "group"                : 0, // 0..2 -      "block"                : 0, // 0..2 -      "quote"                : 0, // 0..2 -      "verse_new"            : 0, -      "curly_code"           : 0, -      "curly_poem"           : 0, -      "curly_table"          : 0, -      "curly_group"          : 0, -      "curly_block"          : 0, -      "curly_quote"          : 0, -      "tic_code"             : 0, -      "tic_poem"             : 0, -      "tic_table"            : 0, -      "tic_group"            : 0, -      "tic_block"            : 0, -      "tic_quote"            : 0, -      "ocn_status"           : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings -      "ocn_status_multi_obj" : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings -      "book_index"           : 0, -    ]; -    return flags_type_init; -  } +int[string] flags_type_init() { +  int[string] flags_type_init = [ +    "make_headings"        : 0, +    "header_make"          : 0, +    "header_meta"          : 0, +    "heading"              : 0, +    "biblio_section"       : 0, +    "glossary_section"     : 0, +    "blurb_section"        : 0, +    "para"                 : 0, +    "blocks"               : 0, // 0..2 generic +    "code"                 : 0, // 0..2 +    "poem"                 : 0, // 0..2 +    "table"                : 0, // 0..2 +    "group"                : 0, // 0..2 +    "block"                : 0, // 0..2 +    "quote"                : 0, // 0..2 +    "verse_new"            : 0, +    "curly_code"           : 0, +    "curly_poem"           : 0, +    "curly_table"          : 0, +    "curly_group"          : 0, +    "curly_block"          : 0, +    "curly_quote"          : 0, +    "tic_code"             : 0, +    "tic_poem"             : 0, +    "tic_table"            : 0, +    "tic_group"            : 0, +    "tic_block"            : 0, +    "tic_quote"            : 0, +    "ocn_status"           : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings +    "ocn_status_multi_obj" : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings +    "book_index"           : 0, +  ]; +  return flags_type_init;  }  #+END_SRC -#+name: ao_defaults_templates +#+name: ao_defaults_template_node  #+BEGIN_SRC d -template SiSUnode() { -  string[string] node_metadata_heading_str() { -    auto _node = [ -        "is"                            : "", -        "ocn"                           : "", -        "marked_up_lev"                 : "", -        "segment_anchor_tag"            : "", -        "attrib"                        : "", -    ]; -    return _node; -  } -  int[string] node_metadata_heading_int() { -    auto _node = [ -        "ocn"                           : 0, // decide whether to use or keep? -        "ptr_doc_object"                : 0, -        "ptr_html_segnames"             : 0, -        "ptr_heading"                   : 0, -        "heading_lev_markup"            : 9, -        "heading_lev_collapsed"         : 9, -        "parent_ocn"                    : 0, -        "parent_lev_markup"             : 9, -    ]; -    return _node; -  } -  string[string] node_metadata_para_str() { -    auto _node = [ -        "is"                            : "", -        "ocn"                           : "", -        "attrib"                        : "", -        // "segment_anchor_tag"            : "", -    ]; -    return _node; -  } -  int[string] node_metadata_para_int() { -    auto _node = [ -        "ocn"                           : 0, -        "indent_base"                   : 0, -        "indent_hang"                   : 0, -        "bullet"                        : 0, // bool (0|1) -    ]; -    return _node; -  } +string[string] node_metadata_heading_str() { +  auto _node = [ +      "is"                            : "", +      "ocn"                           : "", +      "marked_up_lev"                 : "", +      "segment_anchor_tag"            : "", +      "attrib"                        : "", +  ]; +  return _node; +} +int[string] node_metadata_heading_int() { +  auto _node = [ +      "ocn"                           : 0, // decide whether to use or keep? +      "ptr_doc_object"                : 0, +      "ptr_html_segnames"             : 0, +      "ptr_heading"                   : 0, +      "heading_lev_markup"            : 9, +      "heading_lev_collapsed"         : 9, +      "parent_ocn"                    : 0, +      "parent_lev_markup"             : 9, +  ]; +  return _node; +} +string[string] node_metadata_para_str() { +  auto _node = [ +      "is"                            : "", +      "ocn"                           : "", +      "attrib"                        : "", +      // "segment_anchor_tag"            : "", +  ]; +  return _node; +} +int[string] node_metadata_para_int() { +  auto _node = [ +      "ocn"                           : 0, +      "indent_base"                   : 0, +      "indent_hang"                   : 0, +      "bullet"                        : 0, // bool (0|1) +  ]; +  return _node;  }  #+END_SRC  ** template: bibliography                                           :biblio: -#+name: ao_defaults_templates +#+name: ao_defaults_template_biblio  #+BEGIN_SRC d -template SiSUbiblio() { -  // required: deemed_author (author || editor); year; fulltitle; -  struct BibJsnStr { -    auto biblio_entry_tags_jsonstr() { -      string x =  `{ -        "is"                               : "", -        "sortby_deemed_author_year_title"  : "", -        "deemed_author"                    : "", -        "author_raw"                       : "", -        "author"                           : "", -        "author_arr"                       : [ "" ], -        "editor_raw"                       : "", -        "editor"                           : "", -        "editor_arr"                       : [ "" ], -        "title"                            : "", -        "subtitle"                         : "", -        "fulltitle"                        : "", -        "language"                         : "", -        "trans"                            : "", -        "src"                              : "", -        "journal"                          : "", -        "in"                               : "", -        "volume"                           : "", -        "edition"                          : "", -        "year"                             : "", -        "place"                            : "", -        "publisher"                        : "", -        "url"                              : "", -        "pages"                            : "", -        "note"                             : "", -        "short_name"                       : "", -        "id"                               : "" -      }`; // is: book, article, magazine, newspaper, blog, other -      return x; -    } +// required: deemed_author (author || editor); year; fulltitle; +struct BibJsnStr { +  auto biblio_entry_tags_jsonstr() { +    string x =  `{ +      "is"                               : "", +      "sortby_deemed_author_year_title"  : "", +      "deemed_author"                    : "", +      "author_raw"                       : "", +      "author"                           : "", +      "author_arr"                       : [ "" ], +      "editor_raw"                       : "", +      "editor"                           : "", +      "editor_arr"                       : [ "" ], +      "title"                            : "", +      "subtitle"                         : "", +      "fulltitle"                        : "", +      "language"                         : "", +      "trans"                            : "", +      "src"                              : "", +      "journal"                          : "", +      "in"                               : "", +      "volume"                           : "", +      "edition"                          : "", +      "year"                             : "", +      "place"                            : "", +      "publisher"                        : "", +      "url"                              : "", +      "pages"                            : "", +      "note"                             : "", +      "short_name"                       : "", +      "id"                               : "" +    }`; // is: book, article, magazine, newspaper, blog, other +    return x;    }  }  #+END_SRC  ** TODO template: dir paths                                       :dir:path: -#+name: ao_defaults_templates +#+name: ao_defaults_template_paths  #+BEGIN_SRC d -template SiSUpaths() { -  string _base_filename(string fn_src) { -    string _fn_base = ""; -    if (extension(fn_src) == ".sst") { -      _fn_base = baseName(fn_src, ".sst"); -    } else if (extension(fn_src) == ".ssm") { -      _fn_base = baseName(fn_src, ".ssm"); -    } -    return _fn_base; +string _base_filename(string fn_src) { +  string _fn_base = ""; +  if (extension(fn_src) == ".sst") { +    _fn_base = baseName(fn_src, ".sst"); +  } else if (extension(fn_src) == ".ssm") { +    _fn_base = baseName(fn_src, ".ssm"); +  } +  return _fn_base; +} +struct DirPaths { +  string base_filename(string fn_src) { +    return _base_filename(fn_src); +  } +} +struct SiSUpodPaths { +  string base_filename(string fn_src) { +    return _base_filename(fn_src); +  } +  string base(string fn_src) { +    return chainPath("sisupod", _base_filename(fn_src)).array;    } -  struct DirPaths { -    string base_filename(string fn_src) { -      return _base_filename(fn_src); -    } +  string doc(string fn_src) { +    return chainPath(base(fn_src), "doc").array;    } -  struct SiSUpodPaths { -    string base_filename(string fn_src) { -      return _base_filename(fn_src); -    } -    string base(string fn_src) { -      return chainPath("sisupod", _base_filename(fn_src)).array; -    } -    string doc(string fn_src) { -      return chainPath(base(fn_src), "doc").array; -    } -    string doc_lng(string fn_src, string lng) { -      return chainPath(doc(fn_src), lng).array; -    } -    string image(string fn_src) { -      return chainPath(base(fn_src), "image").array; -    } -    string conf(string fn_src) { -      return chainPath(base(fn_src), "conf").array; -    } -    string css(string fn_src) { -      return chainPath(base(fn_src), "css").array; -    } -    string fn_doc(string fn_src, string lng) { -      return chainPath((doc_lng(fn_src, lng)), baseName(fn_src)).array; -    } +  string doc_lng(string fn_src, string lng) { +    return chainPath(doc(fn_src), lng).array;    } -  struct HtmlPaths { -    string base_filename(string fn_src) { -      return _base_filename(fn_src); -    } -    string base() { -      return chainPath("en", "html").array; -    } -    string seg(string fn_src) { -      return chainPath(base, _base_filename(fn_src)).array; -    } -    string fn_scroll(string fn_src) { -      return chainPath(base, _base_filename(fn_src) ~ ".html").array; -    } -    string fn_seg(string fn_src, string seg_filename) { -      return chainPath(seg(fn_src), seg_filename ~ ".html").array; -    } -    // string fn_css(string fn_src) { -    //   // // return chainPath(seg(fn_src), "html.css").array; -    // } +  string image(string fn_src) { +    return chainPath(base(fn_src), "image").array;    } -  struct EpubPaths { -    string base_filename(string fn_src) { -      return _base_filename(fn_src); -    } -    string base() { -      return chainPath("en", "epub").array; -    } -    string doc(string fn_src) { -      return chainPath(base, _base_filename(fn_src)).array; -      // return chainPath(base, base_fn).array; -    } -    string doc_meta_inf(string fn_src) { -      return chainPath(doc(fn_src), "META-INF").array; -    } -    string doc_oebps(string fn_src) { -      return chainPath(doc(fn_src), "OEBPS").array; -    } -    string doc_oebps_css(string fn_src) { -      return chainPath(doc_oebps(fn_src), "css").array; -    } -    string doc_oebps_image(string fn_src) { -      return chainPath(doc_oebps(fn_src), "image").array; -    } -    string fn_mimetypes(string fn_src) { -      return chainPath(doc(fn_src), "mimetypes").array; -    } -    string fn_dmi_container_xml(string fn_src) { -      return chainPath(doc_meta_inf(fn_src), "container.xml").array; -    } -    string fn_oebps_toc_ncx(string fn_src) { -      return chainPath(doc_oebps(fn_src), "toc.ncx").array; -    } -    string fn_oebps_content_opf(string fn_src) { -      return chainPath(doc_oebps(fn_src), "content.opf").array; -    } -    string fn_oebps_content_xhtml(string fn_src, string seg_filename) { -      return chainPath(doc_oebps(fn_src), seg_filename ~ ".xhtml").array; -    } +  string conf(string fn_src) { +    return chainPath(base(fn_src), "conf").array; +  } +  string css(string fn_src) { +    return chainPath(base(fn_src), "css").array; +  } +  string fn_doc(string fn_src, string lng) { +    return chainPath((doc_lng(fn_src, lng)), baseName(fn_src)).array; +  } +} +struct HtmlPaths { +  string base_filename(string fn_src) { +    return _base_filename(fn_src); +  } +  string base() { +    return chainPath("en", "html").array; +  } +  string seg(string fn_src) { +    return chainPath(base, _base_filename(fn_src)).array; +  } +  string fn_scroll(string fn_src) { +    return chainPath(base, _base_filename(fn_src) ~ ".html").array; +  } +  string fn_seg(string fn_src, string seg_filename) { +    return chainPath(seg(fn_src), seg_filename ~ ".html").array; +  } +  // string fn_css(string fn_src) { +  //   // // return chainPath(seg(fn_src), "html.css").array; +  // } +} +struct EpubPaths { +  string base_filename(string fn_src) { +    return _base_filename(fn_src); +  } +  string base() { +    return chainPath("en", "epub").array; +  } +  string doc(string fn_src) { +    return chainPath(base, _base_filename(fn_src)).array; +    // return chainPath(base, base_fn).array; +  } +  string doc_meta_inf(string fn_src) { +    return chainPath(doc(fn_src), "META-INF").array; +  } +  string doc_oebps(string fn_src) { +    return chainPath(doc(fn_src), "OEBPS").array; +  } +  string doc_oebps_css(string fn_src) { +    return chainPath(doc_oebps(fn_src), "css").array; +  } +  string doc_oebps_image(string fn_src) { +    return chainPath(doc_oebps(fn_src), "image").array; +  } +  string fn_mimetypes(string fn_src) { +    return chainPath(doc(fn_src), "mimetypes").array; +  } +  string fn_dmi_container_xml(string fn_src) { +    return chainPath(doc_meta_inf(fn_src), "container.xml").array; +  } +  string fn_oebps_toc_ncx(string fn_src) { +    return chainPath(doc_oebps(fn_src), "toc.ncx").array; +  } +  string fn_oebps_content_opf(string fn_src) { +    return chainPath(doc_oebps(fn_src), "content.opf").array; +  } +  string fn_oebps_content_xhtml(string fn_src, string seg_filename) { +    return chainPath(doc_oebps(fn_src), seg_filename ~ ".xhtml").array;    }  }  #+END_SRC  ** template: internal markup                                        :markup: -#+name: ao_defaults_templates +#+name: ao_defaults_template_markup  #+BEGIN_SRC d -template InternalMarkup() { -  struct InlineMarkup { -    auto en_a_o = "【";      auto en_a_c = "】";   // endnote en_a_o: '~{'; en_a_c: '}~'; -    auto en_b_o = "〖";      auto en_b_c = "〗";   // endnote en_b_o: '~['; en_b_c: ']~'; -    auto lnk_o = "┥";        auto lnk_c = "┝"; -    auto url_o = "┤";        auto url_c = "├"; -    auto mark_internal_site_lnk = "¤"; -    auto nbsp = "░"; -    auto br_line = "┘"; -    auto br_nl = "┙"; -    auto br_paragraph = "┚"; -    auto br_obj = "break_obj"; -    auto br_page_line = "┼"; -    auto br_page = "┿"; -    auto br_page_new = "╂"; -    string indent_by_spaces_provided(int indent) { -      auto _indent_spaces ="░░";   // auto nbsp = "░"; -      _indent_spaces = replicate(_indent_spaces, indent); -      return _indent_spaces; -    } +struct InlineMarkup { +  auto en_a_o = "【";      auto en_a_c = "】";   // endnote en_a_o: '~{'; en_a_c: '}~'; +  auto en_b_o = "〖";      auto en_b_c = "〗";   // endnote en_b_o: '~['; en_b_c: ']~'; +  auto lnk_o = "┥";        auto lnk_c = "┝"; +  auto url_o = "┤";        auto url_c = "├"; +  auto mark_internal_site_lnk = "¤"; +  auto nbsp = "░"; +  auto br_line = "┘"; +  auto br_nl = "┙"; +  auto br_paragraph = "┚"; +  auto br_obj = "break_obj"; +  auto br_page_line = "┼"; +  auto br_page = "┿"; +  auto br_page_new = "╂"; +  string indent_by_spaces_provided(int indent) { +    auto _indent_spaces ="░░";   // auto nbsp = "░"; +    _indent_spaces = replicate(_indent_spaces, indent); +    return _indent_spaces;    }  }  #+END_SRC diff --git a/org/sdp.org b/org/sdp.org index bd1005c..48a4e12 100644 --- a/org/sdp.org +++ b/org/sdp.org @@ -185,7 +185,6 @@ mixin CompileTimeInfo;  #+BEGIN_SRC d  mixin SiSUrgxInit;  mixin SiSUregisters; -mixin SiSUheaderExtractHub;  mixin SiSUheaderExtractSDLang;  mixin SiSUnode;  mixin SiSUbiblio; @@ -200,7 +199,6 @@ mixin outputHub;  #+NAME: sdp_args  #+BEGIN_SRC d  auto raw = MarkupRaw(); -auto head = SiSUheaderExtractHub();  /+  struct DocumentParts {    string[string][] contents; @@ -400,7 +398,7 @@ debug(header_and_body) {  #+BEGIN_SRC d  /+ ↓ split header into make and meta +/  auto _0_make_1_dochead_meta_tuple = -  head.SiSUheaderExtractHub(_0_header_1_body_content_2_insert_filelist_tuple[0], conf_doc_make_aa); +  SiSUheaderExtractHub!()(_0_header_1_body_content_2_insert_filelist_tuple[0], conf_doc_make_aa);  static assert(!isTypeTuple!(_0_make_1_dochead_meta_tuple));  static assert(_0_make_1_dochead_meta_tuple.length==2);  #+END_SRC | 
