aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/doc_reform
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 /src/doc_reform
parentmetadata, topic register to json removed, unused (diff)
doc presentation, add option to include date with title and author
Diffstat (limited to 'src/doc_reform')
-rw-r--r--src/doc_reform/io_out/epub3.d4
-rw-r--r--src/doc_reform/io_out/xmls.d14
-rw-r--r--src/doc_reform/meta/metadoc_from_src.d28
-rw-r--r--src/doc_reform/meta/rgx.d3
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, "&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;
}
@@ -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, "&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;
+ }
+ @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");