aboutsummaryrefslogtreecommitdiffhomepage
path: root/org/meta_conf_make_meta.org
diff options
context:
space:
mode:
Diffstat (limited to 'org/meta_conf_make_meta.org')
-rw-r--r--org/meta_conf_make_meta.org56
1 files changed, 55 insertions, 1 deletions
diff --git a/org/meta_conf_make_meta.org b/org/meta_conf_make_meta.org
index 1ac99e2..5dd581e 100644
--- a/org/meta_conf_make_meta.org
+++ b/org/meta_conf_make_meta.org
@@ -462,7 +462,10 @@ struct MetaComposite {
string classify_loc;
string classify_subject;
string classify_topic_register;
+ string classify_topic_register_json; // experimental use in sqlite topics table
string[] classify_topic_register_arr;
+ string[] classify_topic_register_json_arr; // experimental use in sqlite topics table
+ string[] classify_topic_register_expanded_arr; // experimental use in sqlite topics table
string[] creator_author_arr;
string creator_author;
string creator_author_surname_fn;
@@ -1473,6 +1476,42 @@ if ("classify" in _yaml
&& _yaml["classify"]["topic_register"].tag.match(rgx.yaml_tag_is_str)
) {
_struct_composite.meta.classify_topic_register = _yaml["classify"]["topic_register"].get!string;
+ if (_struct_composite.meta.classify_topic_register.length > 0) {
+ auto wrds = ctRegex!(`([\wa-zA-Z(). -]+)`); // ctRegex!(`([(]?\w+[a-zA-Z(). -]*)+`);
+ auto mkp_delim = ctRegex!(`:([^:]+?)(;|$)`);
+ string _topic_register = _struct_composite.meta.classify_topic_register;
+ _topic_register = _topic_register
+ .replaceAll(wrds, "\"$1\"")
+ .replaceAll(mkp_delim, ":$1$2");
+ string[] _topics_json_arr;
+ //+
+ foreach (_topic; _topic_register.split(";")) {
+ while (_topic.match(":")) {
+ foreach (m; _topic.match(":")) {
+ _topic = m.pre ~ " ☼ [ " ~ m.post ~ " ] ";
+ }
+ }
+ _topics_json_arr ~= (" ") ~ (_topic
+ .split("☼").join(":")
+ .split("|").join(", "));
+ }
+ // +/
+ /+
+ foreach (_topic; _topic_register.split(";")) {
+ while (_topic.match(":")) {
+ foreach (m; _topic.match(":")) {
+ _topic = m.pre ~ " ☼ { " ~ m.post ~ " } ";
+ }
+ }
+ _topics_json_arr ~= (" { ") ~ (_topic
+ .split("☼").join(":")
+ .split("|").join(", "))
+ ~ " }";
+ }
+ +/
+ _struct_composite.meta.classify_topic_register_json_arr = _topics_json_arr;
+ _struct_composite.meta.classify_topic_register_json = "{\n" ~ _topics_json_arr.join(",\n") ~ "\n}";
+ }
string[] main_topics_ = _struct_composite.meta.classify_topic_register.strip.split(rgx.topic_register_main_terms_split);
string[] topics;
string topics_tmp;
@@ -1488,8 +1527,23 @@ if ("classify" in _yaml
topics ~= topics_tmp;
}
}
- // writeln("--> ", topics);
_struct_composite.meta.classify_topic_register_arr = topics;
+ string[] topics_expanded;
+ if (_struct_composite.meta.classify_topic_register_arr.length > 0) {
+ foreach (i, topic; _struct_composite.meta.classify_topic_register_arr) {
+ string[] subject_tree = topic.split(mkup.sep);
+ if (topic.length > 0) {
+ topics_expanded ~= subject_tree.join(", ");
+ }
+ }
+ }
+ _struct_composite.meta.classify_topic_register_expanded_arr = topics_expanded;
+ // writeln("\n------\n", _struct_composite.meta.title_full);
+ // writeln(_struct_composite.meta.classify_topic_register);
+ // writeln(_struct_composite.meta.classify_topic_register_json_arr);
+ // writeln(_struct_composite.meta.classify_topic_register_json);
+ // writeln(_struct_composite.meta.classify_topic_register_expanded_arr.sort.join("\n"));
+ // writeln(_struct_composite.meta.classify_topic_register_arr);
}
}
}