aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/doc_reform
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2022-02-09 14:18:45 -0500
committerRalph Amissah <ralph.amissah@gmail.com>2022-02-09 14:31:07 -0500
commite9ff8330d44330ed87bb2cce562f132a9a005f3d (patch)
treefbf2ea5031afeb04a8655348fbd8c3eeb4201eab /src/doc_reform
parentquote block, footnotes, markup? (diff)
xmls, copyright and license display
Diffstat (limited to 'src/doc_reform')
-rw-r--r--src/doc_reform/io_out/epub3.d4
-rw-r--r--src/doc_reform/io_out/html.d4
-rw-r--r--src/doc_reform/io_out/xmls.d108
-rw-r--r--src/doc_reform/io_out/xmls_css.d54
-rw-r--r--src/doc_reform/meta/conf_make_meta_yaml.d12
5 files changed, 136 insertions, 46 deletions
diff --git a/src/doc_reform/io_out/epub3.d b/src/doc_reform/io_out/epub3.d
index efdf12c..8a8b9e4 100644
--- a/src/doc_reform/io_out/epub3.d
+++ b/src/doc_reform/io_out/epub3.d
@@ -670,7 +670,7 @@ template outputEPub3() {
foreach (docseg; epub_write.doc_epub3_endnotes[seg_filename]) {
f.writeln(docseg);
}
- f.writeln(xhtml_format.tail);
+ f.writeln(xhtml_format.tail(doc_matters));
}
}
foreach (docseg; epub_write.doc_epub3[seg_filename]) {
@@ -679,7 +679,7 @@ template outputEPub3() {
foreach (docseg; epub_write.doc_epub3_endnotes[seg_filename]) {
zip_data.write(docseg.dup);
}
- zip_data.write(xhtml_format.tail.dup);
+ zip_data.write(xhtml_format.tail(doc_matters).dup);
zip_arc_member_file.expandedData = zip_data.toBytes();
zip.addMember(zip_arc_member_file);
/+ create the zip file +/
diff --git a/src/doc_reform/io_out/html.d b/src/doc_reform/io_out/html.d
index 136229b..4efc91d 100644
--- a/src/doc_reform/io_out/html.d
+++ b/src/doc_reform/io_out/html.d
@@ -234,7 +234,7 @@ template outputHTML() {
doc = xhtml_format.html_head(doc_matters, "scroll")
~ doc_html
~ xhtml_format.dom_close
- ~ xhtml_format.tail;
+ ~ xhtml_format.tail(doc_matters);
scroll_write_output(doc, doc_matters);
}
@trusted void scroll_write_output(D,M)(
@@ -543,7 +543,7 @@ template outputHTML() {
foreach (docseg; doc_html_endnotes[seg_filename]) {
f.writeln(docseg);
}
- f.writeln(xhtml_format.tail);
+ f.writeln(xhtml_format.tail(doc_matters));
}
} catch (ErrnoException ex) {
// handle error
diff --git a/src/doc_reform/io_out/xmls.d b/src/doc_reform/io_out/xmls.d
index fd9305a..871332d 100644
--- a/src/doc_reform/io_out/xmls.d
+++ b/src/doc_reform/io_out/xmls.d
@@ -417,13 +417,36 @@ template outputXHTMLs() {
o = format(q"┃</div>┃");
return o;
}
-@safe string tail() {
+@safe string tail(M)(M doc_matters) {
string o;
- o = format(q"┃
+ o = format(q"┃<hr />
+ <div class="rights">
+ <p class="small" id="copyright"><a name="copyright"></a>
+ <b>Copyright:</b> %s
+ </p>
+ </div>
+ %s
+ <div class="rights">
+ <p class="small" id="rights"><a name="rights"></a>
+ %s
+ </p>
+ </div>
+ <hr />
+ <div class="generator">
+ <p class="small_center" id="sisu_spine"><a name="sisu_spine"></a>
+ <a href="https://sisudoc.org">SiSU Spine</a> (object numbering &amp; search)
+ </p>
+ </div>
<a name="bottom" id="bottom"></a>
<a name="end" id="end"></a>
</body>
-</html>┃");
+</html>
+┃",
+ special_characters_text(doc_matters.conf_make_meta.meta.rights_copyright),
+ ((doc_matters.conf_make_meta.meta.rights_license).empty) ? "" : "<br />",
+ ((doc_matters.conf_make_meta.meta.rights_license).empty) ? ""
+ : "<b>License:</b> " ~ special_characters_text(doc_matters.conf_make_meta.meta.rights_license)
+ );
return o;
}
@safe string inline_images(O,M)(
@@ -798,48 +821,65 @@ template outputXHTMLs() {
┃",
_horizontal_rule,
);
- } else if (!(obj.metainfo.identifier.empty)) {
- o = format(q"┃%s
+ } else {
+ o = "";
+ if (obj.metainfo.is_of_section == "toc") {
+ o ~= format(q"┃
+ <div class="substance">
+ <p class="small" id="copyright"><a name="copyright"></a>
+ Copyright: %s
+ </p>
+ <!-- <p class="small" id="rights"><a name="rights"></a>
+ %s
+ </p> -->
+ </div>┃",
+ special_characters_text(doc_matters.conf_make_meta.meta.rights_copyright),
+ special_characters_text(doc_matters.conf_make_meta.meta.rights_license)
+ );
+ }
+ }
+ if (!(obj.metainfo.identifier.empty)) {
+ o ~= format(q"┃%s
<div class="substance">
<label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
<h%s class="%s" id="%s"><a name="%s"></a>%s%s
%s
</h%s>
</div>┃",
- _horizontal_rule,
- obj.metainfo.identifier,
- (doc_matters.opt.action.ocn_off)
- ? "" : ((obj.metainfo.object_number.empty)
- ? "" : obj.metainfo.identifier),
- ((_xml_type == "epub" && obj.metainfo.heading_lev_markup == 0) ? 1
- : obj.metainfo.heading_lev_markup),
- obj.metainfo.is_a,
- obj.metainfo.identifier,
- obj.metainfo.identifier,
- tags,
- heading_lev_anchor_tag,
- _txt,
- ((_xml_type == "epub" && obj.metainfo.heading_lev_markup == 0) ? 1
- : obj.metainfo.heading_lev_markup),
- );
- } else {
- o = format(q"┃%s
+ _horizontal_rule,
+ obj.metainfo.identifier,
+ (doc_matters.opt.action.ocn_off)
+ ? "" : ((obj.metainfo.object_number.empty)
+ ? "" : obj.metainfo.identifier),
+ ((_xml_type == "epub" && obj.metainfo.heading_lev_markup == 0) ? 1
+ : obj.metainfo.heading_lev_markup),
+ obj.metainfo.is_a,
+ obj.metainfo.identifier,
+ obj.metainfo.identifier,
+ tags,
+ heading_lev_anchor_tag,
+ _txt,
+ ((_xml_type == "epub" && obj.metainfo.heading_lev_markup == 0) ? 1
+ : obj.metainfo.heading_lev_markup),
+ );
+ } else {
+ o ~= format(q"┃%s
<div class="substance">
<h%s class="%s">%s%s
%s
</h%s>
</div>┃",
- _horizontal_rule,
- ((_xml_type == "epub" && obj.metainfo.heading_lev_markup == 0) ? 1
- : obj.metainfo.heading_lev_markup),
- obj.metainfo.is_a,
- tags,
- heading_lev_anchor_tag,
- _txt,
- ((_xml_type == "epub" && obj.metainfo.heading_lev_markup == 0) ? 1
- : obj.metainfo.heading_lev_markup),
- );
- }
+ _horizontal_rule,
+ ((_xml_type == "epub" && obj.metainfo.heading_lev_markup == 0) ? 1
+ : obj.metainfo.heading_lev_markup),
+ obj.metainfo.is_a,
+ tags,
+ heading_lev_anchor_tag,
+ _txt,
+ ((_xml_type == "epub" && obj.metainfo.heading_lev_markup == 0) ? 1
+ : obj.metainfo.heading_lev_markup),
+ );
+ }
return o;
}
@safe string heading_scroll(O,M)(
diff --git a/src/doc_reform/io_out/xmls_css.d b/src/doc_reform/io_out/xmls_css.d
index bb2cdfc..505287e 100644
--- a/src/doc_reform/io_out/xmls_css.d
+++ b/src/doc_reform/io_out/xmls_css.d
@@ -762,13 +762,20 @@ p.em {
font-style : normal;
background : #FFF3B6;
}
-p.small {
+.small, .small_center {
font-size : 1.4rem;
margin-top : 0px;
margin-bottom : 0px;
margin-right : 6px;
+}
+p.small {
text-align : left;
}
+p.small_center {
+ margin-left : 0px;
+ margin-right : 0px;
+ text-align : center;
+}
.tiny, .tiny_left, .tiny_right, .tiny_center {
font-size : 1.2rem;
margin-top : 0px;
@@ -1485,13 +1492,20 @@ p.em {
font-style : normal;
background : #FFF3B6;
}
-p.small {
+.small, .small_center {
font-size : 1.4rem;
margin-top : 0px;
margin-bottom : 0px;
margin-right : 6px;
+}
+p.small {
text-align : left;
}
+p.small_center {
+ margin-left : 0px;
+ margin-right : 0px;
+ text-align : center;
+}
.tiny, .tiny_left, .tiny_right, .tiny_center {
font-size : 1.35rem;
margin-top : 0px;
@@ -2211,13 +2225,20 @@ p.em {
font-style : normal;
background : #FFF3B6;
}
-p.small {
+.small, .small_center {
font-size : 1.4rem;
margin-top : 0px;
margin-bottom : 0px;
margin-right : 6px;
+}
+p.small {
text-align : left;
}
+p.small_center {
+ margin-left : 0px;
+ margin-right : 0px;
+ text-align : center;
+}
.tiny, .tiny_left, .tiny_right, .tiny_center {
font-size : 1.2rem;
margin-top : 0px;
@@ -2860,13 +2881,20 @@ p.em {
font-style : normal;
background : #FFF3B6;
}
-p.small {
+.small, .small_center {
font-size : 1.4rem;
margin-top : 0px;
margin-bottom : 0px;
margin-right : 6px;
+}
+p.small {
text-align : left;
}
+p.small_center {
+ margin-left : 0px;
+ margin-right : 0px;
+ text-align : center;
+}
.tiny, .tiny_left, .tiny_right, .tiny_center {
font-size : 1.35rem;
margin-top : 0px;
@@ -3512,13 +3540,20 @@ p.em {
font-style : normal;
background : #FFF3B6;
}
-p.small {
+.small, .small_center {
font-size : 1.4rem;
margin-top : 0px;
margin-bottom : 0px;
margin-right : 6px;
+}
+p.small {
text-align : left;
}
+p.small_center {
+ margin-left : 0px;
+ margin-right : 0px;
+ text-align : center;
+}
.tiny, .tiny_left, .tiny_right, .tiny_center {
font-size : 1.2rem;
margin-top : 0px;
@@ -4051,13 +4086,20 @@ p.em {
font-style : normal;
background : #FFF3B6;
}
-p.small {
+.small, .small_center {
font-size : 1.4rem;
margin-top : 0px;
margin-bottom : 0px;
margin-right : 6px;
+}
+p.small {
text-align : left;
}
+p.small_center {
+ margin-left : 0px;
+ margin-right : 0px;
+ text-align : center;
+}
.tiny, .tiny_left, .tiny_right, .tiny_center {
font-size : 1.35rem;
margin-top : 0px;
diff --git a/src/doc_reform/meta/conf_make_meta_yaml.d b/src/doc_reform/meta/conf_make_meta_yaml.d
index af6096a..ff0bcf5 100644
--- a/src/doc_reform/meta/conf_make_meta_yaml.d
+++ b/src/doc_reform/meta/conf_make_meta_yaml.d
@@ -80,6 +80,14 @@ template contentYAMLtoSpineStruct() {
) {
mixin spineRgxIn;
static auto rgx = RgxI();
+ string check_input_markup()(
+ string _txt,
+ ) {
+ _txt = _txt
+ .replaceAll(regex(r"\\"), mkup.br_newline_inline)
+ .strip;
+ return _txt;
+ }
confCompositeMakeBuild _mk;
if (_identifier != "header") { // called only once per run anyway
/+ conf ------------------------------------------------------------------- +/
@@ -1127,7 +1135,7 @@ template contentYAMLtoSpineStruct() {
&& _yaml["rights"]["copyright"].type.string
&& _yaml["rights"]["copyright"].tag.match(rgx.yaml_tag_is_str)
) {
- _struct_composite.meta.rights_copyright = _yaml["rights"]["copyright"].get!string;
+ _struct_composite.meta.rights_copyright = check_input_markup(_yaml["rights"]["copyright"].get!string);
}
if ("copyright_text" in _yaml["rights"]
&& _yaml["rights"]["copyright_text"].type.string
@@ -1175,7 +1183,7 @@ template contentYAMLtoSpineStruct() {
&& _yaml["rights"]["license"].type.string
&& _yaml["rights"]["license"].tag.match(rgx.yaml_tag_is_str)
) {
- _struct_composite.meta.rights_license = _yaml["rights"]["license"].get!string;
+ _struct_composite.meta.rights_license = check_input_markup(_yaml["rights"]["license"].get!string);
}
}
}