Skip to content

Build-time configuration of index.html #845

Open

Description

@sandstrom

I'd like to gauge interest / comments for an easier way to customize index.html output.

Use-case

We have some dynamic values that we want to interpolate into the index.html file at build time. For example, static classes on the <html> element and special meta attributes.

Ember already provides the content-for hook, but adding individual attributes to specific html elements is trickier.

Possible solution

  • Exposing the internal configReplacePatterns API, for example a addReplacePattern method or a key under config (environment.js), say additionalReplacePatterns: [ … ]
  • Allowing custom 'slots' for use with {{content-for 'my-slot'}}.

Reference code

https://github.com/ember-cli/ember-cli/blob/b24b73b388934796ca915ca665b48a27c857199b/lib/utilities/ember-app-utils.js#L169

Activity

  1. jrjohnson commented on Aug 18, 2022

    @jrjohnson
    SponsorContributor

    It doesn't meet your needs here, but for discussion sake what we do is use ember-cli-deploy-json-config to extract our index.html into JSON and then parse that json on the server to send a final index.html with these dynamic parts added there.

  2. sandstrom commented on Aug 19, 2022

    @sandstrom
    ContributorAuthor

    Thanks, good suggestions!

    We also have a hack in place to make this work. But it would be cleaner if something like this was available in core. Customizing index.html is pretty common.

  3. bertdeblock commented on Feb 5, 2023

    @bertdeblock
    Member

    I assume, under Embroider (if it's possible / allowed at some point), that using https://github.com/jantimon/html-webpack-plugin might be an option to customise the final index.html?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions