From 6d337554a5354b5ac3825f8103a90476edea46ac Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Wed, 10 Apr 2019 14:25:38 -0400 Subject: =?UTF-8?q?text=20format=20delimiter,=20use:=20"=E2=94=83"=20inste?= =?UTF-8?q?ad=20of=20"=E2=94=8B"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - gdc has compilation issue with the "┋" character, not worth arguing, make internal marker changes (can be changed again) - text format delimiter rg -l "┋" org/. | xargs sed -i 's/┋/┃/g' --- org/default_paths.org | 2 +- org/default_regex.org | 4 +- org/meta_abstraction.org | 22 ++-- org/output_sqlite.org | 52 ++++----- org/output_xmls.org | 186 ++++++++++++++++----------------- src/doc_reform/meta/metadoc_from_src.d | 22 ++-- src/doc_reform/meta/rgx.d | 4 +- src/doc_reform/output/epub3.d | 56 +++++----- src/doc_reform/output/paths_output.d | 2 +- src/doc_reform/output/rgx.d | 4 +- src/doc_reform/output/sqlite.d | 48 ++++----- src/doc_reform/output/xmls.d | 130 +++++++++++------------ 12 files changed, 266 insertions(+), 266 deletions(-) diff --git a/org/default_paths.org b/org/default_paths.org index 5ba5a43..26e28f5 100644 --- a/org/default_paths.org +++ b/org/default_paths.org @@ -1034,7 +1034,7 @@ template DocReformPathsUrl() { 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┋", + string _url = format(q"┃%s/%s/html/%s/%s.html#%s┃", doc_root, doc_matters.src.language, doc_matters.src.filename_base, diff --git a/org/default_regex.org b/org/default_regex.org index 849b9b0..f4c2952 100644 --- a/org/default_regex.org +++ b/org/default_regex.org @@ -537,7 +537,7 @@ static inline_text_and_note_al_ = ctRegex!(`(.+?(?:【[*+] static inline_image = ctRegex!(`(?P
┥)☼(?P(?P[a-zA-Z0-9._-]+?\.(?:jpg|gif|png)),w(?P\d+)h(?P\d+))\s*(?P.*?┝┤.*?├)`, "mg");
 static inline_image_without_dimensions                = ctRegex!(`(?P
┥)☼(?P(?P[a-zA-Z0-9._-]+?\.(?:jpg|gif|png)),w(?P0)h(?P0))\s*(?P.*?┝┤.*?├)`, "mg");
 static inline_image_info                              = ctRegex!(`☼?(?P[a-zA-Z0-9._-]+?\.(?:jpg|gif|png)),w(?P\d+)h(?P\d+)`, "mg");
-static inline_link_anchor                             = ctRegex!(`┋(?P\S+?)┋`, "mg"); // TODO *~text_link_anchor
+static inline_link_anchor                             = ctRegex!(`┃(?P\S+?)┃`, "mg"); // TODO *~text_link_anchor
 static inline_link_                                   = ctRegex!(`┥(?P.+?)┝┤(?P.+?)├`, "mg");
 static inline_link                                    = ctRegex!(`┥(?P.+?)┝┤(?P\S+?)├`, "mg");
 static inline_link_empty                              = ctRegex!(`┥(?P.+?)┝┤├`, "mg");
@@ -555,7 +555,7 @@ static inline_link_fn_suffix                          = ctRegex!(`¤(.+?)(\.fnSu
 static inline_seg_link                                = ctRegex!(`(¤)(?:.+?)\.fnSuffix`, "mg");
 static mark_internal_site_lnk                         = ctRegex!(`¤`, "mg");
 static quotation_mark_sql_insert_delimiter            = ctRegex!("[']", "mg");
-static quotation_mark_various                         = ctRegex!(q"┋['‘’“”"`´¨]┋", "mg");
+static quotation_mark_various                         = ctRegex!(q"┃['‘’“”"`´¨]┃", "mg");
 #+END_SRC
 
 *** inline markup font face mod                          :inline:font:face:
diff --git a/org/meta_abstraction.org b/org/meta_abstraction.org
index 87051c4..890519e 100644
--- a/org/meta_abstraction.org
+++ b/org/meta_abstraction.org
@@ -2356,7 +2356,7 @@ auto _image_dimensions(O,M)(O obj, M manifest_matter) {
       }
       obj.text = obj.text.replaceFirst(
         rgx.inline_image_without_dimensions,
-        format(q"┋%s☼%s,w%sh%s %s┋",
+        format(q"┃%s☼%s,w%sh%s %s┃",
           "$1",
           "$3",
           _w.to!string,
@@ -2395,7 +2395,7 @@ auto _links(O)(O obj) {
         obj.stow.link ~= obj.text.matchFirst(rgx.inline_link_stow_uri)[2];
         obj.text = obj.text.replaceFirst(
           rgx.inline_link_stow_uri,
-          format(q"┋┥%s┝┤%s├┋", "$1", i)
+          format(q"┃┥%s┝┤%s├┃", "$1", i)
         );
       }
     }
@@ -5076,10 +5076,10 @@ auto font_faces_line(T)(
   static auto mkup = InlineMarkup();
   if (textline.match(rgx.inline_faces_line)) {
     textline = textline
-      .replaceFirst(rgx.inline_emphasis_line,   format(q"┋%s%s%s%s%s%s┋", mkup.emph,       mkup.ff_o, "$1", mkup.ff_c, mkup.emph, "$2"))
-      .replaceFirst(rgx.inline_bold_line,       format(q"┋%s%s%s%s%s%s┋", mkup.bold,       mkup.ff_o, "$1", mkup.ff_c, mkup.bold, "$2"))
-      .replaceFirst(rgx.inline_underscore_line, format(q"┋%s%s%s%s%s%s┋", mkup.underscore, mkup.ff_o, "$1", mkup.ff_c, mkup.underscore, "$2"))
-      .replaceFirst(rgx.inline_italics_line,    format(q"┋%s%s%s%s%s%s┋", mkup.italic,     mkup.ff_o, "$1", mkup.ff_c, mkup.italic, "$2"));
+      .replaceFirst(rgx.inline_emphasis_line,   format(q"┃%s%s%s%s%s%s┃", mkup.emph,       mkup.ff_o, "$1", mkup.ff_c, mkup.emph, "$2"))
+      .replaceFirst(rgx.inline_bold_line,       format(q"┃%s%s%s%s%s%s┃", mkup.bold,       mkup.ff_o, "$1", mkup.ff_c, mkup.bold, "$2"))
+      .replaceFirst(rgx.inline_underscore_line, format(q"┃%s%s%s%s%s%s┃", mkup.underscore, mkup.ff_o, "$1", mkup.ff_c, mkup.underscore, "$2"))
+      .replaceFirst(rgx.inline_italics_line,    format(q"┃%s%s%s%s%s%s┃", mkup.italic,     mkup.ff_o, "$1", mkup.ff_c, mkup.italic, "$2"));
   }
   return textline;
 }
@@ -5551,7 +5551,7 @@ static struct ObjInlineMarkupMunge {
     }
     if (auto m = obj_txt_in.match(rgx.para_inline_link_anchor)) {
       obj_txt_in = obj_txt_in
-        .replaceAll(rgx.para_inline_link_anchor, "┋$1┋");
+        .replaceAll(rgx.para_inline_link_anchor, "┃$1┃");
     }
     auto ftn = footnotes_endnotes_markup_and_number_or_stars(obj_txt_in, reset_note_numbers);
     obj_txt_out = ftn[0];
@@ -6134,7 +6134,7 @@ private:
           heading_number_auto_composite
             = (conf_make_meta.make.auto_num_depth.to!uint == 3
               && auto_heading_numbering[3])
-            ? (format(q"┋%s.%s.%s.%s┋",
+            ? (format(q"┃%s.%s.%s.%s┃",
                 heading_num[0].to!string,
                 heading_num[1].to!string,
                 heading_num[2].to!string,
@@ -6146,7 +6146,7 @@ private:
             = ((conf_make_meta.make.auto_num_depth.to!uint >= 2)
               && (conf_make_meta.make.auto_num_depth.to!uint <= 3)
               && auto_heading_numbering[2])
-            ? (format(q"┋%s.%s.%s┋",
+            ? (format(q"┃%s.%s.%s┃",
                 heading_num[0].to!string,
                 heading_num[1].to!string,
                 heading_num[2].to!string
@@ -6157,7 +6157,7 @@ private:
             = ((conf_make_meta.make.auto_num_depth.to!uint >= 1)
               && (conf_make_meta.make.auto_num_depth.to!uint <= 3)
               && auto_heading_numbering[1])
-            ? (format(q"┋%s.%s┋",
+            ? (format(q"┃%s.%s┃",
                 heading_num[0].to!string,
                 heading_num[1].to!string
               ))
@@ -6169,7 +6169,7 @@ private:
             = ((conf_make_meta.make.auto_num_depth.to!uint >= 0)
               && (conf_make_meta.make.auto_num_depth.to!uint <= 3)
               && auto_heading_numbering[0])
-            ? (format(q"┋%s┋",
+            ? (format(q"┃%s┃",
                 heading_num[0].to!string
               ))
             : "";
diff --git a/org/output_sqlite.org b/org/output_sqlite.org
index 5faf244..6894c56 100644
--- a/org/output_sqlite.org
+++ b/org/output_sqlite.org
@@ -159,13 +159,13 @@ template SQLiteFormatAndLoadObject() {
 template SQLiteTablesReCreate() {
   string SQLiteTablesReCreate()() {
     string _sql_instruct;
-    _sql_instruct = format(q"┋
+    _sql_instruct = format(q"┃
       <>
       <>
       <>
       <>
       <>
-    ┋",);
+    ┃",);
     return _sql_instruct;
   }
 }
@@ -225,13 +225,13 @@ template SQLiteTablesCreate() {
     template SQLiteTablesReCreate() {
       string SQLiteTablesReCreate()() {
         string _sql_instruct;
-        _sql_instruct = format(q"┋
+        _sql_instruct = format(q"┃
           <>
           <>
           <>
           <>
           <>
-        ┋",);
+        ┃",);
         return _sql_instruct;
       }
     }
@@ -740,9 +740,9 @@ auto html_heading(M,O)(
   assert(obj.metainfo.is_a          == "heading");
   string _txt = munge_html(doc_matters, obj);
   _txt = inline_markup(doc_matters, obj, _txt);
-  string o = format(q"┋

+ string o = format(q"┃

%s -

┋", +

┃", obj.metainfo.is_a, _txt, ); @@ -760,9 +760,9 @@ auto html_heading(M,O)( ) { string o; string _txt = munge_html(doc_matters, obj); - o = format(q"┋ + o = format(q"┃ %s - ┋", + ┃", obj.metainfo.heading_lev_markup, obj.metainfo.is_a, _txt, @@ -787,9 +787,9 @@ auto html_para(M,O)( string _txt = munge_html(doc_matters, obj); _txt = (obj.attrib.bullet) ? ("●  " ~ _txt) : _txt; _txt = inline_markup(doc_matters, obj, _txt); - string o = format(q"┋

+ string o = format(q"┃

%s -

┋", +

┃", obj.metainfo.is_a, obj.attrib.indent_hang, obj.attrib.indent_base, @@ -812,9 +812,9 @@ auto html_quote(M,O)( assert(obj.metainfo.is_of_type == "block"); assert(obj.metainfo.is_a == "quote"); string _txt = munge_html(doc_matters, obj); - string o = format(q"┋

+ string o = format(q"┃

%s -

┋", +

┃", obj.metainfo.is_a, _txt ); @@ -835,9 +835,9 @@ auto html_group(M,O)( assert(obj.metainfo.is_of_type == "block"); assert(obj.metainfo.is_a == "group"); string _txt = munge_html(doc_matters, obj); - string o = format(q"┋

+ string o = format(q"┃

%s -

┋", +

┃", obj.metainfo.is_a, _txt ); @@ -858,8 +858,8 @@ auto html_block(M,O)( assert(obj.metainfo.is_of_type == "block"); assert(obj.metainfo.is_a == "block"); string _txt = munge_html(doc_matters, obj); - string o = format(q"┋ -

%s

┋", + string o = format(q"┃ +

%s

┃", obj.metainfo.is_a, _txt.stripRight ); @@ -880,7 +880,7 @@ auto html_verse(M,O)( assert(obj.metainfo.is_of_type == "block"); assert(obj.metainfo.is_a == "verse"); string _txt = munge_html(doc_matters, obj); - string o = format(q"┋

%s

┋", + string o = format(q"┃

%s

┃", obj.metainfo.is_a, _txt ); @@ -900,7 +900,7 @@ auto html_code(O)( assert(obj.metainfo.is_of_type == "block"); assert(obj.metainfo.is_a == "code"); string _txt = html_special_characters_code(obj.text); - string o = format(q"┋

%s

┋", + string o = format(q"┃

%s

┃", obj.metainfo.is_a, _txt ); @@ -965,12 +965,12 @@ auto html_table(M,O)( auto t = _tablarize(obj, _txt); _txt = t[0]; string _note = t[1]; - string o = format(q"┋

+ string o = format(q"┃

%s
%s -

┋", +

┃", obj.metainfo.is_a, _txt, _note @@ -1604,7 +1604,7 @@ CREATE INDEX idx_topics ON metadata_and_text(classify_topic_register); #+name: sqlite_formatted_delete #+BEGIN_SRC d string _uid = doc_matters.src.doc_uid; -string _delete_uid = format(q"┋ +string _delete_uid = format(q"┃ #+END_SRC ***** DELETE FROM ... WHERE @@ -1621,7 +1621,7 @@ WHERE uid_metadata_and_text = '%s'; #+name: sqlite_formatted_delete #+BEGIN_SRC d -┋", +┃", _uid, _uid, ); @@ -1641,7 +1641,7 @@ either: #+name: sqlite_formatted_insertions_doc_objects #+BEGIN_SRC d -string _insert_doc_objects_row = format(q"┋ +string _insert_doc_objects_row = format(q"┃ #+END_SRC ***** INSERT INTO @@ -1682,7 +1682,7 @@ string _insert_doc_objects_row = format(q"┋ #+name: sqlite_formatted_insertions_doc_objects #+BEGIN_SRC d -┋", +┃", _uid, obj.metainfo.ocn, obj.metainfo.identifier, @@ -1701,7 +1701,7 @@ string _insert_doc_objects_row = format(q"┋ #+name: sqlite_formatted_insertions_doc_matters_metadata #+BEGIN_SRC d string _uid = SQLinsertDelimiter!()(doc_matters.src.doc_uid); -string _insert_metadata = format(q"┋ +string _insert_metadata = format(q"┃ #+END_SRC ***** INSERT INTO @@ -1820,7 +1820,7 @@ string _insert_metadata = format(q"┋ #+name: sqlite_formatted_insertions_doc_matters_metadata #+BEGIN_SRC d -┋", +┃", _uid, SQLinsertDelimiter!()(doc_matters.src.filename), SQLinsertDelimiter!()(doc_matters.src.docname_composite_unique_per_src_doc), diff --git a/org/output_xmls.org b/org/output_xmls.org index 19d4f1e..faa273f 100644 --- a/org/output_xmls.org +++ b/org/output_xmls.org @@ -168,7 +168,7 @@ auto header_metadata(M)( ) { string _publisher="Publisher"; // TODO string o; - o = format(q"┋ + o = format(q"┃ @@ -183,7 +183,7 @@ auto header_metadata(M)( -┋", +┃", doc_matters.conf_make_meta.meta.title_full, doc_matters.conf_make_meta.meta.creator_author, _publisher, @@ -223,9 +223,9 @@ auto site_info_button(M)( _locations = "

doc-reform

\n

sources / git

\n

www.sisudoc.org

"; } string o; - o = format(q"┋
+ o = format(q"┃
%s -
┋", +
┃", _locations, ); return o; @@ -244,7 +244,7 @@ auto inline_search_form(M)( string o; string _form; if (doc_matters.opt.action.workon) { - _form = format(q"┋ + _form = format(q"┃
@@ -256,17 +256,17 @@ auto inline_search_form(M)(
- ┋", + ┃", _action, _db, ); } else { - _form = format(q"┋%s┋", + _form = format(q"┃%s┃", "", ); } - o = format(q"┋
%s -
┋", + o = format(q"┃
%s +
┃", _form, ); return o; @@ -283,17 +283,17 @@ auto html_head(M)( ) { string _manifest = ""; if (doc_matters.opt.action.workon) { - _manifest = format(q"┋ + _manifest = format(q"┃ [ document manifest ] - ┋", + ┃", ); } string o; - o = format(q"┋ + o = format(q"┃ @@ -315,7 +315,7 @@ if (doc_matters.opt.action.workon) {
%s
- %s%s┋", + %s%s┃", doc_matters.conf_make_meta.meta.title_full, (doc_matters.conf_make_meta.meta.creator_author.empty) ? "" : ", " ~ doc_matters.conf_make_meta.meta.creator_author, @@ -341,27 +341,27 @@ if (doc_matters.opt.action.workon) { auto epub3_seg_head(M)( M doc_matters, ) { - string html_base = format(q"┋ -┋", + string html_base = format(q"┃ +┃", ); - string html_simple = format(q"┋ + string html_simple = format(q"┃ ┋", + lang="%s" xml:lang="%s">┃", doc_matters.src.language, doc_matters.src.language, ); - string html_strict = format(q"┋ ┋", + lang="%s" xml:lang="%s">┃", doc_matters.src.language, doc_matters.src.language, ); string o; - o = format(q"┋%s + o = format(q"┃%s %s%s @@ -384,7 +384,7 @@ auto epub3_seg_head(M)( <link rel="stylesheet" href="css/epub.css" type="text/css" id="main-css" /> </head> <body lang="%s"> -<a name="top" id="top"></a>┋", +<a name="top" id="top"></a>┃", html_simple, doc_matters.conf_make_meta.meta.title_full, (doc_matters.conf_make_meta.meta.creator_author.empty) ? "" @@ -414,11 +414,11 @@ auto epub3_seg_head(M)( #+BEGIN_SRC d auto tail() { string o; - o = format(q"┋ + o = format(q"┃ <a name="bottom" id="bottom"></a> <a name="end" id="end"></a> </body> -</html>┋"); +</html>┃"); return o; } #+END_SRC @@ -682,10 +682,10 @@ string lev4_heading_subtoc(O,M)( text = font_face(text); auto link = m.captures[3].to!string; lev4_subtoc ~= subtoc.replaceFirst(rgx.inline_link_subtoc, - format(q"┋ <p class="minitoc" indent="h%si%s"> + format(q"┃ <p class="minitoc" indent="h%si%s"> ۰ <a href="%s">%s</a> </p> -┋", +┃", indent, indent, link, @@ -711,42 +711,42 @@ auto nav_pre_next_svg(O,M)( toc = ""; prev = ""; } else { - toc = format(q"┋<a href="toc.html" target="_top"> + toc = format(q"┃<a href="toc.html" target="_top"> <div class="toc-button menu"> <svg viewbox="0 0 100 100"> <path d="M4,10h24c1.104,0,2-0.896,2-2s-0.896-2-2-2H4C2.896,6,2,6.896,2,8S2.896,10,4,10z M28,14H4c-1.104,0-2,0.896-2,2 s0.896,2,2,2h24c1.104,0,2-0.896,2-2S29.104,14,28,14z M28,22H4c-1.104,0-2,0.896-2,2s0.896,2,2,2h24c1.104,0,2-0.896,2-2 S29.104,22,28,22z"/> </svg> </div> - </a>┋", + </a>┃", ); } if (obj.tags.segname_prev == "") { prev = ""; } else { - prev = format(q"┋<a href="%s.html" target="_top"> + prev = format(q"┃<a href="%s.html" target="_top"> <div class="prev-next-button previous"> <svg viewbox="0 0 100 100"> <path class="arrow" d="M 50,0 L 60,10 L 20,50 L 60,90 L 50,100 L 0,50 Z" transform=" translate(15,0)"> </svg> </div> - </a>┋", + </a>┃", obj.tags.segname_prev, ); } if (obj.tags.segname_next == "") { next = ""; } else { - next = format(q"┋<a href="%s.html" target="_top"> + next = format(q"┃<a href="%s.html" target="_top"> <div class="prev-next-button next"> <svg viewbox="0 0 100 100"> <path class="arrow" d="M 50,0 L 60,10 L 20,50 L 60,90 L 50,100 L 0,50 Z "transform="translate(85,100) rotate(180) "> </svg> </div> - </a>┋", + </a>┃", obj.tags.segname_next, ); } - string _toc_pre_next = format(q"┋ <div class="flex-menu-option"> + string _toc_pre_next = format(q"┃ <div class="flex-menu-option"> <div class="nav-bar"> %s %s @@ -754,19 +754,19 @@ auto nav_pre_next_svg(O,M)( </div> </div> </div> -</div>┋", +</div>┃", toc, prev, next, ); - string _pre_next = format(q"┋ <div class="flex-menu-option"> + string _pre_next = format(q"┃ <div class="flex-menu-option"> <div class="nav-bar"> %s %s </div> </div> </div> -</div>┋", +</div>┃", prev, next, ); @@ -809,13 +809,13 @@ auto heading(O)( ? "" : "<a name=\"" ~ obj.tags.heading_lev_anchor_tag ~ "\"></a>"; if (!(obj.metainfo.identifier.empty)) { - o = format(q"┋%s + o = format(q"┃%s <div class="substance"> <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <h%s class="%s" id="%s"><a name="%s"></a>%s%s %s </h%s> - </div>┋", + </div>┃", _horizontal_rule, obj.metainfo.identifier, (obj.metainfo.object_number.empty) ? "" : obj.metainfo.identifier, @@ -829,12 +829,12 @@ auto heading(O)( obj.metainfo.heading_lev_markup, ); } else { - o = format(q"┋%s + o = format(q"┃%s <div class="substance"> <h%s class="%s">%s%s %s </h%s> - </div>┋", + </div>┃", _horizontal_rule, obj.metainfo.heading_lev_markup, obj.metainfo.is_a, @@ -908,12 +908,12 @@ auto para(O)( _txt = _txt.replaceFirst(rgx.inline_link_anchor, "<a name=\"$1\"></a>"); if (!(obj.metainfo.identifier.empty)) { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <p class="%s" indent="h%si%s" id="%s">%s %s </p> -</div>┋", +</div>┃", obj.metainfo.identifier, (obj.metainfo.object_number.empty) ? "" : obj.metainfo.identifier, obj.metainfo.is_a, @@ -924,11 +924,11 @@ auto para(O)( _txt ); } else { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <p class="%s" indent="h%si%s">%s %s </p> -</div>┋", +</div>┃", obj.metainfo.is_a, obj.attrib.indent_hang, obj.attrib.indent_base, @@ -996,12 +996,12 @@ auto quote(O)( _txt = font_face(_txt); string o; if (!(obj.metainfo.identifier.empty)) { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <p class="%s" id="%s"> %s </p> -</div>┋", +</div>┃", obj.metainfo.identifier, (obj.metainfo.object_number.empty) ? "" : obj.metainfo.identifier, obj.metainfo.is_a, @@ -1009,11 +1009,11 @@ auto quote(O)( _txt ); } else { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <p class="%s"> %s </p> -</div>┋", +</div>┃", obj.metainfo.is_a, _txt ); @@ -1078,12 +1078,12 @@ auto group(O)( _txt = font_face(_txt); string o; if (!(obj.metainfo.identifier.empty)) { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <p class="%s" id="%s"> %s </p> -</div>┋", +</div>┃", obj.metainfo.identifier, (obj.metainfo.object_number.empty) ? "" : obj.metainfo.identifier, obj.metainfo.is_a, @@ -1091,11 +1091,11 @@ auto group(O)( _txt ); } else { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <p class="%s"> %s </p> -</div>┋", +</div>┃", obj.metainfo.is_a, _txt ); @@ -1161,10 +1161,10 @@ auto block(O)( _txt = font_face(_txt); string o; if (!(obj.metainfo.identifier.empty)) { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <p class="%s" id="%s">%s</p> -</div>┋", +</div>┃", obj.metainfo.identifier, (obj.metainfo.object_number.empty) ? "" : obj.metainfo.identifier, obj.metainfo.is_a, @@ -1172,9 +1172,9 @@ auto block(O)( _txt.stripRight ); } else { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <p class="%s">%s</p> -</div>┋", +</div>┃", obj.metainfo.is_a, _txt.stripRight ); @@ -1240,10 +1240,10 @@ auto verse(O)( _txt = font_face(_txt); string o; if (!(obj.metainfo.identifier.empty)) { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <p class="%s" id="%s">%s</p> - </div>┋", + </div>┃", obj.metainfo.identifier, (obj.metainfo.object_number.empty) ? "" : obj.metainfo.identifier, obj.metainfo.is_a, @@ -1251,9 +1251,9 @@ auto verse(O)( _txt ); } else { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <p class="%s">%s</p> - </div>┋", + </div>┃", obj.metainfo.is_a, _txt ); @@ -1317,10 +1317,10 @@ auto code(O)( assert(obj.metainfo.is_a == "code"); string o; if (!(obj.metainfo.identifier.empty)) { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <pre><p class="%s" id="%s">%s</p></pre> -</div>┋", +</div>┃", obj.metainfo.identifier, (obj.metainfo.object_number.empty) ? "" : obj.metainfo.identifier, obj.metainfo.is_a, @@ -1328,9 +1328,9 @@ auto code(O)( _txt ); } else { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <pre><p class="%s">%s</p></pre> -</div>┋", +</div>┃", obj.metainfo.is_a, _txt ); @@ -1405,7 +1405,7 @@ auto table(O)( _txt = t[0]; string _note = t[1]; string o; - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <p class="%s" id="%s">%s <table summary="normal text css" width="95%%" border="0" bgcolor="white" cellpadding="2" align="center"> @@ -1413,7 +1413,7 @@ auto table(O)( </table> %s </p> -</div>┋", +</div>┃", obj.metainfo.object_number, obj.metainfo.object_number, obj.metainfo.is_a, @@ -2119,7 +2119,7 @@ template outputEPub3() { #+BEGIN_SRC d string epub3_mimetypes() { string o; - o = format(q"┋application/epub+zip┋") ~ "\n"; + o = format(q"┃application/epub+zip┃") ~ "\n"; return o; } #+END_SRC @@ -2132,13 +2132,13 @@ string epub3_mimetypes() { #+BEGIN_SRC d string epub3_container_xml() { string o; - o = format(q"┋<?xml version='1.0' encoding='utf-8'?>┋") ~ "\n"; - o ~= format(q"┋<container version="1.0" + o = format(q"┃<?xml version='1.0' encoding='utf-8'?>┃") ~ "\n"; + o ~= format(q"┃<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container"> <rootfiles> <rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml" /> -</rootfiles>┋") ~ "\n</container>\n"; +</rootfiles>┃") ~ "\n</container>\n"; return o; } #+END_SRC @@ -2156,7 +2156,7 @@ string epub3_oebps_content(D,M,P)(D doc_abstraction, M doc_matters, P parts) { auto xhtml_format = outputXHTMLs(); auto pth_epub3 = DocReformPathsEPUB!()(doc_matters.output_path, doc_matters.src.language); string _uuid = "18275d951861c77f78acd05672c9906924c59f18a2e0ba06dad95959693e9bd8"; // TODO sort uuid in doc_matters! - string content = format(q"┋ <?xml version='1.0' encoding='utf-8'?> + string content = format(q"┃ <?xml version='1.0' encoding='utf-8'?> <package xmlns="http://www.idpf.org/2007/opf" version="2.0" unique-identifier="EPB-UUID"> <metadata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" @@ -2183,7 +2183,7 @@ string epub3_oebps_content(D,M,P)(D doc_abstraction, M doc_matters, P parts) { <link rel="stylesheet" href="%s" type="text/css" id="main-css" /> <!-- nav epub3 navigation --> <item id="nav" href="toc_nav.xhtml" media-type="application/xhtml+xml" properties="nav" /> -┋", +┃", _uuid, xhtml_format.special_characters_text(doc_matters.conf_make_meta.meta.title_full), xhtml_format.special_characters_text(doc_matters.conf_make_meta.meta.title_main), @@ -2208,8 +2208,8 @@ string epub3_oebps_content(D,M,P)(D doc_abstraction, M doc_matters, P parts) { // TODO sort jpg & png content ~= " " ~ "<!-- Images -->" ~ "\n "; foreach (image; doc_matters.srcs.image_list) { - content ~= format(q"┋ <item id="%s" href="%s/%s" media-type="image/%s" /> -┋", + content ~= format(q"┃ <item id="%s" href="%s/%s" media-type="image/%s" /> +┃", image.baseName.stripExtension, (pth_epub3.doc_oebps_image(doc_matters.src.filename)).chompPrefix("OEBPS/"), image, @@ -2352,7 +2352,7 @@ string epub2_oebps_toc_ncx(D,I)(D doc_abstraction, I doc_matters) { auto markup = InlineMarkup(); auto rgx = Rgx(); enum DomTags { none, open, close, close_and_open, open_still, } - string toc = format(q"┋<?xml version='1.0' encoding='utf-8'?> + string toc = format(q"┃<?xml version='1.0' encoding='utf-8'?> <ncx xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1"> <head> <!-- four required metadata items (for all NCX documents, @@ -2371,7 +2371,7 @@ string epub2_oebps_toc_ncx(D,I)(D doc_abstraction, I doc_matters) { <docAuthor> <text>%s</text> </docAuthor> -<navMap>┋", +<navMap>┃", doc_matters.conf_make_meta.meta.title_full, // title (doc_matters.conf_make_meta.meta.creator_author.empty) ? "" : " by " ~ doc_matters.conf_make_meta.meta.creator_author, // author @@ -2394,12 +2394,12 @@ string epub2_oebps_toc_ncx(D,I)(D doc_abstraction, I doc_matters) { case DomTags.close_and_open : ++counter; toc ~= "\n </navPoint>"; - toc ~= format(q"┋ + toc ~= format(q"┃ <navPoint class="chapter" id="navpoint" playOrder="%s"> <navLabel> <text>%s</text> </navLabel> - <content src="%s.xhtml%s" />┋", + <content src="%s.xhtml%s" />┃", counter, _txt, obj.tags.segment_anchor_tag_epub, @@ -2408,12 +2408,12 @@ string epub2_oebps_toc_ncx(D,I)(D doc_abstraction, I doc_matters) { break; case DomTags.open : ++counter; - toc ~= format(q"┋ + toc ~= format(q"┃ <navPoint class="chapter" id="navpoint" playOrder="%s"> <navLabel> <text>%s</text> </navLabel> - <content src="%s.xhtml%s" />┋", + <content src="%s.xhtml%s" />┃", counter, _txt, obj.tags.segment_anchor_tag_epub, @@ -2427,12 +2427,12 @@ string epub2_oebps_toc_ncx(D,I)(D doc_abstraction, I doc_matters) { } } } - toc ~= format(q"┋ + toc ~= format(q"┃ </navPoint> </navPoint> </navPoint> </navMap> -</ncx>┋"); +</ncx>┃"); return toc; } #+END_SRC @@ -2737,40 +2737,40 @@ void outputEPub3(D,I)( assert(obj.text.length > 0); if (obj.metainfo.heading_lev_markup <= 4) { oepbs_content_parts["manifest_documents"] ~= - format(q"┋ <item id="%s.xhtml" href="%s.xhtml" media-type="application/xhtml+xml" /> -┋", + format(q"┃ <item id="%s.xhtml" href="%s.xhtml" media-type="application/xhtml+xml" /> +┃", obj.tags.segment_anchor_tag_epub, obj.tags.segment_anchor_tag_epub, ); oepbs_content_parts["spine"] ~= - format(q"┋ <itemref idref="%s.xhtml" linear="yes" /> -┋", + format(q"┃ <itemref idref="%s.xhtml" linear="yes" /> +┃", obj.tags.segment_anchor_tag_epub, ); oepbs_content_parts["guide"] ~= - format(q"┋ <reference type="%s" href="%s" /> -┋", + format(q"┃ <reference type="%s" href="%s" /> +┃", obj.tags.segment_anchor_tag_epub, obj.tags.segment_anchor_tag_epub, ); } else if (obj.metainfo.heading_lev_markup > 4) { oepbs_content_parts["manifest_documents"] ~= - format(q"┋ <item id="%s.xhtml#%s" href="%s.xhtml#%s" media-type="application/xhtml+xml" /> -┋", + format(q"┃ <item id="%s.xhtml#%s" href="%s.xhtml#%s" media-type="application/xhtml+xml" /> +┃", obj.tags.segment_anchor_tag_epub, obj.metainfo.object_number, obj.tags.segment_anchor_tag_epub, obj.metainfo.object_number, ); oepbs_content_parts["spine"] ~= - format(q"┋ <itemref idref="%s.xhtml#%s" linear="yes" /> -┋", + format(q"┃ <itemref idref="%s.xhtml#%s" linear="yes" /> +┃", obj.tags.segment_anchor_tag_epub, obj.metainfo.object_number, ); oepbs_content_parts["guide"] ~= - format(q"┋ <reference type="%s#%s" href="%s#%s" /> -┋", + format(q"┃ <reference type="%s#%s" href="%s#%s" /> +┃", obj.tags.segment_anchor_tag_epub, obj.metainfo.object_number, obj.tags.segment_anchor_tag_epub, diff --git a/src/doc_reform/meta/metadoc_from_src.d b/src/doc_reform/meta/metadoc_from_src.d index f089a15..3862403 100644 --- a/src/doc_reform/meta/metadoc_from_src.d +++ b/src/doc_reform/meta/metadoc_from_src.d @@ -1788,7 +1788,7 @@ template DocReformDocAbstraction() { } obj.text = obj.text.replaceFirst( rgx.inline_image_without_dimensions, - format(q"┋%s☼%s,w%sh%s %s┋", + format(q"┃%s☼%s,w%sh%s %s┃", "$1", "$3", _w.to!string, @@ -1815,7 +1815,7 @@ template DocReformDocAbstraction() { obj.stow.link ~= obj.text.matchFirst(rgx.inline_link_stow_uri)[2]; obj.text = obj.text.replaceFirst( rgx.inline_link_stow_uri, - format(q"┋┥%s┝┤%s├┋", "$1", i) + format(q"┃┥%s┝┤%s├┃", "$1", i) ); } } @@ -4062,10 +4062,10 @@ template DocReformDocAbstraction() { static auto mkup = InlineMarkup(); if (textline.match(rgx.inline_faces_line)) { textline = textline - .replaceFirst(rgx.inline_emphasis_line, format(q"┋%s%s%s%s%s%s┋", mkup.emph, mkup.ff_o, "$1", mkup.ff_c, mkup.emph, "$2")) - .replaceFirst(rgx.inline_bold_line, format(q"┋%s%s%s%s%s%s┋", mkup.bold, mkup.ff_o, "$1", mkup.ff_c, mkup.bold, "$2")) - .replaceFirst(rgx.inline_underscore_line, format(q"┋%s%s%s%s%s%s┋", mkup.underscore, mkup.ff_o, "$1", mkup.ff_c, mkup.underscore, "$2")) - .replaceFirst(rgx.inline_italics_line, format(q"┋%s%s%s%s%s%s┋", mkup.italic, mkup.ff_o, "$1", mkup.ff_c, mkup.italic, "$2")); + .replaceFirst(rgx.inline_emphasis_line, format(q"┃%s%s%s%s%s%s┃", mkup.emph, mkup.ff_o, "$1", mkup.ff_c, mkup.emph, "$2")) + .replaceFirst(rgx.inline_bold_line, format(q"┃%s%s%s%s%s%s┃", mkup.bold, mkup.ff_o, "$1", mkup.ff_c, mkup.bold, "$2")) + .replaceFirst(rgx.inline_underscore_line, format(q"┃%s%s%s%s%s%s┃", mkup.underscore, mkup.ff_o, "$1", mkup.ff_c, mkup.underscore, "$2")) + .replaceFirst(rgx.inline_italics_line, format(q"┃%s%s%s%s%s%s┃", mkup.italic, mkup.ff_o, "$1", mkup.ff_c, mkup.italic, "$2")); } return textline; } @@ -4469,7 +4469,7 @@ template DocReformDocAbstraction() { } if (auto m = obj_txt_in.match(rgx.para_inline_link_anchor)) { obj_txt_in = obj_txt_in - .replaceAll(rgx.para_inline_link_anchor, "┋$1┋"); + .replaceAll(rgx.para_inline_link_anchor, "┃$1┃"); } auto ftn = footnotes_endnotes_markup_and_number_or_stars(obj_txt_in, reset_note_numbers); obj_txt_out = ftn[0]; @@ -4924,7 +4924,7 @@ template DocReformDocAbstraction() { heading_number_auto_composite = (conf_make_meta.make.auto_num_depth.to!uint == 3 && auto_heading_numbering[3]) - ? (format(q"┋%s.%s.%s.%s┋", + ? (format(q"┃%s.%s.%s.%s┃", heading_num[0].to!string, heading_num[1].to!string, heading_num[2].to!string, @@ -4936,7 +4936,7 @@ template DocReformDocAbstraction() { = ((conf_make_meta.make.auto_num_depth.to!uint >= 2) && (conf_make_meta.make.auto_num_depth.to!uint <= 3) && auto_heading_numbering[2]) - ? (format(q"┋%s.%s.%s┋", + ? (format(q"┃%s.%s.%s┃", heading_num[0].to!string, heading_num[1].to!string, heading_num[2].to!string @@ -4947,7 +4947,7 @@ template DocReformDocAbstraction() { = ((conf_make_meta.make.auto_num_depth.to!uint >= 1) && (conf_make_meta.make.auto_num_depth.to!uint <= 3) && auto_heading_numbering[1]) - ? (format(q"┋%s.%s┋", + ? (format(q"┃%s.%s┃", heading_num[0].to!string, heading_num[1].to!string )) @@ -4959,7 +4959,7 @@ template DocReformDocAbstraction() { = ((conf_make_meta.make.auto_num_depth.to!uint >= 0) && (conf_make_meta.make.auto_num_depth.to!uint <= 3) && auto_heading_numbering[0]) - ? (format(q"┋%s┋", + ? (format(q"┃%s┃", heading_num[0].to!string )) : ""; diff --git a/src/doc_reform/meta/rgx.d b/src/doc_reform/meta/rgx.d index 73900b6..3dcc214 100644 --- a/src/doc_reform/meta/rgx.d +++ b/src/doc_reform/meta/rgx.d @@ -281,7 +281,7 @@ static template DocReformRgxInit() { static inline_image = ctRegex!(`(?P<pre>┥)☼(?P<imginf>(?P<img>[a-zA-Z0-9._-]+?\.(?:jpg|gif|png)),w(?P<width>\d+)h(?P<height>\d+))\s*(?P<post>.*?┝┤.*?├)`, "mg"); static inline_image_without_dimensions = ctRegex!(`(?P<pre>┥)☼(?P<imginf>(?P<img>[a-zA-Z0-9._-]+?\.(?:jpg|gif|png)),w(?P<width>0)h(?P<height>0))\s*(?P<post>.*?┝┤.*?├)`, "mg"); static inline_image_info = ctRegex!(`☼?(?P<img>[a-zA-Z0-9._-]+?\.(?:jpg|gif|png)),w(?P<width>\d+)h(?P<height>\d+)`, "mg"); - static inline_link_anchor = ctRegex!(`┋(?P<anchor>\S+?)┋`, "mg"); // TODO *~text_link_anchor + static inline_link_anchor = ctRegex!(`┃(?P<anchor>\S+?)┃`, "mg"); // TODO *~text_link_anchor static inline_link_ = ctRegex!(`┥(?P<text>.+?)┝┤(?P<link>.+?)├`, "mg"); static inline_link = ctRegex!(`┥(?P<text>.+?)┝┤(?P<link>\S+?)├`, "mg"); static inline_link_empty = ctRegex!(`┥(?P<text>.+?)┝┤├`, "mg"); @@ -299,7 +299,7 @@ static template DocReformRgxInit() { static inline_seg_link = ctRegex!(`(¤)(?:.+?)\.fnSuffix`, "mg"); static mark_internal_site_lnk = ctRegex!(`¤`, "mg"); static quotation_mark_sql_insert_delimiter = ctRegex!("[']", "mg"); - static quotation_mark_various = ctRegex!(q"┋['‘’“”"`´¨]┋", "mg"); + static quotation_mark_various = ctRegex!(q"┃['‘’“”"`´¨]┃", "mg"); /+ inline markup font face mod +/ static inline_mark_faces = ctRegex!(`(?P<markup>(?P<mod>[*!/_^,+#"-])\{(?P<text>.+?)\}[*!/_^,+#"-])`, "mg"); static inline_mark_faces_to_mod = ctRegex!(`(?P<mod>[*!/_^,+#"-])\{(?P<text>.+?)\}([*!/_^,+#"-])`, "mg"); diff --git a/src/doc_reform/output/epub3.d b/src/doc_reform/output/epub3.d index e02637c..a49bb5d 100644 --- a/src/doc_reform/output/epub3.d +++ b/src/doc_reform/output/epub3.d @@ -16,25 +16,25 @@ template outputEPub3() { mixin outputXHTMLs; string epub3_mimetypes() { string o; - o = format(q"┋application/epub+zip┋") ~ "\n"; + o = format(q"┃application/epub+zip┃") ~ "\n"; return o; } string epub3_container_xml() { string o; - o = format(q"┋<?xml version='1.0' encoding='utf-8'?>┋") ~ "\n"; - o ~= format(q"┋<container version="1.0" + o = format(q"┃<?xml version='1.0' encoding='utf-8'?>┃") ~ "\n"; + o ~= format(q"┃<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container"> <rootfiles> <rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml" /> - </rootfiles>┋") ~ "\n</container>\n"; + </rootfiles>┃") ~ "\n</container>\n"; return o; } string epub3_oebps_content(D,M,P)(D doc_abstraction, M doc_matters, P parts) { auto xhtml_format = outputXHTMLs(); auto pth_epub3 = DocReformPathsEPUB!()(doc_matters.output_path, doc_matters.src.language); string _uuid = "18275d951861c77f78acd05672c9906924c59f18a2e0ba06dad95959693e9bd8"; // TODO sort uuid in doc_matters! - string content = format(q"┋ <?xml version='1.0' encoding='utf-8'?> + string content = format(q"┃ <?xml version='1.0' encoding='utf-8'?> <package xmlns="http://www.idpf.org/2007/opf" version="2.0" unique-identifier="EPB-UUID"> <metadata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" @@ -61,7 +61,7 @@ template outputEPub3() { <link rel="stylesheet" href="%s" type="text/css" id="main-css" /> <!-- nav epub3 navigation --> <item id="nav" href="toc_nav.xhtml" media-type="application/xhtml+xml" properties="nav" /> - ┋", + ┃", _uuid, xhtml_format.special_characters_text(doc_matters.conf_make_meta.meta.title_full), xhtml_format.special_characters_text(doc_matters.conf_make_meta.meta.title_main), @@ -86,8 +86,8 @@ template outputEPub3() { // TODO sort jpg & png content ~= " " ~ "<!-- Images -->" ~ "\n "; foreach (image; doc_matters.srcs.image_list) { - content ~= format(q"┋ <item id="%s" href="%s/%s" media-type="image/%s" /> - ┋", + content ~= format(q"┃ <item id="%s" href="%s/%s" media-type="image/%s" /> + ┃", image.baseName.stripExtension, (pth_epub3.doc_oebps_image(doc_matters.src.filename)).chompPrefix("OEBPS/"), image, @@ -213,7 +213,7 @@ template outputEPub3() { auto markup = InlineMarkup(); auto rgx = Rgx(); enum DomTags { none, open, close, close_and_open, open_still, } - string toc = format(q"┋<?xml version='1.0' encoding='utf-8'?> + string toc = format(q"┃<?xml version='1.0' encoding='utf-8'?> <ncx xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1"> <head> <!-- four required metadata items (for all NCX documents, @@ -232,7 +232,7 @@ template outputEPub3() { <docAuthor> <text>%s</text> </docAuthor> - <navMap>┋", + <navMap>┃", doc_matters.conf_make_meta.meta.title_full, // title (doc_matters.conf_make_meta.meta.creator_author.empty) ? "" : " by " ~ doc_matters.conf_make_meta.meta.creator_author, // author @@ -255,12 +255,12 @@ template outputEPub3() { case DomTags.close_and_open : ++counter; toc ~= "\n </navPoint>"; - toc ~= format(q"┋ + toc ~= format(q"┃ <navPoint class="chapter" id="navpoint" playOrder="%s"> <navLabel> <text>%s</text> </navLabel> - <content src="%s.xhtml%s" />┋", + <content src="%s.xhtml%s" />┃", counter, _txt, obj.tags.segment_anchor_tag_epub, @@ -269,12 +269,12 @@ template outputEPub3() { break; case DomTags.open : ++counter; - toc ~= format(q"┋ + toc ~= format(q"┃ <navPoint class="chapter" id="navpoint" playOrder="%s"> <navLabel> <text>%s</text> </navLabel> - <content src="%s.xhtml%s" />┋", + <content src="%s.xhtml%s" />┃", counter, _txt, obj.tags.segment_anchor_tag_epub, @@ -288,12 +288,12 @@ template outputEPub3() { } } } - toc ~= format(q"┋ + toc ~= format(q"┃ </navPoint> </navPoint> </navPoint> </navMap> - </ncx>┋"); + </ncx>┃"); return toc; } @@ -556,40 +556,40 @@ template outputEPub3() { assert(obj.text.length > 0); if (obj.metainfo.heading_lev_markup <= 4) { oepbs_content_parts["manifest_documents"] ~= - format(q"┋ <item id="%s.xhtml" href="%s.xhtml" media-type="application/xhtml+xml" /> - ┋", + format(q"┃ <item id="%s.xhtml" href="%s.xhtml" media-type="application/xhtml+xml" /> + ┃", obj.tags.segment_anchor_tag_epub, obj.tags.segment_anchor_tag_epub, ); oepbs_content_parts["spine"] ~= - format(q"┋ <itemref idref="%s.xhtml" linear="yes" /> - ┋", + format(q"┃ <itemref idref="%s.xhtml" linear="yes" /> + ┃", obj.tags.segment_anchor_tag_epub, ); oepbs_content_parts["guide"] ~= - format(q"┋ <reference type="%s" href="%s" /> - ┋", + format(q"┃ <reference type="%s" href="%s" /> + ┃", obj.tags.segment_anchor_tag_epub, obj.tags.segment_anchor_tag_epub, ); } else if (obj.metainfo.heading_lev_markup > 4) { oepbs_content_parts["manifest_documents"] ~= - format(q"┋ <item id="%s.xhtml#%s" href="%s.xhtml#%s" media-type="application/xhtml+xml" /> - ┋", + format(q"┃ <item id="%s.xhtml#%s" href="%s.xhtml#%s" media-type="application/xhtml+xml" /> + ┃", obj.tags.segment_anchor_tag_epub, obj.metainfo.object_number, obj.tags.segment_anchor_tag_epub, obj.metainfo.object_number, ); oepbs_content_parts["spine"] ~= - format(q"┋ <itemref idref="%s.xhtml#%s" linear="yes" /> - ┋", + format(q"┃ <itemref idref="%s.xhtml#%s" linear="yes" /> + ┃", obj.tags.segment_anchor_tag_epub, obj.metainfo.object_number, ); oepbs_content_parts["guide"] ~= - format(q"┋ <reference type="%s#%s" href="%s#%s" /> - ┋", + format(q"┃ <reference type="%s#%s" href="%s#%s" /> + ┃", obj.tags.segment_anchor_tag_epub, obj.metainfo.object_number, obj.tags.segment_anchor_tag_epub, diff --git a/src/doc_reform/output/paths_output.d b/src/doc_reform/output/paths_output.d index 7980594..f33db27 100644 --- a/src/doc_reform/output/paths_output.d +++ b/src/doc_reform/output/paths_output.d @@ -92,7 +92,7 @@ template DocReformPathsUrl() { 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┋", + string _url = format(q"┃%s/%s/html/%s/%s.html#%s┃", doc_root, doc_matters.src.language, doc_matters.src.filename_base, diff --git a/src/doc_reform/output/rgx.d b/src/doc_reform/output/rgx.d index 8cb4581..2ddc57f 100644 --- a/src/doc_reform/output/rgx.d +++ b/src/doc_reform/output/rgx.d @@ -70,7 +70,7 @@ static template DocReformOutputRgxInit() { static inline_image = ctRegex!(`(?P<pre>┥)☼(?P<imginf>(?P<img>[a-zA-Z0-9._-]+?\.(?:jpg|gif|png)),w(?P<width>\d+)h(?P<height>\d+))\s*(?P<post>.*?┝┤.*?├)`, "mg"); static inline_image_without_dimensions = ctRegex!(`(?P<pre>┥)☼(?P<imginf>(?P<img>[a-zA-Z0-9._-]+?\.(?:jpg|gif|png)),w(?P<width>0)h(?P<height>0))\s*(?P<post>.*?┝┤.*?├)`, "mg"); static inline_image_info = ctRegex!(`☼?(?P<img>[a-zA-Z0-9._-]+?\.(?:jpg|gif|png)),w(?P<width>\d+)h(?P<height>\d+)`, "mg"); - static inline_link_anchor = ctRegex!(`┋(?P<anchor>\S+?)┋`, "mg"); // TODO *~text_link_anchor + static inline_link_anchor = ctRegex!(`┃(?P<anchor>\S+?)┃`, "mg"); // TODO *~text_link_anchor static inline_link_ = ctRegex!(`┥(?P<text>.+?)┝┤(?P<link>.+?)├`, "mg"); static inline_link = ctRegex!(`┥(?P<text>.+?)┝┤(?P<link>\S+?)├`, "mg"); static inline_link_empty = ctRegex!(`┥(?P<text>.+?)┝┤├`, "mg"); @@ -88,7 +88,7 @@ static template DocReformOutputRgxInit() { static inline_seg_link = ctRegex!(`(¤)(?:.+?)\.fnSuffix`, "mg"); static mark_internal_site_lnk = ctRegex!(`¤`, "mg"); static quotation_mark_sql_insert_delimiter = ctRegex!("[']", "mg"); - static quotation_mark_various = ctRegex!(q"┋['‘’“”"`´¨]┋", "mg"); + static quotation_mark_various = ctRegex!(q"┃['‘’“”"`´¨]┃", "mg"); /+ inline markup font face mod +/ static inline_mark_faces = ctRegex!(`(?P<markup>(?P<mod>[*!/_^,+#"-])\{(?P<text>.+?)\}[*!/_^,+#"-])`, "mg"); static inline_mark_faces_to_mod = ctRegex!(`(?P<mod>[*!/_^,+#"-])\{(?P<text>.+?)\}([*!/_^,+#"-])`, "mg"); diff --git a/src/doc_reform/output/sqlite.d b/src/doc_reform/output/sqlite.d index 113af10..0be198b 100644 --- a/src/doc_reform/output/sqlite.d +++ b/src/doc_reform/output/sqlite.d @@ -463,9 +463,9 @@ template SQLiteFormatAndLoadObject() { assert(obj.metainfo.is_a == "heading"); string _txt = munge_html(doc_matters, obj); _txt = inline_markup(doc_matters, obj, _txt); - string o = format(q"┋<p class="%s"><b> + string o = format(q"┃<p class="%s"><b> %s - </b></p>┋", + </b></p>┃", obj.metainfo.is_a, _txt, ); @@ -482,9 +482,9 @@ template SQLiteFormatAndLoadObject() { string _txt = munge_html(doc_matters, obj); _txt = (obj.attrib.bullet) ? ("●  " ~ _txt) : _txt; _txt = inline_markup(doc_matters, obj, _txt); - string o = format(q"┋<p class="%s" indent="h%si%s"> + string o = format(q"┃<p class="%s" indent="h%si%s"> %s - </p>┋", + </p>┃", obj.metainfo.is_a, obj.attrib.indent_hang, obj.attrib.indent_base, @@ -501,9 +501,9 @@ template SQLiteFormatAndLoadObject() { assert(obj.metainfo.is_of_type == "block"); assert(obj.metainfo.is_a == "quote"); string _txt = munge_html(doc_matters, obj); - string o = format(q"┋<p class="%s"> + string o = format(q"┃<p class="%s"> %s - </p>┋", + </p>┃", obj.metainfo.is_a, _txt ); @@ -518,9 +518,9 @@ template SQLiteFormatAndLoadObject() { assert(obj.metainfo.is_of_type == "block"); assert(obj.metainfo.is_a == "group"); string _txt = munge_html(doc_matters, obj); - string o = format(q"┋<p class="%s"> + string o = format(q"┃<p class="%s"> %s - </p>┋", + </p>┃", obj.metainfo.is_a, _txt ); @@ -535,8 +535,8 @@ template SQLiteFormatAndLoadObject() { assert(obj.metainfo.is_of_type == "block"); assert(obj.metainfo.is_a == "block"); string _txt = munge_html(doc_matters, obj); - string o = format(q"┋ - <p class="%s">%s</p>┋", + string o = format(q"┃ + <p class="%s">%s</p>┃", obj.metainfo.is_a, _txt.stripRight ); @@ -551,7 +551,7 @@ template SQLiteFormatAndLoadObject() { assert(obj.metainfo.is_of_type == "block"); assert(obj.metainfo.is_a == "verse"); string _txt = munge_html(doc_matters, obj); - string o = format(q"┋<p class="%s">%s</p>┋", + string o = format(q"┃<p class="%s">%s</p>┃", obj.metainfo.is_a, _txt ); @@ -565,7 +565,7 @@ template SQLiteFormatAndLoadObject() { assert(obj.metainfo.is_of_type == "block"); assert(obj.metainfo.is_a == "code"); string _txt = html_special_characters_code(obj.text); - string o = format(q"┋<p class="%s">%s</p>┋", + string o = format(q"┃<p class="%s">%s</p>┃", obj.metainfo.is_a, _txt ); @@ -624,12 +624,12 @@ template SQLiteFormatAndLoadObject() { auto t = _tablarize(obj, _txt); _txt = t[0]; string _note = t[1]; - string o = format(q"┋<p class="%s"> + string o = format(q"┃<p class="%s"> <table summary="normal text css" width="95%%" border="0" bgcolor="white" cellpadding="2" align="center"> %s </table> %s - </p>┋", + </p>┃", obj.metainfo.is_a, _txt, _note @@ -855,7 +855,7 @@ template SQLiteFormatAndLoadObject() { template SQLiteTablesReCreate() { string SQLiteTablesReCreate()() { string _sql_instruct; - _sql_instruct = format(q"┋ + _sql_instruct = format(q"┃ DROP INDEX IF EXISTS idx_ocn; DROP INDEX IF EXISTS idx_uid; DROP INDEX IF EXISTS idx_digest_clean; @@ -984,7 +984,7 @@ template SQLiteTablesReCreate() { CREATE INDEX idx_filename ON metadata_and_text(src_filename); CREATE INDEX idx_language ON metadata_and_text(language_document_char); CREATE INDEX idx_topics ON metadata_and_text(classify_topic_register); - ┋",); + ┃",); return _sql_instruct; } } @@ -993,12 +993,12 @@ template SQLiteDeleteDocument() { M doc_matters, ) { string _uid = doc_matters.src.doc_uid; - string _delete_uid = format(q"┋ + string _delete_uid = format(q"┃ DELETE FROM metadata_and_text WHERE uid = '%s'; DELETE FROM doc_objects WHERE uid_metadata_and_text = '%s'; - ┋", + ┃", _uid, _uid, ); @@ -1010,7 +1010,7 @@ template SQLiteInsertMetadata() { M doc_matters, ) { string _uid = SQLinsertDelimiter!()(doc_matters.src.doc_uid); - string _insert_metadata = format(q"┋ + string _insert_metadata = format(q"┃ INSERT INTO metadata_and_text ( uid, src_filename, @@ -1111,7 +1111,7 @@ template SQLiteInsertMetadata() { '%s', '%s' ); - ┋", + ┃", _uid, SQLinsertDelimiter!()(doc_matters.src.filename), SQLinsertDelimiter!()(doc_matters.src.docname_composite_unique_per_src_doc), @@ -1172,7 +1172,7 @@ template SQLiteInsertDocObjectsLoop() { string _uid = SQLinsertDelimiter!()(doc_matters.src.doc_uid); auto site_url = DocReformPathsUrl!()(doc_matters); string insertDocObjectsRow(O)(O obj) { - string _insert_doc_objects_row = format(q"┋ + string _insert_doc_objects_row = format(q"┃ INSERT INTO doc_objects ( uid_metadata_and_text, ocn, @@ -1195,7 +1195,7 @@ template SQLiteInsertDocObjectsLoop() { '%s', '%s' ); - ┋", + ┃", _uid, obj.metainfo.ocn, obj.metainfo.identifier, @@ -1391,7 +1391,7 @@ template SQLiteTablesCreate() { template SQLiteTablesReCreate() { string SQLiteTablesReCreate()() { string _sql_instruct; - _sql_instruct = format(q"┋ + _sql_instruct = format(q"┃ DROP INDEX IF EXISTS idx_ocn; DROP INDEX IF EXISTS idx_uid; DROP INDEX IF EXISTS idx_digest_clean; @@ -1520,7 +1520,7 @@ template SQLiteTablesCreate() { CREATE INDEX idx_filename ON metadata_and_text(src_filename); CREATE INDEX idx_language ON metadata_and_text(language_document_char); CREATE INDEX idx_topics ON metadata_and_text(classify_topic_register); - ┋",); + ┃",); return _sql_instruct; } } diff --git a/src/doc_reform/output/xmls.d b/src/doc_reform/output/xmls.d index eb8debd..30e876d 100644 --- a/src/doc_reform/output/xmls.d +++ b/src/doc_reform/output/xmls.d @@ -95,7 +95,7 @@ template outputXHTMLs() { ) { string _publisher="Publisher"; // TODO string o; - o = format(q"┋<!-- DocReform header metadata --> + o = format(q"┃<!-- DocReform header metadata --> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta name="dc.title" content="%s" /> <meta name="dc.author" content="%s" /> @@ -110,7 +110,7 @@ template outputXHTMLs() { <meta name="dc.rights" content="%s" /> <meta name="generator" content="%s" /> <link rel="generator" href="%s" /> - <!-- DocReform header metadata -->┋", + <!-- DocReform header metadata -->┃", doc_matters.conf_make_meta.meta.title_full, doc_matters.conf_make_meta.meta.creator_author, _publisher, @@ -144,9 +144,9 @@ template outputXHTMLs() { _locations = "<p class=\"tiny_left\"><a href=\"http://www.doc-reform.org\">doc-reform</a></p>\n<p class=\"tiny_left\"><a href=\"http://git.sisudoc.org/software/doc-reform/\">sources / git</a></p>\n<p class=\"tiny_left\"><a href=\"http://www.sisudoc.org\">www.sisudoc.org</a></p>"; } string o; - o = format(q"┋<div class="flex-menu-option"> + o = format(q"┃<div class="flex-menu-option"> %s - </div>┋", + </div>┃", _locations, ); return o; @@ -159,7 +159,7 @@ template outputXHTMLs() { string o; string _form; if (doc_matters.opt.action.workon) { - _form = format(q"┋ + _form = format(q"┃ <a name="search"></a> <form method="get" action="%s" target="_top"> <font size="2"> @@ -171,17 +171,17 @@ template outputXHTMLs() { <input type="submit" name="search" value="search doc" /> <input type="submit" name="search" value="search db" /> </font></form> - ┋", + ┃", _action, _db, ); } else { - _form = format(q"┋%s┋", + _form = format(q"┃%s┃", "", ); } - o = format(q"┋<div class="flex-menu-option">%s - </div>┋", + o = format(q"┃<div class="flex-menu-option">%s + </div>┃", _form, ); return o; @@ -192,17 +192,17 @@ template outputXHTMLs() { ) { string _manifest = ""; if (doc_matters.opt.action.workon) { - _manifest = format(q"┋ + _manifest = format(q"┃ <a href="../../manifest/sisu.en.html" target="_top"> <font face="verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman" size="2"> [ document manifest ] </font> </a> - ┋", + ┃", ); } string o; - o = format(q"┋<!DOCTYPE html> + o = format(q"┃<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> @@ -224,7 +224,7 @@ template outputXHTMLs() { <div class="flex-menu-option"> %s </div> - %s%s┋", + %s%s┃", doc_matters.conf_make_meta.meta.title_full, (doc_matters.conf_make_meta.meta.creator_author.empty) ? "" : ", " ~ doc_matters.conf_make_meta.meta.creator_author, @@ -244,27 +244,27 @@ template outputXHTMLs() { auto epub3_seg_head(M)( M doc_matters, ) { - string html_base = format(q"┋<!DOCTYPE html> - <html>┋", + string html_base = format(q"┃<!DOCTYPE html> + <html>┃", ); - string html_simple = format(q"┋<!DOCTYPE html> + string html_simple = format(q"┃<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" - lang="%s" xml:lang="%s">┋", + lang="%s" xml:lang="%s">┃", doc_matters.src.language, doc_matters.src.language, ); - string html_strict = format(q"┋<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + string html_strict = format(q"┃<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" - lang="%s" xml:lang="%s">┋", + lang="%s" xml:lang="%s">┃", doc_matters.src.language, doc_matters.src.language, ); string o; - o = format(q"┋%s + o = format(q"┃%s <head> <title> %s%s @@ -287,7 +287,7 @@ template outputXHTMLs() { <link rel="stylesheet" href="css/epub.css" type="text/css" id="main-css" /> </head> <body lang="%s"> - <a name="top" id="top"></a>┋", + <a name="top" id="top"></a>┃", html_simple, doc_matters.conf_make_meta.meta.title_full, (doc_matters.conf_make_meta.meta.creator_author.empty) ? "" @@ -311,11 +311,11 @@ template outputXHTMLs() { } auto tail() { string o; - o = format(q"┋ + o = format(q"┃ <a name="bottom" id="bottom"></a> <a name="end" id="end"></a> </body> - </html>┋"); + </html>┃"); return o; } auto inline_images(O,M)( @@ -532,10 +532,10 @@ template outputXHTMLs() { text = font_face(text); auto link = m.captures[3].to!string; lev4_subtoc ~= subtoc.replaceFirst(rgx.inline_link_subtoc, - format(q"┋ <p class="minitoc" indent="h%si%s"> + format(q"┃ <p class="minitoc" indent="h%si%s"> ۰ <a href="%s">%s</a> </p> - ┋", + ┃", indent, indent, link, @@ -555,42 +555,42 @@ template outputXHTMLs() { toc = ""; prev = ""; } else { - toc = format(q"┋<a href="toc.html" target="_top"> + toc = format(q"┃<a href="toc.html" target="_top"> <div class="toc-button menu"> <svg viewbox="0 0 100 100"> <path d="M4,10h24c1.104,0,2-0.896,2-2s-0.896-2-2-2H4C2.896,6,2,6.896,2,8S2.896,10,4,10z M28,14H4c-1.104,0-2,0.896-2,2 s0.896,2,2,2h24c1.104,0,2-0.896,2-2S29.104,14,28,14z M28,22H4c-1.104,0-2,0.896-2,2s0.896,2,2,2h24c1.104,0,2-0.896,2-2 S29.104,22,28,22z"/> </svg> </div> - </a>┋", + </a>┃", ); } if (obj.tags.segname_prev == "") { prev = ""; } else { - prev = format(q"┋<a href="%s.html" target="_top"> + prev = format(q"┃<a href="%s.html" target="_top"> <div class="prev-next-button previous"> <svg viewbox="0 0 100 100"> <path class="arrow" d="M 50,0 L 60,10 L 20,50 L 60,90 L 50,100 L 0,50 Z" transform=" translate(15,0)"> </svg> </div> - </a>┋", + </a>┃", obj.tags.segname_prev, ); } if (obj.tags.segname_next == "") { next = ""; } else { - next = format(q"┋<a href="%s.html" target="_top"> + next = format(q"┃<a href="%s.html" target="_top"> <div class="prev-next-button next"> <svg viewbox="0 0 100 100"> <path class="arrow" d="M 50,0 L 60,10 L 20,50 L 60,90 L 50,100 L 0,50 Z "transform="translate(85,100) rotate(180) "> </svg> </div> - </a>┋", + </a>┃", obj.tags.segname_next, ); } - string _toc_pre_next = format(q"┋ <div class="flex-menu-option"> + string _toc_pre_next = format(q"┃ <div class="flex-menu-option"> <div class="nav-bar"> %s %s @@ -598,19 +598,19 @@ template outputXHTMLs() { </div> </div> </div> - </div>┋", + </div>┃", toc, prev, next, ); - string _pre_next = format(q"┋ <div class="flex-menu-option"> + string _pre_next = format(q"┃ <div class="flex-menu-option"> <div class="nav-bar"> %s %s </div> </div> </div> - </div>┋", + </div>┃", prev, next, ); @@ -646,13 +646,13 @@ template outputXHTMLs() { ? "" : "<a name=\"" ~ obj.tags.heading_lev_anchor_tag ~ "\"></a>"; if (!(obj.metainfo.identifier.empty)) { - o = format(q"┋%s + o = format(q"┃%s <div class="substance"> <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <h%s class="%s" id="%s"><a name="%s"></a>%s%s %s </h%s> - </div>┋", + </div>┃", _horizontal_rule, obj.metainfo.identifier, (obj.metainfo.object_number.empty) ? "" : obj.metainfo.identifier, @@ -666,12 +666,12 @@ template outputXHTMLs() { obj.metainfo.heading_lev_markup, ); } else { - o = format(q"┋%s + o = format(q"┃%s <div class="substance"> <h%s class="%s">%s%s %s </h%s> - </div>┋", + </div>┃", _horizontal_rule, obj.metainfo.heading_lev_markup, obj.metainfo.is_a, @@ -726,12 +726,12 @@ template outputXHTMLs() { _txt = _txt.replaceFirst(rgx.inline_link_anchor, "<a name=\"$1\"></a>"); if (!(obj.metainfo.identifier.empty)) { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <p class="%s" indent="h%si%s" id="%s">%s %s </p> - </div>┋", + </div>┃", obj.metainfo.identifier, (obj.metainfo.object_number.empty) ? "" : obj.metainfo.identifier, obj.metainfo.is_a, @@ -742,11 +742,11 @@ template outputXHTMLs() { _txt ); } else { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <p class="%s" indent="h%si%s">%s %s </p> - </div>┋", + </div>┃", obj.metainfo.is_a, obj.attrib.indent_hang, obj.attrib.indent_base, @@ -795,12 +795,12 @@ template outputXHTMLs() { _txt = font_face(_txt); string o; if (!(obj.metainfo.identifier.empty)) { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <p class="%s" id="%s"> %s </p> - </div>┋", + </div>┃", obj.metainfo.identifier, (obj.metainfo.object_number.empty) ? "" : obj.metainfo.identifier, obj.metainfo.is_a, @@ -808,11 +808,11 @@ template outputXHTMLs() { _txt ); } else { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <p class="%s"> %s </p> - </div>┋", + </div>┃", obj.metainfo.is_a, _txt ); @@ -858,12 +858,12 @@ template outputXHTMLs() { _txt = font_face(_txt); string o; if (!(obj.metainfo.identifier.empty)) { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <p class="%s" id="%s"> %s </p> - </div>┋", + </div>┃", obj.metainfo.identifier, (obj.metainfo.object_number.empty) ? "" : obj.metainfo.identifier, obj.metainfo.is_a, @@ -871,11 +871,11 @@ template outputXHTMLs() { _txt ); } else { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <p class="%s"> %s </p> - </div>┋", + </div>┃", obj.metainfo.is_a, _txt ); @@ -922,10 +922,10 @@ template outputXHTMLs() { _txt = font_face(_txt); string o; if (!(obj.metainfo.identifier.empty)) { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <p class="%s" id="%s">%s</p> - </div>┋", + </div>┃", obj.metainfo.identifier, (obj.metainfo.object_number.empty) ? "" : obj.metainfo.identifier, obj.metainfo.is_a, @@ -933,9 +933,9 @@ template outputXHTMLs() { _txt.stripRight ); } else { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <p class="%s">%s</p> - </div>┋", + </div>┃", obj.metainfo.is_a, _txt.stripRight ); @@ -982,10 +982,10 @@ template outputXHTMLs() { _txt = font_face(_txt); string o; if (!(obj.metainfo.identifier.empty)) { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <p class="%s" id="%s">%s</p> - </div>┋", + </div>┃", obj.metainfo.identifier, (obj.metainfo.object_number.empty) ? "" : obj.metainfo.identifier, obj.metainfo.is_a, @@ -993,9 +993,9 @@ template outputXHTMLs() { _txt ); } else { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <p class="%s">%s</p> - </div>┋", + </div>┃", obj.metainfo.is_a, _txt ); @@ -1078,7 +1078,7 @@ template outputXHTMLs() { _txt = t[0]; string _note = t[1]; string o; - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <p class="%s" id="%s">%s <table summary="normal text css" width="95%%" border="0" bgcolor="white" cellpadding="2" align="center"> @@ -1086,7 +1086,7 @@ template outputXHTMLs() { </table> %s </p> - </div>┋", + </div>┃", obj.metainfo.object_number, obj.metainfo.object_number, obj.metainfo.is_a, @@ -1107,10 +1107,10 @@ template outputXHTMLs() { assert(obj.metainfo.is_a == "code"); string o; if (!(obj.metainfo.identifier.empty)) { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> <pre><p class="%s" id="%s">%s</p></pre> - </div>┋", + </div>┃", obj.metainfo.identifier, (obj.metainfo.object_number.empty) ? "" : obj.metainfo.identifier, obj.metainfo.is_a, @@ -1118,9 +1118,9 @@ template outputXHTMLs() { _txt ); } else { - o = format(q"┋ <div class="substance"> + o = format(q"┃ <div class="substance"> <pre><p class="%s">%s</p></pre> - </div>┋", + </div>┃", obj.metainfo.is_a, _txt ); -- cgit v1.2.3