aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/doc_reform
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2019-07-11 10:46:08 -0400
committerRalph Amissah <ralph.amissah@gmail.com>2019-10-17 19:07:20 -0400
commite6bae1ca42533a1736dfd1a7c8c68a8a80047e09 (patch)
treec533555d77e87b64d986e6f717bdc5f4070e6f0a /src/doc_reform
parentxmls, special footnotes (diff)
html scroll toc backmatter (url/link) fix
Diffstat (limited to 'src/doc_reform')
-rw-r--r--src/doc_reform/meta/metadoc_from_src.d5
-rw-r--r--src/doc_reform/meta/rgx.d1
-rw-r--r--src/doc_reform/output/rgx.d1
-rw-r--r--src/doc_reform/output/xmls.d3
4 files changed, 10 insertions, 0 deletions
diff --git a/src/doc_reform/meta/metadoc_from_src.d b/src/doc_reform/meta/metadoc_from_src.d
index 1bfd183..944189e 100644
--- a/src/doc_reform/meta/metadoc_from_src.d
+++ b/src/doc_reform/meta/metadoc_from_src.d
@@ -572,6 +572,7 @@ template DocReformDocAbstraction() {
comp_obj_heading_.tags.segment_anchor_tag_epub = "_part_glossary";
comp_obj_heading_.tags.anchor_tag_html = comp_obj_heading_.tags.segment_anchor_tag_epub;
comp_obj_heading_.tags.in_segment_html = "glossary";
+ comp_obj_heading_.tags.anchor_tags = ["section_glossary"];
comp_obj_heading_.metainfo.heading_lev_markup = 1;
comp_obj_heading_.metainfo.heading_lev_collapsed = 1;
comp_obj_heading_.metainfo.parent_ocn = 1;
@@ -701,6 +702,7 @@ template DocReformDocAbstraction() {
comp_obj_heading_.tags.segment_anchor_tag_epub = "_part_blurb";
comp_obj_heading_.tags.anchor_tag_html = comp_obj_heading_.tags.segment_anchor_tag_epub;
comp_obj_heading_.tags.in_segment_html = "blurb";
+ comp_obj_heading_.tags.anchor_tags = ["section_blurb"];
comp_obj_heading_.metainfo.heading_lev_markup = 1;
comp_obj_heading_.metainfo.heading_lev_collapsed = 1;
comp_obj_heading_.metainfo.parent_ocn = 1;
@@ -1240,6 +1242,7 @@ template DocReformDocAbstraction() {
comp_obj_heading_.tags.segment_anchor_tag_epub = "_part_bibliography";
comp_obj_heading_.tags.anchor_tag_html = comp_obj_heading_.tags.segment_anchor_tag_epub;
comp_obj_heading_.tags.in_segment_html = "bibliography";
+ comp_obj_heading_.tags.anchor_tags = ["section_bibliography"];
comp_obj_heading_.metainfo.heading_lev_markup = 1;
comp_obj_heading_.metainfo.heading_lev_collapsed = 1;
comp_obj_heading_.metainfo.parent_ocn = 1;
@@ -5253,6 +5256,7 @@ template DocReformDocAbstraction() {
comp_obj_heading_.tags.segment_anchor_tag_epub = "_part_book_index";
comp_obj_heading_.tags.anchor_tag_html = comp_obj_heading_.tags.segment_anchor_tag_epub;
comp_obj_heading_.tags.in_segment_html = "bookindex";
+ comp_obj_heading_.tags.anchor_tags = ["section_bookindex"];
comp_obj_heading_.metainfo.heading_lev_markup = 1;
comp_obj_heading_.metainfo.heading_lev_collapsed = 1;
comp_obj_heading_.metainfo.parent_ocn = 1;
@@ -5493,6 +5497,7 @@ template DocReformDocAbstraction() {
comp_obj_heading_.tags.segment_anchor_tag_epub = "_part_endnotes";
comp_obj_heading_.tags.anchor_tag_html = comp_obj_heading_.tags.segment_anchor_tag_epub;
comp_obj_heading_.tags.in_segment_html = "endnotes";
+ comp_obj_heading_.tags.anchor_tags = ["section_endnotes"];
comp_obj_heading_.metainfo.heading_lev_markup = 1;
comp_obj_heading_.metainfo.heading_lev_collapsed = 1;
comp_obj_heading_.metainfo.parent_ocn = 1;
diff --git a/src/doc_reform/meta/rgx.d b/src/doc_reform/meta/rgx.d
index ddaf3f9..50665e1 100644
--- a/src/doc_reform/meta/rgx.d
+++ b/src/doc_reform/meta/rgx.d
@@ -276,6 +276,7 @@ static template DocReformRgxInit() {
static inline_link_stow_uri = ctRegex!(`┥(?P<text>.+?)┝┤(?P<link>[^ 0-9#┥┝┤├][^ 0-9┥┝┤├]+)├`, "mg"); // will not stow (stowed links) or object number internal links
static inline_link_hash = ctRegex!(`┥(?P<text>.+?)┝┤(?P<link>#(?P<segname>\S+?))├`, "mg");
static inline_link_clean = ctRegex!(`┤(?:.+?)├|[┥┝]`, "mg");
+ static inline_link_toc_to_backmatter = ctRegex!(`┤#(?P<link>endnotes|bibliography|bookindex|glossary|blurb)├`, "mg");
static inline_a_url = ctRegex!(`(┤)([^\s┥┝┤├]+)(├)`, "mg");
static url = ctRegex!(`https?://`, "mg");
static uri = ctRegex!(`(?:https?|git)://`, "mg");
diff --git a/src/doc_reform/output/rgx.d b/src/doc_reform/output/rgx.d
index 86cd48b..c7896ac 100644
--- a/src/doc_reform/output/rgx.d
+++ b/src/doc_reform/output/rgx.d
@@ -80,6 +80,7 @@ static template DocReformOutputRgxInit() {
static inline_link_stow_uri = ctRegex!(`┥(?P<text>.+?)┝┤(?P<link>[^ 0-9#┥┝┤├][^ 0-9┥┝┤├]+)├`, "mg"); // will not stow (stowed links) or object number internal links
static inline_link_hash = ctRegex!(`┥(?P<text>.+?)┝┤(?P<link>#(?P<segname>\S+?))├`, "mg");
static inline_link_clean = ctRegex!(`┤(?:.+?)├|[┥┝]`, "mg");
+ static inline_link_toc_to_backmatter = ctRegex!(`┤#(?P<link>endnotes|bibliography|bookindex|glossary|blurb)├`, "mg");
static inline_a_url = ctRegex!(`(┤)([^\s┥┝┤├]+)(├)`, "mg");
static url = ctRegex!(`https?://`, "mg");
static uri = ctRegex!(`(?:https?|git)://`, "mg");
diff --git a/src/doc_reform/output/xmls.d b/src/doc_reform/output/xmls.d
index 3bf20cc..164613b 100644
--- a/src/doc_reform/output/xmls.d
+++ b/src/doc_reform/output/xmls.d
@@ -816,6 +816,9 @@ template outputXHTMLs() {
M doc_matters,
string _suffix = ".html",
) {
+ if (obj.metainfo.is_a == "toc" && _txt.match(rgx.inline_link_toc_to_backmatter)) {
+ _txt = _txt.replaceAll(rgx.inline_link_toc_to_backmatter, "┤#section_$1├");
+ }
_txt = inline_markup_scroll(_txt, obj, doc_matters, _suffix);
string o = para(_txt, obj, doc_matters);
return o;