aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/doc_reform
diff options
context:
space:
mode:
Diffstat (limited to 'src/doc_reform')
-rw-r--r--src/doc_reform/io_out/epub3.d4
-rw-r--r--src/doc_reform/io_out/html.d30
-rw-r--r--src/doc_reform/io_out/hub.d8
-rw-r--r--src/doc_reform/io_out/latex.d34
-rw-r--r--src/doc_reform/io_out/metadata.d27
-rw-r--r--src/doc_reform/io_out/odt.d86
-rw-r--r--src/doc_reform/io_out/source_pod.d4
-rw-r--r--src/doc_reform/io_out/xmls.d7
-rw-r--r--src/doc_reform/meta/metadoc_curate_authors.d4
-rw-r--r--src/doc_reform/meta/metadoc_curate_topics.d2
10 files changed, 132 insertions, 74 deletions
diff --git a/src/doc_reform/io_out/epub3.d b/src/doc_reform/io_out/epub3.d
index 7a646fb..c94863b 100644
--- a/src/doc_reform/io_out/epub3.d
+++ b/src/doc_reform/io_out/epub3.d
@@ -638,6 +638,10 @@ template outputEPub3() {
if (!exists(pth_epub3.base)) {
pth_epub3.base.mkdirRecurse;
}
+ if (!exists(pth_epub3.base ~ "/index.html")) {
+ auto f = File(pth_epub3.base ~"/index.html", "w");
+ f.writeln("");
+ }
{ /+ debug +/
if (doc_matters.opt.action.debug_do_epub) {
if (!exists(pth_epub3.dbg_doc_meta_inf(doc_matters.src.filename))) {
diff --git a/src/doc_reform/io_out/html.d b/src/doc_reform/io_out/html.d
index 29f7f4e..9e108c6 100644
--- a/src/doc_reform/io_out/html.d
+++ b/src/doc_reform/io_out/html.d
@@ -245,9 +245,15 @@ template outputHTML() {
if (!exists(pth_html.base)) {
pth_html.base.mkdirRecurse;
}
- auto f = File(pth_html.fn_scroll(doc_matters.src.filename), "w");
- foreach (o; doc) {
- f.writeln(o);
+ {
+ auto f = File(pth_html.fn_scroll(doc_matters.src.filename), "w");
+ foreach (o; doc) {
+ f.writeln(o);
+ }
+ }
+ if (!exists(pth_html.base ~ "/index.html")) {
+ auto f = File(pth_html.base ~"/index.html", "w");
+ f.writeln("");
}
} catch (ErrnoException ex) {
// Handle error
@@ -550,10 +556,16 @@ template outputHTML() {
if (!exists(pth_html.css)) {
(pth_html.css).mkdirRecurse;
}
- auto f = File(pth_html.fn_seg_css, "w");
- f.writeln(css.html_seg);
- f = File(pth_html.fn_scroll_css, "w");
- f.writeln(css.html_scroll);
+ {
+ auto f = File(pth_html.fn_seg_css, "w");
+ f.writeln(css.html_seg);
+ f = File(pth_html.fn_scroll_css, "w");
+ f.writeln(css.html_scroll);
+ }
+ if (!exists(pth_html.css ~ "/index.html")) {
+ auto f = File(pth_html.css ~"/index.html", "w");
+ f.writeln("");
+ }
} catch (ErrnoException ex) {
// Handle error
}
@@ -580,6 +592,10 @@ template outputHTML() {
}
}
}
+ if (!exists(pth_html.image ~ "/index.html")) {
+ auto f = File(pth_html.image ~"/index.html", "w");
+ f.writeln("");
+ }
}
}
}
diff --git a/src/doc_reform/io_out/hub.d b/src/doc_reform/io_out/hub.d
index 06c684e..308d05a 100644
--- a/src/doc_reform/io_out/hub.d
+++ b/src/doc_reform/io_out/hub.d
@@ -180,11 +180,11 @@ template outputHubInitialize() {
&& !(opt_action.output_dir_set ~ "/index.html").exists
) {
writeln(_bespoke_homepage);
- if (("./spine-bespoke-output/html/homepage.index.html").exists) {
- writeln("copy bespoke html homepage\n./spine-bespoke-output/html/homepage.index.html -> ", opt_action.output_dir_set, "/index.html");
- "./spine-bespoke-output/html/homepage.index.html".copy(opt_action.output_dir_set ~ "/index.html");
+ if ((_bespoke_homepage).exists) {
+ writeln("copy bespoke html homepage\n", _bespoke_homepage, " -> ", opt_action.output_dir_set, "/index.html");
+ _bespoke_homepage.copy(opt_action.output_dir_set ~ "/index.html");
} else {
- writeln("place bespoke homepage in ./spine-bespoke-output/html/homepage.index.html");
+ writeln("place bespoke homepage in ", _bespoke_homepage);
}
}
if (
diff --git a/src/doc_reform/io_out/latex.d b/src/doc_reform/io_out/latex.d
index 56ae9fe..231d0c5 100644
--- a/src/doc_reform/io_out/latex.d
+++ b/src/doc_reform/io_out/latex.d
@@ -1349,17 +1349,23 @@ template outputLaTeX() {
if (doc_matters.opt.action.vox_gt0) {
writeln(" ", pth_latex.latex_file_with_path(paper_size_orientation));
}
- auto f = File(pth_latex.latex_file_with_path(paper_size_orientation), "w");
- f.writeln(latex_content.head);
- f.writeln(latex_content.content);
- f.writeln(latex_content.tail);
- foreach (image; doc_matters.srcs.image_list) {
- string fn_src_in = doc_matters.src.image_dir_path ~ "/" ~ image;
- string fn_src_out_file = pth_latex.latex_path_stuff ~ "/" ~ image;
- if (exists(fn_src_in)) {
- fn_src_in.copy(fn_src_out_file);
+ {
+ auto f = File(pth_latex.latex_file_with_path(paper_size_orientation), "w");
+ f.writeln(latex_content.head);
+ f.writeln(latex_content.content);
+ f.writeln(latex_content.tail);
+ foreach (image; doc_matters.srcs.image_list) {
+ string fn_src_in = doc_matters.src.image_dir_path ~ "/" ~ image;
+ string fn_src_out_file = pth_latex.latex_path_stuff ~ "/" ~ image;
+ if (exists(fn_src_in)) {
+ fn_src_in.copy(fn_src_out_file);
+ }
}
}
+ if (!exists(pth_latex.latex_path_stuff ~ "/index.html")) {
+ auto f = File(pth_latex.latex_path_stuff ~"/index.html", "w");
+ f.writeln("");
+ }
} catch (ErrnoException ex) {
// handle error
}
@@ -1399,8 +1405,14 @@ template outputLaTeXstyInit() {
if (!exists(pth_latex.base_sty)) {
(pth_latex.base_sty).mkdirRecurse;
}
- auto f = File(pth_latex.latex_document_header_sty(filename), "w");
- f.writeln(latex_sty);
+ {
+ auto f = File(pth_latex.latex_document_header_sty(filename), "w");
+ f.writeln(latex_sty);
+ }
+ if (!exists(pth_latex.base_sty ~ "/index.html")) {
+ auto f = File(pth_latex.base_sty ~"/index.html", "w");
+ f.writeln("");
+ }
} catch (ErrnoException ex) {
// handle error
}
diff --git a/src/doc_reform/io_out/metadata.d b/src/doc_reform/io_out/metadata.d
index 3fab452..2686d15 100644
--- a/src/doc_reform/io_out/metadata.d
+++ b/src/doc_reform/io_out/metadata.d
@@ -331,9 +331,15 @@ string theme_light_1 = format(q"┃
if (!exists(pth_html.base)) {
pth_html.base.mkdirRecurse;
}
- auto f = File(pth_html.fn_scroll("metadata." ~ doc_matters.src.filename), "w");
- foreach (o; metadata_) {
- f.writeln(o);
+ {
+ auto f = File(pth_html.fn_scroll("metadata." ~ doc_matters.src.filename), "w");
+ foreach (o; metadata_) {
+ f.writeln(o);
+ }
+ }
+ if (!exists(pth_html.base ~ "/index.html")) {
+ auto f = File(pth_html.base ~"/index.html", "w");
+ f.writeln("");
}
} catch (ErrnoException ex) {
// Handle error
@@ -372,12 +378,17 @@ string theme_light_1 = format(q"┃
┃");
metadata_ ~= "<div class=\"flex-menu-bar\"><div class=\"flex-menu-option\">";
if (doc_matters.opt.action.html_link_curate) {
- metadata_ ~= format(q"┃<p>[<a href="../../../index.html">&nbsp;<b>≅</b>&nbsp;≅&nbsp;HOME&nbsp;</a>] ⌘ Curated metadata:
- [<a href="../../authors.html">&nbsp;Authors&nbsp;</a>]
- [<a href="../../topics.html">&nbsp;Topics&nbsp;</a>]</p>
- ┃");
+ metadata_ ~= format(q"┃<p>[<a href="%s">&nbsp;<b>⟰</b>&nbsp;HOME&nbsp;</a>&nbsp;|&nbsp;<a href="../../index.html">&nbsp;≅&nbsp;Collection&nbsp;</a>]&nbsp;&nbsp;[
+ <a href="../../authors.html">&nbsp;&#x1F58B;&nbsp;Authors&nbsp;</a> |
+ <a href="../../topics.html">&nbsp;⌘&nbsp;Topics&nbsp;</a>]</p>
+ ┃",
+ (doc_matters.opt.action.webserver_url_doc_root.length > 0)
+ ? doc_matters.opt.action.webserver_url_doc_root
+ : doc_matters.conf_make_meta.conf.w_srv_data_root_url
+ , // HOME index.html equivalent _cfg.www_url_doc_root,
+ );
} else {
- metadata_ ~= format(q"┃<p>[<a href="../../../index.html">&nbsp;≅&nbsp;<b>HOME</b>&nbsp;</a>]
+ metadata_ ~= format(q"┃<p>[<a href="../../../index.html">&nbsp;≅&nbsp;<b>HOME</b>&nbsp;</a>&nbsp;<a href="../../index.html">&nbsp;≅&nbsp;Collection&nbsp;</a>]
┃");
}
metadata_ ~= "</div>" ~ inline_search_form(doc_matters) ~ "</div><hr />";
diff --git a/src/doc_reform/io_out/odt.d b/src/doc_reform/io_out/odt.d
index 8604684..df52149 100644
--- a/src/doc_reform/io_out/odt.d
+++ b/src/doc_reform/io_out/odt.d
@@ -999,6 +999,10 @@ template outputODT() {
if (!exists(pth_odt.base_pth)) {
pth_odt.base_pth.mkdirRecurse;
}
+ if (!exists(pth_odt.base_pth ~ "/index.html")) {
+ auto f = File(pth_odt.base_pth ~"/index.html", "w");
+ f.writeln("");
+ }
// return 0;
}
@safe string mimetype() {
@@ -2049,48 +2053,54 @@ template outputODT() {
if (!exists(pth_odt.base_pth)) { // check
pth_odt.base_pth.mkdirRecurse;
}
- string fn;
- File f;
- { fn = pth_odt.mimetype("zip");
- ODTzip(odt_content.mimetype, fn);
- }
- { fn = pth_odt.manifest_rdf("zip");
- ODTzip(odt_content.manifest_rdf, fn);
- }
- { fn = pth_odt.settings_xml("zip");
- ODTzip(odt_content.settings_xml, fn);
- }
- { fn = pth_odt.styles_xml("zip");
- ODTzip(odt_content.styles_xml, fn);
- }
- { fn = pth_odt.content_xml("zip");
- ODTzip(odt_content.content_xml, fn);
- }
- { fn = pth_odt.manifest_xml("zip");
- ODTzip(odt_content.manifest_xml, fn);
- }
- { fn = pth_odt.meta_xml("zip");
- ODTzip(odt_content.meta_xml, fn);
- }
- { /+ (images) +/
- foreach (image; doc_matters.srcs.image_list) {
- auto fn_src = doc_matters.src.image_dir_path ~ "/" ~ image;
- auto fn_out = pth_odt.image_dir("zip") ~ "/" ~ image;
- if (exists(fn_src)) {
- {
- auto zip_arc_member_file = new ArchiveMember();
- zip_arc_member_file.name = fn_out;
- auto zip_data = new OutBuffer();
- zip_data.write(cast(char[]) ((fn_src).read));
- zip_arc_member_file.expandedData = zip_data.toBytes();
- zip.addMember(zip_arc_member_file);
- createZipFile!()(fn_odt, zip.build());
+ {
+ string fn;
+ File f;
+ { fn = pth_odt.mimetype("zip");
+ ODTzip(odt_content.mimetype, fn);
+ }
+ { fn = pth_odt.manifest_rdf("zip");
+ ODTzip(odt_content.manifest_rdf, fn);
+ }
+ { fn = pth_odt.settings_xml("zip");
+ ODTzip(odt_content.settings_xml, fn);
+ }
+ { fn = pth_odt.styles_xml("zip");
+ ODTzip(odt_content.styles_xml, fn);
+ }
+ { fn = pth_odt.content_xml("zip");
+ ODTzip(odt_content.content_xml, fn);
+ }
+ { fn = pth_odt.manifest_xml("zip");
+ ODTzip(odt_content.manifest_xml, fn);
+ }
+ { fn = pth_odt.meta_xml("zip");
+ ODTzip(odt_content.meta_xml, fn);
+ }
+ { /+ (images) +/
+ foreach (image; doc_matters.srcs.image_list) {
+ auto fn_src = doc_matters.src.image_dir_path ~ "/" ~ image;
+ auto fn_out = pth_odt.image_dir("zip") ~ "/" ~ image;
+ if (exists(fn_src)) {
+ {
+ auto zip_arc_member_file = new ArchiveMember();
+ zip_arc_member_file.name = fn_out;
+ auto zip_data = new OutBuffer();
+ zip_data.write(cast(char[]) ((fn_src).read));
+ zip_arc_member_file.expandedData = zip_data.toBytes();
+ zip.addMember(zip_arc_member_file);
+ createZipFile!()(fn_odt, zip.build());
+ }
}
}
}
+ if (doc_matters.opt.action.vox_gt0) {
+ writeln(" ", pth_odt.odt_file);
+ }
}
- if (doc_matters.opt.action.vox_gt0) {
- writeln(" ", pth_odt.odt_file);
+ if (!exists(pth_odt.base_pth ~ "/index.html")) {
+ auto f = File(pth_odt.base_pth ~"/index.html", "w");
+ f.writeln("");
}
} catch (ErrnoException ex) {
// Handle error
diff --git a/src/doc_reform/io_out/source_pod.d b/src/doc_reform/io_out/source_pod.d
index 7c08a89..f61721c 100644
--- a/src/doc_reform/io_out/source_pod.d
+++ b/src/doc_reform/io_out/source_pod.d
@@ -128,6 +128,10 @@ template spinePod() {
pths_pod.doc_lng(doc_matters.src.filename, doc_matters.src.language).filesystem_open_zpod.mkdirRecurse;
}
}
+ if (!exists(pths_pod.pod_dir_() ~ "/index.html")) {
+ auto f = File(pths_pod.pod_dir_() ~"/index.html", "w");
+ f.writeln("");
+ }
if (doc_matters.opt.action.debug_do_pod
&& doc_matters.opt.action.vox_gt1) {
writeln(__LINE__, ": ",
diff --git a/src/doc_reform/io_out/xmls.d b/src/doc_reform/io_out/xmls.d
index 048b614..c38844c 100644
--- a/src/doc_reform/io_out/xmls.d
+++ b/src/doc_reform/io_out/xmls.d
@@ -320,7 +320,7 @@ template outputXHTMLs() {
) {
string o;
string metadata_links = ((doc_matters.opt.action.html_link_curate)
- ? format(q"┃<p class="small">[<a href="%s">&nbsp;≅&nbsp;</a>|<a href="%s">&nbsp;%s&nbsp;</a>|<a href="%sepub/%s.%s.epub">&nbsp;◆&nbsp;</a>|%s%s<a href="%smetadata.%s.html">&nbsp;⌘•&nbsp;</a>|<a href="%s../../authors.html">&nbsp;⌘A&nbsp;</a>|<a href="%s../../topics.html">&nbsp;⌘T&nbsp;</a>]</p>┃",
+ ? format(q"┃<p class="small"><a href="%s">⟰&nbsp;</a>&nbsp;[<a href="%s">&nbsp;%s&nbsp;</a><a href="%sepub/%s.%s.epub">&nbsp;◆&nbsp;</a>%s%s<a href="%smetadata.%s.html">&nbsp;⌘•&nbsp;</a>]&nbsp;&nbsp;<a href="%s../../index.html">&nbsp;≅&nbsp;</a>|<a href="%s../../authors.html">&nbsp;&#x1F58B;&nbsp;</a>|<a href="%s../../topics.html">&nbsp;⌘&nbsp;</a>|</p>┃",
(doc_matters.opt.action.webserver_url_doc_root.length > 0)
? doc_matters.opt.action.webserver_url_doc_root
: doc_matters.conf_make_meta.conf.w_srv_data_root_url
@@ -339,7 +339,7 @@ template outputXHTMLs() {
~ doc_matters.src.filename_base
~ "."
~ doc_matters.src.lng
- ~ ".a4.portrait.pdf\">&nbsp;□&nbsp;</a>|")
+ ~ ".a4.portrait.pdf\">&nbsp;□&nbsp;</a>")
: "",
(doc_matters.opt.action.html_link_pdf || doc_matters.opt.action.html_link_pdf_letter)
? ("<a href=\""
@@ -348,12 +348,13 @@ template outputXHTMLs() {
~ doc_matters.src.filename_base
~ "."
~ doc_matters.src.lng
- ~ ".letter.portrait.pdf\">&nbsp;□&nbsp;</a>|")
+ ~ ".letter.portrait.pdf\">&nbsp;□&nbsp;</a>")
: "",
(type == "seg") ? "../" : "",
doc_matters.src.filename_base,
(type == "seg") ? "../" : "",
(type == "seg") ? "../" : "",
+ (type == "seg") ? "../" : "",
)
: "");
o = format(q"┃<!DOCTYPE html>
diff --git a/src/doc_reform/meta/metadoc_curate_authors.d b/src/doc_reform/meta/metadoc_curate_authors.d
index ee78b23..574b6d1 100644
--- a/src/doc_reform/meta/metadoc_curate_authors.d
+++ b/src/doc_reform/meta/metadoc_curate_authors.d
@@ -394,7 +394,7 @@ string theme_light_1 = format(q"┃
<h1>⌘ Curated metadata - Authors (output organised by language &amp; filetype)</h1>
<div class="flex-menu-bar">
<div class="flex-menu-option">
-<p>[<a href="../../index.html">&nbsp;≅&nbsp;HOME&nbsp;</a>]
+<p>[<a href="../../index.html">&nbsp;⟰&nbsp;HOME&nbsp;</a>&nbsp;|&nbsp;<a href="../index.html">&nbsp;≅&nbsp;Collection&nbsp;</a>]
[<a href="topics.html">&nbsp;⌘&nbsp;Curated&nbsp;metadata&nbsp;-&nbsp;Topics&nbsp;</a>] </p>
</div>
%s
@@ -480,7 +480,7 @@ string theme_light_1 = format(q"┃
import doc_reform.io_out.paths_output;
auto out_pth = spinePathsHTML!()(_make_and_meta_struct.conf.output_path, "");
try {
- auto f = File(out_pth.curate("authors.html"), "w");
+ auto f = File(out_pth.curate("authors.html"), "w");
foreach (o; authors) {
f.writeln(o);
}
diff --git a/src/doc_reform/meta/metadoc_curate_topics.d b/src/doc_reform/meta/metadoc_curate_topics.d
index 82f0060..304bd00 100644
--- a/src/doc_reform/meta/metadoc_curate_topics.d
+++ b/src/doc_reform/meta/metadoc_curate_topics.d
@@ -648,7 +648,7 @@ string theme_light_1 = format(q"┃
import doc_reform.io_out.paths_output;
auto out_pth = spinePathsHTML!()(_make_and_meta_struct.conf.output_path, "");
try {
- auto f = File(out_pth.curate("topics.html"), "w");
+ auto f = File(out_pth.curate("topics.html"), "w");
foreach (o; topics) {
f.writeln(o);
}