如何将 HTML 文档作为起始值传递给 CodeMirror?
How do I pass an HTML document to CodeMirror as a start value?
我有一个 HTML 文档存储在一个字符串中,如下所示:
var htmlAsString = "<!DOCTYPE html><html><head>........";
我尝试使用上述 HTML 文档初始化我的 CodeMirror 编辑器,如下所示:
var cm = CodeMirror($('#some-div')[0], {
value: htmlAsString,
mode: "htmlmixed",
autofocus: true,
lineNumbers: true
});
然而,所有这一切都是创建一个代码镜像编辑器,其中包含一个包含 htmlAsString
字符串的不可点击的行。
我显然希望我的代码镜像编辑器使用所有 HTML 格式良好的 xml 进行初始化(缩进、嵌套、间距、换行等),以便开发人员可以使用Code Mirror来edit/update即HTML.
我做错了什么?
您的 HTML 字符串不包含任何换行符或 tabs/spaces.
您需要做的是通过 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});
我有一个 HTML 文档存储在一个字符串中,如下所示:
var htmlAsString = "<!DOCTYPE html><html><head>........";
我尝试使用上述 HTML 文档初始化我的 CodeMirror 编辑器,如下所示:
var cm = CodeMirror($('#some-div')[0], {
value: htmlAsString,
mode: "htmlmixed",
autofocus: true,
lineNumbers: true
});
然而,所有这一切都是创建一个代码镜像编辑器,其中包含一个包含 htmlAsString
字符串的不可点击的行。
我显然希望我的代码镜像编辑器使用所有 HTML 格式良好的 xml 进行初始化(缩进、嵌套、间距、换行等),以便开发人员可以使用Code Mirror来edit/update即HTML.
我做错了什么?
您的 HTML 字符串不包含任何换行符或 tabs/spaces.
您需要做的是通过 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});