aboutsummaryrefslogtreecommitdiffhomepage
path: root/org/meta_abstraction.org
diff options
context:
space:
mode:
Diffstat (limited to 'org/meta_abstraction.org')
-rw-r--r--org/meta_abstraction.org67
1 files changed, 41 insertions, 26 deletions
diff --git a/org/meta_abstraction.org b/org/meta_abstraction.org
index b8ab4e6..0e379c7 100644
--- a/org/meta_abstraction.org
+++ b/org/meta_abstraction.org
@@ -4704,7 +4704,7 @@ pure struct OCNemitter {
static struct ObjInlineMarkupMunge {
string[string] obj_txt;
int n_foot, n_foot_reg, n_foot_sp_asterisk, n_foot_sp_plus;
- string asterisks_;
+ string asterisks_, plus_;
string obj_txt_out, tail, note;
static auto rgx = Rgx();
static auto mkup = InlineMarkup();
@@ -4728,6 +4728,7 @@ static struct ObjInlineMarkupMunge {
static auto mng = InlineMarkup();
obj_txt_in = obj_txt_in.replaceAll(rgx.inline_mono, (mng.mono ~ "{$1}" ~ mng.mono));
/+ url matched +/
+ obj_txt_in = obj_txt_in.replaceAll(rgx.inline_notes_al_special, ""); // TODO reinstate when special footnotes are implemented
if (obj_txt_in.match(rgx.inline_url_generic)) {
/+ link: naked url: http://url +/
if (obj_txt_in.match(rgx.inline_link_naked_url)) {
@@ -4745,22 +4746,23 @@ static struct ObjInlineMarkupMunge {
{ link which includes url as footnote }http://url~{ { http://url }http://url }~
+/
if (obj_txt_in.match(rgx.inline_link_endnote_url_helper)) {
- obj_txt_in = (obj_txt_in).replaceAll(
- rgx.inline_link_endnote_url_helper_punctuated,
- (mkup.lnk_o ~ "$1" ~ mkup.lnk_c
- ~ mkup.url_o ~ "$2" ~ mkup.url_c
- ~ "~{ " ~ mkup.lnk_o ~ " $2 " ~ mkup.lnk_c
- ~ mkup.url_o ~ "$2" ~ mkup.url_c
- ~ " }~$3") // ("{ $1 }$2~{ { $2 }$2 }~$3")
- );
- obj_txt_in = (obj_txt_in).replaceAll(
- rgx.inline_link_endnote_url_helper,
- (mkup.lnk_o ~ "$1" ~ mkup.lnk_c
- ~ mkup.url_o ~ "$2" ~ mkup.url_c
- ~ "~{ " ~ mkup.lnk_o ~ " $2 " ~ mkup.lnk_c
- ~ mkup.url_o ~ "$2" ~ mkup.url_c
- ~ " }~") // ("{ $1 }$2~{ { $2 }$2 }~")
- );
+ obj_txt_in = (obj_txt_in)
+ .replaceAll(
+ rgx.inline_link_endnote_url_helper_punctuated,
+ (mkup.lnk_o ~ "$1" ~ mkup.lnk_c
+ ~ mkup.url_o ~ "$2" ~ mkup.url_c
+ ~ "~{ " ~ mkup.lnk_o ~ " $2 " ~ mkup.lnk_c
+ ~ mkup.url_o ~ "$2" ~ mkup.url_c
+ ~ " }~$3") // ("{ $1 }$2~{ { $2 }$2 }~$3")
+ )
+ .replaceAll(
+ rgx.inline_link_endnote_url_helper,
+ (mkup.lnk_o ~ "$1" ~ mkup.lnk_c
+ ~ mkup.url_o ~ "$2" ~ mkup.url_c
+ ~ "~{ " ~ mkup.lnk_o ~ " $2 " ~ mkup.lnk_c
+ ~ mkup.url_o ~ "$2" ~ mkup.url_c
+ ~ " }~") // ("{ $1 }$2~{ { $2 }$2 }~")
+ );
}
/+ link with regular markup:
{ linked text or image }http://url
@@ -4791,6 +4793,7 @@ static struct ObjInlineMarkupMunge {
/+ endnotes (regular) +/
bool flg_notes_reg = false;
bool flg_notes_star = false;
+ bool flg_notes_plus = false;
obj_txt_in = (obj_txt_in).replaceAll(
rgx.inline_notes_curly,
(mkup.en_a_o ~ " $1" ~ mkup.en_a_c)
@@ -4817,6 +4820,15 @@ static struct ObjInlineMarkupMunge {
rgx.inline_al_delimiter_open_symbol_star,
(mkup.en_a_o ~ replicate(asterisks_, n_foot_sp_asterisk) ~ " ")
) ~ "\n";
+ } else if (n.hit.to!string.match(rgx.inline_al_delimiter_open_symbol_plus)) {
+ flg_notes_plus = true;
+ ++n_foot_sp_plus;
+ plus_ = "*";
+ n_foot=n_foot_sp_plus;
+ obj_txt_out ~= n.hit.to!string.replaceFirst(
+ rgx.inline_al_delimiter_open_symbol_plus,
+ (mkup.en_a_o ~ replicate(plus_, n_foot_sp_plus) ~ " ")
+ ) ~ "\n";
} else if (n.hit.to!string.match(rgx.inline_al_delimiter_open_regular)) {
flg_notes_reg = true;
++n_foot_reg;
@@ -4837,6 +4849,7 @@ static struct ObjInlineMarkupMunge {
obj_txt_out,
flg_notes_reg,
flg_notes_star,
+ flg_notes_plus,
);
return t;
}
@@ -4888,6 +4901,7 @@ static struct ObjInlineMarkupMunge {
obj_txt_out,
ftn[1],
ftn[2],
+ ftn[3],
urls,
);
return t;
@@ -5208,7 +5222,8 @@ static struct ObjInlineMarkup {
obj_txt["munge"] = x[0];
obj_notes_and_links["notes_reg"] = x[1];
obj_notes_and_links["notes_star"] = x[2];
- obj_notes_and_links["links"] = x[3];
+ obj_notes_and_links["notes_plus"] = x[3];
+ obj_notes_and_links["links"] = x[4];
break;
}
auto t = tuple(
@@ -5443,7 +5458,7 @@ private:
heading_num[3] = 0;
heading_number_auto_composite = "";
}
- /+ num_depth minimum 0
+ /+ auto_num_depth minimum 0
(1.) default 2 (1.1.1) max 3 (1.1.1.1) implement +/
if (
conf_make_meta.make.auto_num_top_lv
@@ -5481,7 +5496,7 @@ private:
}
if (heading_num[3] > 0) {
heading_number_auto_composite
- = (conf_make_meta.make.num_depth.to!uint == 3)
+ = (conf_make_meta.make.auto_num_depth.to!uint == 3)
? ( heading_num[0].to!string ~ "."
~ heading_num[1].to!string ~ "."
~ heading_num[2].to!string ~ "."
@@ -5490,8 +5505,8 @@ private:
: "";
} else if (heading_num[2] > 0) {
heading_number_auto_composite
- = ((conf_make_meta.make.num_depth.to!uint >= 2)
- && (conf_make_meta.make.num_depth.to!uint <= 3))
+ = ((conf_make_meta.make.auto_num_depth.to!uint >= 2)
+ && (conf_make_meta.make.auto_num_depth.to!uint <= 3))
? ( heading_num[0].to!string ~ "."
~ heading_num[1].to!string ~ "."
~ heading_num[2].to!string
@@ -5499,16 +5514,16 @@ private:
: "";
} else if (heading_num[1] > 0) {
heading_number_auto_composite
- = ((conf_make_meta.make.num_depth.to!uint >= 1)
- && (conf_make_meta.make.num_depth.to!uint <= 3))
+ = ((conf_make_meta.make.auto_num_depth.to!uint >= 1)
+ && (conf_make_meta.make.auto_num_depth.to!uint <= 3))
? ( heading_num[0].to!string ~ "."
~ heading_num[1].to!string
)
: "";
} else if (heading_num[0] > 0) {
heading_number_auto_composite
- = ((conf_make_meta.make.num_depth.to!uint >= 0)
- && (conf_make_meta.make.num_depth.to!uint <= 3))
+ = ((conf_make_meta.make.auto_num_depth.to!uint >= 0)
+ && (conf_make_meta.make.auto_num_depth.to!uint <= 3))
? (heading_num[0].to!string)
: "";
} else {