Итак, я работаю над динамическим построением выходного файла HTML в приложении NodeJS. Работая в разработке, я хочу, чтобы этот файл был хорошо напечатан, чтобы я мог лучше проверить вывод. Вот то, что у меня так далеко, это очень голые кости, потому что я все еще выясняю, как я хочу это сделать:
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 (), который дает мне строковую версию HTML, который я создаю с помощью моего кода JS. Дело в том, что все это выглядит так:
<!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>
Единственные разрывы строк происходят из моего буквального CSS, который я добавляю. То, что я хочу, это сериализовать и распечатать все это способом, который эффективно печатает, то есть включает разрывы строк и отступы. Это только для разработки, так что я могу более легко читать вывод при отладке.
Любой совет будет оценен. Спасибо.