javascript - 使用 Highlight.js 维护标记格式

标签 javascript jquery highlight.js

我正在尝试在我的网页上显示动态生成的 HTML 并使用 highlight.js 进行突出显示/格式化.我的突出显示工作正常,但缩进不正确。这是 jsFiddle .

代码如下: <div class="parent">parentContent<div class="child">childContent</div><div class="child">childContent</div><div class="child">childContent</div></div>

而我想像在 IDE 中那样显示:

<div class="parent">
    parentContent
   <div class="child">
       childContent
   </div>
   <div class="child">
       childContent
   </div>
   <div class="child">
       childContent
   </div>
</div>

我知道它叫做 highlight.js不是format.js :) 但我认为这是可能的,我没有多少运气从 API 得到答案。 .我尝试通过 hljs.configure({ useBR: true }); 配置换行符和 fixMarkup('value')看起来很有希望,但我没有成功实现它。

最佳答案

听我说完。我知道这可能看起来很笨拙,但您可以将您的 html 作为一个字符串放在一起,如下所示:

for ( var i = 0; i < 3; i++){
    var html = '<div class="parent">' +
        '\n\tparentContent';

    for ( var j = 0; j < 3; j++){
        html += '\n\t<div class="child">childContent</div>';
    }

    html += '\n</div>\n'

    $('.grid-container')[0].innerHTML += html;
}

这使您可以完全控制空白区域。它还可能更快,因为您不会多次附加到 DOM,而只是一次。当你设置 .grid-containerinnerHTML 时,你只会触发一次重绘。

JSFiddle 在这里:https://jsfiddle.net/dgrundel/fjLwa592/1/

关于javascript - 使用 Highlight.js 维护标记格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31092512/

相关文章:

javascript - event.preventDefault 阻止 ajax 调用

Reveal.js:在代码中添加片段

javascript - 在 JS 中格式化 Date()

javascript - 捕获与元素内联的javascript中的光标位置

javascript - jquery获取同类型索引

javascript - jQuery 对话框 - 对象不支持属性或方法 'dialog'

javascript - 如何在 Nodejs 中使用 request 接收来自 send 的 post 请求值?

jquery - 如何在不重新加载页面的情况下提交表单并更新颜色框

javascript - Highlight.js 不尊重子模式的父正则表达式

angular - highlight.js 不适用于 Angular 2