如何用beauty将文件写入html?
我想在test.html文件中写入以下html:如何用beauty将文件写入html?,html,node.js,js-beautify,Html,Node.js,Js Beautify,我想在test.html文件中写入以下html: <h2><strong><a href="http://awesome.com">AwesomeCom</a></strong><span>is awesome</span></h2> 太棒了 这将是洛克式的: <h2> <strong> <a href="http://awesome.com"
<h2><strong><a href="http://awesome.com">AwesomeCom</a></strong><span>is awesome</span></h2>
太棒了
这将是洛克式的:
<h2>
<strong>
<a href="http://awesome.com">
AwesomeCom
</a>
</strong>
<span>
is awesome
</span>
</h2>
太棒了
所以它看起来很美等等…我尝试了以下代码:
var html = require("html");
var beautify_html = require('js-beautify').html;
var data = '<h2><strong><a href="http://awesome.com">AwesomeCom</a></strong><span>is awesome</span></h2>';
var beautyHtml= beautify_html(data);
fs.writeFile('test.html',beautyHtml, function (err) {});
var html=require(“html”);
var beautify_html=require('js-beautify').html;
var数据=“太棒了”;
var beautyHtml=美化html(数据);
writeFile('test.html',beautyHtml,function(err){});
但它只是停留在一行…我写的错了吗?还是我要补充点什么?感谢您的帮助这个问题似乎与
js bestify
github页面上有几个相关的未解决问题:
如果将js beautify替换为,则在格式化为XML时,会得到所需的输出:
var fs = require('fs');
var pd = require('pretty-data').pd;
var data = '<h2><strong><a href="http://awesome.com">AwesomeCom</a></strong><span>is awesome</span></h2>';
var pdHtml= pd.xml(data);
fs.writeFile('test.html',pdHtml, function (err){});
var fs=require('fs');
var pd=require('pretty-data').pd;
var数据=“太棒了”;
var pdHtml=pd.xml(数据);
writeFile('test.html',pdHtml,function(err){});
导致
<h2>
<strong>
<a href="http://awesome.com">AwesomeCom</a>
</strong>
<span>is awesome</span>
</h2>
太棒了
你没有做错什么js beautify
肯定有缺陷和局限性。你很可能遇到了其中的一个。你应该提出一个问题
也就是说,将所有元素放在单独的行上是否正确,比最初看起来要复杂一些js beautify
比使用一系列正则表达式或将HTML视为XML的工具要准确得多,但它也很难在格式化HTML之前完全解析HTML,因此,一些看似微不足道的行为没有得到实现,因为工具没有足够的信息来安全地执行这些操作
示例1:HTML不是XML
例如,如果输入是XML,那么上面显示的所需格式化输出就可以了。但是,由于这是HTML,问题中显示的所需输出HTML将与输入显示不同
给定此HTML(示例输入):
给定此HTML(所需的输出):
给定输入的格式化输出HTML可能是以下任意一种:
<h2>
<strong><a href="http://awesome.com">AwesomeCom</a></strong><span>is awesome</span>
</h2>
<h2><strong><a href="http://awesome.com">AwesomeCom</a></strong><span>is awesome</span></h2>
示例3:接近“真实世界”输入
最后,让我们考虑一个更类似于输入的输入,在合理的地方有空间:
<h2>The <strong><a href="http://awesome.com">AwesomeCom</a></strong> <span>is awesome</span>!</h2>
示例3b:无效的“美化”HTML输出
有些人甚至会说下一个例子也可以,但我不太确定
<h2>
The
<strong>
<a href="http://awesome.com">AwesomeCom</a>
</strong>
<span>is awesome</span>!
</h2>
这个
太棒了!
它在
和
之间添加了一个以前没有的空格。布局引擎是否会在之前和之后合并空间?如果CSS更改了所有标签的字体大小,该怎么办?在某些情况下,这可能是安全的,但会改变同样多的布局。您可以从文件中读取,然后写入。它将保留格式,这比用字符串编写HTML更好(除非必须):
很抱歉,HTML不能像XML一样处理—元素之间的空间在许多情况下都有意义,具体取决于上下文。
AwesomeCom is awesome
<h2>
<strong><a href="http://awesome.com">AwesomeCom</a></strong><span>is awesome</span>
</h2>
<h2><strong><a href="http://awesome.com">AwesomeCom</a></strong><span>is awesome</span></h2>
<h2>The<strong><a href="http://awesome.com">AwesomeCom</a></strong><span>is awesome</span>!</h2>
<!-- Input -->
<h2><strong><a href="http://awesome.com">AwesomeCom</a></strong><span>is awesome</span>!</h2>
<h2>The<strong><a href="http://awesome.com">AwesomeCom</a></strong><span>is awesome</span>!</h2>
<!-- Output -->
<h2>
<strong>
<a href="http://awesome.com">AwesomeCom</a></strong><span>is awesome</span>!
</h2>
<h2>
The<strong><a href="http://awesome.com">AwesomeCom</a></strong><span>is awesome</span>!
</h2>
<h2>The <strong><a href="http://awesome.com">AwesomeCom</a></strong> <span>is awesome</span>!</h2>
<h2>The <strong><a href="http://awesome.com">AwesomeCom</a></strong> <span>is awesome</span>!</h2>
<h2>
The <strong><a href="http://awesome.com">AwesomeCom</a></strong>
<span>is awesome</span>!
</h2>
<h2>
The
<strong><a href="http://awesome.com">AwesomeCom</a></strong>
<span>is awesome</span>!
</h2>
<h2>
The
<strong>
<a href="http://awesome.com">AwesomeCom</a>
</strong>
<span>is awesome</span>!
</h2>
fs.readFile(fs.realpathSync('input.html'), 'utf8', function (err, data){
if (err) {
return console.log(err);
}
fs.writeFile('output.html', data, function (err) {
if (err) return console.log(err);
console.log('File writing done');
});
});