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

18 lines
1.3 KiB
Markdown

---
'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.