Atlas Changelog
3.3.0 - 2025-04-26
New i18n features!
New content collection localization capabilities, where individual blog posts in different languages can be linked with a
mappingKey
in the frontmatter. This allows content collections to be easily translated without needing to update therouteTranslations
object each time!- This is accomplished in the new
localizedCollections
object
src/config/translationData.json.ts /*** * Content collection translations used by the language switcher and hreflang generator** Per-collection, per-locale route base mapping (collections to localize are the keys)** If you have a key of "blog" then the blog content collection will be localized. This will look* for a "mappingKey" in the entry metadata, and use that to map the entry to the correct locale** You can use the locale value to map the collection to a different route if desired** Note: this does NOT affect the getLocalizedRoute() function. To translate the base routes use the routeTranslations object*/export const localizedCollections = {blog: {en: "blog",fr: "blog",},// Add more collections/locales as needed} as const;- This is accomplished in the new
Add wildcard support in the
routeTranslations
object, allowing you to map multiple routes at once.- For example, you could route all English category routes
/categories/*
to the base French route of/categories
src/config/translationData.json.ts /*** * Route translations are used to translate route names for the language switcher component* This can be useful for SEO reasons. The key does not matter, it just needs to match between languages** ## Notes** - These routes must be everything after the base domain. So if this is "atlas.com/blog", the route would be "blog"* - Or if this is "atlas.com/legal/privacy", the route would be "legal/privacy"* - This also supports wildcards for language switcher and SEO purposes, and works in conjunction with the localizedCollections object below* - For example, "categories/*" would match "categories/1" or "categories/2" etc for that language.*/export const routeTranslations = {en: {overviewKey: "overview",categoryKey: "categories",categoryKey2: "categories/*",categoryKey3: "categories",},fr: {overviewKey: "apercu",categoryKey: "categories",categoryKey2: "categories",categoryKey3: "categories/*",},} as const;- For example, you could route all English category routes
You’ll also find a new
getLocalizedRoute()
function as a drop-in replacement forgetRelativeLocaleUrl()
. This is more flexible as it utilizes therouteTranslations
object to auto-translate routes for you in components. You can use it like this:import { getLocaleFromUrl } from "@js/localeUtils";import { getLocalizedRoute } from "@js/translationUtils";const currLocale = getLocaleFromUrl(Astro.url);const route = getLocalizedRoute(currLocale, "/overview");// for the above routeTranslations, this would become "/fr/apercu" for FrenchAdjust existing i18n config script to account for additional features
Lock package version to limit potential issues with new package updates
Improve
.prettierignore
fileUpgrade to Astro 5.7.5
Update other dependencies
3.2.1 - 2025-04-16
- Fix: blog post content collection
updatedDate
now allows forz.date()
(likepubDate
) - Fix: package versions now locked to limit potential issues with new package updates
- Improve focus states when tabbing through page elements
- Upgrade to Astro 5.7.1
- Removed experimental SVG setup in Astro config file as a result (it is now a stable feature)
- Update other dependencies
3.2.0 - 2025-03-31
- Add eslint
- i18n script fixes
- Upgrade to Astro 5.5.5
- Update other dependencies
3.1.0 - 2025-03-07
- Add new
FeatureLightboxMarquee
component - Upgrade to Astro 5.4.2
- Update other dependencies
3.0.1 - 2025-02-14
- Fix focus styling
- Update code tours
3.0.0 - 2025-02-12
- Upgrade to Tailwind CSS v4
- Removed
sass
dependency as a result. Everything is now only CSS
- Removed
- Implemented my own CSS file for rendered markdown content, making it easier to understand and customize
- Removed
@tailwindcss/typography
dependency as a result
- Removed
- Improve theme toggle styling and animation
- Add a slew of extra components under
src/components/starwind
- Update code tours
- Upgrade to Astro 5.2.5
- Update other dependencies
2.0.2 - 2024-12-20
- Enable view transition script workaround, and re-enable by default
2.0.1 - 2024-12-20
- Disable view transitions by default, as there is currently a bug in Astro v5 with them
- See issue here: https://github.com/withastro/astro/issues/12804
- Upgrade to Astro 5.1.1
2.0.0 - 2024-12-17
- Upgrade to Astro 5.0.9
- Astro’s instructions for the curious: https://docs.astro.build/en/guides/upgrade-to/v5/
- New content collection config file is at
src/content.config.ts
, and collections are atsrc/data/
- Fix various
id
attributes in the Accordion and Nav components - Updated fonts to local installation via npm package to improve loading speed
- Add hreflang links as meta tags to improve SEO for multi-language websites
- i18n script improvements when using one language only
- script now removes all
getRelativeLocaleUrl()
and text translation uses, simplifying the code
- script now removes all
- Keystatic unistall script improvement - detects your package manager and uses the appropriate uninstall command
- Upgrade astro-icon
- pnpm support
- added .npmrc file with a few settings to enable pnpm local builds
- removed
package-lock.json
and replaced withpnpm-lock.yaml
- If you install with
npm install
a normalpackage-lock.json
file will be created
- If you install with
- Update prettier config file to be more strict (and help remove potential script issues if your setup differs)
- Change versioning structure to the more standard major, minor, patch. This is now v2.0.0
- Update other dependencies
1.4 - 2024-11-21
- This update is YUGE. This adds new configuration scripts
npm run config-i18n
andnpm run remove-keystatic
- It is now incredibly easy to configure i18n features when starting a project, and remove keystatic features if desired
- Enhance
global.scss
to remove usage of sass@import
and use@use
instead- The
@import
directive is being deprecated in Dart Sass and will be removed in future versions
- The
- Update
playform/compress
config setting to not optimize images or SVGs- In particular, using the image optimization here can dramatically increase build times for sites with many images, and astro:assets already handles it
- Add vite config in
astro.config.mjs
to remove Dart Sass deprecation warning- This is not necessary, but it removes a minor annoyance
- Improve dark mode for
TestimonialItemCard.astro
component - Update README
- Update to Astro 4.16.13
- Update other dependencies
1.3 - 2024-10-09
- Updated
NavLink.astro
so that trailing slashes are removed from navbar links- This allows ID’s to be used in the navbar through the
navData.json.ts
files
- This allows ID’s to be used in the navbar through the
- Update to Astro 4.15.12
- Update other dependencies
1.2 - 2024-06-07
- Add “light” class which allows you to cancel out dark mode for a specific section
- Add code tours
- Update other dependencies
1.1 - 2024-05-29
- Add dark mode and theme toggle component
- Add i18n route translation features
- Demonstrated on the “about” page which has a different slug “a-propos” in French
- Configure in
src/config/translationData.json.ts
- Add the ability to change the text in the language switcher component
- Configure in
src/config/siteSettings.json.ts
- Configure in
- README updates
- Update to Astro 4.9.2
- Update other dependencies
1.0 - 2024-05-21
- Initial release