mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-21 16:06:16 -04:00
first-commit
This commit is contained in:
commit
325c322a27
207 changed files with 35989 additions and 0 deletions
62
doc/jsdoc-toolkit/app/plugins/publishSrcHilite.js
Normal file
62
doc/jsdoc-toolkit/app/plugins/publishSrcHilite.js
Normal file
|
@ -0,0 +1,62 @@
|
|||
JSDOC.PluginManager.registerPlugin(
|
||||
"JSDOC.publishSrcHilite",
|
||||
{
|
||||
onPublishSrc: function(src) {
|
||||
if (src.path in JsHilite.cache) {
|
||||
return; // already generated src code
|
||||
}
|
||||
else JsHilite.cache[src.path] = true;
|
||||
|
||||
try {
|
||||
var sourceCode = IO.readFile(src.path);
|
||||
}
|
||||
catch(e) {
|
||||
print(e.message);
|
||||
quit();
|
||||
}
|
||||
|
||||
var hiliter = new JsHilite(sourceCode, src.charset);
|
||||
src.hilited = hiliter.hilite();
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
function JsHilite(src, charset) {
|
||||
|
||||
var tr = new JSDOC.TokenReader();
|
||||
|
||||
tr.keepComments = true;
|
||||
tr.keepDocs = true;
|
||||
tr.keepWhite = true;
|
||||
|
||||
this.tokens = tr.tokenize(new JSDOC.TextStream(src));
|
||||
|
||||
// TODO is redefining toString() the best way?
|
||||
JSDOC.Token.prototype.toString = function() {
|
||||
return "<span class=\""+this.type+"\">"+this.data.replace(/</g, "<")+"</span>";
|
||||
}
|
||||
|
||||
if (!charset) charset = "utf-8";
|
||||
|
||||
this.header = '<html><head><meta http-equiv="content-type" content="text/html; charset='+charset+'"> '+
|
||||
"<style>\n\
|
||||
.KEYW {color: #933;}\n\
|
||||
.COMM {color: #bbb; font-style: italic;}\n\
|
||||
.NUMB {color: #393;}\n\
|
||||
.STRN {color: #393;}\n\
|
||||
.REGX {color: #339;}\n\
|
||||
.line {border-right: 1px dotted #666; color: #666; font-style: normal;}\n\
|
||||
</style></head><body><pre>";
|
||||
this.footer = "</pre></body></html>";
|
||||
this.showLinenumbers = true;
|
||||
}
|
||||
|
||||
JsHilite.cache = {};
|
||||
|
||||
JsHilite.prototype.hilite = function() {
|
||||
var hilited = this.tokens.join("");
|
||||
var line = 1;
|
||||
if (this.showLinenumbers) hilited = hilited.replace(/(^|\n)/g, function(m){return m+"<span class='line'>"+((line<10)? " ":"")+((line<100)? " ":"")+(line++)+"</span> "});
|
||||
|
||||
return this.header+hilited+this.footer;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue