gpt4 book ai didi

javascript - 是否可以漂亮地打印 JSDOM 文档?

转载 作者:行者123 更新时间:2023-12-02 22:23:49 25 4
gpt4 key购买 nike

我正在致力于在 NodeJS 应用程序中动态构建 HTML 输出文件。在开发过程中,我希望这个文件打印得漂亮,这样我就可以更好地检查输出。这是我到目前为止所得到的,它非常简单,因为我仍在弄清楚我想如何做到这一点:

const { JSDOM } = require('jsdom');

const dom = new JSDOM('<!DOCTYPE html><head /><body /></html>');
const document = dom.window.document;

const css = `
.row {
display: flex;
flex-direction: row;
}

.col {
display: flex;
flex-direction: column;
}
`;

const createElement = ({ tagName, textContent }) => {
const elem = document.createElement(tagName);
elem.textContent = textContent;
return elem;
};

document.head.appendChild(createElement({
tagName: 'title',
textContent: 'Shopping List'
}));
document.head.appendChild(createElement({
tagName: 'style',
textContent: css
}));

console.log(dom.serialize()); // TODO delete this

如您所见,我正在记录 dom.serialize() 的输出,它为我提供了使用 JS 代码构建的 HTML 的字符串版本。事情是这样的:

<!DOCTYPE html><html><head><title>Shopping List</title><style>
.row {
display: flex;
flex-direction: row;
}

.col {
display: flex;
flex-direction: column;
}
</style></head><body></body></html>

唯一的换行符来 self 添加的文字 CSS。我想要的是以有效地 pretty-print 的方式序列化并打印所有内容,即包括换行符和缩进。这仅用于开发,以便我在调试时可以更轻松地读取输出。

最佳答案

您可以使用名为 pretty 的 npm 包.

var pretty = require('pretty');

pretty(STRING_OF_HTML);

之前

<!DOCTYPE html> <html lang="en"> <head> 
<meta charset="UTF-8"> <title>Home</title>
</head> <body> This is content. </body> </html>

之后

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Home</title>
</head>
<body>
This is content.
</body>
</html>

关于javascript - 是否可以漂亮地打印 JSDOM 文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59130773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com