aboutsummaryrefslogtreecommitdiffhomepage
path: root/org
diff options
context:
space:
mode:
Diffstat (limited to 'org')
-rw-r--r--org/ao_defaults.org7
-rw-r--r--org/ao_doc_abstraction.org12
-rw-r--r--org/sdp.org8
3 files changed, 25 insertions, 2 deletions
diff --git a/org/ao_defaults.org b/org/ao_defaults.org
index b2604ac..a798763 100644
--- a/org/ao_defaults.org
+++ b/org/ao_defaults.org
@@ -1003,6 +1003,13 @@ static inline_link_endnote_url_helper = ctRegex!(`\{~\^\s+(.+?)
static inline_a_url = ctRegex!(`(┤)(\S+?)(├)`, "mg");
#+END_SRC
+** images :images:
+
+#+name: ao_rgx
+#+BEGIN_SRC d
+static image = ctRegex!(`([a-zA-Z._-]+?\.(?:png|gif|jpg))`, "mg");
+#+END_SRC
+
** inline markup book index :inline:bookindex:
#+name: ao_rgx
diff --git a/org/ao_doc_abstraction.org b/org/ao_doc_abstraction.org
index 6911b63..33ebea3 100644
--- a/org/ao_doc_abstraction.org
+++ b/org/ao_doc_abstraction.org
@@ -1667,6 +1667,14 @@ next are not yet known for backmatter during the second pass
#+name: abs_post
#+BEGIN_SRC d
+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) {
@@ -1754,9 +1762,12 @@ if (the_document_body_section.length > 1) {
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;
@@ -2033,6 +2044,7 @@ auto t = tuple(
document_the,
document_section_keys_sequenced,
html_segnames,
+ images,
);
return t;
#+END_SRC
diff --git a/org/sdp.org b/org/sdp.org
index cafb5d9..9cb677b 100644
--- a/org/sdp.org
+++ b/org/sdp.org
@@ -501,10 +501,11 @@ auto da = SiSUdocAbstraction!()(
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];
#+END_SRC
** 4. _document matters_ (compiled from various sources)
@@ -540,6 +541,10 @@ struct DocumentMatters {
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;
@@ -548,7 +553,6 @@ struct DocumentMatters {
auto _k = env;
return _k;
}
- /+ add a list of images +/
}
auto doc_matters = DocumentMatters();
#+END_SRC