aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/utilities/highlight-tiddlywiki.tid
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/utilities/highlight-tiddlywiki.tid')
-rw-r--r--plugins/utilities/highlight-tiddlywiki.tid191
1 files changed, 191 insertions, 0 deletions
diff --git a/plugins/utilities/highlight-tiddlywiki.tid b/plugins/utilities/highlight-tiddlywiki.tid
new file mode 100644
index 0000000..dd1a891
--- /dev/null
+++ b/plugins/utilities/highlight-tiddlywiki.tid
@@ -0,0 +1,191 @@
+title: $:/plugins/local/highlight-languages/tiddlywiki.js
+type: application/javascript
+module-type: highlight
+
+/*\
+title: $:/plugins/local/highlight-languages/tiddlywiki.js
+type: application/javascript
+module-type: highlight
+
+TiddlyWiki TID and WikiText language definition for highlight.js.
+\*/
+"use strict";
+
+hljs.registerLanguage("tiddlywiki",function(hljs) {
+ var systemTiddler = {
+ className: "symbol",
+ match: /\$:\/[^\s\][\]<>{}"']+/
+ },
+ variable = {
+ className: "variable",
+ variants: [
+ {
+ begin: /<</,
+ end: />>/
+ },
+ {
+ match: /<[^<>\s]+>/
+ }
+ ]
+ },
+ transclusion = {
+ className: "template-variable",
+ variants: [
+ {
+ begin: /\{\{\{/,
+ end: /\}\}\}/
+ },
+ {
+ begin: /\{\{/,
+ end: /\}\}/
+ }
+ ],
+ contains: [
+ systemTiddler,
+ variable
+ ]
+ },
+ link = {
+ className: "link",
+ variants: [
+ {
+ begin: /\[\[/,
+ end: /\]\]/
+ },
+ {
+ begin: /\[(?:img|ext)\[/,
+ end: /\]\]/
+ }
+ ],
+ contains: [
+ systemTiddler
+ ]
+ },
+ filter = {
+ className: "selector",
+ begin: /\[(?=[^\]\n]*[A-Za-z][A-Za-z0-9_-]*\[)/,
+ end: /\]/,
+ contains: [
+ {
+ className: "keyword",
+ match: /[A-Za-z][A-Za-z0-9_.-]*(?=\[)/
+ },
+ {
+ className: "string",
+ begin: /\[/,
+ end: /\]/,
+ contains: [
+ systemTiddler,
+ variable
+ ]
+ },
+ variable,
+ systemTiddler
+ ]
+ };
+
+ return {
+ name: "TiddlyWiki",
+ aliases: [
+ "tid",
+ "wikitext"
+ ],
+ contains: [
+ {
+ className: "comment",
+ begin: /<!--/,
+ end: /-->/
+ },
+ {
+ className: "comment",
+ begin: /\/%/,
+ end: /%\//
+ },
+ {
+ className: "meta",
+ begin: /^\\(?:define|end|function|import|parameters|procedure|rules|whitespace|widget)\b/,
+ end: /$/,
+ contains: [
+ variable,
+ systemTiddler,
+ hljs.QUOTE_STRING_MODE,
+ hljs.APOS_STRING_MODE
+ ]
+ },
+ {
+ className: "attr",
+ match: /^[A-Za-z0-9_.-]+(?=\s*:)/
+ },
+ {
+ className: "section",
+ begin: /^!{1,6}\s+/,
+ end: /$/
+ },
+ {
+ className: "bullet",
+ match: /^[*#;:]+\s+/
+ },
+ {
+ className: "quote",
+ begin: /^>{1,3}\s+/,
+ end: /$/
+ },
+ {
+ className: "tag",
+ begin: /<\/?\$?[A-Za-z][A-Za-z0-9_.:-]*/,
+ end: /\/?>/,
+ contains: [
+ {
+ className: "attr",
+ match: /[A-Za-z_$][A-Za-z0-9_.:-]*(?=\s*=)/
+ },
+ hljs.QUOTE_STRING_MODE,
+ hljs.APOS_STRING_MODE,
+ transclusion,
+ variable,
+ filter,
+ systemTiddler
+ ]
+ },
+ {
+ className: "template-tag",
+ begin: /<</,
+ end: />>/,
+ contains: [
+ hljs.QUOTE_STRING_MODE,
+ hljs.APOS_STRING_MODE,
+ systemTiddler
+ ]
+ },
+ transclusion,
+ link,
+ filter,
+ systemTiddler,
+ {
+ className: "code",
+ begin: /`+/,
+ end: /`+/
+ },
+ {
+ className: "strong",
+ begin: /''/,
+ end: /''/
+ },
+ {
+ className: "emphasis",
+ begin: /\/\//,
+ end: /\/\//
+ },
+ {
+ className: "emphasis",
+ begin: /__/,
+ end: /__/
+ },
+ {
+ className: "deletion",
+ begin: /~~/,
+ end: /~~/
+ }
+ ]
+ };
+});