Commit Graph
489 Commits
Author SHA1 Message Date
tiennm99 52d9eab2b1 feat: visual layer with vi typography, dark mode, view transitions (Phase 6)
- 9 CSS files (tokens, reset, typography, layout, components, home,
  archive, toc, view-transitions) bundled via resources.Concat
- 3 ES module JS files (theme-toggle, code-copy, toc-active); toc-active
  loaded only on long posts
- @view-transition: navigation auto for cross-page morph (CSS-only)
- TOC partial gated by WordCount>400 and Params.toc!=false; sticky on
  wide viewports, framed block on narrow
- render-heading.html adds cosmetic anchor links
- Hugo asset pipeline: resources.Concat | minify | fingerprint (no
  SCSS, no PostCSS, no Node)
- i18n/vi.yml extended with prev/next/posts/archiveEmpty/toggleTheme
- Bundle sizes: CSS 3.3 KB gz (budget 15), JS 0.8 KB gz (budget 8)

Config: github-ascii heading IDs, :contentbasename permalink token for
clean ASCII URLs, pagination.pagerSize migration (Hugo 0.128+).
2026-05-07 21:27:46 +07:00
tiennm99 b665e6dd3f feat: posts, taxonomies, archive (Phase 5)
- post/list.html paginated section list with post-card
- pagination.html partial (renders only when >1 page)
- _default/taxonomy.html for term lists (/tags/, /categories/) with counts
- taxonomy/term.html for single term pages (paginated posts)
- archives/list.html + archive-group.html: year/month grouped flat list
- exampleSite: 4 new posts across 2025-2026, 2 categories, 4 tags, archive index

Modern Hugo 0.146+ template naming: term.html resolved via taxonomy/
path (Hugo 0.154 lookup ignores _default/term.html).
2026-05-07 21:10:28 +07:00
tiennm99 7366d05e24 feat: homepage personal portfolio (Phase 4)
- data/profile.yaml schema: name, handle, tagline, avatar, bio, links
- data/projects.yaml schema: featured projects with title, tagline, repo, demo, image, tags
- _partials/home/hero.html: avatar + name + tagline + bio + social links
- _partials/home/projects.html: data-driven project grid
- _partials/home/recent-posts.html: configurable count, view-all link
- home.html composes hero → projects → recent-posts
- assets/icons: github, mail, rss (Lucide-style)
- exampleSite fixtures: profile, 4 projects, 5 SVG placeholder images
2026-05-07 20:53:06 +07:00
tiennm99 da7a834b8f feat: core layouts and partials (Phase 3)
- baseof.html with named blocks (head_extra, body_class, main, scripts)
- single.html with data-pagefind-body wrapper
- list.html using post-card partial
- home.html placeholder (Phase 4 fills hero/projects/recent-posts)
- 404.html with vi i18n
- _partials: head (full meta + OG + Twitter Card + RSS autodiscovery + theme-flash script), header, nav, footer, meta, post-card, icon
- Sample post fixture in exampleSite to validate render

ci: bump GitHub Actions to Node 24-compatible versions

- actions/checkout v4 → v6
- actions/setup-node v4 → v6, node 20 → 22
- actions/upload-pages-artifact v3 → v5
- actions/deploy-pages v4 → v5
2026-05-07 20:45:31 +07:00
tiennm99 1112fdf039 ci: skip Pagefind step when no HTML pages exist yet 2026-05-07 20:29:33 +07:00
tiennm99 fb0c9e1248 build: add package-lock.json for npm cache in CI 2026-05-07 20:28:23 +07:00
tiennm99 a7f7566094 feat: initial theme scaffold
- Repo metadata: theme.toml, README, Apache-2.0 license
- Hugo defaults: vi language, post permalinks, taxonomies, paginate, TOC config
- exampleSite skeleton with themesDir wiring
- CI: Hugo build + Pagefind index + Pages deploy
- Pagefind devDependency in package.json (Dependabot weekly)
- vi i18n strings, default archetype
- Empty layouts/_partials/_markup/_shortcodes directories ready for Phase 3
2026-05-07 20:27:07 +07:00
tiennm99 807abe02bd Initial commit 2026-05-07 20:25:16 +07:00
github-actions[bot] 8cf3fec6a4 chore(projects): refresh projects list 2026-05-07 01:10:32 +07:00
github-actions[bot] 8af044bcaa chore(projects): refresh projects list 2026-05-06 01:05:53 +07:00
tiennm99 e7c0669745 feat(content): add Newsletter #102 with 4 articles on agentic workflows, engineering laws, defensive databases, and productivity 2026-05-05 22:54:37 +07:00
tiennm99 ac6e53946a refactor(content): move Newsletter #100 to correct date-based path 2026-05-05 20:46:32 +07:00
tiennm99 ce72d073fc feat(content): add Newsletter #101 with 8 articles on AI engineering, agents, algorithms, and git 2026-05-04 21:32:08 +07:00
github-actions[bot] 107f6eecd9 chore(projects): refresh projects list 2026-05-04 00:37:38 +07:00
tiennm99 ab107095ac feat(content): add newsletter no.100 2026-05-03 22:46:58 +07:00
github-actions[bot] 70640bc9f7 chore(projects): refresh projects list 2026-05-02 00:48:17 +07:00
github-actions[bot] 20b60be7fa chore(projects): refresh projects list 2026-05-01 01:02:45 +07:00
github-actions[bot] a967c47e78 chore(projects): refresh projects list 2026-04-30 01:07:01 +07:00
tiennm99 42ba06145d refactor(referral): show friend passes inline instead of spoiler 2026-04-29 11:06:15 +07:00
tiennm99 92de741f7d refactor(referral): show claimed Claude Code pass with out-of-stock label
Replace blockquote update with an inline strikethrough list entry so
the pass URL stays visible alongside its status.
2026-04-28 12:31:25 +07:00
tiennm99 08c8c8b456 feat(referral): note Claude Code passes claimed, add friend's pass
- Mark all own Claude Code Guest Passes as claimed (2026-04-28)
- Add friend's pass behind a collapsible spoiler
2026-04-28 12:27:29 +07:00
github-actions[bot] f17c78df16 chore(projects): refresh projects list 2026-04-28 00:59:26 +07:00
github-actions[bot] 6aa8a64c82 chore(projects): refresh projects list 2026-04-27 00:30:23 +07:00
tiennm99 abbc5dba8c feat(content): add Newsletter #99 with 8 articles on AI quality, API design, IAM, and networking 2026-04-26 20:09:58 +07:00
tiennm99 07201e7ab3 feat(referral): add MiniMax Token Plan referral 2026-04-25 22:46:58 +07:00
github-actions[bot] a84aa6e316 chore(projects): refresh projects list 2026-04-25 00:42:42 +07:00
github-actions[bot] 63689dbbe3 chore(projects): refresh projects list 2026-04-24 01:01:57 +07:00
github-actions[bot] c2d097c002 chore(projects): refresh projects list 2026-04-23 00:51:32 +07:00
tiennm99 f4a533db31 fix(ci): handle clean index after git add in projects workflow 2026-04-22 20:19:00 +07:00
tiennm99 8531e1f962 docs(projects): clarify supported URL types in description 2026-04-22 20:15:28 +07:00
github-actions[bot] f72e3b4e85 chore(projects): refresh projects list 2026-04-22 20:09:57 +07:00
tiennm99 5876b79689 refactor(projects): rename pages section to projects with contributions
- rename content/page/pages → content/page/projects, keep /pages alias
- list owned + contributed repos (GraphQL repositoriesContributedTo)
- filter by URL (homepage or has_pages), not just GitHub Pages enabled
- rename script/workflow to update-projects-list.mjs / update-projects.yml
2026-04-22 20:09:33 +07:00
github-actions[bot] 06c2aeeb22 chore(pages): refresh GitHub Pages list 2026-04-22 19:57:58 +07:00
tiennm99 f9927e6098 feat(ci): replace github-pages shortcode with daily workflow
Fetch repos server-side via GitHub API using PAGES_FETCH_TOKEN and
inject the pages list into content/page/pages/index.md between HTML
markers. Runs daily at 00:00 Asia/Saigon and on manual dispatch.
2026-04-22 19:57:36 +07:00
tiennm99 1763bc2acb refactor(referral): group services into categories 2026-04-22 19:43:36 +07:00
tiennm99 56426d69e8 feat(referral): make ModelArk image clickable to referral link 2026-04-22 19:29:11 +07:00
tiennm99 04f34f01c5 feat(referral): add PikPak cloud storage referral link 2026-04-22 19:17:59 +07:00
tiennm99 1d4f0b7cd6 feat(content): add Newsletter #98 with 11 articles on AI design tools, Go patterns, and engineering careers 2026-04-18 10:00:45 +07:00
tiennm99 3a5183f6e3 feat(content): add Newsletter #97 with 7 articles on AI agents, GC, and engineering practices 2026-04-17 19:38:26 +07:00
tiennm99 8b9f264a3b feat(content): add Newsletter #96 with 6 articles on Go internals, AI agents, and engineering culture 2026-04-16 22:12:00 +07:00
tiennm99 428e7c24a1 feat(content): add article on AI-assisted engineering workflows to Newsletter #95 2026-04-14 21:52:17 +07:00
tiennm99 a9cbf48f48 refactor(skills): convert mt-webfetch script to Node.js for project consistency 2026-04-14 21:46:33 +07:00
tiennm99 4df75a25fb feat(skills): add mt-webfetch fallback + improve mt-add-post URL cleaning and duplicate detection 2026-04-14 21:41:15 +07:00
tiennm99 7f69b0a64f feat(content): add Newsletter #95 with 11 articles on AI, system design, and performance 2026-04-14 21:26:23 +07:00
tiennm99 2e08632407 feat(content): add post about getting entity ID after Hibernate merge 2026-04-11 10:52:16 +07:00
tiennm99 9d638d5464 feat(content): add post about fixing Gradle test OOM with maxHeapSize 2026-04-11 10:51:01 +07:00
tiennm99 4b1aa8aaa9 feat(content): add post about mocking Java time for testing 2026-04-11 10:43:09 +07:00
tiennm99 34b0cd9c78 feat(content): add post about fixing OpenClaw Docker pairing issue 2026-04-05 13:08:46 +07:00
tiennm99 f93e506ef4 feat(content): add Claude Code guest pass referral and reorder referral page 2026-04-04 21:01:51 +07:00
tiennm99 6925d731bf refactor(skills): convert shell scripts to Node.js
Replace bash scripts with cross-platform Node.js equivalents for
mt-add-post and mt-add-tags skills. Update SKILL.md references.
2026-04-02 16:44:48 +07:00