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
| Context | Command | Wiki visible? |
|---|---|---|
| Local dev | just dev-all or hugo server --buildDrafts | ✅ |
| Local dev (blog only) | just dev or hugo server | ❌ |
| Production build | just 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 build → just deploy. Old password stops working.
To remove protection: Delete the password line → just build → just deploy.
⚠️ Keep the
taoquangnesource 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.