From 42bfda8d0a3ea657c5f062a0f89db7e9924c7fff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stig-=C3=98rjan=20Smelror?= Date: Thu, 1 Feb 2024 13:19:21 +0100 Subject: [PATCH] _html: Let's see if Python does a better job --- qsgen2 | 121 ++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 77 insertions(+), 44 deletions(-) diff --git a/qsgen2 b/qsgen2 index 54dd76b..8109668 100755 --- a/qsgen2 +++ b/qsgen2 @@ -796,60 +796,93 @@ function _cleanup() { echo "${cleaned_content}" } -function _html() { +_html() { local content="${1}" local debug=false if ${debug}; then _msg debug "_html: Converting QStags in content"; fi - # Convert QStags to HTML using Perl, strictly matching the QStags list - local html_content=$(echo "${content}" | perl -pe ' - BEGIN { - # Define a hash of QStags to their HTML equivalents - %qstags = ( - "#BR" => "
\\n", - "#BD" => "", "#EBD" => "\\n", - "#I" => "", "#EI" => "\\n", - "#P" => "

", "#EP" => "

\\n", - "#Q" => "
", "#EQ" => "
\\n", - "#C" => "", "#EC" => "\\n", - "#H1" => "

", "#EH1" => "

\\n", - "#H2" => "

", "#EH2" => "

\\n", - "#H3" => "

", "#EH3" => "

\\n", - "#H4" => "

", "#EH4" => "

\\n", - "#H5" => "
", "#EH5" => "
\\n", - "#H6" => "
", "#EH6" => "
\\n", - "#STRONG" => "", "#ESTRONG" => "\\n", - "#EM" => "", "#EEM" => "\\n", - "#DV" => "
", "#EDV" => "
\\n", - "#SPN" => "", "#ESPN" => "\\n", - "#UL" => "\\n", - "#OL" => "
    ", "#EOL" => "
\\n", - "#LI" => "
  • ", "#ELI" => "
  • \\n", - "#U" => "", "#EU" => "\\n", - "#TBL" => "", "#ETBL" => "
    \\n", - "#TR" => "", "#ETR" => "\\n", - "#TD" => "", "#ETD" => "\\n", - "#TH" => "", "#ETH" => "\\n", - "#ART" => "
    ", "#EART" => "
    \\n", - "#SEC" => "
    ", "#ESEC" => "
    \\n", - "#ASIDE" => "\\n", - "#NAV" => "\\n", - "#BTN" => "\\n", - "#SEL" => "\\n", - "#OPT" => "\\n", - "#LT" => "<", "#GT" => ">", "#NUM" => "#" - ); - } - while (my ($key, $value) = each %qstags) { - s/(?", + "#EH1": "", + "#H2": "

    ", + "#EH2": "

    ", + "#P": "

    ", + "#EP": "

    ", + "#BR": "
    ", + "#BD": "", + "#EBD": "", + "#I": "", + "#EI": "", + "#STRONG": "", + "#ESTRONG": "", + "#EM": "", + "#EM": "", + "#DIV": "
    ", + "#EDIV": "
    ", + "#SPAN": "", + "#ESPAN": "", + "#UL": "", + "#OL": "
      ", + "#EOL": "
    ", + "#LI": "
  • ", + "#ELI": "
  • ", + "#U": "", + "#EU": "", + "#TABLE": "", + "#ETABLE": "
    ", + "#TR": "", + "#ETR": "", + "#TD": "", + "#ETD": "", + "#TH": "", + "#ETH": "", + "#ART": "
    ", + "#EART": "
    ", + "#SEC": "
    ", + "#ESEC": "
    ", + "#ASIDE": "", + "#NAV": "", + "#BTN": "", + "#SEL": "", + "#OPT": "", + "#LT": "<", + "#GT": ">", + "#NUM": "#", + } + return qstag_dict.get(qstag, qstag) # Replace or return unchanged + +# Define the regular expression pattern for QStags +pattern = r'#\w+' + +# Replace QStags using the defined function +result = re.sub(pattern, replace_qstags, '$content') + +print(result) +EOF +) + + # Execute the Python code and capture the output + local html_content=$(python -c "${python_code}") echo "${html_content}" } + # Time to test the first function #_msg std "Running function blogs" _blogs