aboutsummaryrefslogtreecommitdiffhomepage
path: root/org/out_harvest_metadata.org
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2021-09-01 15:40:20 -0400
committerRalph Amissah <ralph.amissah@gmail.com>2021-09-09 22:03:15 -0400
commit1f8b96b650ea645c1a92b40f29c8625b6228d53a (patch)
tree8e261492e487432d42d4d24d4908b634ab87e3d3 /org/out_harvest_metadata.org
parentxmls, epub3 toc_nav.xhtml toc.ncx (diff)
metadata "curate" replaces "harvest"
- "curated metadata" instead of "metadata harvest" - css color change to related pages, light theme
Diffstat (limited to 'org/out_harvest_metadata.org')
-rw-r--r--org/out_harvest_metadata.org1034
1 files changed, 0 insertions, 1034 deletions
diff --git a/org/out_harvest_metadata.org b/org/out_harvest_metadata.org
deleted file mode 100644
index c3d4fff..0000000
--- a/org/out_harvest_metadata.org
+++ /dev/null
@@ -1,1034 +0,0 @@
--*- mode: org -*-
-#+TITLE: spine (doc_manifest) metadata (multidocument) harvests
-#+DESCRIPTION: documents - structuring, various output representations & search
-#+FILETAGS: :spine:hub:
-#+AUTHOR: Ralph Amissah
-#+EMAIL: [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]]
-#+COPYRIGHT: Copyright (C) 2015 - 2021 Ralph Amissah
-#+LANGUAGE: en
-#+STARTUP: content hideblocks hidestars noindent entitiespretty
-#+OPTIONS: H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t
-#+PROPERTY: header-args :exports code
-#+PROPERTY: header-args+ :noweb yes
-#+PROPERTY: header-args+ :eval no
-#+PROPERTY: header-args+ :results no
-#+PROPERTY: header-args+ :cache no
-#+PROPERTY: header-args+ :padline no
-#+PROPERTY: header-args+ :mkdirp yes
-
-* document harvest _summary_ :module:spine:metadoc_show_summary:
-
-- html
- ~dr/bin/spine-ldc -v --html --html-link-harvest --harvest \
- --output=/var/www/html \
- ~grotto/repo/git.repo/code/project-spine/doc-reform-markup/markup_samples/markup/pod/*
-
-** _module template_ metadoc harvest
-
-#+HEADER: :tangle "../src/doc_reform/meta/metadoc_harvest.d"
-#+BEGIN_SRC d
-<<doc_header_including_copyright_and_license>>
-module doc_reform.meta.metadoc_harvest;
-template spineMetaDocHarvest() {
- @safe auto spineMetaDocHarvest(T,H)(
- T doc_matters,
- H hvst,
- ) {
- <<metadoc_harvest_imports>>
- mixin InternalMarkup;
- <<metadoc_harvest_initialize>>
- <<meta_metadoc_harvest>>
- }
-}
-#+END_SRC
-
-** init
-*** imports
-
-#+NAME: metadoc_harvest_imports
-#+BEGIN_SRC d
-import
- doc_reform.meta.defaults,
- doc_reform.meta.rgx;
-import
- std.array,
- std.exception,
- std.regex,
- std.stdio,
- std.string,
- std.typecons,
- std.uni,
- std.utf,
- std.conv : to;
-#+END_SRC
-
-*** initialize :report:
-
-#+NAME: metadoc_harvest_initialize
-#+BEGIN_SRC d
-static auto mkup = InlineMarkup();
-#+END_SRC
-
-** harvest summary
-
-#+NAME: meta_metadoc_harvest_summary
-#+BEGIN_SRC d
-auto min_repeat_number = 66;
-auto char_repeat_number = (doc_matters.conf_make_meta.meta.title_full.length
- + doc_matters.conf_make_meta.meta.creator_author.length + 4);
-char_repeat_number = (char_repeat_number > min_repeat_number)
-? char_repeat_number
-: min_repeat_number;
-writefln(
- "%s\n\"%s\", %s\n%s\n%s\n%s",
- mkup.repeat_character_by_number_provided("-", char_repeat_number),
- doc_matters.conf_make_meta.meta.title_full,
- doc_matters.conf_make_meta.meta.creator_author,
- doc_matters.src.filename,
- doc_matters.conf_make_meta.meta.classify_topic_register_arr,
- mkup.repeat_character_by_number_provided("-", char_repeat_number),
-);
-#+END_SRC
-
-** return harvest
-
-#+NAME: meta_metadoc_harvest
-#+BEGIN_SRC d
-import doc_reform.io_out.paths_output;
-auto pth_html_abs = spinePathsHTML!()(doc_matters.output_path, doc_matters.src.language);
-auto pth_html_rel = spineDocRootTreeHTML!()(doc_matters.src.language);
-hvst.harvest.title = doc_matters.conf_make_meta.meta.title_full;
-hvst.harvest.author = doc_matters.conf_make_meta.meta.creator_author;
-hvst.harvest.author_surname = doc_matters.conf_make_meta.meta.creator_author_surname;
-hvst.harvest.author_surname_fn = doc_matters.conf_make_meta.meta.creator_author_surname_fn;
-hvst.harvest.author_arr = doc_matters.conf_make_meta.meta.creator_author_arr;
-hvst.harvest.language_original = doc_matters.conf_make_meta.meta.original_language;
-hvst.harvest.language = doc_matters.src.language;
-hvst.harvest.uid = doc_matters.src.doc_uid;
-hvst.harvest.date_published = doc_matters.conf_make_meta.meta.date_published;
-hvst.harvest.topic_register_arr = doc_matters.conf_make_meta.meta.classify_topic_register_arr;
-hvst.harvest.path_html_metadata = pth_html_rel.fn_metadata(doc_matters.src.filename);
-hvst.harvest.path_html_scroll = pth_html_rel.fn_scroll(doc_matters.src.filename);
-hvst.harvest.path_html_segtoc = pth_html_rel.fn_seg(doc_matters.src.filename, "toc");
-hvst.harvest.path_abs_html_scroll = pth_html_abs.fn_scroll(doc_matters.src.filename);
-hvst.harvest.path_abs_html_segtoc = pth_html_abs.fn_seg(doc_matters.src.filename, "toc");
-return hvst.harvest;
-#+END_SRC
-
-** _module template_ metadoc harvest topics
-*** _module template_ metadoc harvest topics template
-
-#+HEADER: :tangle "../src/doc_reform/meta/metadoc_harvests_topics.d"
-#+BEGIN_SRC d
-<<doc_header_including_copyright_and_license>>
-module doc_reform.meta.metadoc_harvests_topics;
- import
- std.algorithm,
- std.array,
- std.exception,
- std.regex,
- std.stdio,
- std.string,
- std.conv : to;
- import
- doc_reform.meta.defaults,
- doc_reform.meta.rgx;
- mixin spineHarvest;
- mixin InternalMarkup;
-template spineMetaDocHarvestsTopics() {
- static auto mkup = InlineMarkup();
- void spineMetaDocHarvestsTopics(H,M,O)(
- H hvst,
- M _make_and_meta_struct,
- O _opt_action,
- ) {
- <<harvested_html_search>>
- <<harvested_topics>>
-<<harvested_html_themes_0>>
-<<harvested_html_themes_1>>
-<<harvested_topics_html_head_1>>
-<<harvested_html_head>>
-<<harvested_topics_html_head_2>>
-<<harvested_topics_html_head_theme>>
- <<harvested_topics_html>>
- topics
-<<harvested_html_bottom>>
- <<harvested_topics_html_write>>
- }
-}
-#+END_SRC
-
-*** order topic register
-
-#+NAME: harvested_topics
-#+BEGIN_SRC d
-auto min_repeat_number = 42;
-string[] _document_topic_register;
-string[] _topic_register;
-string[] _sub_topic_register;
-string[] topics = [];
-string _auth = "";
-foreach(k, doc_harvest; hvst.harvests) {
- _topic_register = [];
- foreach(topic; doc_harvest.topic_register_arr.sort) {
- _sub_topic_register = [];
- string _spaces;
- string[] subject_tree = topic.split(mkup.sep);
- switch (subject_tree.length) {
- case 1:
- hvst.subject_trees[subject_tree[0]]["_a"]["_a"]["_a"] ~= doc_harvest;
- break;
- case 2:
- hvst.subject_trees[subject_tree[0]][subject_tree[1]]["_a"]["_a"] ~= doc_harvest;
- break;
- case 3:
- hvst.subject_trees[subject_tree[0]][subject_tree[1]][subject_tree[2]]["_a"] ~= doc_harvest;
- break;
- case 4:
- hvst.subject_trees[subject_tree[0]][subject_tree[1]][subject_tree[2]][subject_tree[3]] ~= doc_harvest;
- break;
- default:
- break;
- }
- _topic_register ~= _sub_topic_register.join("\n");
- }
- auto char_repeat_number = (doc_harvest.title.length
- + doc_harvest.author.length + 16);
- char_repeat_number = (char_repeat_number > min_repeat_number)
- ? char_repeat_number
- : min_repeat_number;
- _document_topic_register ~= format(
- "\"%s\", %s%s\n%s",
- doc_harvest.title,
- doc_harvest.author,
- (doc_harvest.date_published.length > 0) ? " (" ~ doc_harvest.date_published ~ ")" : "",
- _topic_register.sort!("toUpper(a) < toUpper(b)", SwapStrategy.unstable).release.join("\n"),
- );
-}
-#+END_SRC
-
-*** harvested topics html head
-
-#+NAME: harvested_topics_html_head_1
-#+BEGIN_SRC d
- topics ~= format(q"┃<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<title>Metadata Harvest - Topics</title>
-#+END_SRC
-
-*** harvested topics html head
-
-#+NAME: harvested_topics_html_head_2
-#+BEGIN_SRC d
-</head>
-<body lang="en" xml:lang="en">
-<a name="top" id="top"></a>
-<a name="up" id="up"></a>
-<a name="start" id="start"></a>
-<h1>Metadata Harvest - Topics (output organised by language &amp; filetype)</h1>
-<div class="flex-menu-bar">
-<div class="flex-menu-option">
-<p>[<a href="../../index.html">&nbsp;HOME&nbsp;</a>]
- [<a href="authors.html">&nbsp;Metadata&nbsp;Harvest&nbsp;-&nbsp;Authors&nbsp;</a>]
-</p>
-</div>
- %s
-</div>
-<p><a href="#A">A</a>,&nbsp;<a href="#B">B</a>,&nbsp;<a href="#C">C</a>,&nbsp;<a href="#D">D</a>,&nbsp;<a href="#E">E</a>,&nbsp;<a href="#F">F</a>,&nbsp;<a href="#G">G</a>,&nbsp;<a href="#H">H</a>,&nbsp;<a href="#I">I</a>,&nbsp;<a href="#J">J</a>,&nbsp;<a href="#K">K</a>,&nbsp;<a href="#L">L</a>,&nbsp;<a href="#M">M</a>,&nbsp;<a href="#N">N</a>,&nbsp;<a href="#O">O</a>,&nbsp;<a href="#P">P</a>,&nbsp;<a href="#Q">Q</a>,&nbsp;<a href="#R">R</a>,&nbsp;<a href="#S">S</a>,&nbsp;<a href="#T">T</a>,&nbsp;<a href="#U">U</a>,&nbsp;<a href="#V">V</a>,&nbsp;<a href="#W">W</a>,&nbsp;<a href="#X">X</a>,&nbsp;<a href="#Y">Y</a>,&nbsp;<a href="#Z">Z</a>,&nbsp;
-<p></p>
-<hr />
-#+END_SRC
-
-*** harvested topics html head theme insert
-
-#+NAME: harvested_topics_html_head_theme
-#+BEGIN_SRC d
-┃",
- _opt_action.css_theme_default ? theme_light_0 : theme_dark_0,
- _opt_action.css_theme_default ? theme_light_1 : theme_dark_1,
- inline_search_form(_make_and_meta_struct),
-) ~ "\n";
-#+END_SRC
-
-*** harvested topics html
-
-#+NAME: harvested_topics_html
-#+BEGIN_SRC d
-char _prev_k = "_".to!char;
-int _kn;
-foreach(k0;
- hvst.subject_trees.keys
- .sort!("toUpper(a) < toUpper(b)", SwapStrategy.unstable)
-) {
- if (k0.toUpper.to!(char[])[0] != _prev_k) {
- topics ~= format(q"┃<p class="letter"><a name="%s">%s</a></p><p class="book_index_lev1"><a name="a"></a></p>┃",
- k0.toUpper.to!(char[])[0],
- k0.toUpper.to!(char[])[0],
- );
- _prev_k = k0.toUpper.to!(char[])[0];
- }
- if (k0 != "_a") {
- topics ~= format(q"┃<p class="lev0"><a name="%s" class="lev0">%s</a></p>┃",
- k0.translate([' ' : "_"]), k0,) ~ "\n";
- if (_opt_action.very_verbose) {
- writeln("", k0);
- }
- if ("_a" in hvst.subject_trees[k0]) {
- foreach (t_a_;
- hvst.subject_trees[k0]["_a"]["_a"]["_a"]
- .multiSort!("toUpper(a.title) < toUpper(b.title)", "a.author < b.author", SwapStrategy.unstable)
- ) {
- _auth = [];
- if (t_a_.author_arr.length < 2) {
- _auth = format(q"┃ <a href="authors.html#%s">%s</a>┃",
- t_a_.author_surname.translate([' ' : "_"]),
- t_a_.author,
- );
- } else {
- foreach (a; t_a_.author_arr) {
- _auth ~= format(q"┃ <a href="authors.html#%s">%s</a>,┃",
- t_a_.author_surname.translate([' ' : "_"]),
- a,
- );
- }
- }
- topics ~= format(q"┃<p class="work"><a href="%s">"%s"</a> - %s [<a href="%s">&nbsp;%s&nbsp;</a>]┃",
- t_a_.path_html_segtoc,
- t_a_.title,
- _auth,
- t_a_.path_html_metadata,
- t_a_.language,
- ) ~ "\n";
- if (_opt_action.very_verbose) {
- writeln("- ", t_a_.title, " - ", t_a_.author);
- }
- }
- }
- foreach(k1;
- hvst.subject_trees[k0].keys
- .sort!("toUpper(a) < toUpper(b)", SwapStrategy.unstable)
- ) {
- if (k1 != "_a") {
- topics ~= format(q"┃<p class="lev1"><a name="%s.%s" class="lev1">%s</a></p>┃",
- k0.translate([' ' : "_"]),
- k1.translate([' ' : "_"]), k1,) ~ "\n";
- if (_opt_action.very_verbose) {
- writeln(" ", k1);
- }
- if ("_a" in hvst.subject_trees[k0][k1]) {
- foreach (t_a_;
- hvst.subject_trees[k0][k1]["_a"]["_a"]
- .multiSort!("toUpper(a.title) < toUpper(b.title)", "a.author < b.author", SwapStrategy.unstable)
- ) {
- _auth = [];
- if (t_a_.author_arr.length < 2) {
- _auth = format(q"┃ <a href="authors.html#%s">%s</a>┃",
- t_a_.author_surname.translate([' ' : "_"]),
- t_a_.author,
- );
- } else {
- foreach (a; t_a_.author_arr) {
- _auth ~= format(q"┃ <a href="authors.html#%s">%s</a>,┃",
- t_a_.author_surname.translate([' ' : "_"]),
- a,
- );
- }
- }
- topics ~= format(q"┃<p class="work"><a href="%s">%s</a> - %s [<a href="%s">&nbsp;%s&nbsp;</a>]┃",
- t_a_.path_html_segtoc,
- t_a_.title,
- _auth,
- t_a_.path_html_metadata,
- t_a_.language,
- ) ~ "\n";
- if (_opt_action.very_verbose) {
- writeln(" - ", t_a_.title, " - ", t_a_.author);
- }
- }
- }
- }
- foreach(k2;
- hvst.subject_trees[k0][k1].keys
- .sort!("toUpper(a) < toUpper(b)", SwapStrategy.unstable)
- ) {
- if (k2 != "_a") {
- topics ~= format(q"┃<p class="lev2"><a name="%s.%s.%s" class="lev2">%s</a></p>┃",
- k0.translate([' ' : "_"]), k1.translate([' ' : "_"]),
- k2.translate([' ' : "_"]), k2,) ~ "\n";
- if (_opt_action.very_verbose) {
- writeln(" ", k2);
- }
- if ("_a" in hvst.subject_trees[k0][k1][k2]) {
- foreach (t_a_;
- hvst.subject_trees[k0][k1][k2]["_a"]
- .multiSort!("toUpper(a.title) < toUpper(b.title)", "a.author < b.author", SwapStrategy.unstable)
- ) {
- _auth = [];
- if (t_a_.author_arr.length < 2) {
- _auth = format(q"┃ <a href="authors.html#%s">%s</a>┃",
- t_a_.author_surname.translate([' ' : "_"]),
- t_a_.author,
- );
- } else {
- foreach (a; t_a_.author_arr) {
- _auth ~= format(q"┃ <a href="authors.html#%s">%s</a>,┃",
- t_a_.author_surname.translate([' ' : "_"]),
- a,
- );
- }
- }
- topics ~= format(q"┃<p class="work"><a href="%s">%s</a> - %s [<a href="%s">&nbsp;%s&nbsp;</a>]┃",
- t_a_.path_html_segtoc,
- t_a_.title,
- _auth,
- t_a_.path_html_metadata,
- t_a_.language,
- ) ~ "\n";
- if (_opt_action.very_verbose) {
- writeln(" - ", t_a_.title, " - ", t_a_.author);
- }
- }
- }
- }
- foreach(k3;
- hvst.subject_trees[k0][k1][k2].keys
- .sort!("toUpper(a) < toUpper(b)", SwapStrategy.unstable)
- ) {
- if (k3 != "_a") {
- topics ~= format(q"┃<p class="lev3"><a name="%s.%s.%s.%s" class="lev3">%s</a></p>┃",
- k0.translate([' ' : "_"]), k1.translate([' ' : "_"]), k2.translate([' ' : "_"]),
- k3.translate([' ' : "_"]), k3,) ~ "\n";
- if (_opt_action.very_verbose) {
- writeln(" ", k3);
- }
- {
- foreach (t_a_;
- hvst.subject_trees[k0][k1][k2][k3]
- .multiSort!("toUpper(a.title) < toUpper(b.title)", "a.author < b.author", SwapStrategy.unstable)
- ) {
- _auth = [];
- if (t_a_.author_arr.length < 2) {
- _auth = format(q"┃<a href="authors.html#%s">%s</a>┃",
- t_a_.author_surname.translate([' ' : "_"]),
- t_a_.author,
- );
- } else {
- foreach (a; t_a_.author_arr) {
- _auth ~= format(q"┃ <a href="authors.html#%s">%s</a>,┃",
- t_a_.author_surname.translate([' ' : "_"]),
- a,
- );
- }
- }
- topics ~= format(q"┃ <p class="work"><a href="%s">%s</a> - %s [<a href="%s">&nbsp;%s&nbsp;</a>]┃",
- t_a_.path_html_segtoc,
- t_a_.title,
- _auth,
- t_a_.path_html_metadata,
- t_a_.language,
- ) ~ "\n";
- if (_opt_action.very_verbose) {
- writeln(" - ", t_a_.title, " - ", t_a_.author);
- }
- }
- }
- }
- }
- }
- }
- }
-}
-#+END_SRC
-
-*** harvested topics write
-
-#+NAME: harvested_topics_html_write
-#+BEGIN_SRC d
-import doc_reform.io_out.paths_output;
-auto out_pth = spinePathsHTML!()(_make_and_meta_struct.conf.output_path, "");
-try {
- auto f = File(out_pth.harvest("topics.html"), "w");
- foreach (o; topics) {
- f.writeln(o);
- }
-} catch (ErrnoException ex) {
- // Handle error
-}
-#+END_SRC
-
-** _module template_ metadoc harvests authors
-*** _module template_ metadoc harvest authors
-
-#+HEADER: :tangle "../src/doc_reform/meta/metadoc_harvests_authors.d"
-#+BEGIN_SRC d
-<<doc_header_including_copyright_and_license>>
-module doc_reform.meta.metadoc_harvests_authors;
- import
- std.algorithm,
- std.array,
- std.exception,
- std.regex,
- std.stdio,
- std.string,
- std.conv : to;
- import
- doc_reform.meta.defaults,
- doc_reform.meta.rgx;
- mixin spineHarvest;
- mixin InternalMarkup;
-template spineMetaDocHarvestsAuthors() {
- static auto mkup = InlineMarkup();
- void spineMetaDocHarvestsAuthors(H,M,O)(
- H harvests,
- M _make_and_meta_struct,
- O _opt_action,
- ) {
- <<harvested_html_search>>
-<<harvested_html_themes_0>>
-<<harvested_html_themes_1>>
-<<harvested_authors_html_head_1>>
-<<harvested_html_head>>
-<<harvested_authors_html_head_2>>
-<<harvested_authors_html_head_theme>>
- authors
-<<harvested_html_bottom>>
- <<harvested_authors_html_write>>
- }
-}
-#+END_SRC
-
-*** harvested authors html head
-
-#+NAME: harvested_authors_html_head_1
-#+BEGIN_SRC d
- string[] authors = [];
- authors ~= format(q"┃
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<title>Metadata Harvest - Authors</title>
-#+END_SRC
-
-*** harvested authors html head
-
-#+NAME: harvested_authors_html_head_2
-#+BEGIN_SRC d
-</head>
-<body lang="en" xml:lang="en">
-<a name="top" id="top"></a>
-<a name="up" id="up"></a>
-<a name="start" id="start"></a>
-<h1>Metadata Harvest - Authors (output organised by language &amp; filetype)</h1>
-<div class="flex-menu-bar">
-<div class="flex-menu-option">
-<p>[<a href="../../index.html">&nbsp;HOME&nbsp;</a>]
- [<a href="topics.html">&nbsp;Metadata&nbsp;Harvest&nbsp;-&nbsp;Topics&nbsp;</a>]
-</p>
-</div>
-%s
-</div>
-<p></p>
-<hr />
-<p><a href="#A">A</a>,&nbsp;<a href="#B">B</a>,&nbsp;<a href="#C">C</a>,&nbsp;<a href="#D">D</a>,&nbsp;<a href="#E">E</a>,&nbsp;<a href="#F">F</a>,&nbsp;<a href="#G">G</a>,&nbsp;<a href="#H">H</a>,&nbsp;<a href="#I">I</a>,&nbsp;<a href="#J">J</a>,&nbsp;<a href="#K">K</a>,&nbsp;<a href="#L">L</a>,&nbsp;<a href="#M">M</a>,&nbsp;<a href="#N">N</a>,&nbsp;<a href="#O">O</a>,&nbsp;<a href="#P">P</a>,&nbsp;<a href="#Q">Q</a>,&nbsp;<a href="#R">R</a>,&nbsp;<a href="#S">S</a>,&nbsp;<a href="#T">T</a>,&nbsp;<a href="#U">U</a>,&nbsp;<a href="#V">V</a>,&nbsp;<a href="#W">W</a>,&nbsp;<a href="#X">X</a>,&nbsp;<a href="#Y">Y</a>,&nbsp;<a href="#Z">Z</a>,&nbsp;
-#+END_SRC
-
-*** harvested authors html theme inserts
-
-#+NAME: harvested_authors_html_head_theme
-#+BEGIN_SRC d
-┃",
- _opt_action.css_theme_default ? theme_light_0 : theme_dark_0,
- _opt_action.css_theme_default ? theme_light_1 : theme_dark_1,
- inline_search_form(_make_and_meta_struct),
-) ~ "\n";
- string[string] _au;
- string[] _auth_date_title;
- string[] _author_date_title;
- string _prev_auth = "";
- char _prev_k = "_".to!char;
- foreach(doc_harvest;
- harvests
- .multiSort!(
- "toUpper(a.author_surname_fn) < toUpper(b.author_surname_fn)",
- "a.date_published < b.date_published",
- "a.title < b.title",
- SwapStrategy.unstable
- )
- ) {
- if (doc_harvest.author_surname_fn != _prev_auth) {
- _au[doc_harvest.author_surname_fn]
- = format(q"┃<p class="author"><a name="%s" class="lev0">%s</a></p> <p class="publication">%s "<a href="%s">%s</a>" [<a href="%s">&nbsp;%s&nbsp;</a>]</p>┃",
- doc_harvest.author_surname.translate([' ' : "_"]),
- doc_harvest.author_surname_fn,
- (doc_harvest.date_published.length > 0)
- ? doc_harvest.date_published : "",
- doc_harvest.path_html_segtoc,
- doc_harvest.title,
- doc_harvest.path_html_metadata,
- doc_harvest.language,
- );
- _prev_auth = doc_harvest.author_surname_fn;
- } else {
- _au[doc_harvest.author_surname_fn]
- ~= format(q"┃<p class="publication">%s "<a href="%s">%s</a>" [<a href="%s">&nbsp;%s&nbsp;</a>]</p>┃",
- (doc_harvest.date_published.length > 0)
- ? doc_harvest.date_published : "",
- doc_harvest.path_html_segtoc,
- doc_harvest.title,
- doc_harvest.path_html_metadata,
- doc_harvest.language,
- );
- }
- _author_date_title ~= format(q"┃%s %s "%s" [<a href="%s">&nbsp;%s&nbsp;</a>]%s┃",
- doc_harvest.author_surname_fn,
- (doc_harvest.date_published.length > 0)
- ? "(" ~ doc_harvest.date_published ~ ")" : "",
- doc_harvest.title,
- doc_harvest.path_html_metadata,
- doc_harvest.language,
- (_opt_action.very_verbose) ? "\n " ~ doc_harvest.path_abs_html_scroll : "",
- );
- }
- foreach (k; _au.keys.sort) {
- if (k.toUpper.to!(char[])[0] != _prev_k) {
- authors ~= format(q"┃<p class="letter"><a name="%s">%s</a></p><p class="book_index_lev1"><a name="a"></a></p>┃",
- k.toUpper.to!(char[])[0],
- k.toUpper.to!(char[])[0],
- );
- _prev_k = k.toUpper.to!(char[])[0];
- }
- authors ~= _au[k];
- }
-#+END_SRC
-
-*** harvested authors write
-
-#+NAME: harvested_authors_html_write
-#+BEGIN_SRC d
-import doc_reform.io_out.paths_output;
-auto out_pth = spinePathsHTML!()(_make_and_meta_struct.conf.output_path, "");
-try {
- auto f = File(out_pth.harvest("authors.html"), "w");
- foreach (o; authors) {
- f.writeln(o);
- }
-} catch (ErrnoException ex) {
- // Handle error
-}
-if (_opt_action.verbose
- || _opt_action.very_verbose
-) {
- foreach(_adt; _author_date_title.sort) {
- writeln(_adt);
- }
-}
-#+END_SRC
-
-** harvested authors & topics shared html
-*** themes
-**** head
-
-#+NAME: harvested_html_themes_0
-#+BEGIN_SRC d
-string theme_dark_0 = format(q"┃
- body {
- color : #CCCCCC;
- background : #000000;
- background-color : #000000;
- }
- a:link {
- color : #FFFFFF;
- text-decoration : none;
- }
- a:visited {
- color : #999999;
- text-decoration : none;
- }
- a:hover {
- color : #000000;
- background-color : #555555;
- }
- a:hover img {
- background-color : #000000;
- }
- a:active {
- color : #888888;
- text-decoration : underline;
- }
- a.lev0:hover {
- color : #FFFFFF;
- background-color : #000000;
- }
- a.lev1:hover {
- color : #FFFFFF;
- background : #333333;
- }
- a.lev2:hover {
- color : #FFFFFF;
- background : #555555;
- }
- a.lev3:hover {
- color : #FFFFFF;
- background : #777777;
- }
- input {
- color : #FFFFFF;
- background-color : #777777;
- }
-┃");
-string theme_light_0 = format(q"┃
- body {
- color : #000000;
- background : #FFFFFF;
- background-color : #FFFFFF;
- }
- a:link {
- color : #003399;
- text-decoration : none;
- }
- a:visited {
- color : #003399;
- text-decoration : none;
- }
- a:hover {
- color : #000000;
- background-color : #f9f9aa;
- }
- a:hover img {
- background-color : #FFFFFF;
- }
- a:active {
- color : #003399;
- text-decoration : underline;
- }
- a.lev0:hover {
- color : #000000;
- background-color : #FFFFFF;
- }
- a.lev1:hover {
- color : #FFFFFF;
- background : #444444;
- }
- a.lev2:hover {
- background : #888888;
- }
- a.lev3:hover {
- background : #BBBBBB;
- }
- input {
- color : #000000;
- background-color : #FFFFFF;
- }
-┃");
-#+END_SRC
-
-**** levels
-
-#+NAME: harvested_html_themes_1
-#+BEGIN_SRC d
-string theme_dark_1 = format(q"┃
- h1 {
- color : #FFFFFF;
- background : #000000;
- }
- p.letter {
- color : #FFFFFF;
- background : #333333;
- }
- p.lev0 {
- color : #FFFFFF;
- background : #000000;
- }
- p.lev1 {
- color : #FFFFFF;
- background : #333333;
- }
- p.lev2 {
- background : #555555;
- }
- p.lev3 {
- background : #777777;
- }
- p.lev4 {
- background : #AAAAAA;
- }
- p.lev5 {
- }
-┃");
-string theme_light_1 = format(q"┃
- h1 {
- color : #FFFFFF;
- background : #000088;
- }
- p.letter {
- color : #FFFFFF;
- background : #880000;
- }
- p.lev0 {
- color : #FFFFFF;
- background : #000000;
- }
- p.lev1 {
- color : #FFFFFF;
- background : #444444;
- }
- p.lev2 {
- background : #888888;
- }
- p.lev3 {
- background : #BBBBBB;
- }
- p.lev4 {
- background : #EEEEEE;
- }
- p.lev5 {
- }
-┃");
-#+END_SRC
-
-*** search form
-
-#+NAME: harvested_html_search
-#+BEGIN_SRC d
-@safe string inline_search_form(M)(
- M _make_and_meta_truct,
-) {
- string o;
- string _form;
- if (_opt_action.html_search_link) {
- o = format(q"┃
-<div class="flex-menu-option">
-<!-- SiSU Spine Search -->
-<form action="%s" target="_top" method="POST" accept-charset="UTF-8" id="search">
-<font size="2">
-<input type="text" name="sf" size="24" maxlength="255">%s
-<input type="hidden" name="sml" value="1000">
-<input type="hidden" name="ec" value="on">
-<input type="hidden" name="url" value="on">
-<button type="submit" form="search">db</button>
-</font></form>
-<!-- SiSU Spine Search -->
-</div>┃",
- _make_and_meta_struct.conf.w_srv_cgi_action,
- (_make_and_meta_struct.conf.w_srv_db_sqlite_filename.empty)
- ? ""
- : "\n <input type=\"hidden\" name=\"db\" value=\""
- ~ _make_and_meta_struct.conf.w_srv_db_sqlite_filename
- ~ "\">",
- );
- } else {
- o = "";
- }
- return o;
-}
-#+END_SRC
-
-*** harvested html head
-
-#+NAME: harvested_html_head
-#+BEGIN_SRC d
-<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-<meta name="dc.title" content= "metadata harvest, Authors & Topics - information Structuring Universe, Structured information Serialised Units" />
-<meta name="dc.subject" content= "document structuring, ebook, publishing, PDF, LaTeX, XML, ODF, SQL, postgresql, sqlite, electronic book, electronic publishing, electronic document, electronic citation, data structure, citation systems, granular search, digital library" />
-<meta name="generator" content="spine" />
-<link rel="generator" href="https://sisudoc.org" />
-<link href="./css/harvest.css" rel="stylesheet">
-<style TYPE="text/css">
-/* spine harvest css default stylesheet */%s
- .norm, .bold {
- line-height : 150%%;
- margin-left : 1em;
- margin-right : 2em;
- margin-top : 10px;
- margin-bottom : 0px;
- text-indent : 0mm;
- }
- p, h0, h1, h2, h3, h4, h5, h6, h7 {
- display : block;
- font-family : verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;
- font-size : 100%%;
- font-weight : normal;
- line-height : 150%%;
- /* text-align : justify; */
- margin-left : 1em;
- text-indent : 0mm;
- margin-top : 2px;
- margin-bottom : 2px;
- margin-right : 6px;
- text-align : left;
- }
- h0, h1, h2, h3, h4, h5, h6, h7 { text-shadow: .2em .2em .3em #999999; }
- h1 {
- font-size : 120%%;
- font-weight : bold;
- color : #FFFFFF;
- background : #000088;
- margin-left : 0em;
- }
- p.work {
- font-size : 80%%;
- margin-left : 5em;
- margin-top : 0px;
- margin-bottom : 0px;
- margin-right : 6px;
- text-align : left;
- }
- p.author {
- font-size : 100%%;
- margin-left : 2em;
- margin-top : 0px;
- margin-bottom : 0px;
- margin-right : 6px;
- text-align : left;
- }
- p.publication {
- font-size : 80%%;
- margin-left : 4em;
- margin-top : 0px;
- margin-bottom : 0px;
- margin-right : 6px;
- text-align : left;
- }
- p.letter {
- font-weight : bold;
- font-size : 60%%;
- margin-left : 1em;
- margin-top : 0px;
- margin-bottom : 0px;
- margin-right : 6px;
- text-align : left;
- }
- p.lev0 {
- font-size : 120%%;
- margin-left : 1em;
- }
- p.lev1 {
- font-size : 110%%;
- margin-left : 2em;
- }
- p.lev2 {
- font-size : 100%%;
- margin-left : 3em;
- }
- p.lev3 {
- font-size : 90%%;
- margin-left : 4em;
- }
- p.lev4 {
- font-size : 80%%;
- margin-left : 5em;
- }
- p.lev5 {
- font-size : 80%%;
- margin-left : 6em;
- }%s
- /* flex */
- .flex-menu-bar {
- display : -webkit-flex;
- display : flex;
- -webkit-flex-wrap : wrap;
- -webkit-align-items : center;
- align-items : center;
- width : 100%%;
- margin-left : 0%%;
- margin-right : 2%%;
- background-color : inherited;
- }
- .flex-menu-option {
- background-color : inherited;
- margin-right : 4px;
- }
- .flex-list {
- display : -webkit-flex;
- display : flex;
- -webkit-align-items : center;
- display : block;
- align-items : center;
- width : 100%%;
- background-color : inherited;
- }
- .flex-list-item {
- background-color : inherited;
- margin : 4px;
- }
-</style>
-<link rel="shortcut icon" href="../_sisu/image/rb7.ico" />
-#+END_SRC
-
-*** harvested html bottom
-
-#+NAME: harvested_html_bottom
-#+BEGIN_SRC d
- ~= format(q"┃
-<hr />
-<a name="bottom" id="bottom"></a>
-<a name="down" id="down"></a>
-<a name="end" id="end"></a>
-<a name="finish" id="finish"></a>
-<a name="stop" id="stop"></a>
-<a name="credits"></a>
-</body>
-</html>
-┃") ~ "\n";
-#+END_SRC
-
-* document header including copyright & license
-
-#+NAME: doc_header_including_copyright_and_license
-#+BEGIN_SRC txt
-/+
-- Name: Spine, Doc Reform [a part of]
- - Description: documents, structuring, processing, publishing, search
- - static content generator
-
- - Author: Ralph Amissah
- [ralph.amissah@gmail.com]
-
- - Copyright: (C) 2015 - 2021 Ralph Amissah, All Rights
- Reserved.
-
- - License: AGPL 3 or later:
-
- Spine (SiSU), a framework for document structuring, publishing and
- search
-
- Copyright (C) Ralph Amissah
-
- This program is free software: you can redistribute it and/or modify it
- under the terms of the GNU AFERO General Public License as published by the
- Free Software Foundation, either version 3 of the License, or (at your
- option) any later version.
-
- This program is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- more details.
-
- You should have received a copy of the GNU General Public License along with
- this program. If not, see [https://www.gnu.org/licenses/].
-
- If you have Internet connection, the latest version of the AGPL should be
- available at these locations:
- [https://www.fsf.org/licensing/licenses/agpl.html]
- [https://www.gnu.org/licenses/agpl.html]
-
- - Spine (by Doc Reform, related to SiSU) uses standard:
- - docReform markup syntax
- - standard SiSU markup syntax with modified headers and minor modifications
- - docReform object numbering
- - standard SiSU object citation numbering & system
-
- - Hompages:
- [https://www.doc_reform.org]
- [https://www.sisudoc.org]
-
- - Git
- [https://git.sisudoc.org/projects/?p=software/spine.git;a=summary]
-
-+/
-#+END_SRC
-
-* __END__