module doc_reform.meta.conf_make_meta_structs; import std.exception, std.json, std.path, std.regex, std.stdio, std.string, std.typecons, std.utf, std.conv : to; import doc_reform.meta.defaults, doc_reform.meta.rgx; mixin spineRgxIn; static auto rgx = RgxI(); mixin InternalMarkup; static auto mkup = InlineMarkup(); @safe string url_markup(string line) { string line_ = line .replaceAll( rgx.smid_inline_link_markup_regular, ("$1" ~ mkup.lnk_o ~ "$2" ~ mkup.lnk_c ~ mkup.url_o ~ "$3" ~ mkup.url_c ) // ("$1{ $2 }$3$4") ) .replaceAll( rgx.smid_inline_link_naked_url, ("$1" ~ mkup.lnk_o ~ "$2" ~ mkup.lnk_c ~ mkup.url_o ~ "$2" ~ mkup.url_c ) // ("$1{ $2 }$2$3") ) .replaceAll( rgx.arr_delimiter, mkup.br_line ); return line_; } struct ConfCompositeMakeStr { string bold; string breaks; string cover_image; string css; string emphasis; string[] footer; string[] headings; string[] home_button_image; string home_button_text = "┥Spine, Doc Reform┝┤http://www.doc-reform.org├" ~ " ┥www.doc-reform.org┝┤http://www.doc-reform.org├" ~ " ┥sources / git┝┤https://git.doc-reform.org/software/spine├"; string italics; string auto_num_top_at_level; int auto_num_top_lv = 9; int auto_num_depth = 2; string[][] substitute; string texpdf_font; } struct confCompositeMakeBuild { string[] bold(string _mk) { string[] _out; if (_mk) { _out = [ (cast(string) (`(` ~ _mk.dup ~ `)`)), "*{$1}*", "$1"]; } return _out; } string breaks(string _mk) { return _mk; } string cover_image(string _mk) { return _mk; } string css(string _mk) { return _mk; } string[] emphasis(string _mk) { string[] _out; if (_mk) { _out = [ (cast(string) (`(` ~ _mk.dup ~ `)`)), "!{$1}!", "$1" ]; } return _out; } string[] footer(string[] _mk) { string line_; string[] _mk2; foreach (line; _mk) { _mk2 ~= url_markup(line); } return _mk2; } string[] headings(string[] _mk) { return _mk; } string[] home_button_image(string[] _mk) { return _mk; } string home_button_text(string _mk) { return url_markup(_mk); } string[] italics(string _mk) { string[] _out; if (_mk) { _out = [ (cast(string) (`(` ~ _mk.dup ~ `)`)), "/{$1}/", "$1" ]; } return _out; } string auto_num_top_at_level(string _mk) { return _mk; } int auto_num_top_lv(int _mk) { return _mk; } int auto_num_depth(int _mk) { return _mk; } string[][] substitute(string[][] _mk) { return _mk; } string texpdf_font(string _mk) { return _mk; } } struct ConfCompositeMakeInit { string[] bold; string breaks; string cover_image; string css; string[] emphasis; string[] footer; string[] headings; string[] home_button_image; string home_button_text = "┥Spine, Doc Reform┝┤http://www.doc-reform.org├" ~ " ┥www.doc-reform.org┝┤http://www.doc-reform.org├" ~ " ┥sources / git┝┤https://git.doc-reform.org/software/spine├"; string[] italics; string auto_num_top_at_level; int auto_num_top_lv = 9; int auto_num_depth = 2; string[][] substitute; string texpdf_font; } struct ConfCompositeSiteLocal { string w_srv_http; string w_srv_domain; string w_srv_data_http; // if not set same as webserv_http string w_srv_data_domain; // if not set same as webserv_domain string w_srv_data_root_part; string w_srv_data_root_url; string w_srv_data_root_url_html; string w_srv_data_root_path; string w_srv_images_root_part; // string w_srv_url_doc_path; string w_srv_cgi_title; string w_srv_cgi_http; // if not set same as webserv_http string w_srv_cgi_domain; // if not set same as webserv_domain string w_srv_cgi_bin_part; string w_srv_cgi_bin_path; string w_srv_cgi_search_title; string w_srv_cgi_search_script; string w_srv_cgi_search_script_raw_fn_d; string w_srv_cgi_port; string w_srv_cgi_user; string w_srv_cgi_action; string w_srv_cgi_bin_url; string w_srv_db_sqlite; // string w_srv_db_pg; string w_srv_db_pg_table; string w_srv_db_pg_user; // string webserv_cgi_file_links; string output_path; string processing_path; string processing_dir; string processing_concord_max; string flag_act0; string flag_act1; string flag_act2; string flag_act3; string flag_act4; string flag_act5; string flag_act6; string flag_act7; string flag_act8; string flag_act9; string[] set_papersize; string set_text_wrap; string set_emphasis; string set_language; string set_digest; string permission_share_source; string search_flag; string search_action; string search_db; string search_title; } struct MetaComposite { string classify_dewey; string classify_keywords; string classify_loc; string classify_subject; string classify_topic_register; string[] classify_topic_register_arr; string[] creator_author_arr; string creator_author; string creator_author_surname_fn; string creator_author_surname; string creator_author_email; string creator_illustrator; string creator_translator; string date_added_to_site; string date_available; string date_created; string date_issued; string date_modified; string date_published; string date_valid; string identifier_isbn; string identifier_oclc; string identifier_pg; string language_document; string language_document_char; string links; string notes_abstract; string notes_description; string notes_summary; string original_language; string original_language_char; string original_publisher; string original_source; string original_title; string publisher; string rights_copyright; string rights_copyright_audio; string rights_copyright_cover; string rights_copyright_illustrations; string rights_copyright_photographs; string rights_copyright_text; string rights_copyright_translation; string rights_copyright_video; string rights_license; string title_edition; string title_full; string title_language; string title_main; string title_note; string title_short; string title_sub; string title_subtitle; } struct ConfComposite { MetaComposite meta; ConfCompositeMakeInit make; ConfCompositeMakeStr make_str; ConfCompositeSiteLocal conf; } JSONValue config_jsonstr = `{ }`;