aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sisudoc/meta/metadoc_show_metadata.d
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2024-04-10 22:24:34 -0400
committerRalph Amissah <ralph.amissah@gmail.com>2024-04-10 23:08:18 -0400
commit90873fabd7451e1dd8c4b39303906e19bdc481f7 (patch)
tree2dbb0e41f3e9c761645c8b37dafe979a01d38d32 /src/sisudoc/meta/metadoc_show_metadata.d
parent0.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/sisudoc/meta/metadoc_show_metadata.d')
-rw-r--r--src/sisudoc/meta/metadoc_show_metadata.d171
1 files changed, 171 insertions, 0 deletions
diff --git a/src/sisudoc/meta/metadoc_show_metadata.d b/src/sisudoc/meta/metadoc_show_metadata.d
new file mode 100644
index 0000000..320f28b
--- /dev/null
+++ b/src/sisudoc/meta/metadoc_show_metadata.d
@@ -0,0 +1,171 @@
+/+
+- Name: SisuDoc 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.sisudoc.org]
+ [https://www.doc-reform.org]
+
+ - Git
+ [https://git.sisudoc.org/]
+
++/
+module sisudoc.meta.metadoc_show_metadata;
+@safe:
+template spineShowMetaData() {
+ void spineShowMetaData(T)(
+ T doc_matters,
+ ) {
+ import
+ sisudoc.meta.defaults,
+ sisudoc.meta.rgx;
+ import
+ std.array,
+ std.exception,
+ std.regex,
+ std.stdio,
+ std.string,
+ std.typecons,
+ std.uni,
+ std.utf,
+ std.conv : to;
+ mixin InternalMarkup;
+ auto markup = InlineMarkup();
+ 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;
+ if (doc_matters.opt.action.show_metadata
+ && doc_matters.opt.action.debug_do
+ ) {
+ writeln(doc_matters.conf_make_meta.meta);
+ }
+ if (doc_matters.opt.action.show_metadata) {
+ writefln(
+ "%s\n\"%s\", %s\n%s\n%s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n%40-s%10-s\n",
+ markup.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,
+ markup.repeat_character_by_number_provided("-", char_repeat_number),
+ "- author:",
+ doc_matters.conf_make_meta.meta.creator_author,
+ "- author array:",
+ doc_matters.conf_make_meta.meta.creator_author_arr,
+ "- author surname:",
+ doc_matters.conf_make_meta.meta.creator_author_surname,
+ "- author email:",
+ doc_matters.conf_make_meta.meta.creator_author_email,
+ "- illustrator:",
+ doc_matters.conf_make_meta.meta.creator_illustrator,
+ "- translator:",
+ doc_matters.conf_make_meta.meta.creator_translator,
+ "- title full:",
+ doc_matters.conf_make_meta.meta.title_full,
+ "- title main:",
+ doc_matters.conf_make_meta.meta.title_main,
+ "- title sub:",
+ doc_matters.conf_make_meta.meta.title_subtitle,
+ "- title edition:",
+ doc_matters.conf_make_meta.meta.title_edition,
+ "- title language:",
+ doc_matters.conf_make_meta.meta.title_language,
+ "- title note:",
+ doc_matters.conf_make_meta.meta.title_note,
+ "- classify dewey:",
+ doc_matters.conf_make_meta.meta.classify_dewey,
+ "- classify library of congress:",
+ doc_matters.conf_make_meta.meta.classify_loc,
+ "- classify keywords:",
+ doc_matters.conf_make_meta.meta.classify_keywords,
+ "- classify topic register:",
+ doc_matters.conf_make_meta.meta.classify_topic_register,
+ "- date added to site:",
+ doc_matters.conf_make_meta.meta.date_added_to_site,
+ "- date available:",
+ doc_matters.conf_make_meta.meta.date_available,
+ "- date created:",
+ doc_matters.conf_make_meta.meta.date_created,
+ "- date issued:",
+ doc_matters.conf_make_meta.meta.date_issued,
+ "- date modified:",
+ doc_matters.conf_make_meta.meta.date_modified,
+ "- date published:",
+ doc_matters.conf_make_meta.meta.date_published,
+ "- date valid:",
+ doc_matters.conf_make_meta.meta.date_valid,
+ // links
+ "- notes abstract:",
+ doc_matters.conf_make_meta.meta.notes_abstract,
+ "- notes description:",
+ doc_matters.conf_make_meta.meta.notes_description,
+ "- original language:",
+ doc_matters.conf_make_meta.meta.original_language,
+ "- original language character:",
+ doc_matters.conf_make_meta.meta.original_language_char,
+ "- original source:",
+ doc_matters.conf_make_meta.meta.original_source,
+ "- original title:",
+ doc_matters.conf_make_meta.meta.original_title,
+ // publisher
+ "- rights copyright:",
+ doc_matters.conf_make_meta.meta.rights_copyright,
+ "- rights copyright text:",
+ doc_matters.conf_make_meta.meta.rights_copyright_text,
+ "- rights copyright audio:",
+ doc_matters.conf_make_meta.meta.rights_copyright_audio,
+ "- rights copyright cover:",
+ doc_matters.conf_make_meta.meta.rights_copyright_cover,
+ "- rights copyright illustrations:",
+ doc_matters.conf_make_meta.meta.rights_copyright_illustrations,
+ "- rights copyright photographs:",
+ doc_matters.conf_make_meta.meta.rights_copyright_photographs,
+ "- rights copyright translation:",
+ doc_matters.conf_make_meta.meta.rights_copyright_translation,
+ "- rights copyright video:",
+ doc_matters.conf_make_meta.meta.rights_copyright_video,
+ "- rights license:",
+ doc_matters.conf_make_meta.meta.rights_license,
+ );
+ }
+ }
+}