From 77c482ed165909a3f4cf2ecf9b1158e2aaedde7e Mon Sep 17 00:00:00 2001 From: Enrico Gruner Date: Sun, 9 Jun 2024 23:53:52 +0200 Subject: [PATCH] chore(docs) - reduce build time --- docs/_utilities/replacer.cjs | 9 ++++++--- docs/eleventy.config.cjs | 13 +++++++------ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/docs/_utilities/replacer.cjs b/docs/_utilities/replacer.cjs index ddc4d4a3..5d7908ea 100644 --- a/docs/_utilities/replacer.cjs +++ b/docs/_utilities/replacer.cjs @@ -9,11 +9,14 @@ */ /** - * @param {Document} content + * @param {String} rawContent * @param {Replacements} replacements */ -module.exports = function (content, replacements) { +module.exports = function (rawContent, replacements) { + let content = rawContent; replacements.forEach(replacement => { - content.body.innerHTML = content.body.innerHTML.replaceAll(replacement.pattern, replacement.replacement); + content = content.replaceAll(replacement.pattern, replacement.replacement); }); + + return content; }; diff --git a/docs/eleventy.config.cjs b/docs/eleventy.config.cjs index 4ca4cbd4..49084011 100644 --- a/docs/eleventy.config.cjs +++ b/docs/eleventy.config.cjs @@ -115,7 +115,13 @@ module.exports = function (eleventyConfig) { // // Transforms // - eleventyConfig.addTransform('html-transform', function (content) { + eleventyConfig.addTransform('html-transform', function (rawContent) { + let content = replacer(rawContent, [ + { pattern: '%VERSION%', replacement: customElementsManifest.package.version }, + { pattern: '%CDNDIR%', replacement: cdndir }, + { pattern: '%NPMDIR%', replacement: npmdir } + ]); + // Parse the template and get a Document object const doc = new JSDOM(content, { // We must set a default URL so links are parsed with a hostname. Let's use a bogus TLD so we can easily @@ -140,11 +146,6 @@ module.exports = function (eleventyConfig) { scrollingTables(doc); copyCodeButtons(doc); // must be after codePreviews + highlightCodeBlocks typography(doc, '#content'); - replacer(doc, [ - { pattern: '%VERSION%', replacement: customElementsManifest.package.version }, - { pattern: '%CDNDIR%', replacement: cdndir }, - { pattern: '%NPMDIR%', replacement: npmdir } - ]); // Serialize the Document object to an HTML string and prepend the doctype content = `\n${doc.documentElement.outerHTML}`;