forked from 0x2620/oxjs
various documentation-related changes
This commit is contained in:
parent
b6fdf0c28b
commit
a6ed310087
13 changed files with 880 additions and 301 deletions
|
|
@ -39,12 +39,11 @@ Ox.SyntaxHighlighter = function(options, self) {
|
|||
self.source = '';
|
||||
self.tokens = Ox.tokenize(self.options.source);
|
||||
self.tokens.forEach(function(token, i) {
|
||||
var classNames, tokenString;
|
||||
var classNames;
|
||||
if (
|
||||
!(self.options.stripComments && token.type == 'comment')
|
||||
) {
|
||||
classNames = 'Ox' + Ox.toTitleCase(token.type);
|
||||
tokenString = self.options.source.substr(self.cursor, token.length);
|
||||
if (token.type == 'whitespace') {
|
||||
if (isAfterLinebreak() && hasIrregularSpaces()) {
|
||||
classNames += ' OxLeading'
|
||||
|
|
@ -53,7 +52,7 @@ Ox.SyntaxHighlighter = function(options, self) {
|
|||
}
|
||||
}
|
||||
self.source += '<span class="' + classNames + '">' +
|
||||
encodeToken(tokenString, token.type) + '</span>';
|
||||
encodeToken(token.source, token.type) + '</span>';
|
||||
}
|
||||
self.cursor += token.length;
|
||||
function isAfterLinebreak() {
|
||||
|
|
@ -65,7 +64,7 @@ Ox.SyntaxHighlighter = function(options, self) {
|
|||
self.tokens[i + 1].type == 'linebreak';
|
||||
}
|
||||
function hasIrregularSpaces() {
|
||||
return tokenString.split('').reduce(function(prev, curr) {
|
||||
return token.source.split('').reduce(function(prev, curr) {
|
||||
return prev + (curr == ' ' ? 1 : 0);
|
||||
}, 0) % self.options.tabLength;
|
||||
}
|
||||
|
|
@ -108,24 +107,24 @@ Ox.SyntaxHighlighter = function(options, self) {
|
|||
.html(self.source)
|
||||
.appendTo(that);
|
||||
|
||||
function encodeToken(str, type) {
|
||||
function encodeToken(source, type) {
|
||||
var linebreak = '<br/>',
|
||||
tab = Ox.repeat(' ', self.options.tabLength);
|
||||
if (self.options.showLinebreaks) {
|
||||
if (type == 'linebreak') {
|
||||
linebreak = '¶' + linebreak;
|
||||
linebreak = '\u21A9' + linebreak;
|
||||
} else {
|
||||
linebreak = '<span class="OxLinebreak">¶</span>' + linebreak;
|
||||
linebreak = '<span class="OxLinebreak">\u21A9</span>' + linebreak;
|
||||
}
|
||||
}
|
||||
if (self.options.showTabs) {
|
||||
tab = '<span class="OxTab">\u2192' + tab.substr(6) + '</span>';
|
||||
}
|
||||
str = Ox.encodeHTML(str)
|
||||
source = Ox.encodeHTML(source)
|
||||
.replace(/ /g, ' ')
|
||||
.replace(/\t/g, tab)
|
||||
.replace(/\n/g, linebreak);
|
||||
return str;
|
||||
return source;
|
||||
}
|
||||
|
||||
self.setOption = function() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue