* refactor: update tailwind typography css overrides
Update TailwindCSS typography overrides to use less
`important`; and update selectors to make them easier
to read.
* refactor: update focus styles to be consistent
Nested blog post URLs in the prev/next links were not
updated properly, which resulted in 404 error pages.
This commit updates the outdated URLs to the correct paths.
Set meta theme-color value before page transition
to avoid navigation bar color flickering in Android
dark mode.
---------
Co-authored-by: satnaing <satnaingdev@gmail.com>
Update back-to-top button to accommodate properly,
even if the max-width of the blog post is updated.
Uses `fixed` position on mobile and `sticky` position
on large screens.
* refactor: extract redundant max-width into utility
Extract redundant max-width into a universal tailwind
utility class. By doing so, the width of the layout
in different pages can be customized easily.
* docs: update docs for modifying `max-w-app` utility
Specify pnpm version in both `package.json` and
`ci.yml` to avoid build errors during deployment.
---------
Closes#512
Co-authored-by: satnaing <satnaingdev@gmail.com>
Add types for `constants` to avoid type errors
when either `SOCIALS` or `SHARE_LINKS` is empty.
---------
Co-authored-by: satnaing <satnaingdev@gmail.com>
* fix: update heading title to be smaller on mobile
* fix: vertical alignment in heading title
---------
Co-authored-by: satnaing <satnaingdev@gmail.com>
* 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
Horizontal overflow occurs when a code block in markdown
table is too long. This is prevented by adding line breaks
(`break-all`) in codes inside table.
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