aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2017-02-03 15:42:31 -0500
committerRalph Amissah <ralph@amissah.com>2019-04-10 15:14:14 -0400
commit4bf61c31fac50313753246e76993739fff3bfa14 (patch)
tree93b0073fc5ebedd4727b20c86479988e5239a3b3 /src
parentao_doc_abstraction.org (moved/renamed ao_abstract_doc_source.org) (diff)
doc_matters, add image list
Diffstat (limited to 'src')
-rw-r--r--src/sdp/abstraction.d8
-rw-r--r--src/sdp/ao_abstract_doc_source.d72
-rw-r--r--src/sdp/ao_rgx.d1
3 files changed, 59 insertions, 22 deletions
diff --git a/src/sdp/abstraction.d b/src/sdp/abstraction.d
index c799fb7..d358f33 100644
--- a/src/sdp/abstraction.d
+++ b/src/sdp/abstraction.d
@@ -70,10 +70,11 @@ template SiSUabstraction() {
opts
);
static assert(!isTypeTuple!(da));
- static assert(da.length==3);
+ static assert(da.length==4);
auto doc_abstraction = da[0]; // head ~ toc ~ contents ~ endnotes_seg ~ glossary ~ bibliography ~ bookindex ~blurb;
string[][string] _document_section_keys_sequenced = da[1];
string[] _doc_html_segnames = da[2];
+ auto _images = da[3];
struct DocumentMatters {
string[] keys_seq_seg() {
string[] _k = _document_section_keys_sequenced["seg"];
@@ -103,6 +104,10 @@ template SiSUabstraction() {
string[] _k = _0_header_1_body_content_2_insert_filelist_tuple[2];
return _k;
}
+ auto image_list() {
+ auto _k = _images;
+ return _k;
+ }
auto opt_action_bool() {
bool[string] _k = opts;
return _k;
@@ -111,7 +116,6 @@ template SiSUabstraction() {
auto _k = env;
return _k;
}
- /+ add a list of images +/
}
auto doc_matters = DocumentMatters();
auto t = tuple(doc_abstraction, doc_matters);
diff --git a/src/sdp/ao_abstract_doc_source.d b/src/sdp/ao_abstract_doc_source.d
index cd1c266..12bbd71 100644
--- a/src/sdp/ao_abstract_doc_source.d
+++ b/src/sdp/ao_abstract_doc_source.d
@@ -1211,6 +1211,14 @@ template SiSUdocAbstraction() {
}
html_segnames_ptr_cntr++;
}
+ string[] _images;
+ auto extract_images(S)(S content_block) {
+ string[] images_;
+ if (auto m = matchAll(content_block, rgx.image)) {
+ images_ ~= m.captures[1];
+ }
+ return images_;
+ }
foreach (ref obj; the_document_head_section) {
if (obj.is_a == "heading") {
debug(dom) {
@@ -1220,8 +1228,10 @@ template SiSUdocAbstraction() {
|| (opt_action_bool["html_scroll"])
|| (opt_action_bool["html_seg"])
|| (opt_action_bool["epub"])) {
- obj.dom_markedup = dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed = dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ obj.dom_markedup =
+ dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
+ obj.dom_collapsed =
+ dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
}
heading_ancestors(obj, lv_ancestors);
}
@@ -1239,8 +1249,10 @@ template SiSUdocAbstraction() {
|| (opt_action_bool["html_scroll"])
|| (opt_action_bool["html_seg"])
|| (opt_action_bool["epub"])) {
- obj.dom_markedup = dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed = dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ obj.dom_markedup =
+ dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
+ obj.dom_collapsed =
+ dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
}
heading_ancestors(obj, lv_ancestors);
}
@@ -1260,8 +1272,10 @@ template SiSUdocAbstraction() {
|| (opt_action_bool["html_scroll"])
|| (opt_action_bool["html_seg"])
|| (opt_action_bool["epub"])) {
- obj.dom_markedup = dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed = dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ obj.dom_markedup =
+ dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
+ obj.dom_collapsed =
+ dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
}
heading_ancestors(obj, lv_ancestors);
}
@@ -1286,13 +1300,18 @@ template SiSUdocAbstraction() {
|| (opt_action_bool["html_scroll"])
|| (opt_action_bool["html_seg"])
|| (opt_action_bool["epub"])) {
- obj.dom_markedup = dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed = dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ obj.dom_markedup =
+ dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
+ obj.dom_collapsed =
+ dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
}
heading_ancestors(obj, lv_ancestors);
+ } else if (obj.is_a == "para") {
+ _images ~= extract_images(obj.text);
}
}
}
+ auto images=uniq(_images.sort());
/+ optional only one 1~ level +/
if (the_endnotes_section.length > 1) {
dom_markedup_buffer = dom_markedup.dup;
@@ -1315,8 +1334,10 @@ template SiSUdocAbstraction() {
|| (opt_action_bool["html_scroll"])
|| (opt_action_bool["html_seg"])
|| (opt_action_bool["epub"])) {
- obj.dom_markedup = dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed = dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ obj.dom_markedup =
+ dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
+ obj.dom_collapsed =
+ dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
}
heading_ancestors(obj, lv_ancestors);
}
@@ -1340,8 +1361,10 @@ template SiSUdocAbstraction() {
|| (opt_action_bool["html_scroll"])
|| (opt_action_bool["html_seg"])
|| (opt_action_bool["epub"])) {
- obj.dom_markedup = dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed = dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ obj.dom_markedup =
+ dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
+ obj.dom_collapsed =
+ dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
}
heading_ancestors(obj, lv_ancestors);
}
@@ -1365,8 +1388,10 @@ template SiSUdocAbstraction() {
|| (opt_action_bool["html_scroll"])
|| (opt_action_bool["html_seg"])
|| (opt_action_bool["epub"])) {
- obj.dom_markedup = dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed = dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ obj.dom_markedup =
+ dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
+ obj.dom_collapsed =
+ dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
}
heading_ancestors(obj, lv_ancestors);
}
@@ -1392,8 +1417,10 @@ template SiSUdocAbstraction() {
|| (opt_action_bool["html_scroll"])
|| (opt_action_bool["html_seg"])
|| (opt_action_bool["epub"])) {
- obj.dom_markedup = dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed = dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ obj.dom_markedup =
+ dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
+ obj.dom_collapsed =
+ dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
}
heading_ancestors(obj, lv_ancestors);
}
@@ -1416,8 +1443,10 @@ template SiSUdocAbstraction() {
|| (opt_action_bool["html_scroll"])
|| (opt_action_bool["html_seg"])
|| (opt_action_bool["epub"])) {
- obj.dom_markedup = dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed = dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ obj.dom_markedup =
+ dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
+ obj.dom_collapsed =
+ dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
}
heading_ancestors(obj, lv_ancestors);
}
@@ -1441,8 +1470,10 @@ template SiSUdocAbstraction() {
|| (opt_action_bool["html_scroll"])
|| (opt_action_bool["html_seg"])
|| (opt_action_bool["epub"])) {
- obj.dom_markedup = dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
- obj.dom_collapsed = dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
+ obj.dom_markedup =
+ dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;
+ obj.dom_collapsed =
+ dom_set_collapsed_tags(dom_collapsed, obj.heading_lev_collapsed).dup;
}
heading_ancestors(obj, lv_ancestors);
}
@@ -1525,6 +1556,7 @@ template SiSUdocAbstraction() {
document_the,
document_section_keys_sequenced,
html_segnames,
+ images,
);
return t;
/+ post loop markup document/text ↑ +/
diff --git a/src/sdp/ao_rgx.d b/src/sdp/ao_rgx.d
index f99e542..2d83d06 100644
--- a/src/sdp/ao_rgx.d
+++ b/src/sdp/ao_rgx.d
@@ -155,6 +155,7 @@ template SiSUrgxInit() {
static inline_link_endnote_url_helper_punctuated = ctRegex!(`\{~\^\s+(.+?)\}((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|#)\S+?)([.,;:?!]?(?:[ ]|$))`, "mg");
static inline_link_endnote_url_helper = ctRegex!(`\{~\^\s+(.+?)\}((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|#)\S+)`, "mg");
static inline_a_url = ctRegex!(`(┤)(\S+?)(├)`, "mg");
+ static image = ctRegex!(`([a-zA-Z._-]+?\.(?:png|gif|jpg))`, "mg");
/+ inline markup book index +/
static book_index = ctRegex!(`^=\{\s*(.+?)\}$`, "m");
static book_index_open = ctRegex!(`^=\{\s*([^}]+?)$`);