From c959735f21b3ddac6932bc9e8862d77a4421f133 Mon Sep 17 00:00:00 2001
From: Ralph Amissah
Date: Sat, 12 Sep 2026 22:42:06 -0400
Subject: epub, html, db: use of elements & attributes, fix
fixed, four things used that XHTML does not have.
(search db sisudoc-spine-search-cgi results share styling)
(assisted by Claude-Code)
---
src/sisudoc/outputs/io_out/sqlite_collection_db.d | 15 +-
src/sisudoc/outputs/io_out/xmls.d | 26 +--
src/sisudoc/outputs/io_out/xmls_css.d | 200 +++++++++++-----------
3 files changed, 121 insertions(+), 120 deletions(-)
(limited to 'src/sisudoc')
diff --git a/src/sisudoc/outputs/io_out/sqlite_collection_db.d b/src/sisudoc/outputs/io_out/sqlite_collection_db.d
index 727c844..d5b2dcf 100644
--- a/src/sisudoc/outputs/io_out/sqlite_collection_db.d
+++ b/src/sisudoc/outputs/io_out/sqlite_collection_db.d
@@ -64,9 +64,10 @@ static auto rgx = RgxO();
static auto rgx_xhtml = RgxXHTML();
static auto mkup = InlineMarkup();
long _metadata_tid_lastrowid;
-/+ ↓ sqlite db schema version, stamped into the db as PRAGMA user_version +/
-/+ bump whenever the table or index definitions in this module change, and +/
-/+ bump the matching expectation in sisudoc-spine-search-cgi +/
+/+ ↓ sqlite db schema version, stamped into the db as PRAGMA user_version
+ bump whenever the table or index definitions in this module change, and
+ bump the matching expectation in sisudoc-spine-search-cgi
+ +/
enum sqlite_db_schema_version = 1;
/+ ↓ tally of failed sqlite statements, shared: sqlite output may run in parallel +/
private shared int _sqlite_failure_tally = 0;
@@ -368,7 +369,7 @@ template SQLiteFormatAndLoadObject() {
.replaceAll(rgx.inline_subscript, "$1")
.replaceAll(rgx.inline_strike, "$1")
.replaceAll(rgx.inline_insert, "$1")
- .replaceAll(rgx.inline_mono, "$1")
+ .replaceAll(rgx.inline_mono, "$1")
.replaceAll(rgx.inline_cite, "$1");
return _txt;
}
@@ -414,7 +415,7 @@ template SQLiteFormatAndLoadObject() {
.replaceAll(rgx.inline_subscript, "$1")
.replaceAll(rgx.inline_strike, "$1")
.replaceAll(rgx.inline_insert, "$1")
- .replaceAll(rgx.inline_mono, "$1")
+ .replaceAll(rgx.inline_mono, "$1")
.replaceAll(rgx.inline_cite, "$1");
return _txt;
}
@@ -490,7 +491,7 @@ template SQLiteFormatAndLoadObject() {
rgx.inline_image,
("$1
$6"));
+ ~ "$3\" width=\"$4\" height=\"$5\" /> $6"));
}
return _txt;
}
@@ -681,7 +682,7 @@ template SQLiteFormatAndLoadObject() {
string _txt = munge_html(doc_matters, obj);
_txt = (obj.attrib.bullet) ? ("● " ~ _txt) : _txt;
_txt = inline_markup(doc_matters, obj, _txt);
- string o = format(q"┃
+ string o = format(q"┃
%s
┃",
obj.metainfo.is_a,
diff --git a/src/sisudoc/outputs/io_out/xmls.d b/src/sisudoc/outputs/io_out/xmls.d
index 4cc4599..3f7f4c9 100644
--- a/src/sisudoc/outputs/io_out/xmls.d
+++ b/src/sisudoc/outputs/io_out/xmls.d
@@ -201,7 +201,7 @@ template outputXHTMLs() {
.replaceAll(rgx.inline_subscript, ("$1"))
.replaceAll(rgx.inline_strike, ("$1"))
.replaceAll(rgx.inline_insert, ("$1"))
- .replaceAll(rgx.inline_mono, ("$1"))
+ .replaceAll(rgx.inline_mono, ("$1"))
.replaceAll(rgx.inline_cite, ("$1"));
return _txt;
}
@@ -545,7 +545,7 @@ string tail(M)(M doc_matters) {
.replaceAll(rgx.inline_image,
("$1
$6"))
+ ~ "$3\" width=\"$4\" height=\"$5\" /> $6"))
.replaceAll(
rgx.inline_link_empty,
("$1"));
@@ -652,14 +652,14 @@ string tail(M)(M doc_matters) {
_txt = font_face(_txt);
_txt = _txt.replaceAll(
rgx.inline_notes_al_regular_number_note,
- (" $1 ")
+ (" $1 ")
);
}
if (obj.has.inline_notes_star) {
_txt = font_face(_txt);
_txt = _txt.replaceAll(
rgx.inline_notes_al_special_char_note,
- (" $1 ")
+ (" $1 ")
);
}
debug(markup_endnotes) {
@@ -690,18 +690,18 @@ string tail(M)(M doc_matters) {
"",
- " ",
m.captures[1],
- ".",
+ ".",
m.captures[2],
"
"
);
}
_txt = _txt.replaceAll(
rgx.inline_notes_al_special_char_note,
- (" $1 ")
+ (" $1 ")
);
}
if (obj.has.inline_notes_reg) {
@@ -714,18 +714,18 @@ string tail(M)(M doc_matters) {
"",
- " ",
m.captures[1],
- ".",
+ ".",
m.captures[2],
""
);
}
_txt = _txt.replaceAll(
rgx.inline_notes_al_regular_number_note,
- (" $1 ")
+ (" $1 ")
);
} else if (_txt.match(rgx.inline_notes_al_regular_number_note)) {
debug(markup) {
@@ -787,7 +787,7 @@ string tail(M)(M doc_matters) {
text = font_face(text);
auto link = m.captures[3].to!string;
lev4_subtoc ~= subtoc.replaceFirst(rgx.inline_link_subtoc,
- format(q"┃
+ format(q"┃
۰ %s
┃",
@@ -1004,7 +1004,7 @@ string tail(M)(M doc_matters) {
if (!(obj.metainfo.identifier.empty)) {
o = format(q"┃ ┃",
@@ -1023,7 +1023,7 @@ string tail(M)(M doc_matters) {
);
} else {
o = format(q"┃ ┃",
diff --git a/src/sisudoc/outputs/io_out/xmls_css.d b/src/sisudoc/outputs/io_out/xmls_css.d
index 655b236..21f9f59 100644
--- a/src/sisudoc/outputs/io_out/xmls_css.d
+++ b/src/sisudoc/outputs/io_out/xmls_css.d
@@ -68,403 +68,403 @@ p.i7 { padding-left : 7em; }
p.i8 { padding-left : 8em; }
p.i9 { padding-left : 9em; }
/* hanging indent */
-p[indent="h0i0"] {
+p[data-indent="h0i0"] {
padding-left : 0em;
text-indent : 0em;
}
-p[indent="h0i1"] {
+p[data-indent="h0i1"] {
padding-left : 1em;
text-indent : -1em;
}
-p[indent="h0i2"] {
+p[data-indent="h0i2"] {
padding-left : 2em;
text-indent : -2em;
}
-p[indent="h0i3"] {
+p[data-indent="h0i3"] {
padding-left : 3em;
text-indent : -3em;
}
-p[indent="h0i4"] {
+p[data-indent="h0i4"] {
padding-left : 4em;
text-indent : -4em;
}
-p[indent="h0i5"] {
+p[data-indent="h0i5"] {
padding-left : 5em;
text-indent : -5em;
}
-p[indent="h0i6"] {
+p[data-indent="h0i6"] {
padding-left : 6em;
text-indent : -6em;
}
-p[indent="h0i7"] {
+p[data-indent="h0i7"] {
padding-left : 7em;
text-indent : -7em;
}
-p[indent="h0i8"] {
+p[data-indent="h0i8"] {
padding-left : 8em;
text-indent : -8em;
}
-p[indent="h0i9"] {
+p[data-indent="h0i9"] {
padding-left : 9em;
text-indent : -9em;
}
-p[indent="h1i0"] {
+p[data-indent="h1i0"] {
padding-left : 0em;
text-indent : 1em;
}
-p[indent="h1i1"] {
+p[data-indent="h1i1"] {
padding-left : 1em;
text-indent : 0em;
}
-p[indent="h1i2"] {
+p[data-indent="h1i2"] {
padding-left : 2em;
text-indent : -1em;
}
-p[indent="h1i3"] {
+p[data-indent="h1i3"] {
padding-left : 3em;
text-indent : -2em;
}
-p[indent="h1i4"] {
+p[data-indent="h1i4"] {
padding-left : 4em;
text-indent : -3em;
}
-p[indent="h1i5"] {
+p[data-indent="h1i5"] {
padding-left : 5em;
text-indent : -4em;
}
-p[indent="h1i6"] {
+p[data-indent="h1i6"] {
padding-left : 6em;
text-indent : -5em;
}
-p[indent="h1i7"] {
+p[data-indent="h1i7"] {
padding-left : 7em;
text-indent : -6em;
}
-p[indent="h1i8"] {
+p[data-indent="h1i8"] {
padding-left : 8em;
text-indent : -7em;
}
-p[indent="h1i9"] {
+p[data-indent="h1i9"] {
padding-left : 9em;
text-indent : -8em;
}
-p[indent="h2i0"] {
+p[data-indent="h2i0"] {
padding-left : 0em;
text-indent : 2em;
}
-p[indent="h2i1"] {
+p[data-indent="h2i1"] {
padding-left : 1em;
text-indent : 1em;
}
-p[indent="h2i2"] {
+p[data-indent="h2i2"] {
padding-left : 2em;
text-indent : 0em;
}
-p[indent="h2i3"] {
+p[data-indent="h2i3"] {
padding-left : 3em;
text-indent : -1em;
}
-p[indent="h2i4"] {
+p[data-indent="h2i4"] {
padding-left : 4em;
text-indent : -2em;
}
-p[indent="h2i5"] {
+p[data-indent="h2i5"] {
padding-left : 5em;
text-indent : -3em;
}
-p[indent="h2i6"] {
+p[data-indent="h2i6"] {
padding-left : 6em;
text-indent : -4em;
}
-p[indent="h2i7"] {
+p[data-indent="h2i7"] {
padding-left : 7em;
text-indent : -5em;
}
-p[indent="h2i8"] {
+p[data-indent="h2i8"] {
padding-left : 8em;
text-indent : -6em;
}
-p[indent="h2i9"] {
+p[data-indent="h2i9"] {
padding-left : 9em;
text-indent : -7em;
}
-p[indent="h3i0"] {
+p[data-indent="h3i0"] {
padding-left : 0em;
text-indent : 3em;
}
-p[indent="h3i1"] {
+p[data-indent="h3i1"] {
padding-left : 1em;
text-indent : 2em;
}
-p[indent="h3i2"] {
+p[data-indent="h3i2"] {
padding-left : 2em;
text-indent : 1em;
}
-p[indent="h3i3"] {
+p[data-indent="h3i3"] {
padding-left : 3em;
text-indent : 0em;
}
-p[indent="h3i4"] {
+p[data-indent="h3i4"] {
padding-left : 4em;
text-indent : -1em;
}
-p[indent="h3i5"] {
+p[data-indent="h3i5"] {
padding-left : 5em;
text-indent : -2em;
}
-p[indent="h3i6"] {
+p[data-indent="h3i6"] {
padding-left : 6em;
text-indent : -3em;
}
-p[indent="h3i7"] {
+p[data-indent="h3i7"] {
padding-left : 7em;
text-indent : -4em;
}
-p[indent="h3i8"] {
+p[data-indent="h3i8"] {
padding-left : 8em;
text-indent : -5em;
}
-p[indent="h3i9"] {
+p[data-indent="h3i9"] {
padding-left : 9em;
text-indent : -6em;
}
-p[indent="h4i0"] {
+p[data-indent="h4i0"] {
padding-left : 0em;
text-indent : 4em;
}
-p[indent="h4i1"] {
+p[data-indent="h4i1"] {
padding-left : 1em;
text-indent : 3em;
}
-p[indent="h4i2"] {
+p[data-indent="h4i2"] {
padding-left : 2em;
text-indent : 2em;
}
-p[indent="h4i3"] {
+p[data-indent="h4i3"] {
padding-left : 3em;
text-indent : 1em;
}
-p[indent="h4i4"] {
+p[data-indent="h4i4"] {
padding-left : 4em;
text-indent : 0em;
}
-p[indent="h4i5"] {
+p[data-indent="h4i5"] {
padding-left : 5em;
text-indent : -1em;
}
-p[indent="h4i6"] {
+p[data-indent="h4i6"] {
padding-left : 6em;
text-indent : -2em;
}
-p[indent="h4i7"] {
+p[data-indent="h4i7"] {
padding-left : 7em;
text-indent : -3em;
}
-p[indent="h4i8"] {
+p[data-indent="h4i8"] {
padding-left : 8em;
text-indent : -4em;
}
-p[indent="h4i9"] {
+p[data-indent="h4i9"] {
padding-left : 9em;
text-indent : -5em;
}
-p[indent="h5i0"] {
+p[data-indent="h5i0"] {
padding-left : 0em;
text-indent : 5em;
}
-p[indent="h5i1"] {
+p[data-indent="h5i1"] {
padding-left : 1em;
text-indent : 4em;
}
-p[indent="h5i2"] {
+p[data-indent="h5i2"] {
padding-left : 2em;
text-indent : 3em;
}
-p[indent="h5i3"] {
+p[data-indent="h5i3"] {
padding-left : 3em;
text-indent : 2em;
}
-p[indent="h5i4"] {
+p[data-indent="h5i4"] {
padding-left : 4em;
text-indent : 1em;
}
-p[indent="h5i5"] {
+p[data-indent="h5i5"] {
padding-left : 5em;
text-indent : 0em;
}
-p[indent="h5i6"] {
+p[data-indent="h5i6"] {
padding-left : 6em;
text-indent : -1em;
}
-p[indent="h5i7"] {
+p[data-indent="h5i7"] {
padding-left : 7em;
text-indent : -2em;
}
-p[indent="h5i8"] {
+p[data-indent="h5i8"] {
padding-left : 8em;
text-indent : -3em;
}
-p[indent="h5i9"] {
+p[data-indent="h5i9"] {
padding-left : 9em;
text-indent : -4em;
}
-p[indent="h6i0"] {
+p[data-indent="h6i0"] {
padding-left : 0em;
text-indent : 6em;
}
-p[indent="h6i1"] {
+p[data-indent="h6i1"] {
padding-left : 1em;
text-indent : 5em;
}
-p[indent="h6i2"] {
+p[data-indent="h6i2"] {
padding-left : 2em;
text-indent : 4em;
}
-p[indent="h6i3"] {
+p[data-indent="h6i3"] {
padding-left : 3em;
text-indent : 3em;
}
-p[indent="h6i4"] {
+p[data-indent="h6i4"] {
padding-left : 4em;
text-indent : 2em;
}
-p[indent="h6i5"] {
+p[data-indent="h6i5"] {
padding-left : 5em;
text-indent : 1em;
}
-p[indent="h6i6"] {
+p[data-indent="h6i6"] {
padding-left : 6em;
text-indent : 0em;
}
-p[indent="h6i7"] {
+p[data-indent="h6i7"] {
padding-left : 7em;
text-indent : -1em;
}
-p[indent="h6i8"] {
+p[data-indent="h6i8"] {
padding-left : 8em;
text-indent : -2em;
}
-p[indent="h6i9"] {
+p[data-indent="h6i9"] {
padding-left : 9em;
text-indent : -3em;
}
-p[indent="h7i0"] {
+p[data-indent="h7i0"] {
padding-left : 0em;
text-indent : 7em;
}
-p[indent="h7i1"] {
+p[data-indent="h7i1"] {
padding-left : 1em;
text-indent : 6em;
}
-p[indent="h7i2"] {
+p[data-indent="h7i2"] {
padding-left : 2em;
text-indent : 5em;
}
-p[indent="h7i3"] {
+p[data-indent="h7i3"] {
padding-left : 3em;
text-indent : 4em;
}
-p[indent="h7i4"] {
+p[data-indent="h7i4"] {
padding-left : 4em;
text-indent : 3em;
}
-p[indent="h7i5"] {
+p[data-indent="h7i5"] {
padding-left : 5em;
text-indent : 2em;
}
-p[indent="h7i6"] {
+p[data-indent="h7i6"] {
padding-left : 6em;
text-indent : 1em;
}
-p[indent="h7i7"] {
+p[data-indent="h7i7"] {
padding-left : 7em;
text-indent : 0em;
}
-p[indent="h7i8"] {
+p[data-indent="h7i8"] {
padding-left : 8em;
text-indent : -1em;
}
-p[indent="h7i9"] {
+p[data-indent="h7i9"] {
padding-left : 9em;
text-indent : -2em;
}
-p[indent="h8i0"] {
+p[data-indent="h8i0"] {
padding-left : 0em;
text-indent : 8em;
}
-p[indent="h8i1"] {
+p[data-indent="h8i1"] {
padding-left : 1em;
text-indent : 7em;
}
-p[indent="h8i2"] {
+p[data-indent="h8i2"] {
padding-left : 2em;
text-indent : 6em;
}
-p[indent="h8i3"] {
+p[data-indent="h8i3"] {
padding-left : 3em;
text-indent : 5em;
}
-p[indent="h8i4"] {
+p[data-indent="h8i4"] {
padding-left : 4em;
text-indent : 4em;
}
-p[indent="h8i5"] {
+p[data-indent="h8i5"] {
padding-left : 5em;
text-indent : 3em;
}
-p[indent="h8i6"] {
+p[data-indent="h8i6"] {
padding-left : 6em;
text-indent : 2em;
}
-p[indent="h8i7"] {
+p[data-indent="h8i7"] {
padding-left : 7em;
text-indent : 1em;
}
-p[indent="h8i8"] {
+p[data-indent="h8i8"] {
padding-left : 8em;
text-indent : 0em;
}
-p[indent="h8i9"] {
+p[data-indent="h8i9"] {
padding-left : 9em;
text-indent : -1em;
}
-p[indent="h9i0"] {
+p[data-indent="h9i0"] {
padding-left : 0em;
text-indent : 9em;
}
-p[indent="h9i1"] {
+p[data-indent="h9i1"] {
padding-left : 1em;
text-indent : 8em;
}
-p[indent="h9i2"] {
+p[data-indent="h9i2"] {
padding-left : 2em;
text-indent : 7em;
}
-p[indent="h9i3"] {
+p[data-indent="h9i3"] {
padding-left : 3em;
text-indent : 6em;
}
-p[indent="h9i4"] {
+p[data-indent="h9i4"] {
padding-left : 4em;
text-indent : 5em;
}
-p[indent="h9i5"] {
+p[data-indent="h9i5"] {
padding-left : 5em;
text-indent : 4em;
}
-p[indent="h9i6"] {
+p[data-indent="h9i6"] {
padding-left : 6em;
text-indent : 3em;
}
-p[indent="h9i7"] {
+p[data-indent="h9i7"] {
padding-left : 7em;
text-indent : 2em;
}
-p[indent="h9i8"] {
+p[data-indent="h9i8"] {
padding-left : 8em;
text-indent : 1em;
}
-p[indent="h9i9"] {
+p[data-indent="h9i9"] {
padding-left : 9em;
text-indent : 0em;
}
--
cgit v1.2.3