aboutsummaryrefslogtreecommitdiffhomepage
path: root/org/default_paths.org
diff options
context:
space:
mode:
Diffstat (limited to 'org/default_paths.org')
-rw-r--r--org/default_paths.org42
1 files changed, 42 insertions, 0 deletions
diff --git a/org/default_paths.org b/org/default_paths.org
index 07f1176..6d38825 100644
--- a/org/default_paths.org
+++ b/org/default_paths.org
@@ -915,6 +915,7 @@ import std.array,
std.stdio;
import doc_reform.meta.rgx;
<<template_paths_out>>
+<<template_paths_url>>
<<template_paths_html>>
<<template_paths_epub>>
<<template_paths_sqlite>>
@@ -1012,6 +1013,47 @@ template DocReformOutPathsFnPd() {
}
#+END_SRC
+** _url_ :url:
+
+#+name: template_paths_url
+#+BEGIN_SRC d
+template DocReformPathsUrl() {
+ import std.format;
+ mixin DocReformRgxInit;
+ static auto rgx = Rgx();
+ auto DocReformPathsUrl(M)(M doc_matters) {
+ struct _UrlPathsStruct {
+ string doc_root() {
+ string _doc_root = (doc_matters.conf_make_meta.conf.webserv_url_doc_path.length > 0)
+ ? doc_matters.conf_make_meta.conf.webserv_url_doc_root
+ : "file://" ~ doc_matters.output_path;
+ return _doc_root;
+ }
+ string html_seg(string html_segname, string obj_id) { // TODO bespoke for sqlite
+ string _url = format(q"¶%s/%s/html/%s/%s.html#%s¶",
+ doc_root,
+ doc_matters.src.language,
+ doc_matters.src.filename_base,
+ html_segname,
+ obj_id
+ );
+ if (html_segname.empty || obj_id.empty) {
+ if (
+ doc_matters.opt.action.debug_do
+ && doc_matters.opt.action.verbose
+ ) {
+ writeln("sqlite object missing segname or object id: ", _url);
+ }
+ _url = "";
+ }
+ return _url;
+ }
+ }
+ return _UrlPathsStruct();
+ }
+}
+#+END_SRC
+
** _html_ :html:
#+name: template_paths_html