diff options
Diffstat (limited to 'org/output.org')
-rw-r--r-- | org/output.org | 398 |
1 files changed, 206 insertions, 192 deletions
diff --git a/org/output.org b/org/output.org index 6e50fbc..8f221bc 100644 --- a/org/output.org +++ b/org/output.org @@ -16,7 +16,210 @@ * output :output: ** text :text: ** html [#A] :html: -*** css +*** html +**** html functions + +***** html + +#+name: output_html +#+BEGIN_SRC d +auto html_toc(O)( + auto ref const O obj, +) { + string o; + o = format(q"◎<h%s class="toc"><a href="#%s">%s</a></h%s>◎", + obj.heading_attrib.lev_markup_number, + obj.obj_cite_number, + obj.object, + obj.heading_attrib.lev_markup_number + ); + return o; +} +#+END_SRC + +***** heading + +#+name: output_html +#+BEGIN_SRC d +auto html_heading(O)( + auto ref const O obj, +) { + string o; + o = format(q"◎<br><hr /><br> + <div class="substance"> + <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> + <h%s class="norm" id="%s"><a name="%s"></a> + %s + </h%s> + </div> + ◎", + obj.obj_cite_number, + obj.obj_cite_number, + obj.heading_attrib.lev_markup_number, + obj.obj_cite_number, + obj.obj_cite_number, + obj.object, + obj.heading_attrib.lev_markup_number + ); + return o; +} +#+END_SRC + +***** para + +#+name: output_html +#+BEGIN_SRC d +auto html_para(O)( + auto ref const O obj, +) { + string o; + o = format(q"◎<div class="substance"> + <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> + <p class="h%si%s" id="%s"> + %s + </p> + </div> + ◎", + obj.obj_cite_number, + obj.obj_cite_number, + obj.para_attrib.indent_first, + obj.para_attrib.indent_second, + obj.obj_cite_number, + obj.object + ); + return o; +} +#+END_SRC + +**** html scroll head & tail + +#+name: output_html +#+BEGIN_SRC d +auto scroll_head() { + string o; + o = format(q"◎ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title> + Title + </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="../_sisu/image/rb7.ico" /> + <link href="../../_sisu/css/html.css" rel="stylesheet"> + <link href="../../../_sisu/css/html.css" rel="stylesheet"> +</head> +<body lang="en"> +<a name="top" id="top"></a> +◎"); + return o; +} +auto scroll_tail() { + string o; + o = format(q"◎ +<a name="bottom" id="bottom"></a> +<a name="end" id="end"></a> +</div> +</body> +</html> +◎"); + return o; +} +#+END_SRC + +**** html scroll + +#+name: output_html +#+BEGIN_SRC d +void scroll(C)( + auto ref const C contents, + string[][string][string] bookindex_unordered_hashes, + JSONValue[] biblio, + string[string][string] dochead_make, + string[string][string] dochead_meta, + string fn_src, + bool[string] opt_action_bool +) { + auto rgx = Rgx(); + string[] toc; + string[] body_; + string[] doc; + foreach (obj; contents) { + if (obj.use == "content") { + switch (obj.is_a) { + case "heading": + toc ~= html_toc(obj); + body_ ~= html_heading(obj); + break; + case "para": + body_ ~= html_para(obj); + break; + case "verse": + body_ ~= html_para(obj); + // body_ ~= html_verse(obj); + break; + case "group": + body_ ~= html_para(obj); + // body_ ~= html_group(obj); + break; + case "block": + body_ ~= html_para(obj); + // body_ ~= html_block(obj); + break; + case "quote": + body_ ~= html_para(obj); + // body_ ~= html_quote(obj); + break; + case "table": + body_ ~= html_para(obj); + // body_ ~= html_table(obj); + break; + case "code": + body_ ~= html_para(obj); + // body_ ~= html_code(obj); + break; + default: + body_ ~= html_para(obj); + break; + } + } + } + doc = scroll_head ~ toc ~ body_ ~ scroll_tail; + auto m = matchFirst(fn_src, rgx.src_fn); + auto fn = m["fn_base"] ~ ".html"; + auto pth_html = "en/html"; + auto pth_seg = pth_html ~ "/" ~ m["fn_base"]; + auto pth_html_fn = pth_html ~ "/" ~ fn; + // auto pth_css= "_sisu/css"; + // auto pth_css_fn= pth_css ~ "/html.css"; + try { + mkdirRecurse(pth_seg); + auto f = File(pth_html_fn, "w"); + foreach (o; doc) { + f.writeln(o); + } + } + catch (ErrnoException ex) { + // Handle error + } +} +#+END_SRC + +*** css :css: #+name: output_html_css #+BEGIN_SRC d @@ -1326,195 +1529,6 @@ auto css_write() { } #+END_SRC -*** html -**** html functions - -#+name: output_html -#+BEGIN_SRC d -auto html_toc(O)( - auto ref const O obj, -) { - string o; - o = format(q"◎<h%s class="toc"><a href="#%s">%s</a></h%s>◎", - obj.heading_attrib.lev_markup_number, - obj.obj_cite_number, - obj.object, - obj.heading_attrib.lev_markup_number - ); - return o; -} -auto html_heading(O)( - auto ref const O obj, -) { - string o; - o = format(q"◎<br><hr /><br> - <div class="substance"> - <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> - <h%s class="norm" id="%s"><a name="%s"></a> - %s - </h%s> - </div> - ◎", - obj.obj_cite_number, - obj.obj_cite_number, - obj.heading_attrib.lev_markup_number, - obj.obj_cite_number, - obj.obj_cite_number, - obj.object, - obj.heading_attrib.lev_markup_number - ); - return o; -} -auto html_para(O)( - auto ref const O obj, -) { - string o; - o = format(q"◎<div class="substance"> - <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> - <p class="h%si%s" id="%s"> - %s - </p> - </div> - ◎", - obj.obj_cite_number, - obj.obj_cite_number, - obj.para_attrib.indent_first, - obj.para_attrib.indent_second, - obj.obj_cite_number, - obj.object - ); - return o; -} -#+END_SRC - -**** html scroll head & tail - -#+name: output_html -#+BEGIN_SRC d -auto scroll_head() { - string o; - o = format(q"◎ -<!DOCTYPE html> -<html> -<head> - <meta charset="utf-8"> - <title> - Title - </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="../_sisu/image/rb7.ico" /> - <link href="../../_sisu/css/html.css" rel="stylesheet"> - <link href="../../../_sisu/css/html.css" rel="stylesheet"> -</head> -<body lang="en"> -<a name="top" id="top"></a> -◎"); - return o; -} -auto scroll_tail() { - string o; - o = format(q"◎ -<a name="bottom" id="bottom"></a> -<a name="end" id="end"></a> -</div> -</body> -</html> -◎"); - return o; -} -#+END_SRC - -**** html scroll - -#+name: output_html -#+BEGIN_SRC d -void scroll(C)( - auto ref const C contents, - string[][string][string] bookindex_unordered_hashes, - JSONValue[] biblio, - string[string][string] dochead_make, - string[string][string] dochead_meta, - string fn_src, - bool[string] opt_action_bool -) { - auto rgx = Rgx(); - string[] toc; - string[] body_; - string[] doc; - foreach (obj; contents) { - if (obj.use == "content") { - switch (obj.is_a) { - case "heading": - toc ~= html_toc(obj); - body_ ~= html_heading(obj); - break; - case "para": - body_ ~= html_para(obj); - break; - case "verse": - body_ ~= html_para(obj); - // body_ ~= html_verse(obj); - break; - case "group": - body_ ~= html_para(obj); - // body_ ~= html_group(obj); - break; - case "block": - body_ ~= html_para(obj); - // body_ ~= html_block(obj); - break; - case "quote": - body_ ~= html_para(obj); - // body_ ~= html_quote(obj); - break; - case "table": - body_ ~= html_para(obj); - // body_ ~= html_table(obj); - break; - case "code": - body_ ~= html_para(obj); - // body_ ~= html_code(obj); - break; - default: - body_ ~= html_para(obj); - break; - } - } - } - doc = scroll_head ~ toc ~ body_ ~ scroll_tail; - auto m = matchFirst(fn_src, rgx.src_fn); - auto fn = m["fn_base"] ~ ".html"; - auto pth_html = "en/html"; - auto pth_seg = pth_html ~ "/" ~ m["fn_base"]; - auto pth_html_fn = pth_html ~ "/" ~ fn; - // auto pth_css= "_sisu/css"; - // auto pth_css_fn= pth_css ~ "/html.css"; - try { - mkdirRecurse(pth_seg); - auto f = File(pth_html_fn, "w"); - foreach (o; doc) { - f.writeln(o); - } - } - catch (ErrnoException ex) { - // Handle error - } -} -#+END_SRC - ** epub [#B] :epub: ** pdf :pdf: ** odt :odt: @@ -1527,8 +1541,8 @@ void scroll(C)( #+BEGIN_SRC d :tangle ../src/sdp/output_hub.d /+ - output hub output_hub.d + output_html.d +/ template SiSUoutputHub() { struct SDPoutput { @@ -1584,8 +1598,8 @@ template SiSUoutputHub() { #+BEGIN_SRC d :tangle ../src/sdp/output_html.d template SiSUoutputHTML() { struct SDPoutputHTML { - <<output_html_css>> <<output_html>> + <<output_html_css>> } } #+END_SRC |