0
Fork 0
mirror of https://github.com/withastro/astro.git synced 2025-01-20 22:12:38 -05:00
astro/.changeset/tame-flies-confess.md
Matthew Phillips fad4f64aa1
Implements build.format: 'preserve' (#9764)
* Implements build.format: 'preserve'

* Restructure test

* Add a test for base

* Update .changeset/tame-flies-confess.md

Co-authored-by: Florian Lefebvre <contact@florian-lefebvre.dev>

* Add trailing slash + i18n testing

* Update packages/astro/src/@types/astro.ts

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* Update .changeset/tame-flies-confess.md

Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>

* tiny punctuation/conjunction nit fixes

---------

Co-authored-by: Florian Lefebvre <contact@florian-lefebvre.dev>
Co-authored-by: Emanuele Stoppa <my.burning@gmail.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
2024-01-31 14:39:20 +00:00

1.3 KiB

astro
minor

Adds a new build.format configuration option: 'preserve'. This option will preserve your source structure in the final build.

The existing configuration options, file and directory, either build all of your HTML pages as files matching the route name (e.g. /about.html) or build all your files as index.html within a nested directory structure (e.g. /about/index.html), respectively. It was not previously possible to control the HTML file built on a per-file basis.

One limitation of build.format: 'file' is that it cannot create index.html files for any individual routes (other than the base path of /) while otherwise building named files. Creating explicit index pages within your file structure still generates a file named for the page route (e.g. src/pages/about/index.astro builds /about.html) when using the file configuration option.

Rather than make a breaking change to allow build.format: 'file' to be more flexible, we decided to create a new build.format: 'preserve'.

The new format will preserve how the filesystem is structured and make sure that is mirrored over to production. Using this option:

  • about.astro becomes about.html
  • about/index.astro becomes about/index.html

See the [build.format configuration options reference] for more details.