I’m back to coding a small business website and it seems silly to have like 40% duplicate code (head and menu) across 10 HTML-pages. On the other hand, it also seems overkill to throw something like Next.js at such a small project.
Is there a simple way to mitigate the duplicate code by including a head.html within every page either server- or client-side?
3
Answers
You can’t do this with client JavaScript coz it running after header parsing. You should use server side technologies for this. From SSI to PHP 🙂
I prefer PHP. Change your .html (static) pages into .php (dynamic) pages. Just ‘save as’. You can separate pretty much anything into templates.
You have the following simplified file structure:
The
index.php
contains + calls theheader.php
+home.php
+footer.php
The
header.php
has your menus, etc.the
home.php
can have your slider, and more sections, etc.the
footer.php
has your menus + copyright, etc.the
style.css
has your styles and you can have many.css
files depending what you want styled.You can expand this to your other pages:
about.php
,services.php
,contact.php
, etc.Into
index.php
file you add something likeClose
</html>
bracket at the end of your footer.One page or little repeated sections call the other and redundancy is prevented.
Jekyll is pretty good and easy to use. You can strip off all the features you don’t need. Has template filling available as well. It outputs static html for the whole site, so you don’t need your server to be running any daemons.