diff options
author | Ralph Amissah <ralph@amissah.com> | 2017-06-06 17:52:38 -0400 |
---|---|---|
committer | Ralph Amissah <ralph@amissah.com> | 2019-04-10 15:14:14 -0400 |
commit | 64922b57604c8e0c29a1dcd3ae313d243bf6b46d (patch) | |
tree | 3434a32c04b884449ab20df1f7e59cf4cd31a670 | |
parent | output xmls, minor asserts (diff) |
html seg, work on subtoc & on nav pre-next
-rw-r--r-- | org/default_regex.org | 1 | ||||
-rw-r--r-- | org/output_xmls.org | 139 | ||||
-rw-r--r-- | src/sdp/ao/rgx.d | 1 | ||||
-rw-r--r-- | src/sdp/output/html.d | 2 | ||||
-rw-r--r-- | src/sdp/output/rgx.d | 1 | ||||
-rw-r--r-- | src/sdp/output/xmls.d | 130 |
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=" << [ 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 ] >> " /> + </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=" << [ 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 ] >> " /> + </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; } |