aboutsummaryrefslogtreecommitdiffhomepage
path: root/org
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2022-01-25 14:36:59 -0500
committerRalph Amissah <ralph.amissah@gmail.com>2022-01-25 20:58:41 -0500
commit3c2da303eed87e506533c738c1bcfda154944790 (patch)
tree0e5125110e58ef64ce13a980b281328f325740c6 /org
parentmetadata, topic register to json removed, unused (diff)
doc presentation, add option to include date with title and author
Diffstat (limited to 'org')
-rw-r--r--org/default_regex.org3
-rw-r--r--org/metaverse.org28
-rw-r--r--org/out_xmls.org23
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, "&quot;") // "&#34;"
.replaceAll(rgx.xhtml_less_than, "&lt;") // "&#60;"
.replaceAll(rgx.xhtml_greater_than, "&gt;") // "&#62;"
+ .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,