From f6d28b62f0e02b8a88a1832589e203c7a613f45b Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Fri, 25 Nov 2022 22:06:40 -0500 Subject: regex review, match speed & compile time, ctregex - improve match time - add interim fontface identifier marker - improve compile time - remove unused regexs - separate out some specialized output matches --- src/doc_reform/io_out/sqlite.d | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) (limited to 'src/doc_reform/io_out/sqlite.d') diff --git a/src/doc_reform/io_out/sqlite.d b/src/doc_reform/io_out/sqlite.d index a546998..33c25fe 100644 --- a/src/doc_reform/io_out/sqlite.d +++ b/src/doc_reform/io_out/sqlite.d @@ -49,7 +49,10 @@ +/ module doc_reform.io_out.sqlite; -import doc_reform.io_out; +import + doc_reform.io_out, + doc_reform.io_out.rgx, + doc_reform.io_out.rgx_xhtml; import std.file, std.uri; @@ -57,8 +60,10 @@ import std.conv : to; import std.typecons : Nullable; import d2sqlite3; mixin spineRgxOut; +mixin spineRgxXHTML; mixin InternalMarkup; static auto rgx = RgxO(); +static auto rgx_xhtml = RgxXHTML(); static auto mkup = InlineMarkup(); long _metadata_tid_lastrowid; template SQLiteHubBuildTablesAndPopulate() { @@ -193,6 +198,7 @@ template SQLiteFormatAndLoadObject() { M doc_matters, ) { mixin spineRgxOut; + mixin spineRgxXHTML; struct sqlite_format_and_load_objects { string generic_munge_sanitize_text_for_search( string _txt, @@ -235,15 +241,15 @@ template SQLiteFormatAndLoadObject() { ) { string _html_special_characters(string _txt){ _txt = _txt - .replaceAll(rgx.xhtml_ampersand, "&") - .replaceAll(rgx.xhtml_quotation, """) - .replaceAll(rgx.xhtml_less_than, "<") - .replaceAll(rgx.xhtml_greater_than, ">") + .replaceAll(rgx_xhtml.ampersand, "&") + .replaceAll(rgx_xhtml.quotation, """) + .replaceAll(rgx_xhtml.less_than, "<") + .replaceAll(rgx_xhtml.greater_than, ">") .replaceAll(rgx.nbsp_char, " ") .replaceAll(rgx.br_line_inline, "
") .replaceAll(rgx.br_line, "
") .replaceAll(rgx.br_line_spaced, "

") - .replaceAll(rgx.xhtml_line_break, "
"); + .replaceAll(rgx_xhtml.line_break, "
"); return _txt; } string _html_font_face(string _txt){ @@ -272,23 +278,23 @@ template SQLiteFormatAndLoadObject() { } string html_special_characters(string _txt){ _txt = _txt - .replaceAll(rgx.xhtml_ampersand, "&") - .replaceAll(rgx.xhtml_quotation, """) - .replaceAll(rgx.xhtml_less_than, "<") - .replaceAll(rgx.xhtml_greater_than, ">") + .replaceAll(rgx_xhtml.ampersand, "&") + .replaceAll(rgx_xhtml.quotation, """) + .replaceAll(rgx_xhtml.less_than, "<") + .replaceAll(rgx_xhtml.greater_than, ">") .replaceAll(rgx.nbsp_char, " ") .replaceAll(rgx.br_line_inline, "
") .replaceAll(rgx.br_line, "
") .replaceAll(rgx.br_line_spaced, "

") - .replaceAll(rgx.xhtml_line_break, "
"); + .replaceAll(rgx_xhtml.line_break, "
"); return _txt; } string html_special_characters_code(string _txt){ _txt = _txt - .replaceAll(rgx.xhtml_ampersand, "&") - .replaceAll(rgx.xhtml_quotation, """) - .replaceAll(rgx.xhtml_less_than, "<") - .replaceAll(rgx.xhtml_greater_than, ">") + .replaceAll(rgx_xhtml.ampersand, "&") + .replaceAll(rgx_xhtml.quotation, """) + .replaceAll(rgx_xhtml.less_than, "<") + .replaceAll(rgx_xhtml.greater_than, ">") .replaceAll(rgx.nbsp_char, " "); return _txt; } @@ -314,6 +320,7 @@ template SQLiteFormatAndLoadObject() { string _xml_type = "seg", ) { static auto rgx = RgxO(); + static auto rgx_xhtml = RgxXHTML(); if (obj.metainfo.is_a == "group") { _txt = (_txt) .replaceAll(rgx.grouped_para_indent_1, @@ -1614,7 +1621,7 @@ template SQLiteTablesCreate() { : ""; if (db_filename.length > 0 && db_path.length > 0) { if ((opt_action.vox_gt1)) { - writeln("db name & path: ", db_path, db_filename); + writeln("db name & path: ", db_path, "/", db_filename); } auto pth_sqlite = spinePathsSQLite!()(db_filename, db_path); pth_sqlite.base.mkdirRecurse; -- cgit v1.2.3