From b861bbb5810c95fe7079c853453ea698ca01f336 Mon Sep 17 00:00:00 2001 From: Ralph Amissah <ralph.amissah@gmail.com> Date: Tue, 27 Jun 2023 16:53:20 -0400 Subject: icon chars, usability / cosmetic minor fix --- org/default_shared.org | 113 -------------------------- org/default_shared_snippets.org | 175 ++++++++++++++++++++++++++++++++++++++++ org/out_curate_metadata.org | 45 +++++++++-- org/out_metadata.org | 66 +++++++++++---- org/out_xmls.org | 73 ++--------------- org/out_xmls_css.org | 28 +++++++ 6 files changed, 300 insertions(+), 200 deletions(-) delete mode 100644 org/default_shared.org create mode 100644 org/default_shared_snippets.org (limited to 'org') diff --git a/org/default_shared.org b/org/default_shared.org deleted file mode 100644 index 8e3cbca..0000000 --- a/org/default_shared.org +++ /dev/null @@ -1,113 +0,0 @@ --*- mode: org -*- -#+TITLE: spine (doc_reform) shared -#+DESCRIPTION: documents - structuring, publishing in multiple formats & search -#+FILETAGS: :spine:default:shared: -#+AUTHOR: Ralph Amissah -#+EMAIL: [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] -#+COPYRIGHT: Copyright (C) 2015 - 2023 Ralph Amissah -#+LANGUAGE: en -#+STARTUP: content hideblocks hidestars noindent entitiespretty -#+PROPERTY: header-args :exports code -#+PROPERTY: header-args+ :noweb yes -#+PROPERTY: header-args+ :results no -#+PROPERTY: header-args+ :cache no -#+PROPERTY: header-args+ :padline no -#+PROPERTY: header-args+ :mkdirp yes -#+OPTIONS: H:3 num:nil toc:t \n:t ::t |:t ^:nil -:t f:t *:t - -- [[./doc-reform.org][doc-reform.org]] [[./][org/]] - -* shared -** _module template_ :module:shared: - -#+HEADER: :tangle "../src/doc_reform/share/defaults.d" -#+HEADER: :noweb yes -#+BEGIN_SRC d -<<doc_header_including_copyright_and_license>> -/++ - shared default settings -+/ -module doc_reform.share.defaults; -<<shared_messages>> -#+END_SRC - -** template: messages :messages: - -#+NAME: shared_messages -#+BEGIN_SRC d -template Msg() { - import std.stdio; - @safe auto Msg(I)(I doc_matters) { - struct Msg_ { - void v()(string message) { - if (doc_matters.opt.action.vox_gt1) { - writeln(message); - } - } - void vv()(string message) { - if (doc_matters.opt.action.vox_gt2) { - writeln(message); - } - } - } - return Msg_(); - } -} -#+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 - 2023 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] - -+/ -#+END_SRC - -* __END__ diff --git a/org/default_shared_snippets.org b/org/default_shared_snippets.org new file mode 100644 index 0000000..9c3d2cd --- /dev/null +++ b/org/default_shared_snippets.org @@ -0,0 +1,175 @@ +-*- mode: org -*- +#+TITLE: spine (doc_reform) shared +#+DESCRIPTION: documents - structuring, publishing in multiple formats & search +#+FILETAGS: :spine:default:shared: +#+AUTHOR: Ralph Amissah +#+EMAIL: [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] +#+COPYRIGHT: Copyright (C) 2015 - 2023 Ralph Amissah +#+LANGUAGE: en +#+STARTUP: content hideblocks hidestars noindent entitiespretty +#+PROPERTY: header-args :exports code +#+PROPERTY: header-args+ :noweb yes +#+PROPERTY: header-args+ :results no +#+PROPERTY: header-args+ :cache no +#+PROPERTY: header-args+ :padline no +#+PROPERTY: header-args+ :mkdirp yes +#+OPTIONS: H:3 num:nil toc:t \n:t ::t |:t ^:nil -:t f:t *:t + +- [[./doc-reform.org][doc-reform.org]] [[./][org/]] + +* html snippet +** _module template_ :module: + +#+HEADER: :tangle "../src/doc_reform/io_out/html_snippet.d" +#+HEADER: :noweb yes +#+BEGIN_SRC d +<<doc_header_including_copyright_and_license>> +module doc_reform.io_out.html_snippet; +template htmlSnippet() { + import + std.file, + std.outbuffer, + std.format, + std.uri, + std.conv : to; + import + doc_reform.io_out.rgx, + doc_reform.meta.rgx_files, + doc_reform.io_out.rgx_xhtml; + auto format_html_blank_page_guide_home()( + string css_style, + string home_url, + string collection_home_path + ) { + auto html_blank_default = format(q"┃<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/plain; charset=UTF-8" /> + <link href="%s" rel="stylesheet" /> + </head> + <body> + <p class="icons"> + <a href="%s" class="lnkicon">⟰ </a> + <a href="%s" class="lnkicon"> ≅ </a> + </p> + </body> +</html>┃", + css_style, + home_url, + collection_home_path + ); + return html_blank_default; + } + @safe string special_characters_text(string _txt) { + mixin spineRgxOut; + mixin spineRgxXHTML; + static auto rgx = RgxO(); + static auto rgx_xhtml = RgxXHTML(); + _txt = _txt + .replaceAll(rgx_xhtml.ampersand, "&") // "&" + .replaceAll(rgx_xhtml.quotation, """) // """ + .replaceAll(rgx_xhtml.less_than, "<") // "<" + .replaceAll(rgx_xhtml.greater_than, ">") // ">" + .replaceAll(rgx.br_line, "<br />") + .replaceAll(rgx.br_line_inline, "<br />") + .replaceAll(rgx.br_line_spaced, "<br />\n<br />") + .replaceAll(rgx.nbsp_char, " "); + return _txt; + } +} +#+END_SRC + +* shared +** _module template_ :module:shared: + +#+HEADER: :tangle "../src/doc_reform/share/defaults.d" +#+HEADER: :noweb yes +#+BEGIN_SRC d +<<doc_header_including_copyright_and_license>> +/++ + shared default settings ++/ +module doc_reform.share.defaults; +<<shared_messages>> +#+END_SRC + +** template: messages :messages: + +#+NAME: shared_messages +#+BEGIN_SRC d +template Msg() { + import std.stdio; + @safe auto Msg(I)(I doc_matters) { + struct Msg_ { + void v()(string message) { + if (doc_matters.opt.action.vox_gt1) { + writeln(message); + } + } + void vv()(string message) { + if (doc_matters.opt.action.vox_gt2) { + writeln(message); + } + } + } + return Msg_(); + } +} +#+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 - 2023 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] + ++/ +#+END_SRC + +* __END__ diff --git a/org/out_curate_metadata.org b/org/out_curate_metadata.org index 0dd74cd..8f94577 100644 --- a/org/out_curate_metadata.org +++ b/org/out_curate_metadata.org @@ -233,13 +233,13 @@ foreach(k, doc_curate; hvst.curates) { <h1>⌘ Curated metadata - ⌘ Topics (output organised by language & filetype)</h1> <div class="flex-menu-bar"> <div class="flex-menu-option"> -<p>[<a href="../../index.html"> ⟰ HOME </a> | <a href="../index.html"> ≅ Collection </a>] - [<a href="authors.html"> ⌘ Curated metadata - 🖋 Authors </a>] +<p class="icons">[<a href="../../index.html" class="lnkicon"> ⟰ HOME </a> | <a href="../index.html" class="lnkicon"> ≅ Collection </a>] + [<a href="authors.html" class="lnkicon"> ⌘ Curated metadata - 🖋 Authors </a>] </p> </div> %s </div> -<p><a href="#A">A</a>, <a href="#B">B</a>, <a href="#C">C</a>, <a href="#D">D</a>, <a href="#E">E</a>, <a href="#F">F</a>, <a href="#G">G</a>, <a href="#H">H</a>, <a href="#I">I</a>, <a href="#J">J</a>, <a href="#K">K</a>, <a href="#L">L</a>, <a href="#M">M</a>, <a href="#N">N</a>, <a href="#O">O</a>, <a href="#P">P</a>, <a href="#Q">Q</a>, <a href="#R">R</a>, <a href="#S">S</a>, <a href="#T">T</a>, <a href="#U">U</a>, <a href="#V">V</a>, <a href="#W">W</a>, <a href="#X">X</a>, <a href="#Y">Y</a>, <a href="#Z">Z</a>, +<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" class="lnkicon">Y</a>, <a href="#Z" class="lnkicon">Z</a>, <p></p> <hr /> #+END_SRC @@ -528,14 +528,14 @@ template spineMetaDocCuratesAuthors() { <h1>⌘ Curated metadata - 🖋 Authors (output organised by language & filetype)</h1> <div class="flex-menu-bar"> <div class="flex-menu-option"> -<p>[<a href="../../index.html"> ⟰ HOME </a> | <a href="../index.html"> ≅ Collection </a>] - [<a href="topics.html"> ⌘ Curated metadata - ⌘ Topics </a>] </p> +<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">A</a>, <a href="#B">B</a>, <a href="#C">C</a>, <a href="#D">D</a>, <a href="#E">E</a>, <a href="#F">F</a>, <a href="#G">G</a>, <a href="#H">H</a>, <a href="#I">I</a>, <a href="#J">J</a>, <a href="#K">K</a>, <a href="#L">L</a>, <a href="#M">M</a>, <a href="#N">N</a>, <a href="#O">O</a>, <a href="#P">P</a>, <a href="#Q">Q</a>, <a href="#R">R</a>, <a href="#S">S</a>, <a href="#T">T</a>, <a href="#U">U</a>, <a href="#V">V</a>, <a href="#W">W</a>, <a href="#X">X</a>, <a href="#Y">Y</a>, <a href="#Z">Z</a>, +<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>, #+END_SRC *** curated authors html theme inserts @@ -675,6 +675,18 @@ string theme_dark_0 = format(q"┃ 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%%; } @@ -722,6 +734,18 @@ string theme_light_0 = format(q"┃ 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%%; } @@ -908,6 +932,15 @@ string theme_light_1 = format(q"┃ 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; diff --git a/org/out_metadata.org b/org/out_metadata.org index 457fbd1..7002117 100644 --- a/org/out_metadata.org +++ b/org/out_metadata.org @@ -90,9 +90,9 @@ metadata_ ~= format(q"┃<body lang="en" xml:lang="en"> ┃"); 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="%s"> <b>⟰</b> HOME </a> | <a href="../../index.html"> ≅ Collection </a>] [ - <a href="../../authors.html"> 🖋 Authors </a> | - <a href="../../topics.html"> ⌘ Topics </a>]</p> + metadata_ ~= format(q"┃<p class="icons">[<a href="%s" class="lnkicon"> <b>⟰</b> HOME </a> | <a href="../../index.html" class="lnkicon"> ≅ Collection </a>] [ + <a href="../../authors.html" class="lnkicon"> 🖋 Authors </a> | + <a href="../../topics.html" class="lnkicon"> ⌘ Topics </a>]</p> ┃", (doc_matters.opt.action.webserver_url_doc_root.length > 0) ? doc_matters.opt.action.webserver_url_doc_root @@ -100,7 +100,7 @@ if (doc_matters.opt.action.html_link_curate) { , // HOME index.html equivalent _cfg.www_url_doc_root, ); } else { - metadata_ ~= format(q"┃<p>[<a href="../../../index.html"> ≅ <b>HOME</b> </a> <a href="../../index.html"> ≅ Collection </a>] + metadata_ ~= format(q"┃<p class="icons">[<a href="../../../index.html" class="lnkicon"> ≅ <b>HOME</b> </a> <a href="../../index.html" class="lnkicon"> ≅ Collection </a>] ┃"); } metadata_ ~= "</div>" ~ inline_search_form(doc_matters) ~ "</div><hr />"; @@ -138,35 +138,35 @@ if (!(doc_matters.conf_make_meta.meta.notes_summary.empty)) { } metadata_ ~= "<hr /><p class=\"lev1\">source: " ~ doc_matters.src.filename_base ~ "</p>"; if (doc_matters.opt.action.html_link_markup_source) { - metadata_ ~= "<p class=\"lev1\">● markup source: the pod [<a href=\"../../" ~ pth_pod.internal_base ~ "/" ~ doc_matters.src.filename_base ~ ".zip\">" + metadata_ ~= "<p class=\"lev1\">● markup source: the pod [<a href=\"../../" ~ pth_pod.internal_base ~ "/" ~ doc_matters.src.filename_base ~ ".zip\" class=\"lnkicon\">" ~ " 🫛 zipped </a>| " - ~ "<a href=\"../../" ~ pth_pod.internal_base ~ "/" ~ doc_matters.src.filename_base ~ "/\">" + ~ "<a href=\"../../" ~ pth_pod.internal_base ~ "/" ~ doc_matters.src.filename_base ~ "/\" class=\"lnkicon\">" ~ " 🫛 tree </a>] "; } -metadata_ ~= "<p class=\"lev1\">● outputs: [ html: <a href=\"" ~ doc_matters.src.filename_base ~ ".html\">" +metadata_ ~= "<p class=\"lev1\">● outputs: [ html: <a href=\"" ~ doc_matters.src.filename_base ~ ".html\" class=\"lnkicon\">" ~ " ▤ scroll </a> " - ~ "|<a href=\"" ~ doc_matters.src.filename_base ~ "/toc.html\">" + ~ "|<a href=\"" ~ doc_matters.src.filename_base ~ "/toc.html\" class=\"lnkicon\">" ~ " ※ seg </a>] " - ~ "[<a href=\"../../" ~ pth_epub.internal_base ~ "/" ~ doc_matters.src.filename_base ~ "." ~ doc_matters.src.language ~ ".epub\">" + ~ "[<a href=\"../../" ~ pth_epub.internal_base ~ "/" ~ doc_matters.src.filename_base ~ "." ~ doc_matters.src.language ~ ".epub\" class=\"lnkicon\">" ~ " ◆ epub </a>] "; if ((doc_matters.opt.action.html_link_pdf) || (doc_matters.opt.action.html_link_pdf_a4)) { metadata_ ~= "[ pdf: <a href=\"../../pdf/" ~ doc_matters.src.filename_base - ~ "." ~ doc_matters.src.language ~ ".a4.portrait.pdf\">" + ~ "." ~ doc_matters.src.language ~ ".a4.portrait.pdf\" class=\"lnkicon\">" ~ " □ a4 </a> " ~ "|<a href=\"../../pdf/" ~ doc_matters.src.filename_base - ~ "." ~ doc_matters.src.language ~ ".letter.portrait.pdf\">" + ~ "." ~ doc_matters.src.language ~ ".letter.portrait.pdf\" class=\"lnkicon\">" ~ " □ U.S. letter </a>] "; } else if (doc_matters.opt.action.html_link_pdf_a4) { metadata_ ~= "[<a href=\"../../pdf/" ~ doc_matters.src.filename_base - ~ "." ~ doc_matters.src.language ~ ".a4.portrait.pdf\">" + ~ "." ~ doc_matters.src.language ~ ".a4.portrait.pdf\" class=\"lnkicon\">" ~ " □ pdf (a4) </a>] "; } else if (doc_matters.opt.action.html_link_pdf_letter) { metadata_ ~= "[<a href=\"../../pdf/" ~ doc_matters.src.filename_base - ~ "." ~ doc_matters.src.language ~ ".letter.portrait.pdf\">" + ~ "." ~ doc_matters.src.language ~ ".letter.portrait.pdf\" class=\"lnkicon\">" ~ " □ pdf (U.S. letter) </a>] "; } metadata_ ~= "</p>"; @@ -337,6 +337,18 @@ string theme_dark_0 = format(q"┃ color : #888888; text-decoration : underline; } + 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 { color : #FFFFFF; background-color : #777777; @@ -367,6 +379,18 @@ string theme_light_0 = format(q"┃ color : #003399; text-decoration : underline; } + 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 { color : #000000; background-color : #FFFFFF; @@ -491,6 +515,15 @@ string theme_light_1 = format(q"┃ 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; @@ -589,7 +622,7 @@ string theme_light_1 = format(q"┃ <div class="flex-menu-option"> <!-- SiSU Spine Search --> <form action="%s" target="_top" method="POST" accept-charset="UTF-8" id="searchtxt"> - <font size="2">🔎 + <font size="2">%s <input type="text" name="sf" size="24" maxlength="255">%s <input type="hidden" name="sml" value="1000"> <input type="hidden" name="ec" value="on"> @@ -613,6 +646,11 @@ string theme_light_1 = format(q"┃ <!-- SiSU Spine Search --> </div>┃", doc_matters.conf_make_meta.conf.w_srv_cgi_action, + (doc_matters.conf_make_meta.conf.w_srv_db_sqlite_filename.empty) + ? "" + : "\n <a href=\"" + ~ doc_matters.conf_make_meta.conf.w_srv_cgi_action + ~ "\">🔎 </a>", (doc_matters.conf_make_meta.conf.w_srv_db_sqlite_filename.empty) ? "" : "\n <input type=\"hidden\" name=\"db\" value=\"" diff --git a/org/out_xmls.org b/org/out_xmls.org index 7cec142..06fd5d8 100644 --- a/org/out_xmls.org +++ b/org/out_xmls.org @@ -23,67 +23,6 @@ 2023 #+END_SRC -* html snippet -** _module template_ :module: - -#+HEADER: :tangle "../src/doc_reform/io_out/html_snippet.d" -#+HEADER: :noweb yes -#+BEGIN_SRC d -<<doc_header_including_copyright_and_license>> -module doc_reform.io_out.html_snippet; -template htmlSnippet() { - import - std.file, - std.outbuffer, - std.format, - std.uri, - std.conv : to; - import - doc_reform.io_out.rgx, - doc_reform.meta.rgx_files, - doc_reform.io_out.rgx_xhtml; - auto format_html_blank_page_guide_home()( - string css_style, - string home_url, - string collection_home_path - ) { - auto html_blank_default = format(q"┃<!DOCTYPE html> -<html> - <head> - <meta http-equiv="Content-Type" content="text/plain; charset=UTF-8" /> - <link href="%s" rel="stylesheet" /> - </head> - <body> - <p class="heading"> - <a href="%s">⟰ </a> - <a href="%s"> ≅ </a> - </p> - </body> -</html>┃", - css_style, - home_url, - collection_home_path - ); - return html_blank_default; - } - @safe string special_characters_text(string _txt) { - mixin spineRgxOut; - mixin spineRgxXHTML; - static auto rgx = RgxO(); - static auto rgx_xhtml = RgxXHTML(); - _txt = _txt - .replaceAll(rgx_xhtml.ampersand, "&") // "&" - .replaceAll(rgx_xhtml.quotation, """) // """ - .replaceAll(rgx_xhtml.less_than, "<") // "<" - .replaceAll(rgx_xhtml.greater_than, ">") // ">" - .replaceAll(rgx.br_line, "<br />") - .replaceAll(rgx.br_line_inline, "<br />") - .replaceAll(rgx.br_line_spaced, "<br />\n<br />") - .replaceAll(rgx.nbsp_char, " "); - return _txt; - } -} -#+END_SRC * xml offspring (xhtml html epub) ** format xhtml objects :format: @@ -406,13 +345,13 @@ import _locations = (doc_matters.conf_make_meta.make.home_button_text) .replaceAll( rgx.inline_link, - ("<p class=\"tiny_left\"><a href=\"$2\">$1</a></p>")) + ("<p class=\"tiny_left\"><a href=\"$2\" class=\"lnkicon\">$1</a></p>")) .replaceAll( rgx.br_line, "") .replaceAll( rgx.br_line_inline, ""); } else { - _locations = "<p class=\"tiny_left\"><a href=\"https://www.doc-reform.org\">spine</a></p>\n<p class=\"tiny_left\"><a href=\"https://git.sisudoc.org/software/spine/\">sources / git</a></p>\n<p class=\"tiny_left\"><a href=\"https://www.sisudoc.org\">www.sisudoc.org</a></p>"; + _locations = "<p class=\"icons\"><a href=\"https://www.doc-reform.org\" class=\"lnkicon\">spine</a></p>\n<p class=\"icons\"><a href=\"https://git.sisudoc.org/software/spine/\" class=\"lnkicon\">sources / git</a></p>\n<p class=\"icons\"><a href=\"https://www.sisudoc.org\" class=\"lnkicon\">www.sisudoc.org</a></p>"; } string o; o = format(q"┃<div class="flex-menu-option"> @@ -501,7 +440,7 @@ import ) { string o; string metadata_links = ((doc_matters.opt.action.html_link_curate) - ? format(q"┃<p class="small"><a href="%s">⟰ </a> [<a href="%s"> %s </a><a href="%sepub/%s.%s.epub"> ◆ </a>%s%s<a href="%smetadata.%s.html"> ℹ </a>] <a href="%s../../index.html"> ≅ </a>|<a href="%s../../authors.html"> 🖋 </a>|<a href="%s../../topics.html"> ⌘ </a>|</p>┃", + ? format(q"┃<p class="icons"><a href="%s" class="lnkicon">⟰ </a> [<a href="%s" class="lnkicon"> %s </a><a href="%sepub/%s.%s.epub" class="lnkicon"> ◆ </a>%s%s<a href="%smetadata.%s.html" class="lnkicon"> ℹ </a>] <a href="%s../../index.html" class="lnkicon"> ≅ </a>|<a href="%s../../authors.html" class="lnkicon"> 🖋 </a>|<a href="%s../../topics.html" class="lnkicon"> ⌘ </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 @@ -520,7 +459,7 @@ import ~ doc_matters.src.filename_base ~ "." ~ doc_matters.src.lng - ~ ".a4.portrait.pdf\"> □ </a>") + ~ ".a4.portrait.pdf\" class=\"lnkicon\"> □ </a>") : "", (doc_matters.opt.action.html_link_pdf || doc_matters.opt.action.html_link_pdf_letter) ? ("<a href=\"" @@ -529,7 +468,7 @@ import ~ doc_matters.src.filename_base ~ "." ~ doc_matters.src.lng - ~ ".letter.portrait.pdf\"> □ </a>") + ~ ".letter.portrait.pdf\" class=\"lnkicon\"> □ </a>") : "", (type == "seg") ? "../" : "", doc_matters.src.filename_base, @@ -686,7 +625,7 @@ import <hr /> <div class="generator"> <p class="small_center" id="sisu_spine"><a name="sisu_spine"></a> - <a href="https://sisudoc.org">≅ SiSU Spine ፨</a> (object numbering & object search) + <a href="https://sisudoc.org" class="lnkicon">≅ SiSU Spine ፨</a> (object numbering & object search) </p> <p class="small_center" id="sisu_spine"><a name="sisu_spine"></a> (web 1993, object numbering 1997, object search 2002 ...) <<year>> diff --git a/org/out_xmls_css.org b/org/out_xmls_css.org index db73643..5c050eb 100644 --- a/org/out_xmls_css.org +++ b/org/out_xmls_css.org @@ -226,6 +226,15 @@ a.lnkocn:hover { color : #777777; font-size : 1.8rem; } +a.lnkicon:link { + text-decoration : none; +} +a.lnkicon:visited { + text-decoration : none; +} +a.lnkicon:hover { + font-size : 160%%; +} a:hover img { background-color : #FFFFFF; } @@ -545,6 +554,15 @@ p.tiny_center { margin-right : 0px; text-align : center; } +p.icons, .icons_center { + font-size : 100%%; + margin-top : 0px; + margin-bottom : 0px; + margin-right : 6px; +} +p.icons { + text-align : left; +} p.concordance_word { line-height : 150%%; font-weight : bold; @@ -1150,6 +1168,16 @@ a.lnkocn:hover { color : #BBBBBB; font-size : 1.8rem; } +a.lnkicon:link { + text-decoration : none; +} +a.lnkicon:visited { + text-decoration : none; +} +a.lnkicon:hover { + color : #BBBBBB; + font-size : 120%%; +} a:hover img { background-color : #000000; } -- cgit v1.2.3