aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sdp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sdp')
-rw-r--r--src/sdp/meta/metadoc_from_src.d9
-rw-r--r--src/sdp/meta/rgx.d4
-rwxr-xr-xsrc/sdp/sdp.d7
3 files changed, 15 insertions, 5 deletions
diff --git a/src/sdp/meta/metadoc_from_src.d b/src/sdp/meta/metadoc_from_src.d
index 7c68e16..0de709e 100644
--- a/src/sdp/meta/metadoc_from_src.d
+++ b/src/sdp/meta/metadoc_from_src.d
@@ -843,7 +843,10 @@ template SiSUdocAbstraction() {
cnt3 = 1;
_new_doc = false;
}
- if (an_object["lev_markup_number"].to!int == 4 ) {
+ if (
+ an_object["lev_markup_number"].to!int == 4
+ && anchor_tags.length > 0
+ ) {
segment_anchor_tag_that_object_belongs_to = anchor_tags[0];
segment_anchor_tag_that_object_belongs_to_uri = anchor_tags[0] ~ ".fnSuffix";
anchor_tag_ = anchor_tags[0];
@@ -4948,6 +4951,10 @@ template SiSUdocAbstraction() {
munge_=(munge_).replaceFirst(
rgx.heading_marker_missing_tag,
"$1~" ~ m.captures[1].toLower ~ "_" ~ m.captures[2] ~ " ");
+ if (auto n = munge_.match(rgx.heading_anchor_tag_plus_colon)) {
+ auto tag_remunge_ = n.captures[2].replaceAll(rgx.heading_marker_tag_has_colon, "..");
+ munge_=(munge_).replaceFirst(rgx.heading_anchor_tag_plus_colon, n.captures[1] ~ tag_remunge_ ~ " ");
+ }
} else if (auto m = munge_.match(rgx.heading_extract_unnamed_anchor_tag)) {
munge_=(munge_).replaceFirst(
rgx.heading_marker_missing_tag,
diff --git a/src/sdp/meta/rgx.d b/src/sdp/meta/rgx.d
index 071d693..b64f7ba 100644
--- a/src/sdp/meta/rgx.d
+++ b/src/sdp/meta/rgx.d
@@ -72,9 +72,11 @@ static template SiSUrgxInit() {
static heading_marker = ctRegex!(`^:?([A-D1-4])[~]`);
static heading_anchor_tag = ctRegex!(`^:?[A-D1-4][~]([a-z0-9_.-]+) `,"i");
static heading_identify_anchor_tag = ctRegex!(`^:?[A-D1-4][~]\s+(?:(?:(?:chapter|article|section|clause)\s+[0-9.]+)|(?:[0-9]+))`,"i");
- static heading_extract_named_anchor_tag = ctRegex!(`^:?[A-D1-4][~]\s+(chapter|article|section|clause)\s+((?:[0-9]+.)*[0-9]+)(?:[.:;, ]|$)`,"i");
+ static heading_extract_named_anchor_tag = ctRegex!(`^:?[A-D1-4][~]\s+(chapter|article|section|clause)\s+((?:[0-9]+[.:])*[0-9]+)(?:[.:;, ]|$)`,"i");
static heading_extract_unnamed_anchor_tag = ctRegex!(`^:?[A-D1-4][~]\s+((?:[0-9]+.)*[0-9]+)(?:[.:;, ]|$)`);
static heading_marker_missing_tag = ctRegex!(`^:?([A-D1-4])[~] `);
+ static heading_anchor_tag_plus_colon = ctRegex!(`^:?([A-D1-4][~])([a-z0-9_.:-]+) `,"i");
+ static heading_marker_tag_has_colon = ctRegex!(`([:])`);
static heading_title = ctRegex!(`^:?[A-D1-4][~][a-z0-9_.-]*[?]?\s+(.+?)$`);
static heading_all = ctRegex!(`^:?([A-D1-4])[~]([a-z0-9_.-]*[?]?)\s+(.+?)$`);
static heading_backmatter = ctRegex!(`^:?1[~][!](glossary|bibliography|biblio|blurb)\s+`,"i");
diff --git a/src/sdp/sdp.d b/src/sdp/sdp.d
index 9d91d10..5a4c2f8 100755
--- a/src/sdp/sdp.d
+++ b/src/sdp/sdp.d
@@ -403,7 +403,7 @@ void main(string[] args) {
writeln("- step0 complete");
}
}
- if (_manifests.length > 1) { // _manifests[0] initialized dummy element
+ if (_manifests.length > 1) { // _manifests[0] initialized dummy element
foreach(manifest; parallel(_manifests[1..$])) {
if (!empty(manifest.src.filename)) {
scope(success) {
@@ -418,9 +418,10 @@ void main(string[] args) {
scope(failure) {
debug(checkdoc) {
stderr.writefln(
- "~ document run failure ~ (%s v%s)\n\t%s",
+ "~ document run failure ~ (%s v%s)\n\t%s\n%s",
__VENDOR__, __VERSION__,
- manifest.src.filename
+ manifest.src.filename,
+ "------------------------------------------------------------------",
);
}
}