12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- require(["dojo/node!fs", "dojox/json/ref", "dojo/_base/kernel"], function(fs, ref, kernel){
- var nodeRequire = kernel.global.require && kernel.global.require.nodeRequire;
- var HIGHLIGHT_DIR = dojo.config.highlightJsDir;
-
- hljs = nodeRequire(HIGHLIGHT_DIR + "highlight.js");
- var refs = [];
- function regExpsRep(l,p) {
- refs.push(l);
- for (x in {"begin":1, "end":2, "lexemes":3, "illegal":4}) {
- if (l[x] && l[x].source) {
- l[x] = l[x].source;
- }
- }
- for (var i in l) {
- var doneIt = false;
- for (var j=0; j<refs.length; j++) {
- if (refs[j] == l[i]) {
- doneIt = true;
- }
- }
- if (l[i] && typeof l[i] == 'object' && !doneIt) {
- regExpsRep(l[i], l[i]);
- }
- }
- }
- function patch(s) {
- return s.replace(/\\u([0-9A-Fa-f]+)/g, "\\x{$1}");
- }
- function exportLang(lang) {
- var x = nodeRequire(HIGHLIGHT_DIR + "languages/" + lang + ".js");
- var l = x(hljs);
- refs = [];
- regExpsRep(l);
- hljs.registerLanguage(lang, x);
- console.log(lang);
- console.log(patch(dojox.json.ref.toJson(l)));
- }
- fs.readdir(HIGHLIGHT_DIR + "languages/",function(err,files){
- if(err) {
- throw err;
- }
- files.forEach(function(file){
- exportLang(file.replace(/\.js$/, ""));
- });
- });
- });
|