What is this?

This is my personal knowledge base — a second brain where I store:

  • Technical notes & cheatsheets
  • Project ideas
  • Learning notes
  • Draft thoughts
  • Reference material

How it works

ContextCommandWiki visible?
Local devjust dev-all or hugo server --buildDrafts
Local dev (blog only)just dev or hugo server
Production buildjust build / just deploy✅ (hidden)

Production behaviour: Wiki pages are published but hidden — no links in nav menu, homepage, sitemap, or search engines (noindex). Accessible only by direct URL.

Password Protection 🔒

Add a password field to any wiki page’s frontmatter to protect it:

---
title: "My Secret Notes"
date: 2026-05-29
tags: [private]
password: "my-secret-password"
---

How it works:

  • Content is encrypted at build time with AES-256-GCM (zero-dependency Node.js script)
  • Visitors see a password prompt — correct password decrypts the page in-browser via Web Crypto API
  • Plaintext password is never in the deployed HTML

To change a password: Edit the password field → just buildjust deploy. Old password stops working.

To remove protection: Delete the password line → just buildjust deploy.

⚠️ Keep the taoquangne source repo private — passwords are stored in markdown frontmatter.

Organization

  • Tree: Folders by topic (devops/, programming/, etc.)
  • Tags: Use tags: in frontmatter for cross-cutting topics
  • Links: Use [[wikilinks]] in Obsidian (they’ll work in Hugo too)
  • Backlinks: Obsidian’s graph view shows connections

Quick tips

# Create a new wiki note from template
hugo new wiki/topic-name/index.md

# Edit in Obsidian — open the content/ folder as your vault

💡 Both blog posts and wiki notes live in the same content/ folder, so Obsidian sees everything — wiki notes can link to blog posts and vice versa.