Refactor site templates to include footer partial and update page paths

- Added a footer partial to improve code reusability across templates.
- Updated paths for the 'about' and 'badges' pages to 'om-oss.html' and 'om-markning.html', respectively.
- Removed redundant footer code from individual templates, replacing it with a dynamic footer inclusion.
This commit is contained in:
2026-01-26 00:39:41 +01:00
parent cfb35a3c38
commit 28f232571d
5 changed files with 27 additions and 46 deletions

View File

@@ -199,7 +199,8 @@ function generateEntryPage(entry, template) {
title: `${entry.title} | Ursprung Sverige`,
subtitle: entry.title,
content: entryHtml,
year: new Date().getFullYear()
year: new Date().getFullYear(),
footer: getFooter('../')
});
}
@@ -275,6 +276,19 @@ function generateFilterHTML(filters) {
`;
}
// Load footer partial
function getFooter(rootPath = '') {
const footerPath = path.join(TEMPLATE_DIR, 'partials', 'footer.html');
if (!fs.existsSync(footerPath)) {
return '';
}
const footerTemplate = fs.readFileSync(footerPath, 'utf-8');
return renderTemplate(footerTemplate, {
year: new Date().getFullYear(),
rootPath
});
}
// Main build function
function build() {
console.log('Building site...');
@@ -313,28 +327,31 @@ function build() {
filters: generateFilterHTML(filters),
entries: generateEntryCards(entries),
entryCount: entries.length,
year: new Date().getFullYear()
year: new Date().getFullYear(),
footer: getFooter('')
});
// Write index.html
fs.writeFileSync(path.join(DIST_DIR, 'index.html'), indexHtml);
// Generate badges info page
const badgesTemplatePath = path.join(TEMPLATE_DIR, 'badges.html');
const badgesTemplatePath = path.join(TEMPLATE_DIR, 'om-markning.html');
if (fs.existsSync(badgesTemplatePath)) {
const badgesTemplate = fs.readFileSync(badgesTemplatePath, 'utf-8');
const badgesHtml = renderTemplate(badgesTemplate, {
year: new Date().getFullYear()
year: new Date().getFullYear(),
footer: getFooter('')
});
fs.writeFileSync(path.join(DIST_DIR, 'om-markning.html'), badgesHtml);
}
// Generate about page
const aboutTemplatePath = path.join(TEMPLATE_DIR, 'about.html');
const aboutTemplatePath = path.join(TEMPLATE_DIR, 'om-oss.html');
if (fs.existsSync(aboutTemplatePath)) {
const aboutTemplate = fs.readFileSync(aboutTemplatePath, 'utf-8');
const aboutHtml = renderTemplate(aboutTemplate, {
year: new Date().getFullYear()
year: new Date().getFullYear(),
footer: getFooter('')
});
fs.writeFileSync(path.join(DIST_DIR, 'om-oss.html'), aboutHtml);
}

View File

@@ -75,15 +75,6 @@
</div>
</main>
<footer class="site-footer">
<div class="container">
<p>Ursprung Sverige &copy; {{ year }}</p>
<p class="footer-tagline">Stöd svensk ekonomi och kultur</p>
<nav class="footer-nav">
<a href="om-oss.html">Om oss</a>
<a href="om-markning.html">Om märkning</a>
</nav>
</div>
</footer>
{{ footer }}
</body>
</html>

View File

@@ -65,15 +65,6 @@
</div>
</main>
<footer class="site-footer">
<div class="container">
<p>Ursprung Sverige &copy; {{ year }}</p>
<p class="footer-tagline">Stöd svensk ekonomi och kultur</p>
<nav class="footer-nav">
<a href="om-oss.html">Om oss</a>
<a href="om-markning.html">Om märkning</a>
</nav>
</div>
</footer>
{{ footer }}
</body>
</html>

View File

@@ -21,15 +21,6 @@
</div>
</main>
<footer class="site-footer">
<div class="container">
<p>Ursprung Sverige &copy; {{ year }}</p>
<p class="footer-tagline">Stöd svensk ekonomi och kultur</p>
<nav class="footer-nav">
<a href="../om-oss.html">Om oss</a>
<a href="../om-markning.html">Om märkning</a>
</nav>
</div>
</footer>
{{ footer }}
</body>
</html>

View File

@@ -43,16 +43,7 @@
</div>
</main>
<footer class="site-footer">
<div class="container">
<p>Ursprung Sverige &copy; {{ year }}</p>
<p class="footer-tagline">Stöd svensk ekonomi och kultur</p>
<nav class="footer-nav">
<a href="om-oss.html">Om oss</a>
<a href="om-markning.html">Om märkning</a>
</nav>
</div>
</footer>
{{ footer }}
<script src="filter.js"></script>
</body>