* refactor: replace embedded svg with svg icon
* feat: add global and per-post timezone support
- add `SITE.timezone` in config to define a global default timezone.
- allow per-post timezone overrides via `timezone` in frontmatter.
- update date formatting logic to use the correct timezone when rendering timestamps.
- ensure that posts without a timezone fallback to `SITE.timezone`.
- improve consistency between local and deployed timezones.
* refactor: replace `LOCALE` constant with `SITE.lang`
* docs: update guides
* fix: update code word-break inside markdown table
Closes#466
* fix: broken editPost link and update editPost logic
Fixed broken editPost link. Removed the ability to update
the editPost link inside each blog post for consistency.
The editPost button per blog post can still be hidden.
* docs: update docs for editPost
Blog posts can now be structured into subdirectories, which determine their slugs.
Example:
- `/src/data/blog/2025/testing.md` → `/posts/2025/testing`
Directories prefixed with `_` will be excluded from the slug.
Example:
- `/src/data/blog/_examples/tailwind-typography.md` → `/posts/tailwind-typography`
Closes#470, #366
* fix: add an option to disable dynamic OG image generation
Add new `dynamicOgImage` option in the `SITE` object inside
`src/config.ts` file to disable auto og-image generation during build.
Resolves#428
* docs: update guides for `SITE.dynamicOgImage` option
* fix: remove unused ogImage size validation
Validation of `ogImage` field in blog collection
causes unintentional broken og images after the build.
Removing the validation solve the issue.
* docs: update docs for ogImage path
* chore: update asset
* docs: update astro-paper theme config docs
* docs: update adding-new-post blog post
* docs: remove outdated posts and update featured posts
* fix: update broken image link in astro-paper-4 blog
* docs: add a blog post for astro-paper-v5
* docs: update README for AstroPaper v5
* fix: update blog post formatting