diff options
[Syntax-highlighting] Added support for bash
1 files changed, 34 insertions, 1 deletions
| -rw-r--r-- | awk-edits/Syntax-highlighting.awk | 35 |
diff --git a/awk-edits/Syntax-highlighting.awk b/awk-edits/Syntax-highlighting.awk index 7a8065e..7306f9c 100644 --- a/awk-edits/Syntax-highlighting.awk +++ b/awk-edits/Syntax-highlighting.awk @@ -36,7 +36,6 @@ syntaxhighlighting == 0 && /class="language-grammar"/ { } syntaxhighlighting == 0 && /class="language-grammar\+"/ { - grammarNamesI = 1; syntaxhighlighting = 1; } @@ -101,6 +100,40 @@ syntaxhighlighting == 3 { gsub(/[\(,\.]/, "<span class=\"SH-none\">&</span>"); } +# +# -- Bash +# +# Supports "bash" + +/class="language-bash"/ { + syntaxhighlighting = 4; + # The first code block line could look something like + # <pre><code class="language-bash">class="langage-bash" + # So, if we want to do something with the word class or strings, + # we'll need to skip the tags from the beginning. + tagend = match($0, /class="language-bash"/) + 21; + prestart = substr($0, 0, tagend); + $0 = substr($0, tagend + 1); +} + +syntaxhighlighting == 4 { + gsub(/("[^"]*"|'[^']*')/, "<span class=\"SH-str\">&</span>"); + gsub(/\$(\(|\(\(|{).+(\)|\)\)|})/, "<span class=\"SH-kwd3\">&</span>"); + gsub(/\$[^[:blank:]]+/, "<span class=\"SH-kwd3\">&</span>"); + gsub(/[[:blank:]]+-[-_[:alnum:]]+/, "<span class=\"SH-kwd2\">&</span>"); + gsub(/(^|[[:blank:]]+)(function|if|fi|then|case|esac|in|disown|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;;)($|[[:blank:]])/, "<span class=\"SH-kwd\">&</span>"); + gsub(/^[[:blank:]]*[[:alnum:]]+=/, "<span class=\"SH-cls\">&</span>"); + gsub(/[-_[:alnum:]]+[[:blank:]]*\([^\)]*\)/, "<span class=\"SH-fnc\">&</span>"); + gsub(/[\{\}]/, "<span class=\"SH-fnc\">&</span>"); + gsub(/[[:blank:]]#.*$/, "<span class=\"SH-com\">&</span>") + gsub(/(\|)/, "<span class=\"SH-none\">&</span>"); +} + +tagend != 0 { + $0 = prestart $0; + tagend = 0; +} + syntaxhighlighting > 0 && /<\/code>/ { syntaxhighlighting = 0; } |