google-code-prettify中代码使用br造成的行号只有1的BUG;

在使用code-prettify的时候,有遇到一个BUG;

当时使用的是国内一个博客提供给的链接,下载来后,有问题的;

问题:当从webstrome内复制的代码,直接复制近WLW的时候,行号只有第一行;其它的没有了;

clone github的源码发现;

这个BUG已经被别人修复了;但是它的压缩包和src文件内还是以前的;

需要手动修改下;

找到 walk 这个方法;

function walk(node) {
    var type = node.nodeType;
    if (type == 1 && !nocode.test(node.className)) {  // Element
        if ('br' === node.nodeName.toLowerCase()) {
            breakAfter(node);
            // Discard the <BR> since it is now flush against a </LI>.
            if (node.parentNode) {
                node.parentNode.removeChild(node);
            }
        } else {
            for (var child = node.firstChild; child; child = child.nextSibling) {
                walk(child);
            }
        }
    } else if ((type == 3 || type == 4) && isPreformatted) {  // Text
        var text = node.nodeValue;
        var match = text.match(lineBreak);
        if (match) {
            var firstLine = text.substring(0, match.index);
            node.nodeValue = firstLine;
            var tail = text.substring(match.index + match[0].length);
            if (tail) {
                var parent = node.parentNode;
                parent.insertBefore(
                    document.createTextNode(tail), node.nextSibling);
            }
            breakAfter(node);
            if (!firstLine) {
                // Don't leave blank text nodes in the DOM.
                node.parentNode.removeChild(node);
            }
        }
    }
}

请把

if (‘br’ === node.nodeName) {
//修改为下面这个
if (‘br’ === node.nodeName.toLowerCase()) {

然后压缩后就可以了;

Github的仓库地址:https://github.com/jmblog/color-themes-for-google-code-prettify

~~~

未经允许不得转载:朱邦邦的WEB前端开发博客 » google-code-prettify中代码使用br造成的行号只有1的BUG;

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址