diff options
| author | Ralph Amissah <ralph.amissah@gmail.com> | 2019-01-29 17:00:31 -0500 | 
|---|---|---|
| committer | Ralph Amissah <ralph.amissah@gmail.com> | 2019-05-17 16:59:38 -0400 | 
| commit | 5f6caf585c7ccaac0a4310987c85fdcfd3bcff3d (patch) | |
| tree | 35da6f6f333a23a7c8a0cc87ee3c2322299a816f /org | |
| parent | rearrange some code (diff) | |
format delimiter s/¶/┋/g
Diffstat (limited to 'org')
| -rw-r--r-- | org/default_paths.org | 2 | ||||
| -rw-r--r-- | org/default_regex.org | 2 | ||||
| -rw-r--r-- | org/meta_abstraction.org | 2 | ||||
| -rw-r--r-- | org/output_sqlite.org | 52 | ||||
| -rw-r--r-- | org/output_xmls.org | 186 | 
5 files changed, 122 insertions, 122 deletions
diff --git a/org/default_paths.org b/org/default_paths.org index 6d38825..68c7da8 100644 --- a/org/default_paths.org +++ b/org/default_paths.org @@ -1030,7 +1030,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 5705fb2..e02c3a3 100644 --- a/org/default_regex.org +++ b/org/default_regex.org @@ -517,7 +517,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 10eeddd..10153c8 100644 --- a/org/meta_abstraction.org +++ b/org/meta_abstraction.org @@ -2316,7 +2316,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)          );        }      } diff --git a/org/output_sqlite.org b/org/output_sqlite.org index 06e7f01..13b8702 100644 --- a/org/output_sqlite.org +++ b/org/output_sqlite.org @@ -158,13 +158,13 @@ template SQLiteFormatAndLoadObject() {  template SQLiteTablesReCreate() {    string SQLiteTablesReCreate()() {      string _sql_instruct; -    _sql_instruct = format(q"¶ +    _sql_instruct = format(q"┋        <<sqlite_statement_drop_existing_index>>        <<sqlite_statement_drop_existing_tables>>        <<sqlite_statement_create_table_metadata_and_src_txt>>        <<sqlite_statement_create_table_objects>>        <<sqlite_statement_create_index>> -    ¶",); +    ┋",);      return _sql_instruct;    }  } @@ -224,13 +224,13 @@ template SQLiteTablesCreate() {      template SQLiteTablesReCreate() {        string SQLiteTablesReCreate()() {          string _sql_instruct; -        _sql_instruct = format(q"¶ +        _sql_instruct = format(q"┋            <<sqlite_statement_drop_existing_index>>            <<sqlite_statement_drop_existing_tables>>            <<sqlite_statement_create_table_metadata_and_src_txt>>            <<sqlite_statement_create_table_objects>>            <<sqlite_statement_create_index>> -        ¶",); +        ┋",);          return _sql_instruct;        }      } @@ -735,9 +735,9 @@ auto html_heading(M,O)(  ) {    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,      ); @@ -755,9 +755,9 @@ auto html_heading(M,O)(  ) {    string o;    string _txt = munge_html(doc_matters, obj); -  o = format(q"¶<h%s class="%s"> +  o = format(q"┋<h%s class="%s">        %s -    </h%s>¶", +    </h%s>┋",        obj.metainfo.heading_lev_markup,        obj.metainfo.is_a,        _txt, @@ -778,9 +778,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"¶<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, @@ -799,9 +799,9 @@ auto html_quote(M,O)(    auto ref const O    obj,  ) {    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      ); @@ -818,9 +818,9 @@ auto html_group(M,O)(    auto ref const O    obj,  ) {    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      ); @@ -837,8 +837,8 @@ auto html_block(M,O)(    auto ref const O    obj,  ) {    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      ); @@ -855,7 +855,7 @@ auto html_verse(M,O)(    auto ref const O    obj,  ) {    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      ); @@ -871,7 +871,7 @@ auto html_code(O)(    auto ref const O    obj,  ) {    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      ); @@ -932,12 +932,12 @@ auto html_table(M,O)(    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 @@ -1571,7 +1571,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 @@ -1588,7 +1588,7 @@ WHERE uid_metadata_and_text = '%s';  #+name: sqlite_formatted_delete  #+BEGIN_SRC d -¶", +┋",    _uid,    _uid,  ); @@ -1608,7 +1608,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 @@ -1649,7 +1649,7 @@ string _insert_doc_objects_row = format(q"¶  #+name: sqlite_formatted_insertions_doc_objects  #+BEGIN_SRC d -¶", +┋",    _uid,    obj.metainfo.ocn,    obj.metainfo.identifier, @@ -1668,7 +1668,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 @@ -1787,7 +1787,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 979534c..27069fd 100644 --- a/org/output_xmls.org +++ b/org/output_xmls.org @@ -167,7 +167,7 @@ auto header_metadata(M)(  ) {    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" /> @@ -182,7 +182,7 @@ auto header_metadata(M)(  <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, @@ -222,9 +222,9 @@ auto site_info_button(M)(       _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; @@ -243,7 +243,7 @@ auto inline_search_form(M)(    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"> @@ -255,17 +255,17 @@ auto inline_search_form(M)(  <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; @@ -282,17 +282,17 @@ auto html_head(M)(  ) {  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" /> @@ -314,7 +314,7 @@ if (doc_matters.opt.action.workon) {      <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, @@ -340,27 +340,27 @@ if (doc_matters.opt.action.workon) {  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 @@ -383,7 +383,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) ? "" @@ -413,11 +413,11 @@ auto epub3_seg_head(M)(  #+BEGIN_SRC d  auto tail() {    string o; -  o = format(q"¶  </div> +  o = format(q"┋  </div>    <a name="bottom" id="bottom"></a>    <a name="end" id="end"></a>  </body> -</html>¶"); +</html>┋");    return o;  }  #+END_SRC @@ -678,10 +678,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, @@ -707,42 +707,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 @@ -750,19 +750,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,    ); @@ -805,13 +805,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, @@ -825,12 +825,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, @@ -904,12 +904,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, @@ -920,11 +920,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, @@ -992,12 +992,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, @@ -1005,11 +1005,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      ); @@ -1074,12 +1074,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, @@ -1087,11 +1087,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      ); @@ -1157,10 +1157,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, @@ -1168,9 +1168,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      ); @@ -1236,10 +1236,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, @@ -1247,9 +1247,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      ); @@ -1313,10 +1313,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, @@ -1324,9 +1324,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      ); @@ -1401,7 +1401,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"> @@ -1409,7 +1409,7 @@ auto table(O)(      </table>      %s    </p> -</div>¶", +</div>┋",      obj.metainfo.object_number,      obj.metainfo.object_number,      obj.metainfo.is_a, @@ -2115,7 +2115,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 @@ -2128,13 +2128,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 @@ -2152,7 +2152,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" @@ -2179,7 +2179,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), @@ -2204,8 +2204,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, @@ -2348,7 +2348,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, @@ -2367,7 +2367,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 @@ -2390,12 +2390,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, @@ -2404,12 +2404,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, @@ -2423,8 +2423,8 @@ string epub2_oebps_toc_ncx(D,I)(D doc_abstraction, I doc_matters) {        }      }    } -  toc ~= format(q"¶  </navMap> -</ncx>¶"); +  toc ~= format(q"┋  </navMap> +</ncx>┋");    return toc;  }  #+END_SRC @@ -2729,40 +2729,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,  | 
