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: /<>/ }, { 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: // }, { 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: /<>/, 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: /~~/ } ] }; });