#+TITLE: doc_reform shared #+DESCRIPTION: documents - structuring, publishing in multiple formats & search #+FILETAGS: :doc_reform:default:shared: #+AUTHOR: Ralph Amissah #+EMAIL: [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] #+LANGUAGE: en #+STARTUP: indent content #+OPTIONS: H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t #+OPTIONS: TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc #+OPTIONS: author:nil email:nil creator:nil timestamp:nil #+PROPERTY: header-args :padline no :exports code :noweb yes #+EXPORT_SELECT_TAGS: export #+EXPORT_EXCLUDE_TAGS: noexport #+TAGS: assert(a) class(c) debug(d) mixin(m) doc_reform(s) tangle(T) template(t) WEB(W) noexport(n) [[./doc_reform.org][doc_reform]] [[./][org/]] * 0. shared :module:doc_reform:shared: ** 0. module template #+BEGIN_SRC d :tangle ../src/doc_reform/share/defaults.d /++ shared default settings +/ module doc_reform.share.defaults; <> #+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.quiet) && doc_matters.opt.action.verbose) { writeln(message); } } void vv()(string message) { if (!(doc_matters.opt.action.quiet) && doc_matters.opt.action.very_verbose) { writeln(message); } } } return Msg_(); } } #+END_SRC