代码之家  ›  专栏  ›  技术社区  ›  Kawd

如何将HTML文档作为起始值传递给CodeMirror?

  •  0
  • Kawd  · 技术社区  · 10 年前

    我有一个HTML文档存储在字符串中,如下所示:

    var htmlAsString = "<!DOCTYPE html><html><head>........";
    

    我尝试用上面的HTML文档初始化CodeMirror编辑器,如下所示:

    var cm = CodeMirror($('#some-div')[0], {
      value: htmlAsString,
      mode: "htmlmixed",
      autofocus: true,
      lineNumbers: true
    });
    

    然而,所做的只是创建一个代码镜像编辑器,其中包含 htmlAsString 一串

    我显然希望我的代码镜像编辑器初始化为所有xml格式的HTML(缩进、嵌套、间距、换行等),以便开发人员可以使用代码镜像来编辑/更新HTML。

    我做错了什么?

    1 回复  |  直到 10 年前
        1
  •  1
  •   jennas    10 年前

    HTML字符串不包含任何换行符或制表符/空格。

    您需要做的是通过HTML格式器解析字符串。

    CodeMirror通过包含 formatting.js

    这里是一个工作演示: http://codemirror.net/2/demo/formatting.html

    初始化代码镜像后,您将需要执行类似于以下代码的操作。

    var cm = CodeMirror($('#some-div')[0], {
      value: htmlAsString,
      mode: "htmlmixed",
      autofocus: true,
      lineNumbers: true
    });
    
    var totalLines = cm.lineCount();  
    cm.autoFormatRange({line:0, ch:0}, {line:totalLines});