aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2017-06-06 17:52:38 -0400
committerRalph Amissah <ralph@amissah.com>2019-04-10 15:14:14 -0400
commit64922b57604c8e0c29a1dcd3ae313d243bf6b46d (patch)
tree3434a32c04b884449ab20df1f7e59cf4cd31a670
parentoutput xmls, minor asserts (diff)
html seg, work on subtoc & on nav pre-next
-rw-r--r--org/default_regex.org1
-rw-r--r--org/output_xmls.org139
-rw-r--r--src/sdp/ao/rgx.d1
-rw-r--r--src/sdp/output/html.d2
-rw-r--r--src/sdp/output/rgx.d1
-rw-r--r--src/sdp/output/xmls.d130
6 files changed, 208 insertions, 66 deletions
diff --git a/org/default_regex.org b/org/default_regex.org
index dc9c4ab..b6173cf 100644
--- a/org/default_regex.org
+++ b/org/default_regex.org
@@ -440,6 +440,7 @@ static inline_text_and_note_al_ = ctRegex!(`(.+?(?:【[*+]
/+ inline markup footnotes endnotes +/
static inline_link = ctRegex!(`┥(.+?)┝┤(.+?)├`, "mg");
static inline_a_url = ctRegex!(`(┤)(\S+?)(├)`, "mg");
+static inline_link_subtoc = ctRegex!(`^(?P<level>[5-7])~ ┥(?P<text>.+?)┝┤(?P<link>.+?)├`, "mg");
static fn_suffix = ctRegex!(`\.fnSuffix`, "mg");
static inline_link_fn_suffix = ctRegex!(`¤(.+?)(\.fnSuffix)`, "mg");
static inline_seg_link = ctRegex!(`(¤)(?:.+?)\.fnSuffix`, "mg");
diff --git a/org/output_xmls.org b/org/output_xmls.org
index 2e9e72c..b826a12 100644
--- a/org/output_xmls.org
+++ b/org/output_xmls.org
@@ -137,28 +137,25 @@ auto html_scroll_head(Dm)(
o = format(q"¶<!DOCTYPE html>
<html>
<head>
- <meta charset="utf-8">
- <title>
- %s%s
- </title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
- <meta name="dc.title" content="Title" />
- <meta name="dc.author" content="Author" />
- <meta name="dc.publisher" content="SiSU http://www.jus.uio.no/sisu (this copy)" />
- <meta name="dc.date" content="year" />
- <meta name="dc.date.created" content="year" />
- <meta name="dc.date.issued" content="year" />
- <meta name="dc.date.available" content="year" />
- <meta name="dc.date.valid" content="year" />
- <meta name="dc.date.modified" content="year" />
- <meta name="dc.language" content="US" />
- <meta name="dc.rights" content="Copyright: Copyright (C) year holder />
- <meta name="generator" content="sdp [SiSU 7.1.8 of 2016w08/5 (2016-02-26)] (n*x and D)" />
- </meta>
+ <title>
+ %s%s
+ </title>
+ <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+ <meta name="dc.title" content="Title" />
+ <meta name="dc.author" content="Author" />
+ <meta name="dc.publisher" content="SiSU http://www.jus.uio.no/sisu (this copy)" />
+ <meta name="dc.date" content="year" />
+ <meta name="dc.date.created" content="year" />
+ <meta name="dc.date.issued" content="year" />
+ <meta name="dc.date.available" content="year" />
+ <meta name="dc.date.valid" content="year" />
+ <meta name="dc.date.modified" content="year" />
+ <meta name="dc.language" content="US" />
+ <meta name="dc.rights" content="Copyright: Copyright (C) year holder />
+ <meta name="generator" content="sdp [SiSU 7.1.8 of 2016w08/5 (2016-02-26)] (n*x and D)" />
<link rel="generator" href="http://www.sisudoc.org/" />
<link rel="shortcut icon" href="../../image/rb7.ico" />
<link href="../../css/html.css" rel="stylesheet" />
- <link href="../../../css/html.css" rel="stylesheet" />
</head>
<body lang="%s">
<a name="top" id="top"></a>¶",
@@ -200,8 +197,7 @@ auto html_seg_head(Dm)(
<meta name="generator" content="sdp [SiSU 7.1.8 of 2016w08/5 (2016-02-26)] (n*x and D)" />
</meta>
<link rel="generator" href="http://www.sisudoc.org/" />
- <link rel="shortcut icon" href="../../image/rb7.ico" />
- <link href="../../css/html.css" rel="stylesheet" />
+ <link rel="shortcut icon" href="../../../image/rb7.ico" />
<link href="../../../css/html.css" rel="stylesheet" />
</head>
<body lang="%s">
@@ -449,23 +445,98 @@ auto inline_markup_seg(O)(
#+END_SRC
*** toc
+**** subtoc
#+name: xhtml_format_objects
#+BEGIN_SRC d
-auto toc_seg(O)(
+string lev4_heading_subtoc(O)(
auto return ref const O obj,
- string _txt,
) {
- string o;
- o = format(q"¶ <div class="substance">
- <p class="%s" indent="h%si%s">
- %s
- </p>
-</div>¶",
- obj.is_a,
- obj.indent_hang,
- obj.indent_base,
- _txt,
+ char[] lev4_subtoc;
+ lev4_subtoc ~= " <div class=\"nav\">\n";
+ foreach (subtoc; obj.lev4_subtoc) {
+ if (auto m = subtoc.match(rgx.inline_link_subtoc)) {
+ auto indent = to!string(m.captures[1]);
+ auto text = to!string(m.captures[2]);
+ text = font_face(text);
+ auto link = to!string(m.captures[3]);
+ lev4_subtoc ~= subtoc.replaceFirst(rgx.inline_link_subtoc,
+ format(q"¶ <p class="minitoc" indent="h%si%s">
+ <a href="%s">%s</a>
+ </p>
+¶",
+ indent,
+ indent,
+ link,
+ text,
+ ));
+ }
+ }
+ lev4_subtoc ~= " </div>\n";
+ return lev4_subtoc.to!string;
+}
+#+END_SRC
+
+**** navigation pre next
+
+#+name: xhtml_format_objects
+#+BEGIN_SRC d
+string nav_pre_next_table(O)(
+ auto return ref const O obj,
+) {
+ string prev, next, toc;
+ if (obj.segname_prev == "") {
+ prev = "";
+ } else {
+ prev = format(q"¶
+ <td align="center" bgcolor="#ffffff">
+ <a href="%s.html" target="_top">
+ <img border="0" width="22" height="22" src="../../../image/arrow_prev_red.png" alt=" &lt;&lt; [ prev ] " />
+ </a>
+ </td>
+¶",
+ obj.segname_prev,
+ );
+ }
+ if (obj.segname_next == "") {
+ next = "";
+ } else {
+ next = format(q"¶
+ <td align="center" bgcolor="#ffffff">
+ <a href="%s.html" target="_top">
+ <img border="0" width="22" height="22" src="../../../image/arrow_next_red.png" alt=" [ next ] &gt;&gt; " />
+ </a>
+ </td>
+¶",
+ obj.segname_next,
+ );
+ }
+ if (obj.segment_anchor_tag == "toc") {
+ toc = "";
+ prev = "";
+ } else {
+ toc = format(q"¶
+ <td align="center" bgcolor="#ffffff">
+ <a href="toc.html" target="_top">
+ <img border="0" width="22" height="22" src="../../../image/arrow_up_red.png" alt=" [ toc ] " />
+ </a>
+ </td>
+¶",
+ );
+ }
+ string o = format(q"¶<div class="nav">
+ <table summary="segment navigation pre/next" border="0" cellpadding="3" cellspacing="0">
+ <tr>
+ %s
+ %s
+ %s
+ </tr>
+ </table>
+</div>
+¶",
+ prev,
+ toc,
+ next,
);
return o;
}
@@ -1333,6 +1404,8 @@ void seg(D,I)(
}
auto t = xhtml_format.heading_seg(obj, _txt, suffix);
doc_html[segment_filename] ~= to!string(t[0]);
+ doc_html[segment_filename] ~= xhtml_format.nav_pre_next_table(obj);
+ doc_html[segment_filename] ~= xhtml_format.lev4_heading_subtoc(obj);
doc_html_endnotes[segment_filename] ~= t[1];
break;
case 5: .. case 7:
diff --git a/src/sdp/ao/rgx.d b/src/sdp/ao/rgx.d
index d0d42df..aeab6e9 100644
--- a/src/sdp/ao/rgx.d
+++ b/src/sdp/ao/rgx.d
@@ -218,6 +218,7 @@ template SiSUrgxInit() {
/+ inline markup footnotes endnotes +/
static inline_link = ctRegex!(`┥(.+?)┝┤(.+?)├`, "mg");
static inline_a_url = ctRegex!(`(┤)(\S+?)(├)`, "mg");
+ static inline_link_subtoc = ctRegex!(`^(?P<level>[5-7])~ ┥(?P<text>.+?)┝┤(?P<link>.+?)├`, "mg");
static fn_suffix = ctRegex!(`\.fnSuffix`, "mg");
static inline_link_fn_suffix = ctRegex!(`¤(.+?)(\.fnSuffix)`, "mg");
static inline_seg_link = ctRegex!(`(¤)(?:.+?)\.fnSuffix`, "mg");
diff --git a/src/sdp/output/html.d b/src/sdp/output/html.d
index 1b984fe..f620498 100644
--- a/src/sdp/output/html.d
+++ b/src/sdp/output/html.d
@@ -237,6 +237,8 @@ template outputHTML() {
}
auto t = xhtml_format.heading_seg(obj, _txt, suffix);
doc_html[segment_filename] ~= to!string(t[0]);
+ doc_html[segment_filename] ~= xhtml_format.nav_pre_next_table(obj);
+ doc_html[segment_filename] ~= xhtml_format.lev4_heading_subtoc(obj);
doc_html_endnotes[segment_filename] ~= t[1];
break;
case 5: .. case 7:
diff --git a/src/sdp/output/rgx.d b/src/sdp/output/rgx.d
index ae7599f..4a9e33e 100644
--- a/src/sdp/output/rgx.d
+++ b/src/sdp/output/rgx.d
@@ -40,6 +40,7 @@ template SiSUoutputRgxInit() {
/+ inline markup footnotes endnotes +/
static inline_link = ctRegex!(`┥(.+?)┝┤(.+?)├`, "mg");
static inline_a_url = ctRegex!(`(┤)(\S+?)(├)`, "mg");
+ static inline_link_subtoc = ctRegex!(`^(?P<level>[5-7])~ ┥(?P<text>.+?)┝┤(?P<link>.+?)├`, "mg");
static fn_suffix = ctRegex!(`\.fnSuffix`, "mg");
static inline_link_fn_suffix = ctRegex!(`¤(.+?)(\.fnSuffix)`, "mg");
static inline_seg_link = ctRegex!(`(¤)(?:.+?)\.fnSuffix`, "mg");
diff --git a/src/sdp/output/xmls.d b/src/sdp/output/xmls.d
index 2482f28..c7dd552 100644
--- a/src/sdp/output/xmls.d
+++ b/src/sdp/output/xmls.d
@@ -71,28 +71,25 @@ template outputXHTMLs() {
o = format(q"¶<!DOCTYPE html>
<html>
<head>
- <meta charset="utf-8">
- <title>
- %s%s
- </title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
- <meta name="dc.title" content="Title" />
- <meta name="dc.author" content="Author" />
- <meta name="dc.publisher" content="SiSU http://www.jus.uio.no/sisu (this copy)" />
- <meta name="dc.date" content="year" />
- <meta name="dc.date.created" content="year" />
- <meta name="dc.date.issued" content="year" />
- <meta name="dc.date.available" content="year" />
- <meta name="dc.date.valid" content="year" />
- <meta name="dc.date.modified" content="year" />
- <meta name="dc.language" content="US" />
- <meta name="dc.rights" content="Copyright: Copyright (C) year holder />
- <meta name="generator" content="sdp [SiSU 7.1.8 of 2016w08/5 (2016-02-26)] (n*x and D)" />
- </meta>
+ <title>
+ %s%s
+ </title>
+ <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+ <meta name="dc.title" content="Title" />
+ <meta name="dc.author" content="Author" />
+ <meta name="dc.publisher" content="SiSU http://www.jus.uio.no/sisu (this copy)" />
+ <meta name="dc.date" content="year" />
+ <meta name="dc.date.created" content="year" />
+ <meta name="dc.date.issued" content="year" />
+ <meta name="dc.date.available" content="year" />
+ <meta name="dc.date.valid" content="year" />
+ <meta name="dc.date.modified" content="year" />
+ <meta name="dc.language" content="US" />
+ <meta name="dc.rights" content="Copyright: Copyright (C) year holder />
+ <meta name="generator" content="sdp [SiSU 7.1.8 of 2016w08/5 (2016-02-26)] (n*x and D)" />
<link rel="generator" href="http://www.sisudoc.org/" />
<link rel="shortcut icon" href="../../image/rb7.ico" />
<link href="../../css/html.css" rel="stylesheet" />
- <link href="../../../css/html.css" rel="stylesheet" />
</head>
<body lang="%s">
<a name="top" id="top"></a>¶",
@@ -128,8 +125,7 @@ template outputXHTMLs() {
<meta name="generator" content="sdp [SiSU 7.1.8 of 2016w08/5 (2016-02-26)] (n*x and D)" />
</meta>
<link rel="generator" href="http://www.sisudoc.org/" />
- <link rel="shortcut icon" href="../../image/rb7.ico" />
- <link href="../../css/html.css" rel="stylesheet" />
+ <link rel="shortcut icon" href="../../../image/rb7.ico" />
<link href="../../../css/html.css" rel="stylesheet" />
</head>
<body lang="%s">
@@ -331,20 +327,88 @@ template outputXHTMLs() {
auto t = inline_notes_seg(obj, _txt);
return t;
}
- auto toc_seg(O)(
+ string lev4_heading_subtoc(O)(
auto return ref const O obj,
- string _txt,
) {
- string o;
- o = format(q"¶ <div class="substance">
- <p class="%s" indent="h%si%s">
- %s
- </p>
- </div>¶",
- obj.is_a,
- obj.indent_hang,
- obj.indent_base,
- _txt,
+ char[] lev4_subtoc;
+ lev4_subtoc ~= " <div class=\"nav\">\n";
+ foreach (subtoc; obj.lev4_subtoc) {
+ if (auto m = subtoc.match(rgx.inline_link_subtoc)) {
+ auto indent = to!string(m.captures[1]);
+ auto text = to!string(m.captures[2]);
+ text = font_face(text);
+ auto link = to!string(m.captures[3]);
+ lev4_subtoc ~= subtoc.replaceFirst(rgx.inline_link_subtoc,
+ format(q"¶ <p class="minitoc" indent="h%si%s">
+ <a href="%s">%s</a>
+ </p>
+ ¶",
+ indent,
+ indent,
+ link,
+ text,
+ ));
+ }
+ }
+ lev4_subtoc ~= " </div>\n";
+ return lev4_subtoc.to!string;
+ }
+ string nav_pre_next_table(O)(
+ auto return ref const O obj,
+ ) {
+ string prev, next, toc;
+ if (obj.segname_prev == "") {
+ prev = "";
+ } else {
+ prev = format(q"¶
+ <td align="center" bgcolor="#ffffff">
+ <a href="%s.html" target="_top">
+ <img border="0" width="22" height="22" src="../../../image/arrow_prev_red.png" alt=" &lt;&lt; [ prev ] " />
+ </a>
+ </td>
+ ¶",
+ obj.segname_prev,
+ );
+ }
+ if (obj.segname_next == "") {
+ next = "";
+ } else {
+ next = format(q"¶
+ <td align="center" bgcolor="#ffffff">
+ <a href="%s.html" target="_top">
+ <img border="0" width="22" height="22" src="../../../image/arrow_next_red.png" alt=" [ next ] &gt;&gt; " />
+ </a>
+ </td>
+ ¶",
+ obj.segname_next,
+ );
+ }
+ if (obj.segment_anchor_tag == "toc") {
+ toc = "";
+ prev = "";
+ } else {
+ toc = format(q"¶
+ <td align="center" bgcolor="#ffffff">
+ <a href="toc.html" target="_top">
+ <img border="0" width="22" height="22" src="../../../image/arrow_up_red.png" alt=" [ toc ] " />
+ </a>
+ </td>
+ ¶",
+ );
+ }
+ string o = format(q"¶<div class="nav">
+ <table summary="segment navigation pre/next" border="0" cellpadding="3" cellspacing="0">
+ <tr>
+ %s
+ %s
+ %s
+ </tr>
+ </table>
+ </div>
+ ¶",
+ prev,
+ toc,
+ next,
);
return o;
}