@@ -6,23 +6,33 @@ This repository contains the source code for my personal website. The site serve
66
77- ** Blog** : Posts about various topics, including school, life, and random ideas.
88- ** Projects** : A showcase of personal projects and experiments.
9- - ** Comments** : Visitors can leave comments on posts, with support for author names and timestamps.
9+ - ** Comments** : Visitors can leave comments on blog posts, with support for author names and timestamps.
1010- ** Dark Mode** : Toggle between light and dark themes.
1111- ** Math Support** : Render mathematical expressions using MathJax.
1212- ** Markdown Parsing** : Blog posts are written in Markdown and rendered dynamically.
13+ - ** Notes** : Course notes rendered from Markdown (with front-matter), featuring MathJax support and an auto-generated table of contents.
1314- ** Pagination & Filtering** : Browse posts by tag or search with pagination.
1415
1516## Tech Stack
1617
1718- ** Frontend** : HTML, CSS, JavaScript (Vanilla)
18- - ** Libraries** :
19- - [ Marked.js] ( https://github.com/markedjs/marked ) — Markdown parsing
20- - [ MathJax] ( https://www.mathjax.org/ ) — Math rendering in posts
21- - [ DOMPurify] ( https://github.com/cure53/DOMPurify ) — HTML sanitization for user-generated content
22- - ** Backend** : Node.js (serverless functions via Vercel)
23- - Dynamic comment storage using either:
24- - JSON file (local/dev)
25- - [ Vercel KV] ( https://vercel.com/docs/storage/vercel-kv ) (prod)
19+ ** Client-side Libraries** :
20+ - [ js-yaml] ( https://github.com/nodeca/js-yaml ) — parse front-matter in notes
21+ - [ DOMPurify] ( https://github.com/cure53/DOMPurify ) — sanitize rendered HTML
22+ - [ MathJax] ( https://www.mathjax.org/ ) — render LaTeX/math expressions
23+ - [ Marked.js] ( https://github.com/markedjs/marked ) — Markdown -> HTML parsing
24+
25+ - ** Server-side Libraries** (Vercel Serverless Functions):
26+ - [ node-fetch] ( https://github.com/node-fetch/node-fetch ) — HTTP client
27+ - [ sanitize-html] ( https://github.com/apostrophecms/sanitize-html ) — clean user input
28+ - [ @upstash/redis ] ( https://github.com/upstash/upstash-redis ) — KV caching
29+ - [ pg] ( https://github.com/brianc/node-postgres ) — Neon Serverless Postgres driver
30+ - ** Backend** : Node.js (serverless via Vercel)
31+ - Comments: cached in Upstash Redis + persisted in Neon Postgres
32+
33+ ## Deployment
34+
35+ This site is deployed on [ Vercel] ( https://vercel.com/ ) with automatic GitHub-triggered builds.
2636
2737## Contact
2838
0 commit comments