gbanyan
5d3d754252
Fix tag URL encoding for non-ASCII characters
...
Updated getTagSlug() to properly encode tags with spaces and non-ASCII characters (like Chinese). The function now:
- Normalizes multiple spaces/dashes to single dashes
- Properly encodes non-ASCII characters using encodeURIComponent
- Prevents issues with URL encoding on Vercel deployment
This fixes tags like "Medicine - 醫學" being displayed as "medicine---%E9%86%AB%E5%AD%B8" by generating clean URLs like "medicine-%E9%86%AB%E5%AD%B8".
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-19 23:10:34 +08:00
gbanyan
653f079e1a
Upgrade ESLint to v9 to fix Vercel deployment
...
Updated ESLint from 8.57.1 to 9.39.1 to resolve peer dependency conflict with eslint-config-next@16.0.3 which requires ESLint >=9.0.0.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-19 22:55:55 +08:00
gbanyan
a4db9688b6
Upgrade to Next.js 16 with Turbopack and Contentlayer2
...
- Upgraded Next.js to v16, React to v19
- Migrated from contentlayer to contentlayer2
- Migrated to Turbopack by decoupling Contentlayer from webpack
- Updated all page components to handle async params (Next.js 15+ breaking change)
- Changed package.json to type: module and renamed config files to .cjs
- Updated README with current tech stack and article creation instructions
- Fixed tag encoding issue (removed double encoding)
- All security vulnerabilities resolved (npm audit: 0 vulnerabilities)
2025-11-19 22:43:14 +08:00
gbanyan
4c08413936
Migrate to Contentlayer2
2025-11-19 21:46:49 +08:00
gbanyan
a249a120a5
Stage all layout updates
2025-11-19 17:38:45 +08:00
gbanyan
7ca7655e40
Add asset sync script
2025-11-19 17:31:18 +08:00
gbanyan
0d5fc93b30
Document serif headings and point submodule to GitHub
2025-11-19 17:12:11 +08:00
gbanyan
937203b4e9
docs: refresh README for new design
2025-11-19 02:31:37 +08:00
gbanyan
8ade752448
oops
2025-11-19 02:23:32 +08:00
gbanyan
e04a03097f
Convert favicon to actual PNG
2025-11-19 02:16:15 +08:00
gbanyan
a8ee8d83af
Update favicon to gravatar
2025-11-19 02:15:02 +08:00
gbanyan
261cb1d91e
Add favicon
2025-11-19 02:13:23 +08:00
gbanyan
f32206d390
Use next/image for hero/sidebar/markdown images
2025-11-19 02:07:35 +08:00
gbanyan
ce43491e2e
Switch card images to next/image
2025-11-19 02:03:49 +08:00
gbanyan
68ababe8c8
checkpoint before image optimizations
2025-11-19 02:02:34 +08:00
gbanyan
985caa2a4d
Cleanup stray text in timeline wrapper
2025-11-19 01:56:59 +08:00
gbanyan
77bd180d97
Remove animated timeline dot
2025-11-19 01:55:56 +08:00
gbanyan
3425098006
Refine timeline rail/tick aesthetics
2025-11-19 01:49:40 +08:00
gbanyan
eefc38d562
Add glow and animation to timeline
2025-11-19 01:46:37 +08:00
gbanyan
48ce66a3e6
Remove timeline arrow
2025-11-19 01:43:29 +08:00
gbanyan
22120595a6
Use only card-aligned timeline ticks
2025-11-19 01:41:12 +08:00
gbanyan
eab80bd17a
Render timeline ticks per card
2025-11-19 01:36:54 +08:00
gbanyan
5b99486a68
Style timeline rail with ticks and arrow
2025-11-19 01:31:02 +08:00
gbanyan
5fdd72302e
Reduce gutter between timeline rail and cards
2025-11-19 01:25:19 +08:00
gbanyan
66cd9b8608
Remove timeline markers entirely
2025-11-19 01:24:12 +08:00
gbanyan
2e80b7ac59
Center timeline markers vertically
2025-11-19 01:22:49 +08:00
gbanyan
be5d942c79
Align node ring visually with timeline rail
2025-11-19 01:17:33 +08:00
gbanyan
3018a25578
Turn timeline nodes into hollow rings
2025-11-19 01:14:06 +08:00
gbanyan
04182ec754
Align timeline nodes with brighter rail
2025-11-19 01:11:45 +08:00
gbanyan
9b2d754a2f
Tighten timeline spacing and add white node
2025-11-19 01:07:25 +08:00
gbanyan
1a7ae8a269
Remove timeline node dot
2025-11-19 01:05:22 +08:00
gbanyan
9a7eb6cfe3
Center timeline nodes directly on rail
2025-11-19 01:04:08 +08:00
gbanyan
246646f176
Brighten timeline rail and align nodes
2025-11-19 01:00:18 +08:00
gbanyan
287c0d72a8
Refine timeline visuals and apply to blog list
2025-11-19 00:58:13 +08:00
gbanyan
fe191752da
Add aesthetic timeline to post lists
2025-11-19 00:54:58 +08:00
gbanyan
10e4e7e21e
Give tags index a hero summary and card grid
2025-11-19 00:51:00 +08:00
gbanyan
82a459bede
Restyle blockquotes with academic flair
2025-11-19 00:47:28 +08:00
gbanyan
af0d2e3a6c
Formalize font weight hierarchy
2025-11-19 00:42:53 +08:00
gbanyan
9235ab291b
Expand system font stack for multilingual UI
2025-11-19 00:37:12 +08:00
gbanyan
79578252df
Apply new type scale to TOC
2025-11-19 00:33:11 +08:00
gbanyan
a225d57e06
Fix progress bar width
2025-11-19 00:30:35 +08:00
gbanyan
b416c9eb7d
Soften reading progress indicator
2025-11-19 00:28:09 +08:00
gbanyan
61d5092136
Let sidebar about text honor line breaks
2025-11-19 00:26:37 +08:00
gbanyan
a582ef9cb5
Scale right sidebar typography
2025-11-19 00:24:16 +08:00
gbanyan
dc5ca97fee
Add fluid typography scale and responsive headings
2025-11-19 00:22:09 +08:00
gbanyan
b4ee8b122f
Remove dot icon from TOC items
2025-11-18 23:57:40 +08:00
gbanyan
cd95a7bb79
Render TOC items as divs to eliminate bullets
2025-11-18 23:51:43 +08:00
gbanyan
f34221b567
Exclude TOC from prose styling
2025-11-18 23:50:03 +08:00
gbanyan
3509b43643
Inline TOC list style overrides
2025-11-18 23:49:08 +08:00
gbanyan
6ca024b0ba
Force TOC list styles with !important
2025-11-18 23:47:47 +08:00