-*- 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 - 2020 Ralph Amissah #+LANGUAGE: en #+STARTUP: content hideblocks hidestars noindent entitiespretty #+OPTIONS: H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t #+PROPERTY: header-args :exports code #+PROPERTY: header-args+ :noweb yes #+PROPERTY: header-args+ :eval no #+PROPERTY: header-args+ :results no #+PROPERTY: header-args+ :cache no #+PROPERTY: header-args+ :padline no [[./spine.org][spine]] [[./][org/]] * shared ** _module template_ :module:shared: #+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; @safe 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