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?

  • MossBear@lemmy.worldOP
    link
    fedilink
    arrow-up
    2
    ·
    11 months ago

    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
      link
      fedilink
      English
      arrow-up
      4
      ·
      11 months ago

      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.worldOP
        link
        fedilink
        arrow-up
        2
        ·
        11 months ago

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

    • Null User Object@programming.dev
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      11 months ago

      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.

    • Tippon@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      11 months ago

      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