diff options
| author | Ralph Amissah <ralph.amissah@gmail.com> | 2022-01-25 14:36:59 -0500 | 
|---|---|---|
| committer | Ralph Amissah <ralph.amissah@gmail.com> | 2022-01-25 20:58:41 -0500 | 
| commit | 3c2da303eed87e506533c738c1bcfda154944790 (patch) | |
| tree | 0e5125110e58ef64ce13a980b281328f325740c6 /src | |
| parent | metadata, topic register to json removed, unused (diff) | |
doc presentation, add option to include date with title and author
Diffstat (limited to 'src')
| -rw-r--r-- | src/doc_reform/io_out/epub3.d | 4 | ||||
| -rw-r--r-- | src/doc_reform/io_out/xmls.d | 14 | ||||
| -rw-r--r-- | src/doc_reform/meta/metadoc_from_src.d | 28 | ||||
| -rw-r--r-- | src/doc_reform/meta/rgx.d | 3 | 
4 files changed, 43 insertions, 6 deletions
| diff --git a/src/doc_reform/io_out/epub3.d b/src/doc_reform/io_out/epub3.d index 029a2c2..6593db5 100644 --- a/src/doc_reform/io_out/epub3.d +++ b/src/doc_reform/io_out/epub3.d @@ -70,6 +70,8 @@ template outputEPub3() {        .replaceAll(rgx.xhtml_quotation,    """) // """        .replaceAll(rgx.xhtml_less_than,    "<")   // "<"        .replaceAll(rgx.xhtml_greater_than, ">")   // ">" +      .replaceAll(rgx.br_line,            "<br>") +      .replaceAll(rgx.br_nl,              "<br>")        .replaceAll(rgx.nbsp_char,          " ");      return _txt;    } @@ -126,7 +128,7 @@ template outputEPub3() {          ? "" : xhtml_format.special_characters_text(doc_matters.conf_make_meta.meta.creator_author),        doc_matters.src.language,                                   // language, fix (needed in dochead metadata)        (doc_matters.conf_make_meta.meta.date_published.empty) -        ? "" : xhtml_format.special_characters_text(doc_matters.conf_make_meta.meta.date_published), +        ? "" : xhtml_format.special_characters_date(doc_matters.conf_make_meta.meta.date_published),        (doc_matters.conf_make_meta.meta.rights_copyright.empty)          ? "" : xhtml_format.special_characters_text(doc_matters.conf_make_meta.meta.rights_copyright),        _uuid, diff --git a/src/doc_reform/io_out/xmls.d b/src/doc_reform/io_out/xmls.d index f0c7185..f4ca976 100644 --- a/src/doc_reform/io_out/xmls.d +++ b/src/doc_reform/io_out/xmls.d @@ -99,6 +99,16 @@ template outputXHTMLs() {          .replaceAll(rgx.xhtml_quotation,    """) // """          .replaceAll(rgx.xhtml_less_than,    "<")   // "<"          .replaceAll(rgx.xhtml_greater_than, ">")   // ">" +        .replaceAll(rgx.br_line,            "<br>") +        .replaceAll(rgx.br_nl,              "<br>") +        .replaceAll(rgx.nbsp_char,          " "); +      return _txt; +    } +    @safe string special_characters_date(string _txt) { +      _txt = _txt +        .replaceAll(regex(r"(?:-00)+"),     "") +        .replaceAll(rgx.br_line,            "<br>") +        .replaceAll(rgx.br_nl,              "<br>")          .replaceAll(rgx.nbsp_char,          " ");        return _txt;      } @@ -202,7 +212,7 @@ template outputXHTMLs() {          special_characters_text(doc_matters.conf_make_meta.meta.title_full),          special_characters_text(doc_matters.conf_make_meta.meta.creator_author),          _publisher, -        special_characters_text(doc_matters.conf_make_meta.meta.date_published), +        special_characters_date(doc_matters.conf_make_meta.meta.date_published),          special_characters_text(doc_matters.conf_make_meta.meta.date_created),          special_characters_text(doc_matters.conf_make_meta.meta.date_issued),          special_characters_text(doc_matters.conf_make_meta.meta.date_available), @@ -382,7 +392,7 @@ template outputXHTMLs() {          special_characters_text(doc_matters.conf_make_meta.meta.title_full),          (doc_matters.conf_make_meta.meta.creator_author.empty) ? ""            : ", " ~ special_characters_text(doc_matters.conf_make_meta.meta.creator_author), -        special_characters_text(doc_matters.conf_make_meta.meta.date_published), +        special_characters_date(doc_matters.conf_make_meta.meta.date_published),          special_characters_text(doc_matters.conf_make_meta.meta.date_created),          special_characters_text(doc_matters.conf_make_meta.meta.date_issued),          special_characters_text(doc_matters.conf_make_meta.meta.date_available), diff --git a/src/doc_reform/meta/metadoc_from_src.d b/src/doc_reform/meta/metadoc_from_src.d index 65e0754..28ce990 100644 --- a/src/doc_reform/meta/metadoc_from_src.d +++ b/src/doc_reform/meta/metadoc_from_src.d @@ -4041,6 +4041,7 @@ template docAbstraction() {      return ref CMM             conf_make_meta,    ) {      static auto rgx = RgxI(); +    static auto mkup = InlineMarkup();      if (auto m = line.match(rgx.headings)) {                                      /+ heading match +/        ++line_occur["heading"];        pith["txt_is"]           = eN.txt_is.heading; @@ -4052,11 +4053,32 @@ template docAbstraction() {        assertions_doc_structure(an_object, lv); // includes most of the logic for collapsed levels        switch (an_object["lev"]) {        case "A":                                // Title set -        if (an_object[an_object_key].match(rgx.variable_doc_title) -        && an_object[an_object_key].match(rgx.variable_doc_author)) { +        if ((an_object[an_object_key].match(rgx.variable_doc_title_author_date)) +        || (an_object[an_object_key].match(rgx.variable_doc_title) +        && an_object[an_object_key].match(rgx.variable_doc_author) +        && an_object[an_object_key].match(rgx.variable_doc_date))) { +          an_object[an_object_key] = an_object[an_object_key] +            .replaceFirst(rgx.variable_doc_title_author_date, +              (conf_make_meta.meta.title_full +              ~ mkup.br_nl +              ~ conf_make_meta.meta.creator_author +              ~ " (" ~ (conf_make_meta.meta.date_published.replaceFirst(regex(r"(?:-00)+"),"")) ~ ")")) +            .replaceFirst(rgx.variable_doc_title, +              (conf_make_meta.meta.title_full ~ mkup.br_nl)) +            .replaceFirst(rgx.variable_doc_author, +              conf_make_meta.meta.creator_author) +            .replaceFirst(rgx.variable_doc_date, +              " (" ~ (conf_make_meta.meta.date_published.replaceFirst(regex(r"(?:-00)+"),"")) ~ ")"); +        } else if ((an_object[an_object_key].match(rgx.variable_doc_title_author)) +        || (an_object[an_object_key].match(rgx.variable_doc_title) +        && an_object[an_object_key].match(rgx.variable_doc_author))) {            an_object[an_object_key] = an_object[an_object_key] +            .replaceFirst(rgx.variable_doc_title_author_date, +              (conf_make_meta.meta.title_full +              ~ mkup.br_nl +              ~ conf_make_meta.meta.creator_author))              .replaceFirst(rgx.variable_doc_title, -              (conf_make_meta.meta.title_full ~ ", ")) +              (conf_make_meta.meta.title_full ~ mkup.br_nl))              .replaceFirst(rgx.variable_doc_author,                conf_make_meta.meta.creator_author);          } else if (an_object[an_object_key].match(rgx.variable_doc_title)) { diff --git a/src/doc_reform/meta/rgx.d b/src/doc_reform/meta/rgx.d index 5df1e9c..0d2912d 100644 --- a/src/doc_reform/meta/rgx.d +++ b/src/doc_reform/meta/rgx.d @@ -91,8 +91,11 @@ static template spineRgxIn() {      static comment                                        = ctRegex!(`^%+ `);      /+ header +/      /+ header +/ +    static variable_doc_title_author_date                 = ctRegex!(`@title-author-date`); +    static variable_doc_title_author                      = ctRegex!(`@title-author`);      static variable_doc_title                             = ctRegex!(`@title`);      static variable_doc_author                            = ctRegex!(`@author|@creator`); +    static variable_doc_date                              = ctRegex!(`@date`);      static raw_author_munge                               = ctRegex!(`(?P<last>\S.+?),\s+(?P<first>.+)`,"i");      static yaml_header_meta_title                         = ctRegex!(`^\s*title\s*:\s*(?:"?\w|$)`, "m");      static yaml_config                                    = ctRegex!(`^[a-z]+\s*:\s*(?:"?\w|$)`, "m"); | 
