aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/doc_reform/meta
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2019-10-22 19:56:58 -0400
committerRalph Amissah <ralph.amissah@gmail.com>2019-11-19 16:55:29 -0500
commit3668f9ec6b4dd096f2109557ca523b3d774ad6d1 (patch)
tree5412fc865db231d690c095f894e7c0d2aee7f55b /src/doc_reform/meta
parentcosmetic (diff)
minor
Diffstat (limited to 'src/doc_reform/meta')
-rw-r--r--src/doc_reform/meta/conf_make_meta_json.d15
-rw-r--r--src/doc_reform/meta/conf_make_meta_yaml.d35
-rw-r--r--src/doc_reform/meta/metadoc_from_src.d17
-rw-r--r--src/doc_reform/meta/metadoc_harvests_authors.d36
-rw-r--r--src/doc_reform/meta/metadoc_harvests_topics.d64
5 files changed, 127 insertions, 40 deletions
diff --git a/src/doc_reform/meta/conf_make_meta_json.d b/src/doc_reform/meta/conf_make_meta_json.d
index 0a3c4c2..3d69a3c 100644
--- a/src/doc_reform/meta/conf_make_meta_json.d
+++ b/src/doc_reform/meta/conf_make_meta_json.d
@@ -393,16 +393,21 @@ static template contentJSONtoDocReformStruct() {
= _struct_composite.meta.creator_author.split(rgx.arr_delimiter);
auto _lastname = appender!(char[])();
foreach (author_raw; authors_raw_arr) {
- author_arr ~= author_raw.replace(rgx.raw_author_munge, "$2 $1");
- authors_hash_arr["first"] ~= author_raw.replace(rgx.raw_author_munge, "$2");
- authors_hash_arr["last"] ~= author_raw.replace(rgx.raw_author_munge, "$1");
- authors_hash_arr["full"] ~= author_raw.replace(rgx.raw_author_munge, "$2 $1");
- authors_hash_arr["as_input"] ~= author_raw;
if (auto m = author_raw.match(rgx.raw_author_munge)) {
+ author_arr ~= author_raw.replace(rgx.raw_author_munge, "$2 $1");
+ authors_hash_arr["first"] ~= author_raw.replace(rgx.raw_author_munge, "$2");
+ authors_hash_arr["last"] ~= author_raw.replace(rgx.raw_author_munge, "$1");
+ authors_hash_arr["full"] ~= author_raw.replace(rgx.raw_author_munge, "$2 $1");
(m.captures[1]).map!toUpper.copy(_lastname);
authors_hash_arr["last_first"] ~= _lastname.data.to!string ~ ", " ~ m.captures[2];
_lastname = appender!(char[])();
+ } {
+ author_arr ~= author_raw;
+ authors_hash_arr["last"] ~= author_raw;
+ authors_hash_arr["full"] ~= author_raw;
+ authors_hash_arr["last_first"] ~= author_raw;
}
+ authors_hash_arr["as_input"] ~= author_raw;
}
_struct_composite.meta.creator_author_arr = author_arr;
_struct_composite.meta.creator_author = author_arr.join(", ").chomp.chomp;
diff --git a/src/doc_reform/meta/conf_make_meta_yaml.d b/src/doc_reform/meta/conf_make_meta_yaml.d
index 8b76a3e..a9c4434 100644
--- a/src/doc_reform/meta/conf_make_meta_yaml.d
+++ b/src/doc_reform/meta/conf_make_meta_yaml.d
@@ -451,16 +451,21 @@ static template contentYAMLtoDocReformStruct() {
= _struct_composite.meta.creator_author.split(rgx.arr_delimiter);
auto _lastname = appender!(char[])();
foreach (author_raw; authors_raw_arr) {
- author_arr ~= author_raw.replace(rgx.raw_author_munge, "$2 $1");
- authors_hash_arr["first"] ~= author_raw.replace(rgx.raw_author_munge, "$2");
- authors_hash_arr["last"] ~= author_raw.replace(rgx.raw_author_munge, "$1");
- authors_hash_arr["full"] ~= author_raw.replace(rgx.raw_author_munge, "$2 $1");
- authors_hash_arr["as_input"] ~= author_raw;
if (auto m = author_raw.match(rgx.raw_author_munge)) {
+ author_arr ~= author_raw.replace(rgx.raw_author_munge, "$2 $1");
+ authors_hash_arr["first"] ~= author_raw.replace(rgx.raw_author_munge, "$2");
+ authors_hash_arr["last"] ~= author_raw.replace(rgx.raw_author_munge, "$1");
+ authors_hash_arr["full"] ~= author_raw.replace(rgx.raw_author_munge, "$2 $1");
(m.captures[1]).map!toUpper.copy(_lastname);
authors_hash_arr["last_first"] ~= _lastname.data.to!string ~ ", " ~ m.captures[2];
_lastname = appender!(char[])();
+ } else {
+ author_arr ~= author_raw;
+ authors_hash_arr["last"] ~= author_raw;
+ authors_hash_arr["full"] ~= author_raw;
+ authors_hash_arr["last_first"] ~= author_raw;
}
+ authors_hash_arr["as_input"] ~= author_raw;
}
_struct_composite.meta.creator_author_arr = author_arr;
_struct_composite.meta.creator_author = author_arr.join(", ").chomp.chomp;
@@ -781,9 +786,15 @@ static template configParseYAMLreturnDocReformStruct() {
CCm _make_and_meta_struct,
M _manifested
){
- Node yaml_root = Loader.fromString(_document_struct.content).load();
- _make_and_meta_struct
- = contentYAMLtoDocReformStruct!()(_make_and_meta_struct, yaml_root, _manifested, _document_struct.filename); // struct from yaml
+ Node yaml_root;
+ try {
+ yaml_root = Loader.fromString(_document_struct.content).load();
+ _make_and_meta_struct
+ = contentYAMLtoDocReformStruct!()(_make_and_meta_struct, yaml_root, _manifested, _document_struct.filename); // struct from yaml
+ } catch {
+ import std.stdio;
+ writeln("ERROR failed to read content, not parsed as yaml");
+ }
return _make_and_meta_struct;
}
}
@@ -812,8 +823,12 @@ static template docHeaderMakeAndMetaTupYamlExtractAndConvertToStruct() {
) {
Node _yaml_root;
if (header_src.match(rgx.yaml_header_meta_title)) {
- import dyaml;
- _yaml_root = Loader.fromString(header_src).load();
+ try {
+ _yaml_root = Loader.fromString(header_src).load();
+ } catch {
+ import std.stdio;
+ writeln("ERROR failed to read document header, not parsed as yaml");
+ }
}
auto _header_and_make_and_meta_struct
= contentYAMLtoDocReformStruct!()(_make_and_meta_struct, _yaml_root, _manifested, "header");
diff --git a/src/doc_reform/meta/metadoc_from_src.d b/src/doc_reform/meta/metadoc_from_src.d
index f5e0b81..4eb7771 100644
--- a/src/doc_reform/meta/metadoc_from_src.d
+++ b/src/doc_reform/meta/metadoc_from_src.d
@@ -3855,11 +3855,18 @@ template DocReformDocAbstraction() {
assertions_doc_structure(an_object, lv); // includes most of the logic for collapsed levels
switch (an_object["lev"]) {
case "A": // Title set
- an_object[an_object_key]=(an_object[an_object_key])
- .replaceFirst(rgx.variable_doc_title,
- (conf_make_meta.meta.title_full ~ ","))
- .replaceFirst(rgx.variable_doc_author,
- conf_make_meta.meta.creator_author);
+ if (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,
+ (conf_make_meta.meta.title_full ~ ", "))
+ .replaceFirst(rgx.variable_doc_author,
+ conf_make_meta.meta.creator_author);
+ } else if (an_object[an_object_key].match(rgx.variable_doc_title)) {
+ an_object[an_object_key] = an_object[an_object_key]
+ .replaceFirst(rgx.variable_doc_title,
+ conf_make_meta.meta.title_full);
+ }
collapsed_lev["h0"] = 0;
an_object["lev_collapsed_number"]
= collapsed_lev["h0"].to!string;
diff --git a/src/doc_reform/meta/metadoc_harvests_authors.d b/src/doc_reform/meta/metadoc_harvests_authors.d
index 1645d9b..29fcc72 100644
--- a/src/doc_reform/meta/metadoc_harvests_authors.d
+++ b/src/doc_reform/meta/metadoc_harvests_authors.d
@@ -44,6 +44,22 @@ string theme_dark_0 = format(q"┃
color : #888888;
text-decoration : underline;
}
+ a.lev0:hover {
+ color : #FFFFFF;
+ background-color : #000000;
+ }
+ a.lev1:hover {
+ color : #FFFFFF;
+ background : #333333;
+ }
+ a.lev2:hover {
+ color : #FFFFFF;
+ background : #555555;
+ }
+ a.lev3:hover {
+ color : #FFFFFF;
+ background : #777777;
+ }
┃");
string theme_light_0 = format(q"┃
body {
@@ -70,6 +86,20 @@ string theme_light_0 = format(q"┃
color : #003399;
text-decoration : underline;
}
+ a.lev0:hover {
+ color : #000000;
+ background-color : #FFFFFF;
+ }
+ a.lev1:hover {
+ color : #FFFFFF;
+ background : #444444;
+ }
+ a.lev2:hover {
+ background : #888888;
+ }
+ a.lev3:hover {
+ background : #BBBBBB;
+ }
┃");
string theme_dark_1 = format(q"┃
h1 {
@@ -141,7 +171,7 @@ string theme_light_1 = format(q"┃
<meta name="dc.subject" content= "document structuring, ebook, publishing, PDF, LaTeX, XML, ODF, SQL, postgresql, sqlite, electronic book, electronic publishing, electronic document, electronic citation, data structure, citation systems, granular search, digital library" />
<meta name="generator" content="doc_reform" />
<link rel="generator" href="http://sisudoc.org" />
-<link href="../../_sisu/css/harvest.css" rel="stylesheet">
+<link href="./css/harvest.css" rel="stylesheet">
<style TYPE="text/css">
/* DocReform harvest css default stylesheet */%s
.norm, .bold {
@@ -265,8 +295,8 @@ string theme_light_1 = format(q"┃
) {
if (doc_harvest.author_surname_fn != _prev_auth) {
_au[doc_harvest.author_surname_fn]
- = format(q"┃<p class="author"><a name="%s">%s</a></p> <p class="publication">%s "<a href="%s">%s</a>" [%s]</p>┃",
- doc_harvest.author_surname,
+ = format(q"┃<p class="author"><a name="%s" class="lev0">%s</a></p> <p class="publication">%s "<a href="%s">%s</a>" [%s]</p>┃",
+ doc_harvest.author_surname.translate([' ' : "_"]),
doc_harvest.author_surname_fn,
(doc_harvest.date_published.length > 0)
? doc_harvest.date_published : "",
diff --git a/src/doc_reform/meta/metadoc_harvests_topics.d b/src/doc_reform/meta/metadoc_harvests_topics.d
index 9f73552..63e4a79 100644
--- a/src/doc_reform/meta/metadoc_harvests_topics.d
+++ b/src/doc_reform/meta/metadoc_harvests_topics.d
@@ -87,6 +87,22 @@ string theme_dark_0 = format(q"┃
color : #888888;
text-decoration : underline;
}
+ a.lev0:hover {
+ color : #FFFFFF;
+ background-color : #000000;
+ }
+ a.lev1:hover {
+ color : #FFFFFF;
+ background : #333333;
+ }
+ a.lev2:hover {
+ color : #FFFFFF;
+ background : #555555;
+ }
+ a.lev3:hover {
+ color : #FFFFFF;
+ background : #777777;
+ }
┃");
string theme_light_0 = format(q"┃
body {
@@ -113,6 +129,20 @@ string theme_light_0 = format(q"┃
color : #003399;
text-decoration : underline;
}
+ a.lev0:hover {
+ color : #000000;
+ background-color : #FFFFFF;
+ }
+ a.lev1:hover {
+ color : #FFFFFF;
+ background : #444444;
+ }
+ a.lev2:hover {
+ background : #888888;
+ }
+ a.lev3:hover {
+ background : #BBBBBB;
+ }
┃");
string theme_dark_1 = format(q"┃
h1 {
@@ -182,7 +212,7 @@ string theme_light_1 = format(q"┃
<meta name="dc.subject" content= "document structuring, ebook, publishing, PDF, LaTeX, XML, ODF, SQL, postgresql, sqlite, electronic book, electronic publishing, electronic document, electronic citation, data structure, citation systems, granular search, digital library" />
<meta name="generator" content="doc_reform" />
<link rel="generator" href="http://sisudoc.org" />
-<link href="../../_sisu/css/harvest.css" rel="stylesheet">
+<link href="./css/harvest.css" rel="stylesheet">
<style TYPE="text/css">
/* DocReform harvest css default stylesheet */%s
.norm, .bold {
@@ -304,8 +334,8 @@ string theme_light_1 = format(q"┃
_prev_k = k0.toUpper.to!(char[])[0];
}
if (k0 != "_a") {
- topics ~= format(q"┃<p class="lev0"><a name="%s">%s</a></p>┃",
- k0, k0,) ~ "\n";
+ topics ~= format(q"┃<p class="lev0"><a name="%s" class="lev0">%s</a></p>┃",
+ k0.translate([' ' : "_"]), k0,) ~ "\n";
if (_opt_action.very_verbose) {
writeln("", k0);
}
@@ -317,13 +347,13 @@ string theme_light_1 = format(q"┃
_auth = [];
if (t_a_.author_arr.length < 2) {
_auth = format(q"┃ <a href="authors.html#%s">%s</a>┃",
- t_a_.author_surname,
+ t_a_.author_surname.translate([' ' : "_"]),
t_a_.author,
);
} else {
foreach (a; t_a_.author_arr) {
_auth ~= format(q"┃ <a href="authors.html#%s">%s</a>,┃",
- t_a_.author_surname,
+ t_a_.author_surname.translate([' ' : "_"]),
a,
);
}
@@ -343,8 +373,8 @@ string theme_light_1 = format(q"┃
.sort!("toUpper(a) < toUpper(b)", SwapStrategy.unstable)
) {
if (k1 != "_a") {
- topics ~= format(q"┃<p class="lev1"><a name="%s">%s</a></p>┃",
- k1, k1,) ~ "\n";
+ topics ~= format(q"┃<p class="lev1"><a name="%s" class="lev1">%s</a></p>┃",
+ k1.translate([' ' : "_"]), k1,) ~ "\n";
if (_opt_action.very_verbose) {
writeln(" ", k1);
}
@@ -356,13 +386,13 @@ string theme_light_1 = format(q"┃
_auth = [];
if (t_a_.author_arr.length < 2) {
_auth = format(q"┃ <a href="authors.html#%s">%s</a>┃",
- t_a_.author_surname,
+ t_a_.author_surname.translate([' ' : "_"]),
t_a_.author,
);
} else {
foreach (a; t_a_.author_arr) {
_auth ~= format(q"┃ <a href="authors.html#%s">%s</a>,┃",
- t_a_.author_surname,
+ t_a_.author_surname.translate([' ' : "_"]),
a,
);
}
@@ -383,8 +413,8 @@ string theme_light_1 = format(q"┃
.sort!("toUpper(a) < toUpper(b)", SwapStrategy.unstable)
) {
if (k2 != "_a") {
- topics ~= format(q"┃<p class="lev2"><a name="%s">%s</a></p>┃",
- k2, k2,) ~ "\n";
+ topics ~= format(q"┃<p class="lev2"><a name="%s" class="lev2">%s</a></p>┃",
+ k2.translate([' ' : "_"]), k2,) ~ "\n";
if (_opt_action.very_verbose) {
writeln(" ", k2);
}
@@ -396,13 +426,13 @@ string theme_light_1 = format(q"┃
_auth = [];
if (t_a_.author_arr.length < 2) {
_auth = format(q"┃ <a href="authors.html#%s">%s</a>┃",
- t_a_.author_surname,
+ t_a_.author_surname.translate([' ' : "_"]),
t_a_.author,
);
} else {
foreach (a; t_a_.author_arr) {
_auth ~= format(q"┃ <a href="authors.html#%s">%s</a>,┃",
- t_a_.author_surname,
+ t_a_.author_surname.translate([' ' : "_"]),
a,
);
}
@@ -423,8 +453,8 @@ string theme_light_1 = format(q"┃
.sort!("toUpper(a) < toUpper(b)", SwapStrategy.unstable)
) {
if (k3 != "_a") {
- topics ~= format(q"┃<p class="lev3"><a name="%s">%s</a></p>┃",
- k3, k3,) ~ "\n";
+ topics ~= format(q"┃<p class="lev3"><a name="%s" class="lev3">%s</a></p>┃",
+ k3.translate([' ' : "_"]), k3,) ~ "\n";
if (_opt_action.very_verbose) {
writeln(" ", k3);
}
@@ -436,13 +466,13 @@ string theme_light_1 = format(q"┃
_auth = [];
if (t_a_.author_arr.length < 2) {
_auth = format(q"┃<a href="authors.html#%s">%s</a>┃",
- t_a_.author_surname,
+ t_a_.author_surname.translate([' ' : "_"]),
t_a_.author,
);
} else {
foreach (a; t_a_.author_arr) {
_auth ~= format(q"┃ <a href="authors.html#%s">%s</a>,┃",
- t_a_.author_surname,
+ t_a_.author_surname.translate([' ' : "_"]),
a,
);
}