diff options
author | Ralph Amissah <ralph.amissah@gmail.com> | 2024-04-10 22:24:34 -0400 |
---|---|---|
committer | Ralph Amissah <ralph.amissah@gmail.com> | 2024-04-10 23:08:18 -0400 |
commit | 90873fabd7451e1dd8c4b39303906e19bdc481f7 (patch) | |
tree | 2dbb0e41f3e9c761645c8b37dafe979a01d38d32 /src/doc_reform/meta/metadoc_curate_authors.d | |
parent | 0.15.0 (diff) |
0.16.0 sisudoc (src/sisudoc sisudoc spine)
- src/sisudoc (replaces src/doc_reform)
- sisudoc spine (used more)
Diffstat (limited to 'src/doc_reform/meta/metadoc_curate_authors.d')
-rw-r--r-- | src/doc_reform/meta/metadoc_curate_authors.d | 530 |
1 files changed, 0 insertions, 530 deletions
diff --git a/src/doc_reform/meta/metadoc_curate_authors.d b/src/doc_reform/meta/metadoc_curate_authors.d deleted file mode 100644 index 8757b26..0000000 --- a/src/doc_reform/meta/metadoc_curate_authors.d +++ /dev/null @@ -1,530 +0,0 @@ -/+ -- 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 - 2024 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 - - - Homepages: - [https://www.doc_reform.org] - [https://www.sisudoc.org] - - - Git - [https://git.sisudoc.org/projects/?p=software/spine.git;a=summary] - -+/ -module doc_reform.meta.metadoc_curate_authors; -@safe: - 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 spineCurateMetadata; - mixin InternalMarkup; -template spineMetaDocCuratesAuthors() { - static auto mkup = InlineMarkup(); - void spineMetaDocCuratesAuthors(H,M,O)( - H curates, - M _make_and_meta_struct, - O _opt_action, - ) { - string inline_search_form(M)( - M _make_and_meta_truct, - ) { - string o; - string _form; - if (_opt_action.html_link_search) { - 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">㏈ ፨</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; - } -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; - } - a.lnkicon:link { - text-decoration : none; - } - a.lnkicon:visited { - text-decoration : none; - } - a.lnkicon:hover { - font-size : 160%%; - } - a:hover img { - background-color : #FFFFFF; - } - input, select, textarea { - font-size : 150%%; - } - 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; - } - a.lnkicon:link { - text-decoration : none; - } - a.lnkicon:visited { - text-decoration : none; - } - a.lnkicon:hover { - font-size : 160%%; - } - a:hover img { - background-color : #FFFFFF; - } - input, select, textarea { - font-size : 150%%; - } - input { - color : #000000; - background-color : #FFFFFF; - } -┃"); -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 : #1A3A7A; - } - p.letter { - color : #FFFFFF; - background : #1A3A7A; - } - 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 { - } -┃"); - string[] authors = []; - authors ~= format(q"┃ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"> -<title>⌘ Curated metadata - 🖋 Authors</title> -<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> -<meta name="dc.title" content= "metadata curate, 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/curate.css" rel="stylesheet"> -<style TYPE="text/css"> -/* spine curate 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 : 90%%; - margin-left : 4em; - margin-top : 0px; - margin-bottom : 0px; - margin-right : 6px; - text-align : left; - } - p.letter { - font-weight : bold; - font-size : 80%%; - margin-left : 1em; - margin-top : 0px; - margin-bottom : 0px; - margin-right : 6px; - text-align : left; - } - p.icons, .icons_center { - font-size : 100%%; - margin-top : 0px; - margin-bottom : 0px; - margin-right : 6px; - } - p.icons { - text-align : left; - } - p.lev0 { - font-size : 120%%; - margin-left : 1em; - } - p.lev1 { - font-size : 115%%; - margin-left : 2em; - } - p.lev2 { - font-size : 110%%; - margin-left : 3em; - } - p.lev3 { - font-size : 105%%; - margin-left : 4em; - } - p.lev4 { - font-size : 100%%; - margin-left : 5em; - } - p.lev5 { - font-size : 95%%; - 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" /> -</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>⌘ Curated metadata - 🖋 Authors (output organised by language & filetype)</h1> -<div class="flex-menu-bar"> -<div class="flex-menu-option"> -<p class="icons">[<a href="../../index.html" class="lnkicon"> ⟰ HOME </a> | <a href="../index.html" class="lnkicon"> ≅ Collection </a>] - [<a href="topics.html" class="lnkicon"> ⌘ Curated metadata - ⌘ Topics </a>] </p> -</div> -%s -</div> -<p></p> -<hr /> -<p><a href="#A" class="lnkicon">A</a>, <a href="#B" class="lnkicon">B</a>, <a href="#C" class="lnkicon">C</a>, <a href="#D" class="lnkicon">D</a>, <a href="#E" class="lnkicon">E</a>, <a href="#F" class="lnkicon">F</a>, <a href="#G" class="lnkicon">G</a>, <a href="#H" class="lnkicon">H</a>, <a href="#I" class="lnkicon">I</a>, <a href="#J" class="lnkicon">J</a>, <a href="#K" class="lnkicon">K</a>, <a href="#L" class="lnkicon">L</a>, <a href="#M" class="lnkicon">M</a>, <a href="#N" class="lnkicon">N</a>, <a href="#O" class="lnkicon">O</a>, <a href="#P" class="lnkicon">P</a>, <a href="#Q" class="lnkicon">Q</a>, <a href="#R" class="lnkicon">R</a>, <a href="#S" class="lnkicon">S</a>, <a href="#T" class="lnkicon">T</a>, <a href="#U" class="lnkicon">U</a>, <a href="#V" class="lnkicon">V</a>, <a href="#W" class="lnkicon">W</a>, <a href="#X" class="lnkicon">X</a>, <a href="#Y" class="lnkicon">Y</a>, <a href="#Z" class="lnkicon">Z</a>, -┃", - _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_curate; - curates - .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_curate.author_surname_fn != _prev_auth) { - _au[doc_curate.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"> %s </a>]</p>┃", - doc_curate.author_surname.translate([' ' : "_"]), - doc_curate.author_surname_fn, - (doc_curate.date_published.length > 0) - ? doc_curate.date_published : "", - doc_curate.path_html_segtoc, - doc_curate.title, - doc_curate.path_html_metadata, - doc_curate.language, - ); - _prev_auth = doc_curate.author_surname_fn; - } else { - _au[doc_curate.author_surname_fn] - ~= format(q"┃<p class="publication">%s "<a href="%s">%s</a>" [<a href="%s"> %s </a>]</p>┃", - (doc_curate.date_published.length > 0) - ? doc_curate.date_published : "", - doc_curate.path_html_segtoc, - doc_curate.title, - doc_curate.path_html_metadata, - doc_curate.language, - ); - } - _author_date_title ~= format(q"┃%s %s "%s" [<a href="%s"> %s </a>]%s┃", - doc_curate.author_surname_fn, - (doc_curate.date_published.length > 0) - ? "(" ~ doc_curate.date_published ~ ")" : "", - doc_curate.title, - doc_curate.path_html_metadata, - doc_curate.language, - (_opt_action.show_curate_authors) ? "\n " ~ doc_curate.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]; - } - authors - ~= 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"; - 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"); - foreach (o; authors) { - f.writeln(o); - } - } catch (ErrnoException ex) { - // Handle error - } - if (_opt_action.show_curate_authors) { - foreach(_adt; _author_date_title.sort) { - writeln(_adt); - } - } - } -} |