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

How do I pass an HTML document to CodeMirror as a start value?

本文关键字:值传 CodeMirror HTML 文档      更新时间:2023-09-26

>我有一个存储在字符串中的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。

我做错了什么?

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

您需要做的是通过 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});