diff options
Diffstat (limited to 'src/sdp/output_html.d')
-rw-r--r-- | src/sdp/output_html.d | 134 |
1 files changed, 96 insertions, 38 deletions
diff --git a/src/sdp/output_html.d b/src/sdp/output_html.d index 5cd1b26..0390799 100644 --- a/src/sdp/output_html.d +++ b/src/sdp/output_html.d @@ -16,23 +16,38 @@ template SiSUoutputHTML() { ) { auto tags = _html_anchor_tags(obj.anchor_tags); string o; - o = format(q"¶<br><hr /><br> + if (obj.obj_cite_number.empty) { + o = format(q"¶<br><hr /><br> + <div class="substance"> + <h%s class="%s">%s + %s + </h%s> + </div>¶", + obj.heading_lev_markup, + obj.is_a, + tags, + obj.text, + obj.heading_lev_markup, + ); + } else { + o = format(q"¶<br><hr /><br> <div class="substance"> <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <h%s class="%s" id="%s"><a name="%s"></a>%s %s </h%s> </div>¶", - obj.obj_cite_number, - obj.obj_cite_number, - obj.heading_lev_markup, - obj.is_a, - obj.obj_cite_number, - obj.obj_cite_number, - tags, - obj.text, - obj.heading_lev_markup, - ); + obj.obj_cite_number, + obj.obj_cite_number, + obj.heading_lev_markup, + obj.is_a, + obj.obj_cite_number, + obj.obj_cite_number, + tags, + obj.text, + obj.heading_lev_markup, + ); + } return o; } auto html_para(O)( @@ -42,13 +57,10 @@ template SiSUoutputHTML() { string o; if (obj.obj_cite_number.empty) { o = format(q"¶ <div class="substance"> - <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <p class="%s" indent="h%si%s">%s %s </p> </div>¶", - obj.obj_cite_number, - obj.obj_cite_number, obj.is_a, obj.indent_hang, obj.indent_base, @@ -78,18 +90,29 @@ template SiSUoutputHTML() { auto ref const O obj, ) { string o; - o = format(q"¶ <div class="substance"> + if (obj.obj_cite_number.empty) { + o = format(q"¶ <div class="substance"> + <p class="%s"> + %s + </p> + </div>¶", + obj.is_a, + obj.text + ); + } else { + o = format(q"¶ <div class="substance"> <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <p class="%s" id="%s"> %s </p> </div>¶", - obj.obj_cite_number, - obj.obj_cite_number, - obj.is_a, - obj.obj_cite_number, - obj.text - ); + obj.obj_cite_number, + obj.obj_cite_number, + obj.is_a, + obj.obj_cite_number, + obj.text + ); + } return o; } auto scroll_head_html() { @@ -99,7 +122,7 @@ template SiSUoutputHTML() { <head> <meta charset="utf-8"> <title> - Title + %s%s </title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta name="dc.title" content="Title" /> @@ -120,7 +143,10 @@ template SiSUoutputHTML() { <link href="../../../_sisu/css/html.css" rel="stylesheet"> </head> <body lang="en"> - <a name="top" id="top"></a>¶"); + <a name="top" id="top"></a>¶", + dochead_meta["title"]["full"], + (dochead_meta["creator"]["author"].empty) ? "" : ", " ~ dochead_meta["creator"]["author"], + ); return o; } auto html_toc(O)( @@ -175,7 +201,7 @@ template SiSUoutputHTML() { string[] doc; foreach (part; document_section_keys_sequenced["scroll"]) { foreach (obj; contents[part]) { - if (obj.use == "content") { + if (obj.use == "frontmatter") { switch (obj.is_of) { case "para": switch (obj.is_a) { @@ -185,22 +211,23 @@ template SiSUoutputHTML() { case "toc": body_html ~= html_toc(obj); break; - case "para": - body_html ~= html_para(obj); - break; - case "endnote": - body_html ~= html_endnote(obj); - break; - case "glossary": - body_html ~= html_para(obj); - break; - case "bibliography": - body_html ~= html_para(obj); + default: + writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); break; - case "bookindex": - body_html ~= html_para(obj); + } + break; + default: + writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); + break; + } + } else if (obj.use == "body") { + switch (obj.is_of) { + case "para": + switch (obj.is_a) { + case "heading": + body_html ~= html_heading(obj); break; - case "blurb": + case "para": body_html ~= html_para(obj); break; default: @@ -239,6 +266,37 @@ template SiSUoutputHTML() { writeln(__FILE__, ":", __LINE__, ": ", obj.is_of); break; } + } else if (obj.use == "backmatter") { + switch (obj.is_of) { + case "para": + switch (obj.is_a) { + case "heading": + body_html ~= html_heading(obj); + break; + case "endnote": + body_html ~= html_endnote(obj); + break; + case "glossary": + body_html ~= html_para(obj); + break; + case "bibliography": + body_html ~= html_para(obj); + break; + case "bookindex": + body_html ~= html_para(obj); + break; + case "blurb": + body_html ~= html_para(obj); + break; + default: + writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); + break; + } + break; + default: + writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); + break; + } } } } |