diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/sdp.d | 4 | ||||
| -rw-r--r-- | src/sdp/ao_conf_make_meta.d | 52 | ||||
| -rw-r--r-- | src/sdp/ao_conf_make_meta_native.d | 7 | ||||
| -rw-r--r-- | src/sdp/ao_conf_make_meta_sdlang.d | 16 | ||||
| -rw-r--r-- | src/sdp/ao_defaults.d | 251 | ||||
| -rw-r--r-- | src/sdp/ao_rgx.d | 2 | 
6 files changed, 139 insertions, 193 deletions
| @@ -43,7 +43,6 @@ mixin CompileTimeInfo;  void main(string[] args) {    mixin SiSUrgxInit;    mixin SiSUregisters; -  mixin SiSUheaderExtractHub;    mixin SiSUheaderExtractSDLang;    mixin SiSUnode;    mixin SiSUbiblio; @@ -52,7 +51,6 @@ void main(string[] args) {    mixin SiSUmarkupRaw;    mixin outputHub;    auto raw = MarkupRaw(); -  auto head = SiSUheaderExtractHub();    /+    struct DocumentParts {      string[string][] contents; @@ -208,7 +206,7 @@ void main(string[] args) {        }        /+ ↓ 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);        /+ ↓ document abstraction: process document, return abstraction as tuple +/ diff --git a/src/sdp/ao_conf_make_meta.d b/src/sdp/ao_conf_make_meta.d index 5c043a2..40c68ea 100644 --- a/src/sdp/ao_conf_make_meta.d +++ b/src/sdp/ao_conf_make_meta.d @@ -10,29 +10,37 @@  +/  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;    }  } diff --git a/src/sdp/ao_conf_make_meta_native.d b/src/sdp/ao_conf_make_meta_native.d index cc907b2..a5e60ef 100644 --- a/src/sdp/ao_conf_make_meta_native.d +++ b/src/sdp/ao_conf_make_meta_native.d @@ -6,10 +6,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; diff --git a/src/sdp/ao_conf_make_meta_sdlang.d b/src/sdp/ao_conf_make_meta_sdlang.d index fe1696d..af76593 100644 --- a/src/sdp/ao_conf_make_meta_sdlang.d +++ b/src/sdp/ao_conf_make_meta_sdlang.d @@ -4,9 +4,17 @@  +/  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; @@ -224,8 +232,8 @@ template SiSUheaderExtractSDLang() {          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/src/sdp/ao_defaults.d b/src/sdp/ao_defaults.d index badfea7..633d67d 100644 --- a/src/sdp/ao_defaults.d +++ b/src/sdp/ao_defaults.d @@ -2,6 +2,7 @@    default settings  +/  template SiSUregisters() { +      string[string][string] conf_aa() {      auto conf_ = [        "webserv": [ @@ -237,169 +238,8 @@ template SiSUregisters() {    auto config_jsonstr = `{    }`;  } -/+ -  /+ -    unify internal representation of header info for native & sdlang document headers -    represent either using struct, hashes or possibly json -    sdp internal representation should be identical for native & sdlang variants -  +/ -header. -  ├── make                         // make instructions -  │   ├── bold -  │   ├── breaks -  │   ├── cover_image -  │   ├── css -  │   ├── emphasis -  │   ├── footer -  │   ├── headings -  │   ├── home_button_image -  │   ├── home_button_text -  │   ├── italics -  │   ├── num_top -  │   ├── substitute -  │   └── texpdf_font -  └── meta                         // metadata -     ├── author                    // move author to creator:author -     ├── classify -     │   ├── dewey -     │   ├── keyword -     │   ├── loc -     │   ├── subject -     │   └── topic_register -     ├── creator -     │   ├── author -     │   │     ├── [ [first_name: x0, last_name: y0], [first_name: x1, last_name: y1] ] -     │   │     └── [ full_name0, full_name1 ] -     │   ├── author_email -     │   ├── illustrator -     │   └── translator -     ├── date -     │   ├── added_to_site -     │   ├── available -     │   ├── created -     │   ├── issued -     │   ├── modified -     │   ├── published -     │   └── valid -     ├── identifier -     │   ├── isbn -     │   ├── oclc -     │   └── pg -     ├── links -     ├── notes -     │   ├── abstract -     │   └── description -     ├── original -     │   ├── language -     │   ├── source -     │   └── title -     ├── publisher -     │   └── name -     ├── rights -     │   ├── copyright -     │   ├── cover -     │   ├── illustrations -     │   └── license -     └── title                    // move title: to title:main -         ├── edition -         ├── [ full (main + sub) ] -         ├── language -         ├── main -         ├── note -         ├── sub -         └── subtitle              // move title:subtitle to title:sub - -61 leaves -+/ -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_); -    } -  } -} -/+ regex flags +/  template SiSUrgxInitFlags() { +  /+ regex flags +/    int[string] flags_type_init() {      int[string] flags_type_init = [        "make_headings"        : 0, @@ -640,3 +480,90 @@ template InternalMarkup() {      }    }  } +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_); +    } +  } +} diff --git a/src/sdp/ao_rgx.d b/src/sdp/ao_rgx.d index 286aa76..f99e542 100644 --- a/src/sdp/ao_rgx.d +++ b/src/sdp/ao_rgx.d @@ -2,8 +2,8 @@    regex: regular expressions used in sisu document parser  +/  template SiSUrgxInit() { +  private import ao_defaults;    struct Rgx { -    mixin SiSUlanguageCodes;      /+ misc +/      static true_dollar                                    = ctRegex!(`\$`, "gm");      static flag_action                                    = ctRegex!(`^(--[a-z][a-z0-9-]+)$`); | 
