summaryrefslogtreecommitdiff
path: root/http/bin/gmi2upphtml
diff options
context:
space:
mode:
Diffstat (limited to 'http/bin/gmi2upphtml')
-rwxr-xr-xhttp/bin/gmi2upphtml28
1 files changed, 18 insertions, 10 deletions
diff --git a/http/bin/gmi2upphtml b/http/bin/gmi2upphtml
index ace3ef2..afaf9ef 100755
--- a/http/bin/gmi2upphtml
+++ b/http/bin/gmi2upphtml
@@ -5,6 +5,7 @@ post_title="${POST_TITLE:-}"
is_in_list=0
is_in_link_block=0
is_in_preformatted_block=0
+is_first_line_of_preformatted_block=0
is_in_blockquote=0
if_in_list_then_close()
@@ -105,7 +106,20 @@ while read line
do
if [ $is_in_preformatted_block -ne 0 ]
then
- echo "$(escape_upphtml "${line}")"
+ if [ $is_first_line_of_preformatted_block -ne 0 ]
+ then
+ prefix="<pre><code>"
+ is_first_line_of_preformatted_block=0
+ else
+ prefix=""
+ fi
+ if [ "$(echo "$line" | cut -c1-3)" = "\`\`\`" ]
+ then
+ echo "${prefix}</code></pre>"
+ is_in_preformatted_block=0
+ else
+ echo "${prefix}$(escape_upphtml "${line}")"
+ fi
continue
fi
@@ -171,15 +185,9 @@ do
if [ "$(echo "$line" | cut -c1-3)" = "\`\`\`" ]
then
- if [ $is_in_preformatted_block -eq 0 ]
- then
- close_all_open_blocks_except pre
- echo "<pre><code>"
- is_in_preformatted_block=1
- else
- echo "</code></pre>"
- is_in_preformatted_block=0
- fi
+ close_all_open_blocks_except pre
+ is_in_preformatted_block=1
+ is_first_line_of_preformatted_block=1
continue
fi