Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commit350947a7689a389a6f277ef65e4061b5371d500d (patch)
Author
 Syndamia <kamen@syndamia.com>
2023-03-28 14:59:41 +0300
Committer
 Syndamia <kamen@syndamia.com>
2023-03-28 14:59:41 +0300
Filesad6971c46301c75013ccb609248bd2fd26c8529d
syndamia.com-350947a7689a389a6f277ef65e4061b5371d500d.tar
syndamia.com-350947a7689a389a6f277ef65e4061b5371d500d.tar.gz
syndamia.com-350947a7689a389a6f277ef65e4061b5371d500d.zip
Parent01cd3571d311b68f289b23e159edad1c54273565 (diff)
[Syntax-highlighting] Added support for bash
1 files changed, 34 insertions, 1 deletions
-rw-r--r--awk-edits/Syntax-highlighting.awk35
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;
}