aboutsummaryrefslogtreecommitdiffhomepage
path: root/org/output_xmls.org
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2017-08-07 07:58:02 -0400
committerRalph Amissah <ralph@amissah.com>2019-04-10 15:14:14 -0400
commit8de7594804287154385e285147d2bbadcb0d3113 (patch)
treed4108c68ae5c4d57ce5d8e5bf24252460dc247d9 /org/output_xmls.org
parenta couple of small fixes (diff)
html css using grid & flex (remove tables)
Diffstat (limited to 'org/output_xmls.org')
-rw-r--r--org/output_xmls.org230
1 files changed, 125 insertions, 105 deletions
diff --git a/org/output_xmls.org b/org/output_xmls.org
index ffbd7ed..a89cc88 100644
--- a/org/output_xmls.org
+++ b/org/output_xmls.org
@@ -51,6 +51,47 @@ import
#+END_SRC
*** misc
+**** div delimiter
+
+#+name: xhtml_format_objects
+#+BEGIN_SRC d
+string div_delimit(
+ string part,
+ return ref string previous_part
+){
+ string delimit = "";
+ string delimit_ = "";
+ if (part != previous_part) {
+ switch (part) {
+ case "head":
+ delimit_ ~= "\n<div class=\"doc_title\">\n" ;
+ break;
+ case "toc_seg":
+ delimit_ ~= "\n<div class=\"doc_toc\">\n" ;
+ break;
+ case "toc_scroll":
+ delimit_ ~= "\n<div class=\"doc_toc\">\n" ;
+ break;
+ case "bookindex_seg":
+ delimit_ ~= "\n<div class=\"doc_bookindex\">\n" ;
+ break;
+ case "bookindex_scroll":
+ delimit_ ~= "\n<div class=\"doc_bookindex\">\n" ;
+ break;
+ default:
+ delimit_ ~= "\n<div class=\"doc_" ~ part ~ "\">\n" ;
+ break;
+ }
+ if (previous_part.length > 0) {
+ delimit ~= "\n</div>";
+ }
+ previous_part = part;
+ delimit ~= delimit_;
+ }
+ // you also need to close the last div, introduce a footer?
+ return delimit;
+}
+#+END_SRC
**** special characters
#+name: xhtml_format_objects
@@ -195,21 +236,17 @@ auto site_info_button(Dm)(
string _location_3_url ="http://www.sisudoc.org";
string _location_3_lnk ="sisu";
string o;
- o = format(q"¶<!-- Site info button close -->
- <table summary="home button / home information" border="0" cellpadding="3" cellspacing="0">
- <tr><td align="left" bgcolor="#ffffff">
- <p class="tiny_left"><a href="%s" target="_top">
- %s
- </a></p>
- <p class="tiny_left"><a href="%s" target="_top">
- %s
- </a></p>
- <p class="tiny_left"><a href="%s" target="_top">
- %s
- </a></p>
- </td></tr>
- </table>
- <!-- Site info button close -->¶",
+ o = format(q"¶<div class="flex-menu-option">
+ <p class="tiny_left"><a href="%s" target="_top">
+ %s
+ </a></p>
+ <p class="tiny_left"><a href="%s" target="_top">
+ %s
+ </a></p>
+ <p class="tiny_left"><a href="%s" target="_top">
+ %s
+ </a></p>
+ </div>¶",
_location_1_url,
_location_1_lnk,
_location_2_url,
@@ -231,19 +268,19 @@ auto inline_search_form(Dm)(
string _action="http://www.sisudoc.org/cgi-bin/search.cgi";
string _db="SiSU.7a.manual";
string o;
- o = format(q"¶<!-- SiSU Search open -->
-<a name="search"></a>
-<form method="get" action="%s" target="_top">
-<font size="2">
-<input type="text" name="s1" size="24" maxlength="255" />
-<input type="hidden" name="db" value="%s" />
-<input type="hidden" name="ltd" value="1000" />
-<input type="hidden" name="off" value="0" />
-<input type="hidden" name="doc" value="live-manual" /><br />
-<input type="submit" name="search" value="search doc" />
-<input type="submit" name="search" value="search db" />
-</font></form>
-<!-- SiSU Search close -->¶",
+ o = format(q"¶<div class="flex-menu-option">
+ <a name="search"></a>
+ <form method="get" action="%s" target="_top">
+ <font size="2">
+ <input type="text" name="s1" size="24" maxlength="255" />
+ <input type="hidden" name="db" value="%s" />
+ <input type="hidden" name="ltd" value="1000" />
+ <input type="hidden" name="off" value="0" />
+ <input type="hidden" name="doc" value="live-manual" /><br />
+ <input type="submit" name="search" value="search doc" />
+ <input type="submit" name="search" value="search db" />
+ </font></form>
+ </div>¶",
_action,
_db,
);
@@ -276,34 +313,17 @@ auto html_head(Dm)(
</head>
<body lang="%s">
<a name="top" id="top"></a>
-<div class="icon-bar">
-<div class="left-bar">
-<div class="table-bar">
-<table summary="table of contents segment navigation band" id="toc" width="85%%" bgcolor="#ffffff">
-<tr><td width="20%%">
- <!-- Site info button open -->
- %s
- <!-- Site info button close -->
-</td>
-<td width="75%%" align="center">
-<table summary="segment navigation available documents types: toc,doc,pdf,concordance" border="0" cellpadding="3" cellspacing="0">
-<tr>
-<td align="center" bgcolor="#ffffff">
- <td align="center" bgcolor="#ffffff">
- <a href="../../manifest/sisu.en.html" target="_top">
- <font face="verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman" size="2">
- [&nbsp;document&nbsp;manifest&nbsp;]
- </font>
- </a>
-</td>
- <!-- SiSU Search open -->
- %s
- <!-- SiSU Search close -->
-</tr></table>
-</td>
-</table>
-</div>
-</div>%s¶",
+<div class='delimit headband'>
+ <div class="flex-menu-bar">
+ %s
+ <div class="flex-menu-option">
+ <a href="../../manifest/sisu.en.html" target="_top">
+ <font face="verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman" size="2">
+ [&nbsp;document&nbsp;manifest&nbsp;]
+ </font>
+ </a>
+ </div>
+ %s%s¶",
doc_matters.dochead_meta["title"]["full"],
(doc_matters.dochead_meta["creator"]["author"].empty) ? ""
: ", " ~ doc_matters.dochead_meta["creator"]["author"],
@@ -389,7 +409,8 @@ auto epub3_seg_head(Dm)(
#+BEGIN_SRC d
auto tail() {
string o;
- o = format(q"¶ <a name="bottom" id="bottom"></a>
+ o = format(q"¶ </div>
+ <a name="bottom" id="bottom"></a>
<a name="end" id="end"></a>
</body>
</html>¶");
@@ -597,66 +618,62 @@ auto nav_pre_next_svg(O)(
toc = "";
prev = "";
} else {
- toc = format(q"¶
- <a href="toc.html" target="_top">
- <div class="toc-button menu">
- <svg viewbox="0 0 100 100">
- <path d="M4,10h24c1.104,0,2-0.896,2-2s-0.896-2-2-2H4C2.896,6,2,6.896,2,8S2.896,10,4,10z M28,14H4c-1.104,0-2,0.896-2,2 s0.896,2,2,2h24c1.104,0,2-0.896,2-2S29.104,14,28,14z M28,22H4c-1.104,0-2,0.896-2,2s0.896,2,2,2h24c1.104,0,2-0.896,2-2 S29.104,22,28,22z"/>
- </svg>
- </div>
- </a>
-¶",
+ toc = format(q"¶<a href="toc.html" target="_top">
+ <div class="toc-button menu">
+ <svg viewbox="0 0 100 100">
+ <path d="M4,10h24c1.104,0,2-0.896,2-2s-0.896-2-2-2H4C2.896,6,2,6.896,2,8S2.896,10,4,10z M28,14H4c-1.104,0-2,0.896-2,2 s0.896,2,2,2h24c1.104,0,2-0.896,2-2S29.104,14,28,14z M28,22H4c-1.104,0-2,0.896-2,2s0.896,2,2,2h24c1.104,0,2-0.896,2-2 S29.104,22,28,22z"/>
+ </svg>
+ </div>
+ </a>¶",
);
}
if (obj.segname_prev == "") {
prev = "";
- } else { // previous
- prev = format(q"¶
- <a href="%s.html" target="_top">
- <div class="prev-next-button previous">
- <svg viewbox="0 0 100 100">
- <path class="arrow" d="M 50,0 L 60,10 L 20,50 L 60,90 L 50,100 L 0,50 Z" transform=" translate(15,0)">
- </svg>
- </div>
- </a>
-¶",
+ } else {
+ prev = format(q"¶<a href="%s.html" target="_top">
+ <div class="prev-next-button previous">
+ <svg viewbox="0 0 100 100">
+ <path class="arrow" d="M 50,0 L 60,10 L 20,50 L 60,90 L 50,100 L 0,50 Z" transform=" translate(15,0)">
+ </svg>
+ </div>
+ </a>¶",
obj.segname_prev,
);
}
- if (obj.segname_next == "") { // next
+ if (obj.segname_next == "") {
next = "";
} else {
- next = format(q"¶
- <a href="%s.html" target="_top">
- <div class="prev-next-button next">
- <svg viewbox="0 0 100 100">
- <path class="arrow" d="M 50,0 L 60,10 L 20,50 L 60,90 L 50,100 L 0,50 Z "transform="translate(85,100) rotate(180) ">
- </svg>
- </div>
- </a>
-¶",
+ next = format(q"¶<a href="%s.html" target="_top">
+ <div class="prev-next-button next">
+ <svg viewbox="0 0 100 100">
+ <path class="arrow" d="M 50,0 L 60,10 L 20,50 L 60,90 L 50,100 L 0,50 Z "transform="translate(85,100) rotate(180) ">
+ </svg>
+ </div>
+ </a>¶",
obj.segname_next,
);
}
- string _toc_pre_next = format(q"¶
- <!-- <div class="icon-bar"> -->
- <div class="nav-bar">
- %s
- %s
- %s
+ string _toc_pre_next = format(q"¶ <div class="flex-menu-option">
+ <div class="nav-bar">
+ %s
+ %s
+ %s
+ </div>
</div>
</div>
-¶",
+</div>¶",
toc,
prev,
next,
);
- string _pre_next = format(q"¶
- <div class="nav-bar">
- %s
- %s
+ string _pre_next = format(q"¶ <div class="flex-menu-option">
+ <div class="nav-bar">
+ %s
+ %s
+ </div>
</div>
-¶",
+ </div>
+</div>¶",
prev,
next,
);
@@ -1306,8 +1323,11 @@ void scroll(D,I)(
string[] doc_html;
string[] doc;
string suffix = ".html";
+ string previous_part = "";
+ string delimit = "";
foreach (part; doc_matters.keys_seq.scroll) {
foreach (obj; doc_abstraction[part]) {
+ delimit = xhtml_format.div_delimit(part, previous_part);
string _txt = xhtml_format.special_characters(obj, obj.text);
switch (obj.of_part) {
case "frontmatter": assert(part == "head" || "toc_scroll");
@@ -1315,7 +1335,7 @@ void scroll(D,I)(
case "para":
switch (obj.is_a) {
case "heading":
- doc_html ~= xhtml_format.heading_scroll(obj, _txt, suffix);
+ doc_html ~= delimit ~ xhtml_format.heading_scroll(obj, _txt, suffix);
break;
case "toc":
doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);
@@ -1339,7 +1359,7 @@ void scroll(D,I)(
case "para":
switch (obj.is_a) {
case "heading":
- doc_html ~= xhtml_format.heading_scroll(obj, _txt, suffix);
+ doc_html ~= delimit ~ xhtml_format.heading_scroll(obj, _txt, suffix);
break;
case "para":
doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);
@@ -1393,7 +1413,7 @@ void scroll(D,I)(
case "para":
switch (obj.is_a) {
case "heading":
- doc_html ~= xhtml_format.heading_scroll(obj, _txt, suffix);
+ doc_html ~= delimit ~ xhtml_format.heading_scroll(obj, _txt, suffix);
break;
case "endnote": assert(part == "endnotes");
doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);
@@ -1489,11 +1509,13 @@ void seg(D,I)(
string[] doc;
string segment_filename;
string[] top_level_headings = ["","","",""];
- string _bottom_bar ="";
string previous_seg_filename = "";
string suffix = ".html";
+ string previous_part = "";
+ string delimit = "";
foreach (part; doc_matters.keys_seq.seg) {
foreach (obj; doc_abstraction[part]) {
+ delimit = xhtml_format.div_delimit(part, previous_part);
string _txt = xhtml_format.special_characters(obj, obj.text);
if (obj.is_a == "heading") {
assert(part == "head" || "toc_seg" || "body" || "endnotes" || "glossary" || "bibliography" || "bookindex_seg" || "blurb" || "tail");
@@ -1528,10 +1550,8 @@ void seg(D,I)(
case 4:
segment_filename = obj.segment_anchor_tag;
doc_html[segment_filename] ~= xhtml_format.html_head(doc_matters, "seg");
- doc_html_endnotes[previous_seg_filename] ~= _bottom_bar; // places after segment text and endnotes
auto navigation_bar = xhtml_format.nav_pre_next_svg(obj);
- doc_html[segment_filename] ~= navigation_bar.toc_pre_next;
- _bottom_bar = navigation_bar.toc_pre_next;
+ doc_html[segment_filename] ~= navigation_bar.toc_pre_next; // navigation bar
previous_seg_filename = segment_filename;
foreach (top_level_heading; top_level_headings) {
// writeln(top_level_heading);