Можно ли распечатать документ JSDOM? - PullRequest
0 голосов
/ 02 декабря 2019

Итак, я работаю над динамическим построением выходного файла 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, который я добавляю. То, что я хочу, это сериализовать и распечатать все это способом, который эффективно печатает, то есть включает разрывы строк и отступы. Это только для разработки, так что я могу более легко читать вывод при отладке.

Любой совет будет оценен. Спасибо.

...