Replace decorative usage of Hr component with borders to improve
semantic.
- remove Hr component
- replace decorative hr elements with borders
- introduce app-layout utility class
- update layout and spacing
- update docs about border css custom property
* bump: update astro to v5.16.6 and related dependencies
* bump: update dependencies to latest versions
- Upgraded @tailwindcss/vite from 4.1.11 to 4.1.18
- Updated dayjs from 1.11.13 to 1.11.19
- Bumped satori from 0.15.2 to 0.18.3
- Updated sharp from 0.34.2 to 0.34.5
- Upgraded @pagefind/default-ui from 1.3.0 to 1.4.0
- Updated @tailwindcss/typography from 0.5.16 to 0.5.19
- Bumped @typescript-eslint/parser from 8.36.0 to 8.51.0
- Updated eslint from 9.30.1 to 9.39.2
- Upgraded eslint-plugin-astro from 1.3.1 to 1.5.0
- Updated globals from 16.3.0 to 16.5.0
- Bumped pagefind from 1.3.0 to 1.4.0
- Updated prettier from 3.6.2 to 3.7.4
- Upgraded prettier-plugin-tailwindcss from 0.6.13 to 0.7.2
- Updated typescript from 5.8.3 to 5.9.3
- Bumped typescript-eslint from 8.36.0 to 8.51.0
* chore: fix prettier warnings
- Changed single quotes to double quotes for the @plugin directive in typography.css.
- Updated CSS classes to use wrap-break-word for better text handling in various elements.
Astro uses Web API typings; Response doesn’t accept Node Buffer. Convert
the generated OG image Buffer to Uint8Array before constructing Response
to satisfy BodyInit and fix the build/type error.
Closes#560
This ensures compatibility with transformers like `transformerMetaHighlight`, which may include metadata without key-value formatting.
Previously, metadata entries without an = would cause [key, value] to be undefined, potentially introducing invalid entries into the map. We now skip such entries to ensure only valid key-value pairs are parsed.
- Add v2 badge-style option as alternative to v1 tab-style
- v2 features: border, rounded corners, positioned with CSS custom property
- v1 features: tab-style with rounded top corners, muted background
- Add hideDot option to control green dot indicator visibility
- Include comprehensive JSDoc documentation with usage examples
- Support both styling variants with configuration parameters
- Bump @tailwindcss/vite, astro, and tailwindcss to 4.1.11, 5.11.0, and 4.1.11 respectively.
- Upgrade eslint, prettier, and related packages to their latest versions.
- Update typescript-eslint packages to 8.36.0 for improved compatibility.
* fix: disable ts check for tailwindcss plugin
* fix: adjust list item formatting in tailwind typography example
* 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.
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
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