-*- mode: org -*- #+TITLE: sisudoc 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 - 2024 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/sisudoc/io_out/html_snippet.d" #+HEADER: :noweb yes #+BEGIN_SRC d <> module sisudoc.io_out.html_snippet; @safe: template htmlSnippet() { import std.file, std.outbuffer, std.format, std.uri, std.conv : to; import sisudoc.io_out.rgx, sisudoc.meta.rgx_files, sisudoc.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"┃

⟰    ≅ 

┃", css_style, home_url, collection_home_path ); return html_blank_default; } 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, "
") .replaceAll(rgx.br_line_inline, "
") .replaceAll(rgx.br_line_spaced, "
\n
") .replaceAll(rgx.nbsp_char, " "); return _txt; } } #+END_SRC * shared ** _module template_ :module:shared: #+HEADER: :tangle "../src/sisudoc/share/defaults.d" #+HEADER: :noweb yes #+BEGIN_SRC d <> /++ shared default settings +/ module sisudoc.share.defaults; @safe: <> #+END_SRC ** template: messages :messages: #+NAME: shared_messages #+BEGIN_SRC d template Msg() { import std.stdio; 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 #+HEADER: :noweb yes #+BEGIN_SRC emacs-lisp <<./sisudoc_spine_version_info_and_doc_header_including_copyright_and_license.org:spine_doc_header_including_copyright_and_license()>> #+END_SRC * __END__