diff options
| Commit | 350947a7689a389a6f277ef65e4061b5371d500d (patch) | |
|---|---|---|
| Author | 2023-03-28 14:59:41 +0300 | |
| Committer | 2023-03-28 14:59:41 +0300 | |
| Files | ad6971c46301c75013ccb609248bd2fd26c8529d | |
| syndamia.com-350947a7689a389a6f277ef65e4061b5371d500d.tar syndamia.com-350947a7689a389a6f277ef65e4061b5371d500d.tar.gz syndamia.com-350947a7689a389a6f277ef65e4061b5371d500d.zip | ||
| Parent | 01cd3571d311b68f289b23e159edad1c54273565 (diff) | |
[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; } |