Make prism-meta compatible with TypeScript
authorTim Düsterhus <duesterhus@woltlab.com>
Wed, 4 Nov 2020 13:00:36 +0000 (14:00 +0100)
committerTim Düsterhus <duesterhus@woltlab.com>
Wed, 4 Nov 2020 13:00:36 +0000 (14:00 +0100)
wcfsetup/install/files/js/3rdParty/prism/build.js
wcfsetup/install/files/js/3rdParty/prism/prism-meta.js [deleted file]
wcfsetup/install/files/js/WoltLabSuite/Core/Ui/Redactor/Code.js
wcfsetup/install/files/js/WoltLabSuite/Core/prism-meta.js [new file with mode: 0644]
wcfsetup/install/files/lib/system/bbcode/BBCodeHandler.class.php
wcfsetup/install/files/ts/WoltLabSuite/Core/Ui/Redactor/Code.ts
wcfsetup/install/files/ts/WoltLabSuite/Core/prism-meta.ts [new file with mode: 0644]

index dadd7d82683c90eb99e129112977fbb5af7ae811..23427e6c82f9349bdd7bf2e65568252152a3c0b4 100644 (file)
@@ -1,47 +1,56 @@
-const fs = require('fs');
-const path = require('path');
+const fs = require("fs");
+const path = require("path");
 
-const meta = JSON.parse(fs.readFileSync('./components.json'));
+const meta = JSON.parse(fs.readFileSync("./components.json"));
 
-fs.readdirSync('components').forEach(function (component) {
-       component = path.basename(component, '.js').replace(/^prism-/, '');
+fs.readdirSync("components").forEach(function (component) {
+       component = path.basename(component, ".js").replace(/^prism-/, "");
        const filename = `components/prism-${component}.js`;
-       const contents = fs.readFileSync(filename, { encoding: 'utf8' });
+       const contents = fs.readFileSync(filename, { encoding: "utf8" });
        if (/^define/.test(contents)) {
                console.log(`Skipping ${component}`);
                return;
        }
        let requirements = meta.languages[component].require || [];
-       if (typeof requirements === 'string') requirements = [ requirements ];
+       if (typeof requirements === "string") requirements = [requirements];
        let peerDependencies = meta.languages[component].peerDependencies || [];
-       if (typeof peerDependencies === 'string') peerDependencies = [ peerDependencies ];
-       requirements = requirements.concat(peerDependencies).map(item => `prism/components/prism-${item}`)
+       if (typeof peerDependencies === "string") peerDependencies = [peerDependencies];
+       requirements = requirements.concat(peerDependencies).map((item) => `prism/components/prism-${item}`);
 
-       const header = `define(${JSON.stringify(['prism/prism'].concat(requirements))}, function () {\n`;
+       const header = `define(${JSON.stringify(["prism/prism"].concat(requirements))}, function () {\n`;
        const footer = `\nreturn Prism; })`;
-       fs.writeFileSync(filename, `${header}${contents}${footer}`, 'utf8');
+       fs.writeFileSync(filename, `${header}${contents}${footer}`, "utf8");
 });
 
 {
-const header = `define([],function(){return /*START*/`;
-const footer = `/*END*/;});`;
-const contents = Object.entries(meta.languages).reduce(function(acc, [key, value]) {
-       if (key === 'meta') return acc;
-       
-       acc[key] = {
-               title: value.title,
-               file: key,
-       };
-       if (value.alias && value.alias.forEach != null && value.aliasTitles) {
-               value.alias.forEach(function (alias) {
-                       if (!value.aliasTitles[alias]) return;
-                       acc[alias] = {
-                               title: value.aliasTitles[alias],
+       const contents = `export interface LanguageData {
+  title: string;
+  file: string;
+}
+export type LanguageIdentifier = string;
+export type PrismMeta = Record<LanguageIdentifier, LanguageData>;
+// prettier-ignore
+/*!START*/const metadata: PrismMeta = ${JSON.stringify(
+               Object.entries(meta.languages).reduce(function (acc, [key, value]) {
+                       if (key === "meta") return acc;
+
+                       acc[key] = {
+                               title: value.title,
                                file: key,
                        };
-               });
-       }
-       return acc;
-}, {});
-fs.writeFileSync('./prism-meta.js', `${header}${JSON.stringify(contents)}${footer}`, 'utf8');
+                       if (value.alias && value.alias.forEach != null && value.aliasTitles) {
+                               value.alias.forEach(function (alias) {
+                                       if (!value.aliasTitles[alias]) return;
+                                       acc[alias] = {
+                                               title: value.aliasTitles[alias],
+                                               file: key,
+                                       };
+                               });
+                       }
+                       return acc;
+               }, {}),
+       )} /*!END*/
+export default metadata;
+`;
+       fs.writeFileSync("../../../ts/WoltLabSuite/Core/prism-meta.ts", contents, "utf8");
 }
diff --git a/wcfsetup/install/files/js/3rdParty/prism/prism-meta.js b/wcfsetup/install/files/js/3rdParty/prism/prism-meta.js
deleted file mode 100644 (file)
index 6284a35..0000000
+++ /dev/null
@@ -1 +0,0 @@
-define([],function(){return /*START*/{"markup":{"title":"Markup","file":"markup"},"html":{"title":"HTML","file":"markup"},"xml":{"title":"XML","file":"markup"},"svg":{"title":"SVG","file":"markup"},"mathml":{"title":"MathML","file":"markup"},"ssml":{"title":"SSML","file":"markup"},"atom":{"title":"Atom","file":"markup"},"rss":{"title":"RSS","file":"markup"},"css":{"title":"CSS","file":"css"},"clike":{"title":"C-like","file":"clike"},"javascript":{"title":"JavaScript","file":"javascript"},"abap":{"title":"ABAP","file":"abap"},"abnf":{"title":"ABNF","file":"abnf"},"actionscript":{"title":"ActionScript","file":"actionscript"},"ada":{"title":"Ada","file":"ada"},"agda":{"title":"Agda","file":"agda"},"al":{"title":"AL","file":"al"},"antlr4":{"title":"ANTLR4","file":"antlr4"},"apacheconf":{"title":"Apache Configuration","file":"apacheconf"},"apl":{"title":"APL","file":"apl"},"applescript":{"title":"AppleScript","file":"applescript"},"aql":{"title":"AQL","file":"aql"},"arduino":{"title":"Arduino","file":"arduino"},"arff":{"title":"ARFF","file":"arff"},"asciidoc":{"title":"AsciiDoc","file":"asciidoc"},"aspnet":{"title":"ASP.NET (C#)","file":"aspnet"},"asm6502":{"title":"6502 Assembly","file":"asm6502"},"autohotkey":{"title":"AutoHotkey","file":"autohotkey"},"autoit":{"title":"AutoIt","file":"autoit"},"bash":{"title":"Bash","file":"bash"},"basic":{"title":"BASIC","file":"basic"},"batch":{"title":"Batch","file":"batch"},"bbcode":{"title":"BBcode","file":"bbcode"},"bison":{"title":"Bison","file":"bison"},"bnf":{"title":"BNF","file":"bnf"},"brainfuck":{"title":"Brainfuck","file":"brainfuck"},"brightscript":{"title":"BrightScript","file":"brightscript"},"bro":{"title":"Bro","file":"bro"},"c":{"title":"C","file":"c"},"csharp":{"title":"C#","file":"csharp"},"cpp":{"title":"C++","file":"cpp"},"cil":{"title":"CIL","file":"cil"},"clojure":{"title":"Clojure","file":"clojure"},"cmake":{"title":"CMake","file":"cmake"},"coffeescript":{"title":"CoffeeScript","file":"coffeescript"},"concurnas":{"title":"Concurnas","file":"concurnas"},"csp":{"title":"Content-Security-Policy","file":"csp"},"crystal":{"title":"Crystal","file":"crystal"},"css-extras":{"title":"CSS Extras","file":"css-extras"},"cypher":{"title":"Cypher","file":"cypher"},"d":{"title":"D","file":"d"},"dart":{"title":"Dart","file":"dart"},"dax":{"title":"DAX","file":"dax"},"dhall":{"title":"Dhall","file":"dhall"},"diff":{"title":"Diff","file":"diff"},"django":{"title":"Django/Jinja2","file":"django"},"dns-zone-file":{"title":"DNS zone file","file":"dns-zone-file"},"docker":{"title":"Docker","file":"docker"},"ebnf":{"title":"EBNF","file":"ebnf"},"editorconfig":{"title":"EditorConfig","file":"editorconfig"},"eiffel":{"title":"Eiffel","file":"eiffel"},"ejs":{"title":"EJS","file":"ejs"},"elixir":{"title":"Elixir","file":"elixir"},"elm":{"title":"Elm","file":"elm"},"etlua":{"title":"Embedded Lua templating","file":"etlua"},"erb":{"title":"ERB","file":"erb"},"erlang":{"title":"Erlang","file":"erlang"},"excel-formula":{"title":"Excel Formula","file":"excel-formula"},"fsharp":{"title":"F#","file":"fsharp"},"factor":{"title":"Factor","file":"factor"},"firestore-security-rules":{"title":"Firestore security rules","file":"firestore-security-rules"},"flow":{"title":"Flow","file":"flow"},"fortran":{"title":"Fortran","file":"fortran"},"ftl":{"title":"FreeMarker Template Language","file":"ftl"},"gml":{"title":"GameMaker Language","file":"gml"},"gcode":{"title":"G-code","file":"gcode"},"gdscript":{"title":"GDScript","file":"gdscript"},"gedcom":{"title":"GEDCOM","file":"gedcom"},"gherkin":{"title":"Gherkin","file":"gherkin"},"git":{"title":"Git","file":"git"},"glsl":{"title":"GLSL","file":"glsl"},"go":{"title":"Go","file":"go"},"graphql":{"title":"GraphQL","file":"graphql"},"groovy":{"title":"Groovy","file":"groovy"},"haml":{"title":"Haml","file":"haml"},"handlebars":{"title":"Handlebars","file":"handlebars"},"haskell":{"title":"Haskell","file":"haskell"},"haxe":{"title":"Haxe","file":"haxe"},"hcl":{"title":"HCL","file":"hcl"},"hlsl":{"title":"HLSL","file":"hlsl"},"http":{"title":"HTTP","file":"http"},"hpkp":{"title":"HTTP Public-Key-Pins","file":"hpkp"},"hsts":{"title":"HTTP Strict-Transport-Security","file":"hsts"},"ichigojam":{"title":"IchigoJam","file":"ichigojam"},"icon":{"title":"Icon","file":"icon"},"ignore":{"title":".ignore","file":"ignore"},"gitignore":{"title":".gitignore","file":"ignore"},"hgignore":{"title":".hgignore","file":"ignore"},"npmignore":{"title":".npmignore","file":"ignore"},"inform7":{"title":"Inform 7","file":"inform7"},"ini":{"title":"Ini","file":"ini"},"io":{"title":"Io","file":"io"},"j":{"title":"J","file":"j"},"java":{"title":"Java","file":"java"},"javadoc":{"title":"JavaDoc","file":"javadoc"},"javadoclike":{"title":"JavaDoc-like","file":"javadoclike"},"javastacktrace":{"title":"Java stack trace","file":"javastacktrace"},"jolie":{"title":"Jolie","file":"jolie"},"jq":{"title":"JQ","file":"jq"},"jsdoc":{"title":"JSDoc","file":"jsdoc"},"js-extras":{"title":"JS Extras","file":"js-extras"},"json":{"title":"JSON","file":"json"},"json5":{"title":"JSON5","file":"json5"},"jsonp":{"title":"JSONP","file":"jsonp"},"jsstacktrace":{"title":"JS stack trace","file":"jsstacktrace"},"js-templates":{"title":"JS Templates","file":"js-templates"},"julia":{"title":"Julia","file":"julia"},"keyman":{"title":"Keyman","file":"keyman"},"kotlin":{"title":"Kotlin","file":"kotlin"},"kts":{"title":"Kotlin Script","file":"kotlin"},"latex":{"title":"LaTeX","file":"latex"},"tex":{"title":"TeX","file":"latex"},"context":{"title":"ConTeXt","file":"latex"},"latte":{"title":"Latte","file":"latte"},"less":{"title":"Less","file":"less"},"lilypond":{"title":"LilyPond","file":"lilypond"},"liquid":{"title":"Liquid","file":"liquid"},"lisp":{"title":"Lisp","file":"lisp"},"livescript":{"title":"LiveScript","file":"livescript"},"llvm":{"title":"LLVM IR","file":"llvm"},"lolcode":{"title":"LOLCODE","file":"lolcode"},"lua":{"title":"Lua","file":"lua"},"makefile":{"title":"Makefile","file":"makefile"},"markdown":{"title":"Markdown","file":"markdown"},"markup-templating":{"title":"Markup templating","file":"markup-templating"},"matlab":{"title":"MATLAB","file":"matlab"},"mel":{"title":"MEL","file":"mel"},"mizar":{"title":"Mizar","file":"mizar"},"monkey":{"title":"Monkey","file":"monkey"},"moonscript":{"title":"MoonScript","file":"moonscript"},"n1ql":{"title":"N1QL","file":"n1ql"},"n4js":{"title":"N4JS","file":"n4js"},"nand2tetris-hdl":{"title":"Nand To Tetris HDL","file":"nand2tetris-hdl"},"nasm":{"title":"NASM","file":"nasm"},"neon":{"title":"NEON","file":"neon"},"nginx":{"title":"nginx","file":"nginx"},"nim":{"title":"Nim","file":"nim"},"nix":{"title":"Nix","file":"nix"},"nsis":{"title":"NSIS","file":"nsis"},"objectivec":{"title":"Objective-C","file":"objectivec"},"ocaml":{"title":"OCaml","file":"ocaml"},"opencl":{"title":"OpenCL","file":"opencl"},"oz":{"title":"Oz","file":"oz"},"parigp":{"title":"PARI/GP","file":"parigp"},"parser":{"title":"Parser","file":"parser"},"pascal":{"title":"Pascal","file":"pascal"},"pascaligo":{"title":"Pascaligo","file":"pascaligo"},"pcaxis":{"title":"PC-Axis","file":"pcaxis"},"peoplecode":{"title":"PeopleCode","file":"peoplecode"},"perl":{"title":"Perl","file":"perl"},"php":{"title":"PHP","file":"php"},"phpdoc":{"title":"PHPDoc","file":"phpdoc"},"php-extras":{"title":"PHP Extras","file":"php-extras"},"plsql":{"title":"PL/SQL","file":"plsql"},"powerquery":{"title":"PowerQuery","file":"powerquery"},"powershell":{"title":"PowerShell","file":"powershell"},"processing":{"title":"Processing","file":"processing"},"prolog":{"title":"Prolog","file":"prolog"},"properties":{"title":".properties","file":"properties"},"protobuf":{"title":"Protocol Buffers","file":"protobuf"},"pug":{"title":"Pug","file":"pug"},"puppet":{"title":"Puppet","file":"puppet"},"pure":{"title":"Pure","file":"pure"},"purebasic":{"title":"PureBasic","file":"purebasic"},"python":{"title":"Python","file":"python"},"q":{"title":"Q (kdb+ database)","file":"q"},"qml":{"title":"QML","file":"qml"},"qore":{"title":"Qore","file":"qore"},"r":{"title":"R","file":"r"},"racket":{"title":"Racket","file":"racket"},"jsx":{"title":"React JSX","file":"jsx"},"tsx":{"title":"React TSX","file":"tsx"},"reason":{"title":"Reason","file":"reason"},"regex":{"title":"Regex","file":"regex"},"renpy":{"title":"Ren'py","file":"renpy"},"rest":{"title":"reST (reStructuredText)","file":"rest"},"rip":{"title":"Rip","file":"rip"},"roboconf":{"title":"Roboconf","file":"roboconf"},"robotframework":{"title":"Robot Framework","file":"robotframework"},"ruby":{"title":"Ruby","file":"ruby"},"rust":{"title":"Rust","file":"rust"},"sas":{"title":"SAS","file":"sas"},"sass":{"title":"Sass (Sass)","file":"sass"},"scss":{"title":"Sass (Scss)","file":"scss"},"scala":{"title":"Scala","file":"scala"},"scheme":{"title":"Scheme","file":"scheme"},"shell-session":{"title":"Shell session","file":"shell-session"},"smali":{"title":"Smali","file":"smali"},"smalltalk":{"title":"Smalltalk","file":"smalltalk"},"smarty":{"title":"Smarty","file":"smarty"},"solidity":{"title":"Solidity (Ethereum)","file":"solidity"},"solution-file":{"title":"Solution file","file":"solution-file"},"soy":{"title":"Soy (Closure Template)","file":"soy"},"sparql":{"title":"SPARQL","file":"sparql"},"splunk-spl":{"title":"Splunk SPL","file":"splunk-spl"},"sqf":{"title":"SQF: Status Quo Function (Arma 3)","file":"sqf"},"sql":{"title":"SQL","file":"sql"},"iecst":{"title":"Structured Text (IEC 61131-3)","file":"iecst"},"stylus":{"title":"Stylus","file":"stylus"},"swift":{"title":"Swift","file":"swift"},"t4-templating":{"title":"T4 templating","file":"t4-templating"},"t4-cs":{"title":"T4 Text Templates (C#)","file":"t4-cs"},"t4-vb":{"title":"T4 Text Templates (VB)","file":"t4-vb"},"tap":{"title":"TAP","file":"tap"},"tcl":{"title":"Tcl","file":"tcl"},"tt2":{"title":"Template Toolkit 2","file":"tt2"},"textile":{"title":"Textile","file":"textile"},"toml":{"title":"TOML","file":"toml"},"turtle":{"title":"Turtle","file":"turtle"},"twig":{"title":"Twig","file":"twig"},"typescript":{"title":"TypeScript","file":"typescript"},"unrealscript":{"title":"UnrealScript","file":"unrealscript"},"vala":{"title":"Vala","file":"vala"},"vbnet":{"title":"VB.Net","file":"vbnet"},"velocity":{"title":"Velocity","file":"velocity"},"verilog":{"title":"Verilog","file":"verilog"},"vhdl":{"title":"VHDL","file":"vhdl"},"vim":{"title":"vim","file":"vim"},"visual-basic":{"title":"Visual Basic","file":"visual-basic"},"vba":{"title":"VBA","file":"visual-basic"},"warpscript":{"title":"WarpScript","file":"warpscript"},"wasm":{"title":"WebAssembly","file":"wasm"},"wiki":{"title":"Wiki markup","file":"wiki"},"xeora":{"title":"Xeora","file":"xeora"},"xml-doc":{"title":"XML doc (.net)","file":"xml-doc"},"xojo":{"title":"Xojo (REALbasic)","file":"xojo"},"xquery":{"title":"XQuery","file":"xquery"},"yaml":{"title":"YAML","file":"yaml"},"yang":{"title":"YANG","file":"yang"},"zig":{"title":"Zig","file":"zig"}}/*END*/;});
\ No newline at end of file
index 11588f12bf1dc62573c94c58d0e3f737962d3470..c486bafbdc85a7c7fa51410037ad9e7dbbcb6cb9 100644 (file)
@@ -6,7 +6,7 @@
  * @license     GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
  * @module      WoltLabSuite/Core/Ui/Redactor/Code
  */
-define(["require", "exports", "tslib", "../../Core", "../../Dom/Util", "../../Event/Handler", "../../Language", "../../StringUtil", "../Dialog", "./PseudoHeader"], function (require, exports, tslib_1, Core, Util_1, EventHandler, Language, StringUtil, Dialog_1, UiRedactorPseudoHeader) {
+define(["require", "exports", "tslib", "../../Core", "../../Dom/Util", "../../Event/Handler", "../../Language", "../../StringUtil", "../Dialog", "./PseudoHeader", "../../prism-meta"], function (require, exports, tslib_1, Core, Util_1, EventHandler, Language, StringUtil, Dialog_1, UiRedactorPseudoHeader, prism_meta_1) {
     "use strict";
     Core = tslib_1.__importStar(Core);
     Util_1 = tslib_1.__importDefault(Util_1);
@@ -15,6 +15,7 @@ define(["require", "exports", "tslib", "../../Core", "../../Dom/Util", "../../Ev
     StringUtil = tslib_1.__importStar(StringUtil);
     Dialog_1 = tslib_1.__importDefault(Dialog_1);
     UiRedactorPseudoHeader = tslib_1.__importStar(UiRedactorPseudoHeader);
+    prism_meta_1 = tslib_1.__importDefault(prism_meta_1);
     let _headerHeight = 0;
     class UiRedactorCode {
         /**
@@ -103,7 +104,7 @@ define(["require", "exports", "tslib", "../../Core", "../../Dom/Util", "../../Ev
             const file = pre.dataset.file;
             let highlighter = pre.dataset.highlighter;
             highlighter =
-                this._editor.opts.woltlab.highlighters.indexOf(highlighter) !== -1 ? PrismMeta[highlighter].title : "";
+                this._editor.opts.woltlab.highlighters.indexOf(highlighter) !== -1 ? prism_meta_1.default[highlighter].title : "";
             const title = Language.get("wcf.editor.code.title", {
                 file,
                 highlighter,
@@ -149,7 +150,7 @@ define(["require", "exports", "tslib", "../../Core", "../../Dom/Util", "../../Ev
                         let highlighters = `<option value="">${Language.get("wcf.editor.code.highlighter.detect")}</option>
             <option value="plain">${Language.get("wcf.editor.code.highlighter.plain")}</option>`;
                         const values = this._editor.opts.woltlab.highlighters.map((highlighter) => {
-                            return [highlighter, PrismMeta[highlighter].title];
+                            return [highlighter, prism_meta_1.default[highlighter].title];
                         });
                         // sort by label
                         values.sort((a, b) => {
diff --git a/wcfsetup/install/files/js/WoltLabSuite/Core/prism-meta.js b/wcfsetup/install/files/js/WoltLabSuite/Core/prism-meta.js
new file mode 100644 (file)
index 0000000..d90c2c9
--- /dev/null
@@ -0,0 +1,7 @@
+define(["require", "exports"], function (require, exports) {
+    "use strict";
+    Object.defineProperty(exports, "__esModule", { value: true });
+    // prettier-ignore
+    /*!START*/ const metadata = { "markup": { "title": "Markup", "file": "markup" }, "html": { "title": "HTML", "file": "markup" }, "xml": { "title": "XML", "file": "markup" }, "svg": { "title": "SVG", "file": "markup" }, "mathml": { "title": "MathML", "file": "markup" }, "ssml": { "title": "SSML", "file": "markup" }, "atom": { "title": "Atom", "file": "markup" }, "rss": { "title": "RSS", "file": "markup" }, "css": { "title": "CSS", "file": "css" }, "clike": { "title": "C-like", "file": "clike" }, "javascript": { "title": "JavaScript", "file": "javascript" }, "abap": { "title": "ABAP", "file": "abap" }, "abnf": { "title": "ABNF", "file": "abnf" }, "actionscript": { "title": "ActionScript", "file": "actionscript" }, "ada": { "title": "Ada", "file": "ada" }, "agda": { "title": "Agda", "file": "agda" }, "al": { "title": "AL", "file": "al" }, "antlr4": { "title": "ANTLR4", "file": "antlr4" }, "apacheconf": { "title": "Apache Configuration", "file": "apacheconf" }, "apl": { "title": "APL", "file": "apl" }, "applescript": { "title": "AppleScript", "file": "applescript" }, "aql": { "title": "AQL", "file": "aql" }, "arduino": { "title": "Arduino", "file": "arduino" }, "arff": { "title": "ARFF", "file": "arff" }, "asciidoc": { "title": "AsciiDoc", "file": "asciidoc" }, "aspnet": { "title": "ASP.NET (C#)", "file": "aspnet" }, "asm6502": { "title": "6502 Assembly", "file": "asm6502" }, "autohotkey": { "title": "AutoHotkey", "file": "autohotkey" }, "autoit": { "title": "AutoIt", "file": "autoit" }, "bash": { "title": "Bash", "file": "bash" }, "basic": { "title": "BASIC", "file": "basic" }, "batch": { "title": "Batch", "file": "batch" }, "bbcode": { "title": "BBcode", "file": "bbcode" }, "bison": { "title": "Bison", "file": "bison" }, "bnf": { "title": "BNF", "file": "bnf" }, "brainfuck": { "title": "Brainfuck", "file": "brainfuck" }, "brightscript": { "title": "BrightScript", "file": "brightscript" }, "bro": { "title": "Bro", "file": "bro" }, "c": { "title": "C", "file": "c" }, "csharp": { "title": "C#", "file": "csharp" }, "cpp": { "title": "C++", "file": "cpp" }, "cil": { "title": "CIL", "file": "cil" }, "clojure": { "title": "Clojure", "file": "clojure" }, "cmake": { "title": "CMake", "file": "cmake" }, "coffeescript": { "title": "CoffeeScript", "file": "coffeescript" }, "concurnas": { "title": "Concurnas", "file": "concurnas" }, "csp": { "title": "Content-Security-Policy", "file": "csp" }, "crystal": { "title": "Crystal", "file": "crystal" }, "css-extras": { "title": "CSS Extras", "file": "css-extras" }, "cypher": { "title": "Cypher", "file": "cypher" }, "d": { "title": "D", "file": "d" }, "dart": { "title": "Dart", "file": "dart" }, "dax": { "title": "DAX", "file": "dax" }, "dhall": { "title": "Dhall", "file": "dhall" }, "diff": { "title": "Diff", "file": "diff" }, "django": { "title": "Django/Jinja2", "file": "django" }, "dns-zone-file": { "title": "DNS zone file", "file": "dns-zone-file" }, "docker": { "title": "Docker", "file": "docker" }, "ebnf": { "title": "EBNF", "file": "ebnf" }, "editorconfig": { "title": "EditorConfig", "file": "editorconfig" }, "eiffel": { "title": "Eiffel", "file": "eiffel" }, "ejs": { "title": "EJS", "file": "ejs" }, "elixir": { "title": "Elixir", "file": "elixir" }, "elm": { "title": "Elm", "file": "elm" }, "etlua": { "title": "Embedded Lua templating", "file": "etlua" }, "erb": { "title": "ERB", "file": "erb" }, "erlang": { "title": "Erlang", "file": "erlang" }, "excel-formula": { "title": "Excel Formula", "file": "excel-formula" }, "fsharp": { "title": "F#", "file": "fsharp" }, "factor": { "title": "Factor", "file": "factor" }, "firestore-security-rules": { "title": "Firestore security rules", "file": "firestore-security-rules" }, "flow": { "title": "Flow", "file": "flow" }, "fortran": { "title": "Fortran", "file": "fortran" }, "ftl": { "title": "FreeMarker Template Language", "file": "ftl" }, "gml": { "title": "GameMaker Language", "file": "gml" }, "gcode": { "title": "G-code", "file": "gcode" }, "gdscript": { "title": "GDScript", "file": "gdscript" }, "gedcom": { "title": "GEDCOM", "file": "gedcom" }, "gherkin": { "title": "Gherkin", "file": "gherkin" }, "git": { "title": "Git", "file": "git" }, "glsl": { "title": "GLSL", "file": "glsl" }, "go": { "title": "Go", "file": "go" }, "graphql": { "title": "GraphQL", "file": "graphql" }, "groovy": { "title": "Groovy", "file": "groovy" }, "haml": { "title": "Haml", "file": "haml" }, "handlebars": { "title": "Handlebars", "file": "handlebars" }, "haskell": { "title": "Haskell", "file": "haskell" }, "haxe": { "title": "Haxe", "file": "haxe" }, "hcl": { "title": "HCL", "file": "hcl" }, "hlsl": { "title": "HLSL", "file": "hlsl" }, "http": { "title": "HTTP", "file": "http" }, "hpkp": { "title": "HTTP Public-Key-Pins", "file": "hpkp" }, "hsts": { "title": "HTTP Strict-Transport-Security", "file": "hsts" }, "ichigojam": { "title": "IchigoJam", "file": "ichigojam" }, "icon": { "title": "Icon", "file": "icon" }, "ignore": { "title": ".ignore", "file": "ignore" }, "gitignore": { "title": ".gitignore", "file": "ignore" }, "hgignore": { "title": ".hgignore", "file": "ignore" }, "npmignore": { "title": ".npmignore", "file": "ignore" }, "inform7": { "title": "Inform 7", "file": "inform7" }, "ini": { "title": "Ini", "file": "ini" }, "io": { "title": "Io", "file": "io" }, "j": { "title": "J", "file": "j" }, "java": { "title": "Java", "file": "java" }, "javadoc": { "title": "JavaDoc", "file": "javadoc" }, "javadoclike": { "title": "JavaDoc-like", "file": "javadoclike" }, "javastacktrace": { "title": "Java stack trace", "file": "javastacktrace" }, "jolie": { "title": "Jolie", "file": "jolie" }, "jq": { "title": "JQ", "file": "jq" }, "jsdoc": { "title": "JSDoc", "file": "jsdoc" }, "js-extras": { "title": "JS Extras", "file": "js-extras" }, "json": { "title": "JSON", "file": "json" }, "json5": { "title": "JSON5", "file": "json5" }, "jsonp": { "title": "JSONP", "file": "jsonp" }, "jsstacktrace": { "title": "JS stack trace", "file": "jsstacktrace" }, "js-templates": { "title": "JS Templates", "file": "js-templates" }, "julia": { "title": "Julia", "file": "julia" }, "keyman": { "title": "Keyman", "file": "keyman" }, "kotlin": { "title": "Kotlin", "file": "kotlin" }, "kts": { "title": "Kotlin Script", "file": "kotlin" }, "latex": { "title": "LaTeX", "file": "latex" }, "tex": { "title": "TeX", "file": "latex" }, "context": { "title": "ConTeXt", "file": "latex" }, "latte": { "title": "Latte", "file": "latte" }, "less": { "title": "Less", "file": "less" }, "lilypond": { "title": "LilyPond", "file": "lilypond" }, "liquid": { "title": "Liquid", "file": "liquid" }, "lisp": { "title": "Lisp", "file": "lisp" }, "livescript": { "title": "LiveScript", "file": "livescript" }, "llvm": { "title": "LLVM IR", "file": "llvm" }, "lolcode": { "title": "LOLCODE", "file": "lolcode" }, "lua": { "title": "Lua", "file": "lua" }, "makefile": { "title": "Makefile", "file": "makefile" }, "markdown": { "title": "Markdown", "file": "markdown" }, "markup-templating": { "title": "Markup templating", "file": "markup-templating" }, "matlab": { "title": "MATLAB", "file": "matlab" }, "mel": { "title": "MEL", "file": "mel" }, "mizar": { "title": "Mizar", "file": "mizar" }, "monkey": { "title": "Monkey", "file": "monkey" }, "moonscript": { "title": "MoonScript", "file": "moonscript" }, "n1ql": { "title": "N1QL", "file": "n1ql" }, "n4js": { "title": "N4JS", "file": "n4js" }, "nand2tetris-hdl": { "title": "Nand To Tetris HDL", "file": "nand2tetris-hdl" }, "nasm": { "title": "NASM", "file": "nasm" }, "neon": { "title": "NEON", "file": "neon" }, "nginx": { "title": "nginx", "file": "nginx" }, "nim": { "title": "Nim", "file": "nim" }, "nix": { "title": "Nix", "file": "nix" }, "nsis": { "title": "NSIS", "file": "nsis" }, "objectivec": { "title": "Objective-C", "file": "objectivec" }, "ocaml": { "title": "OCaml", "file": "ocaml" }, "opencl": { "title": "OpenCL", "file": "opencl" }, "oz": { "title": "Oz", "file": "oz" }, "parigp": { "title": "PARI/GP", "file": "parigp" }, "parser": { "title": "Parser", "file": "parser" }, "pascal": { "title": "Pascal", "file": "pascal" }, "pascaligo": { "title": "Pascaligo", "file": "pascaligo" }, "pcaxis": { "title": "PC-Axis", "file": "pcaxis" }, "peoplecode": { "title": "PeopleCode", "file": "peoplecode" }, "perl": { "title": "Perl", "file": "perl" }, "php": { "title": "PHP", "file": "php" }, "phpdoc": { "title": "PHPDoc", "file": "phpdoc" }, "php-extras": { "title": "PHP Extras", "file": "php-extras" }, "plsql": { "title": "PL/SQL", "file": "plsql" }, "powerquery": { "title": "PowerQuery", "file": "powerquery" }, "powershell": { "title": "PowerShell", "file": "powershell" }, "processing": { "title": "Processing", "file": "processing" }, "prolog": { "title": "Prolog", "file": "prolog" }, "properties": { "title": ".properties", "file": "properties" }, "protobuf": { "title": "Protocol Buffers", "file": "protobuf" }, "pug": { "title": "Pug", "file": "pug" }, "puppet": { "title": "Puppet", "file": "puppet" }, "pure": { "title": "Pure", "file": "pure" }, "purebasic": { "title": "PureBasic", "file": "purebasic" }, "python": { "title": "Python", "file": "python" }, "q": { "title": "Q (kdb+ database)", "file": "q" }, "qml": { "title": "QML", "file": "qml" }, "qore": { "title": "Qore", "file": "qore" }, "r": { "title": "R", "file": "r" }, "racket": { "title": "Racket", "file": "racket" }, "jsx": { "title": "React JSX", "file": "jsx" }, "tsx": { "title": "React TSX", "file": "tsx" }, "reason": { "title": "Reason", "file": "reason" }, "regex": { "title": "Regex", "file": "regex" }, "renpy": { "title": "Ren'py", "file": "renpy" }, "rest": { "title": "reST (reStructuredText)", "file": "rest" }, "rip": { "title": "Rip", "file": "rip" }, "roboconf": { "title": "Roboconf", "file": "roboconf" }, "robotframework": { "title": "Robot Framework", "file": "robotframework" }, "ruby": { "title": "Ruby", "file": "ruby" }, "rust": { "title": "Rust", "file": "rust" }, "sas": { "title": "SAS", "file": "sas" }, "sass": { "title": "Sass (Sass)", "file": "sass" }, "scss": { "title": "Sass (Scss)", "file": "scss" }, "scala": { "title": "Scala", "file": "scala" }, "scheme": { "title": "Scheme", "file": "scheme" }, "shell-session": { "title": "Shell session", "file": "shell-session" }, "smali": { "title": "Smali", "file": "smali" }, "smalltalk": { "title": "Smalltalk", "file": "smalltalk" }, "smarty": { "title": "Smarty", "file": "smarty" }, "solidity": { "title": "Solidity (Ethereum)", "file": "solidity" }, "solution-file": { "title": "Solution file", "file": "solution-file" }, "soy": { "title": "Soy (Closure Template)", "file": "soy" }, "sparql": { "title": "SPARQL", "file": "sparql" }, "splunk-spl": { "title": "Splunk SPL", "file": "splunk-spl" }, "sqf": { "title": "SQF: Status Quo Function (Arma 3)", "file": "sqf" }, "sql": { "title": "SQL", "file": "sql" }, "iecst": { "title": "Structured Text (IEC 61131-3)", "file": "iecst" }, "stylus": { "title": "Stylus", "file": "stylus" }, "swift": { "title": "Swift", "file": "swift" }, "t4-templating": { "title": "T4 templating", "file": "t4-templating" }, "t4-cs": { "title": "T4 Text Templates (C#)", "file": "t4-cs" }, "t4-vb": { "title": "T4 Text Templates (VB)", "file": "t4-vb" }, "tap": { "title": "TAP", "file": "tap" }, "tcl": { "title": "Tcl", "file": "tcl" }, "tt2": { "title": "Template Toolkit 2", "file": "tt2" }, "textile": { "title": "Textile", "file": "textile" }, "toml": { "title": "TOML", "file": "toml" }, "turtle": { "title": "Turtle", "file": "turtle" }, "twig": { "title": "Twig", "file": "twig" }, "typescript": { "title": "TypeScript", "file": "typescript" }, "unrealscript": { "title": "UnrealScript", "file": "unrealscript" }, "vala": { "title": "Vala", "file": "vala" }, "vbnet": { "title": "VB.Net", "file": "vbnet" }, "velocity": { "title": "Velocity", "file": "velocity" }, "verilog": { "title": "Verilog", "file": "verilog" }, "vhdl": { "title": "VHDL", "file": "vhdl" }, "vim": { "title": "vim", "file": "vim" }, "visual-basic": { "title": "Visual Basic", "file": "visual-basic" }, "vba": { "title": "VBA", "file": "visual-basic" }, "warpscript": { "title": "WarpScript", "file": "warpscript" }, "wasm": { "title": "WebAssembly", "file": "wasm" }, "wiki": { "title": "Wiki markup", "file": "wiki" }, "xeora": { "title": "Xeora", "file": "xeora" }, "xml-doc": { "title": "XML doc (.net)", "file": "xml-doc" }, "xojo": { "title": "Xojo (REALbasic)", "file": "xojo" }, "xquery": { "title": "XQuery", "file": "xquery" }, "yaml": { "title": "YAML", "file": "yaml" }, "yang": { "title": "YANG", "file": "yang" }, "zig": { "title": "Zig", "file": "zig" } }; /*!END*/
+    exports.default = metadata;
+});
index 7cced24b744aabe1c1fed82abbc75c82ed4ca6d7..6bee36543f42ea94e72cdc9b30eb666e76ea7a89 100644 (file)
@@ -126,7 +126,7 @@ class BBCodeHandler extends SingletonFactory {
         */
        public function getHighlighterMeta() {
                if ($this->highlighterMeta === null) {
-                       $this->highlighterMeta = JSON::decode(preg_replace('!.*/\*START\*/(.*)/\*END\*/.*!', '\\1', file_get_contents(WCF_DIR.'/js/3rdParty/prism/prism-meta.js')));
+                       $this->highlighterMeta = JSON::decode(preg_replace('/.*\/\*!START\*\/\s*const\s*metadata\s*=\s*(.*)\s*;\s*\/\*!END\*\/.*/', '\\1', file_get_contents(WCF_DIR.'/js/WoltLabSuite/Core/prism-meta.js')));
                }
                
                return $this->highlighterMeta;
index 5b3f80754607a5db4af9198e96fad2db0043748b..68c3e954ee2c9bc09432df2004ed7720cb062261 100644 (file)
@@ -16,21 +16,7 @@ import UiDialog from "../Dialog";
 import { DialogCallbackObject, DialogCallbackSetup } from "../Dialog/Data";
 import { RedactorEditor } from "./Editor";
 import * as UiRedactorPseudoHeader from "./PseudoHeader";
-
-// TODO: "prism/prism-meta" is missing -- START
-
-interface PrismLang {
-  title: string;
-  file: string;
-}
-
-type Identifier = string;
-
-type PrismMetaData = Record<Identifier, PrismLang>;
-
-declare const PrismMeta: PrismMetaData;
-
-// TODO: "prism/prism-meta" is missing -- END
+import PrismMeta from "../../prism-meta";
 
 type Highlighter = [string, string];
 
diff --git a/wcfsetup/install/files/ts/WoltLabSuite/Core/prism-meta.ts b/wcfsetup/install/files/ts/WoltLabSuite/Core/prism-meta.ts
new file mode 100644 (file)
index 0000000..c26b76c
--- /dev/null
@@ -0,0 +1,9 @@
+export interface LanguageData {
+  title: string;
+  file: string;
+}
+export type LanguageIdentifier = string;
+export type PrismMeta = Record<LanguageIdentifier, LanguageData>;
+// prettier-ignore
+/*!START*/const metadata: PrismMeta = {"markup":{"title":"Markup","file":"markup"},"html":{"title":"HTML","file":"markup"},"xml":{"title":"XML","file":"markup"},"svg":{"title":"SVG","file":"markup"},"mathml":{"title":"MathML","file":"markup"},"ssml":{"title":"SSML","file":"markup"},"atom":{"title":"Atom","file":"markup"},"rss":{"title":"RSS","file":"markup"},"css":{"title":"CSS","file":"css"},"clike":{"title":"C-like","file":"clike"},"javascript":{"title":"JavaScript","file":"javascript"},"abap":{"title":"ABAP","file":"abap"},"abnf":{"title":"ABNF","file":"abnf"},"actionscript":{"title":"ActionScript","file":"actionscript"},"ada":{"title":"Ada","file":"ada"},"agda":{"title":"Agda","file":"agda"},"al":{"title":"AL","file":"al"},"antlr4":{"title":"ANTLR4","file":"antlr4"},"apacheconf":{"title":"Apache Configuration","file":"apacheconf"},"apl":{"title":"APL","file":"apl"},"applescript":{"title":"AppleScript","file":"applescript"},"aql":{"title":"AQL","file":"aql"},"arduino":{"title":"Arduino","file":"arduino"},"arff":{"title":"ARFF","file":"arff"},"asciidoc":{"title":"AsciiDoc","file":"asciidoc"},"aspnet":{"title":"ASP.NET (C#)","file":"aspnet"},"asm6502":{"title":"6502 Assembly","file":"asm6502"},"autohotkey":{"title":"AutoHotkey","file":"autohotkey"},"autoit":{"title":"AutoIt","file":"autoit"},"bash":{"title":"Bash","file":"bash"},"basic":{"title":"BASIC","file":"basic"},"batch":{"title":"Batch","file":"batch"},"bbcode":{"title":"BBcode","file":"bbcode"},"bison":{"title":"Bison","file":"bison"},"bnf":{"title":"BNF","file":"bnf"},"brainfuck":{"title":"Brainfuck","file":"brainfuck"},"brightscript":{"title":"BrightScript","file":"brightscript"},"bro":{"title":"Bro","file":"bro"},"c":{"title":"C","file":"c"},"csharp":{"title":"C#","file":"csharp"},"cpp":{"title":"C++","file":"cpp"},"cil":{"title":"CIL","file":"cil"},"clojure":{"title":"Clojure","file":"clojure"},"cmake":{"title":"CMake","file":"cmake"},"coffeescript":{"title":"CoffeeScript","file":"coffeescript"},"concurnas":{"title":"Concurnas","file":"concurnas"},"csp":{"title":"Content-Security-Policy","file":"csp"},"crystal":{"title":"Crystal","file":"crystal"},"css-extras":{"title":"CSS Extras","file":"css-extras"},"cypher":{"title":"Cypher","file":"cypher"},"d":{"title":"D","file":"d"},"dart":{"title":"Dart","file":"dart"},"dax":{"title":"DAX","file":"dax"},"dhall":{"title":"Dhall","file":"dhall"},"diff":{"title":"Diff","file":"diff"},"django":{"title":"Django/Jinja2","file":"django"},"dns-zone-file":{"title":"DNS zone file","file":"dns-zone-file"},"docker":{"title":"Docker","file":"docker"},"ebnf":{"title":"EBNF","file":"ebnf"},"editorconfig":{"title":"EditorConfig","file":"editorconfig"},"eiffel":{"title":"Eiffel","file":"eiffel"},"ejs":{"title":"EJS","file":"ejs"},"elixir":{"title":"Elixir","file":"elixir"},"elm":{"title":"Elm","file":"elm"},"etlua":{"title":"Embedded Lua templating","file":"etlua"},"erb":{"title":"ERB","file":"erb"},"erlang":{"title":"Erlang","file":"erlang"},"excel-formula":{"title":"Excel Formula","file":"excel-formula"},"fsharp":{"title":"F#","file":"fsharp"},"factor":{"title":"Factor","file":"factor"},"firestore-security-rules":{"title":"Firestore security rules","file":"firestore-security-rules"},"flow":{"title":"Flow","file":"flow"},"fortran":{"title":"Fortran","file":"fortran"},"ftl":{"title":"FreeMarker Template Language","file":"ftl"},"gml":{"title":"GameMaker Language","file":"gml"},"gcode":{"title":"G-code","file":"gcode"},"gdscript":{"title":"GDScript","file":"gdscript"},"gedcom":{"title":"GEDCOM","file":"gedcom"},"gherkin":{"title":"Gherkin","file":"gherkin"},"git":{"title":"Git","file":"git"},"glsl":{"title":"GLSL","file":"glsl"},"go":{"title":"Go","file":"go"},"graphql":{"title":"GraphQL","file":"graphql"},"groovy":{"title":"Groovy","file":"groovy"},"haml":{"title":"Haml","file":"haml"},"handlebars":{"title":"Handlebars","file":"handlebars"},"haskell":{"title":"Haskell","file":"haskell"},"haxe":{"title":"Haxe","file":"haxe"},"hcl":{"title":"HCL","file":"hcl"},"hlsl":{"title":"HLSL","file":"hlsl"},"http":{"title":"HTTP","file":"http"},"hpkp":{"title":"HTTP Public-Key-Pins","file":"hpkp"},"hsts":{"title":"HTTP Strict-Transport-Security","file":"hsts"},"ichigojam":{"title":"IchigoJam","file":"ichigojam"},"icon":{"title":"Icon","file":"icon"},"ignore":{"title":".ignore","file":"ignore"},"gitignore":{"title":".gitignore","file":"ignore"},"hgignore":{"title":".hgignore","file":"ignore"},"npmignore":{"title":".npmignore","file":"ignore"},"inform7":{"title":"Inform 7","file":"inform7"},"ini":{"title":"Ini","file":"ini"},"io":{"title":"Io","file":"io"},"j":{"title":"J","file":"j"},"java":{"title":"Java","file":"java"},"javadoc":{"title":"JavaDoc","file":"javadoc"},"javadoclike":{"title":"JavaDoc-like","file":"javadoclike"},"javastacktrace":{"title":"Java stack trace","file":"javastacktrace"},"jolie":{"title":"Jolie","file":"jolie"},"jq":{"title":"JQ","file":"jq"},"jsdoc":{"title":"JSDoc","file":"jsdoc"},"js-extras":{"title":"JS Extras","file":"js-extras"},"json":{"title":"JSON","file":"json"},"json5":{"title":"JSON5","file":"json5"},"jsonp":{"title":"JSONP","file":"jsonp"},"jsstacktrace":{"title":"JS stack trace","file":"jsstacktrace"},"js-templates":{"title":"JS Templates","file":"js-templates"},"julia":{"title":"Julia","file":"julia"},"keyman":{"title":"Keyman","file":"keyman"},"kotlin":{"title":"Kotlin","file":"kotlin"},"kts":{"title":"Kotlin Script","file":"kotlin"},"latex":{"title":"LaTeX","file":"latex"},"tex":{"title":"TeX","file":"latex"},"context":{"title":"ConTeXt","file":"latex"},"latte":{"title":"Latte","file":"latte"},"less":{"title":"Less","file":"less"},"lilypond":{"title":"LilyPond","file":"lilypond"},"liquid":{"title":"Liquid","file":"liquid"},"lisp":{"title":"Lisp","file":"lisp"},"livescript":{"title":"LiveScript","file":"livescript"},"llvm":{"title":"LLVM IR","file":"llvm"},"lolcode":{"title":"LOLCODE","file":"lolcode"},"lua":{"title":"Lua","file":"lua"},"makefile":{"title":"Makefile","file":"makefile"},"markdown":{"title":"Markdown","file":"markdown"},"markup-templating":{"title":"Markup templating","file":"markup-templating"},"matlab":{"title":"MATLAB","file":"matlab"},"mel":{"title":"MEL","file":"mel"},"mizar":{"title":"Mizar","file":"mizar"},"monkey":{"title":"Monkey","file":"monkey"},"moonscript":{"title":"MoonScript","file":"moonscript"},"n1ql":{"title":"N1QL","file":"n1ql"},"n4js":{"title":"N4JS","file":"n4js"},"nand2tetris-hdl":{"title":"Nand To Tetris HDL","file":"nand2tetris-hdl"},"nasm":{"title":"NASM","file":"nasm"},"neon":{"title":"NEON","file":"neon"},"nginx":{"title":"nginx","file":"nginx"},"nim":{"title":"Nim","file":"nim"},"nix":{"title":"Nix","file":"nix"},"nsis":{"title":"NSIS","file":"nsis"},"objectivec":{"title":"Objective-C","file":"objectivec"},"ocaml":{"title":"OCaml","file":"ocaml"},"opencl":{"title":"OpenCL","file":"opencl"},"oz":{"title":"Oz","file":"oz"},"parigp":{"title":"PARI/GP","file":"parigp"},"parser":{"title":"Parser","file":"parser"},"pascal":{"title":"Pascal","file":"pascal"},"pascaligo":{"title":"Pascaligo","file":"pascaligo"},"pcaxis":{"title":"PC-Axis","file":"pcaxis"},"peoplecode":{"title":"PeopleCode","file":"peoplecode"},"perl":{"title":"Perl","file":"perl"},"php":{"title":"PHP","file":"php"},"phpdoc":{"title":"PHPDoc","file":"phpdoc"},"php-extras":{"title":"PHP Extras","file":"php-extras"},"plsql":{"title":"PL/SQL","file":"plsql"},"powerquery":{"title":"PowerQuery","file":"powerquery"},"powershell":{"title":"PowerShell","file":"powershell"},"processing":{"title":"Processing","file":"processing"},"prolog":{"title":"Prolog","file":"prolog"},"properties":{"title":".properties","file":"properties"},"protobuf":{"title":"Protocol Buffers","file":"protobuf"},"pug":{"title":"Pug","file":"pug"},"puppet":{"title":"Puppet","file":"puppet"},"pure":{"title":"Pure","file":"pure"},"purebasic":{"title":"PureBasic","file":"purebasic"},"python":{"title":"Python","file":"python"},"q":{"title":"Q (kdb+ database)","file":"q"},"qml":{"title":"QML","file":"qml"},"qore":{"title":"Qore","file":"qore"},"r":{"title":"R","file":"r"},"racket":{"title":"Racket","file":"racket"},"jsx":{"title":"React JSX","file":"jsx"},"tsx":{"title":"React TSX","file":"tsx"},"reason":{"title":"Reason","file":"reason"},"regex":{"title":"Regex","file":"regex"},"renpy":{"title":"Ren'py","file":"renpy"},"rest":{"title":"reST (reStructuredText)","file":"rest"},"rip":{"title":"Rip","file":"rip"},"roboconf":{"title":"Roboconf","file":"roboconf"},"robotframework":{"title":"Robot Framework","file":"robotframework"},"ruby":{"title":"Ruby","file":"ruby"},"rust":{"title":"Rust","file":"rust"},"sas":{"title":"SAS","file":"sas"},"sass":{"title":"Sass (Sass)","file":"sass"},"scss":{"title":"Sass (Scss)","file":"scss"},"scala":{"title":"Scala","file":"scala"},"scheme":{"title":"Scheme","file":"scheme"},"shell-session":{"title":"Shell session","file":"shell-session"},"smali":{"title":"Smali","file":"smali"},"smalltalk":{"title":"Smalltalk","file":"smalltalk"},"smarty":{"title":"Smarty","file":"smarty"},"solidity":{"title":"Solidity (Ethereum)","file":"solidity"},"solution-file":{"title":"Solution file","file":"solution-file"},"soy":{"title":"Soy (Closure Template)","file":"soy"},"sparql":{"title":"SPARQL","file":"sparql"},"splunk-spl":{"title":"Splunk SPL","file":"splunk-spl"},"sqf":{"title":"SQF: Status Quo Function (Arma 3)","file":"sqf"},"sql":{"title":"SQL","file":"sql"},"iecst":{"title":"Structured Text (IEC 61131-3)","file":"iecst"},"stylus":{"title":"Stylus","file":"stylus"},"swift":{"title":"Swift","file":"swift"},"t4-templating":{"title":"T4 templating","file":"t4-templating"},"t4-cs":{"title":"T4 Text Templates (C#)","file":"t4-cs"},"t4-vb":{"title":"T4 Text Templates (VB)","file":"t4-vb"},"tap":{"title":"TAP","file":"tap"},"tcl":{"title":"Tcl","file":"tcl"},"tt2":{"title":"Template Toolkit 2","file":"tt2"},"textile":{"title":"Textile","file":"textile"},"toml":{"title":"TOML","file":"toml"},"turtle":{"title":"Turtle","file":"turtle"},"twig":{"title":"Twig","file":"twig"},"typescript":{"title":"TypeScript","file":"typescript"},"unrealscript":{"title":"UnrealScript","file":"unrealscript"},"vala":{"title":"Vala","file":"vala"},"vbnet":{"title":"VB.Net","file":"vbnet"},"velocity":{"title":"Velocity","file":"velocity"},"verilog":{"title":"Verilog","file":"verilog"},"vhdl":{"title":"VHDL","file":"vhdl"},"vim":{"title":"vim","file":"vim"},"visual-basic":{"title":"Visual Basic","file":"visual-basic"},"vba":{"title":"VBA","file":"visual-basic"},"warpscript":{"title":"WarpScript","file":"warpscript"},"wasm":{"title":"WebAssembly","file":"wasm"},"wiki":{"title":"Wiki markup","file":"wiki"},"xeora":{"title":"Xeora","file":"xeora"},"xml-doc":{"title":"XML doc (.net)","file":"xml-doc"},"xojo":{"title":"Xojo (REALbasic)","file":"xojo"},"xquery":{"title":"XQuery","file":"xquery"},"yaml":{"title":"YAML","file":"yaml"},"yang":{"title":"YANG","file":"yang"},"zig":{"title":"Zig","file":"zig"}} /*!END*/
+export default metadata;