this post was submitted on 03 Aug 2023
14 points (100.0% liked)

Web Development

0 readers
1 users here now

Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient

founded 1 year ago
MODERATORS
 

I'm not new to programming, but I am somewhat new to web development and I'm trying to figure out the most preferred way of taking a standalone header from one html document and adding it to other html documents without code duplication. If possible I want to do this with Javascript so I can learn with more basic tools before expanding further.

I've researched this a fair bit, but the advice is a bit confusing since it either seems out of date or possibly not the most secure way of handling things. Is there a preferred way of doing something like this?

you are viewing a single comment's thread
view the rest of the comments
[–] MossBear@lemmy.world 2 points 1 year ago (3 children)

Like I mentioned, the problem I'm trying to solve is creating a reusable header in one html document and injecting it into another rather than copying the same code across multiple pages. Is there another way that this is typically handled?

[–] silas@programming.dev 3 points 1 year ago (1 children)

I commented on another comment of yours too, but I think the easiest ways to do this would be with web components or with PHP includes

If you want to dive deeper, you can learn a javascript framework like Astro or Svelte which have more of a learning curve but are better at organizing larger or more powerful websites/web apps

[–] MossBear@lemmy.world 2 points 1 year ago

Thanks for the recommendation! I'm not familiar with Astro or Svelte, so I'll look into those!

[–] nulluser@programming.dev 3 points 1 year ago* (last edited 1 year ago) (1 children)

This is normally done on the server, by whatever tool is building the final html pages. If it's just a static website (doesn't take user input, glorified brochure), then one might use a static site generator (eg Jeckyll), each of which have their own mechanism for sharing common snippets. If building a more dynamic website with a database backend, then one would be using other tool (eg. Ruby on Rails), which would also each have their own mechanisms for sharing common snippets.

[–] MossBear@lemmy.world 1 points 1 year ago

Thanks! This is helpful for understanding.

[–] Tippon@lemmy.world 2 points 1 year ago (1 children)

I'm still new to this, so I might be getting things backwards, but I think I've recently done what you're looking for.

I'm making a web app for a small music festival, and was duplicating the page links on every page, and having to update them all every time something changed. I found a technique online to put the links into a header.js file, then just call the script in every new page. I did the same with the footer, and created a template for a blank page with the html that couldn't go into the header.

I'm not near my computer to get the site with the instructions, but my Github is here if it helps. Just bear in mind that I'm new, so might not have done it in the best way

https://github.com/Tippon/Cwmfest-test

[–] MossBear@lemmy.world 2 points 1 year ago (1 children)

Yeah, this is pretty much what I was looking to do. Thanks! It's nice to see a working example.

[–] Tippon@lemmy.world 2 points 1 year ago

Brilliant, glad I could help :)