aboutsummaryrefslogtreecommitdiffhomepage
path: root/org
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 /org
parentquote block, footnotes, markup? (diff)
xmls, copyright and license display
Diffstat (limited to 'org')
-rw-r--r--org/meta_conf_make_meta.org17
-rw-r--r--org/out_xmls.org116
-rw-r--r--org/out_xmls_css.org18
3 files changed, 109 insertions, 42 deletions
diff --git a/org/meta_conf_make_meta.org b/org/meta_conf_make_meta.org
index f91a615..331fe49 100644
--- a/org/meta_conf_make_meta.org
+++ b/org/meta_conf_make_meta.org
@@ -16,6 +16,18 @@
#+PROPERTY: header-args+ :padline no
#+PROPERTY: header-args+ :mkdirp yes
+#+NAME: meta_check_input_markup
+#+BEGIN_SRC d
+string check_input_markup()(
+ string _txt,
+) {
+ _txt = _txt
+ .replaceAll(regex(r"\\"), mkup.br_newline_inline)
+ .strip;
+ return _txt;
+}
+#+END_SRC
+
[[./spine.org][spine]] [[./][org/]]
* generic
** conf yaml REFERENCE
@@ -573,6 +585,7 @@ template contentYAMLtoSpineStruct() {
) {
mixin spineRgxIn;
static auto rgx = RgxI();
+ <<meta_check_input_markup>>
confCompositeMakeBuild _mk;
if (_identifier != "header") { // called only once per run anyway
<<yaml_objects_conf>>
@@ -1647,7 +1660,7 @@ if ("rights" in _yaml
&& _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
@@ -1695,7 +1708,7 @@ if ("rights" in _yaml
&& _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);
}
}
}
diff --git a/org/out_xmls.org b/org/out_xmls.org
index a113832..9348a55 100644
--- a/org/out_xmls.org
+++ b/org/out_xmls.org
@@ -544,13 +544,36 @@ import
#+NAME: xhtml_format_objects_tail
#+BEGIN_SRC d
-@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;
}
#+END_SRC
@@ -985,48 +1008,65 @@ import
┃",
_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;
}
#+END_SRC
@@ -1886,7 +1926,7 @@ default:
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);
}
#+END_SRC
@@ -2256,7 +2296,7 @@ default:
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
@@ -3076,7 +3116,7 @@ zip -0 file.epub mimetype && zip -r -9 file.epub META-INF OEBPS
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]) {
@@ -3085,7 +3125,7 @@ zip -0 file.epub mimetype && zip -r -9 file.epub META-INF OEBPS
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/org/out_xmls_css.org b/org/out_xmls_css.org
index f49e56a..9c1bf7a 100644
--- a/org/out_xmls_css.org
+++ b/org/out_xmls_css.org
@@ -508,13 +508,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;
@@ -1424,13 +1431,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;