From d18c6be61b70598e9c605db92103bf4e1054f15e Mon Sep 17 00:00:00 2001
From: Ralph Amissah <ralph@amissah.com>
Date: Tue, 6 Jun 2017 17:46:46 -0400
Subject: headings & toc, monospace and links, fix

---
 src/sdp/ao/abstract_doc_source.d | 7 ++++++-
 src/sdp/ao/defaults.d            | 1 +
 src/sdp/ao/rgx.d                 | 1 +
 src/sdp/output/defaults.d        | 1 +
 src/sdp/output/rgx.d             | 1 +
 src/sdp/output/xmls.d            | 1 +
 6 files changed, 11 insertions(+), 1 deletion(-)

(limited to 'src')

diff --git a/src/sdp/ao/abstract_doc_source.d b/src/sdp/ao/abstract_doc_source.d
index dfd0dd9..8b95cc0 100644
--- a/src/sdp/ao/abstract_doc_source.d
+++ b/src/sdp/ao/abstract_doc_source.d
@@ -3485,6 +3485,8 @@ template SiSUdocAbstraction() {
       debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
+      auto mng = InlineMarkup();
+      obj_txt_in = obj_txt_in.replaceAll(rgx.inline_mono, (mng.mono ~ "{$1}" ~ mng.mono));
       /+ url matched +/
       if (obj_txt_in.match(rgx.inline_url_generic)) {
         /+ link: naked url: http://url +/
@@ -3533,6 +3535,7 @@ template SiSUdocAbstraction() {
           );
         }
       }
+      obj_txt_in = obj_txt_in.replaceAll(rgx.inline_mono_box, ("#{$1}#"));
       return obj_txt_in;
     }
     auto footnotes_endnotes_markup_and_number_or_stars(Ot)(Ot obj_txt_in, bool reset_note_numbers) {
@@ -4012,7 +4015,9 @@ template SiSUdocAbstraction() {
           _anchor_tag,
         );
         lev4_subtoc[segment_anchor_tag_that_object_belongs_to]
-        ~= obj_["lev_markup_number"] ~ "~ " ~ subtoc_txt_.to!string.strip;
+        ~= munge.url_links(obj_["lev_markup_number"]
+             ~ "~ " ~ subtoc_txt_.to!string.strip
+           );
         toc_txt_= munge.url_links(toc_txt_);
         indent=[
           "hang_position" : obj_["lev_markup_number"].to!int,
diff --git a/src/sdp/ao/defaults.d b/src/sdp/ao/defaults.d
index aa9fc2c..4a989b6 100644
--- a/src/sdp/ao/defaults.d
+++ b/src/sdp/ao/defaults.d
@@ -395,6 +395,7 @@ template InternalMarkup() {
     auto tc_o = "┏";
     auto tc_c = "┚";
     auto tc_p = "┆";
+    auto mono = "■";
     string indent_by_spaces_provided(int indent, string _indent_spaces ="░░") {
       _indent_spaces = replicate(_indent_spaces, indent);
       return _indent_spaces;
diff --git a/src/sdp/ao/rgx.d b/src/sdp/ao/rgx.d
index 3f74329..d0d42df 100644
--- a/src/sdp/ao/rgx.d
+++ b/src/sdp/ao/rgx.d
@@ -233,6 +233,7 @@ template SiSUrgxInit() {
     static inline_strike                                  = ctRegex!(`-\{(?P<text>.+?)\}-`, "mg");
     static inline_insert                                  = ctRegex!(`\+\{(?P<text>.+?)\}\+`, "mg");
     static inline_mono                                    = ctRegex!(`#\{(?P<text>.+?)\}#`, "mg");
+    static inline_mono_box                                = ctRegex!(`■\{(?P<text>.+?)\}■`, "mg");
     static inline_cite                                    = ctRegex!(`"\{(?P<text>.+?)\}"`, "mg");
     static inline_faces_line                              = ctRegex!(`^[*!/_]_ (?P<text>.+?)((?: [\\]{2}|[~]#){0,2}$)`);
     static inline_emphasis_line                           = ctRegex!(`^\*_ (?P<text>.+?)((?: [\\]{2}|[~]#){0,2}$)`);
diff --git a/src/sdp/output/defaults.d b/src/sdp/output/defaults.d
index 82a8d1a..d63c3d5 100644
--- a/src/sdp/output/defaults.d
+++ b/src/sdp/output/defaults.d
@@ -22,6 +22,7 @@ template InternalMarkup() {
     auto tc_o = "┏";
     auto tc_c = "┚";
     auto tc_p = "┆";
+    auto mono = "■";
     string indent_by_spaces_provided(int indent, string _indent_spaces ="░░") {
       _indent_spaces = replicate(_indent_spaces, indent);
       return _indent_spaces;
diff --git a/src/sdp/output/rgx.d b/src/sdp/output/rgx.d
index 6fdc876..ae7599f 100644
--- a/src/sdp/output/rgx.d
+++ b/src/sdp/output/rgx.d
@@ -55,6 +55,7 @@ template SiSUoutputRgxInit() {
     static inline_strike                                  = ctRegex!(`-\{(?P<text>.+?)\}-`, "mg");
     static inline_insert                                  = ctRegex!(`\+\{(?P<text>.+?)\}\+`, "mg");
     static inline_mono                                    = ctRegex!(`#\{(?P<text>.+?)\}#`, "mg");
+    static inline_mono_box                                = ctRegex!(`■\{(?P<text>.+?)\}■`, "mg");
     static inline_cite                                    = ctRegex!(`"\{(?P<text>.+?)\}"`, "mg");
     static inline_faces_line                              = ctRegex!(`^[*!/_]_ (?P<text>.+?)((?: [\\]{2}|[~]#){0,2}$)`);
     static inline_emphasis_line                           = ctRegex!(`^\*_ (?P<text>.+?)((?: [\\]{2}|[~]#){0,2}$)`);
diff --git a/src/sdp/output/xmls.d b/src/sdp/output/xmls.d
index 7a057ad..ed9b548 100644
--- a/src/sdp/output/xmls.d
+++ b/src/sdp/output/xmls.d
@@ -350,6 +350,7 @@ template outputXHTMLs() {
       || (obj.heading_lev_markup == 0 || obj.heading_lev_markup > 4)) {
         _horizontal_rule = "";
       }
+      _txt = font_face(_txt);
       string o;
       if (obj.obj_cite_number.empty) {
         o = format(q"¶%s
-- 
cgit v1.2.3