2009-10-06
google-code-prettify で10文字ごとに色分けするハンドラー
function createMyDecorator(){ /** * 10文字ごとにトークンわけする。 */ function tokenizer(source){ var tokens = []; for(i=0;i < source.length;i += 10){ tokens.push(source.substr(i,10)); } return tokens; } var decorate = function(job){ var sourceCode = job.source, basePos = job.basePos; var decorations = [basePos, PR.PR_PLAIN]; var tokens = tokenizer(sourceCode); var pos = 0; for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti){ var token = tokens[ti]; var tokenStart = pos; pos += token.length; style = ti % 2 ? PR.PR_STRING : PR.PR_PLAIN; //交互に色分け decorations.push(basePos + tokenStart, style); } job.decorations = decorations; }; return decorate; }; PR.registerLangHandler(createMyDecorator(), ['d']);