diff options
Diffstat (limited to 'org')
-rw-r--r-- | org/default_regex.org | 3 | ||||
-rw-r--r-- | org/metaverse.org | 28 | ||||
-rw-r--r-- | org/out_xmls.org | 23 |
3 files changed, 48 insertions, 6 deletions
diff --git a/org/default_regex.org b/org/default_regex.org index 9ea040e..6734b62 100644 --- a/org/default_regex.org +++ b/org/default_regex.org @@ -138,8 +138,11 @@ static comment = ctRegex!(`^%+ `); #+NAME: meta_rgx_headers #+BEGIN_SRC d /+ 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"); diff --git a/org/metaverse.org b/org/metaverse.org index 421bd2b..f3e7425 100644 --- a/org/metaverse.org +++ b/org/metaverse.org @@ -5151,6 +5151,7 @@ if (pith["block_is"] == eN.blk_is.quote) { 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; @@ -5162,11 +5163,32 @@ if (pith["block_is"] == eN.blk_is.quote) { 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/org/out_xmls.org b/org/out_xmls.org index ca202c4..ef96b34 100644 --- a/org/out_xmls.org +++ b/org/out_xmls.org @@ -34,6 +34,7 @@ template outputXHTMLs() { static auto rgx = RgxO(); <<xhtml_format_objects_div_delimit>> <<xhtml_format_objects_special_characters_text>> + <<xhtml_format_objects_special_characters_date>> <<xhtml_format_objects_breaks_indents_bullets>> <<xhtml_format_objects_font_face>> <<xhtml_format_objects_xml_anchor_tags>> @@ -158,6 +159,22 @@ import .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; +} +#+END_SRC + +**** special characters date + +#+NAME: xhtml_format_objects_special_characters_date +#+BEGIN_SRC d +@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; } @@ -286,7 +303,7 @@ import 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), @@ -490,7 +507,7 @@ import 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), @@ -2430,7 +2447,7 @@ xmlns="urn:oasis:names:tc:opendocument:xmlns:container"> ? "" : 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, |