Personal landing page and blog using Hugo and the PaperMod theme.
This site has separate sections for different types of content:
For personal thoughts, life experiences, and non-technical content.
How to add a blog post:
hugo new blog/my-new-post.mdFor book reviews, reading thoughts, and literary content.
How to add a reading post:
hugo new reading/book-title.mdFor documenting meals, recipes, and what you're eating.
How to add a cooking post:
hugo new cooking/meal-title.mdFor content that should be accessible via direct URL but not listed publicly.
How to add a private post:
hugo new unlisted/private-post.mdThen add these parameters to the frontmatter:
private: true
hiddenInHomeList: trueAll posts should include:
---
title: "Post Title"
date: 2025-01-20T10:00:00Z
description: "A clear, concise description for SEO and previews"
tags: ["tag1", "tag2"]
# For private posts only:
private: true
hiddenInHomeList: true
---This site supports rich admonitions (callout boxes) for enhanced content:
note- Blue themed, for important informationinfo- Cyan themed, for general informationwarning- Orange themed, for warnings and cautionstip- Green themed, for helpful tipsquote- Gray themed, for quotes and citationsexample- Purple themed, for code examples and demosai- Orange themed, for AI-generated content disclosure
{{< note title="Custom Title" >}} Your note content here. Supports **markdown**.
{{< /note >}}
{{< quote title="Inspiration" footer="Author Name" >}} Quote text here
{{< /quote >}}
{{< ai >}} This section was written with AI assistance. {{< /ai >}}- Posts marked with
private: trueare excluded from:- Home page listings
- Archive pages
- Tag pages
- RSS feeds
- Include
noindex, nofollowmeta tags for SEO - Still accessible via direct URL for selective sharing
- All pages require
descriptionfrontmatter - Proper meta tags and structured data
- Private post handling for search engines
Requirements:
- Hugo v0.146.7 (extended version required)
Theme setup:
PaperMod is vendored in-repo under themes/PaperMod — no submodule init needed after cloning.
Install Hugo Extended:
# On Ubuntu/Debian
wget https://github.com/gohugoio/hugo/releases/download/v0.146.7/hugo_extended_0.146.7_linux-amd64.deb
sudo dpkg -i hugo_extended_0.146.7_linux-amd64.deb
# Or via package manager if available
snap install hugo --channel=extendedStart local server:
hugo server --buildDraftsBuild for production:
hugoTest GitHub Actions workflow locally:
gh act -j buildThis runs the build job locally using Docker, testing the same environment as
GitHub Actions. The upload step is automatically skipped when running locally.
Generated site will be in ./public/.
Uses a vendored copy of the PaperMod theme
(themes/PaperMod) with custom modifications for:
- Admonition system with full light/dark mode support
- Private post filtering in listings
- Enhanced archive layouts
- Custom CSS extensions
content/
├── blog/ # Personal blog posts
├── reading/ # Book reviews and reading content
├── cooking/ # Meal logs and cooking notes
├── unlisted/ # Private posts (excluded from listings)
└── no-social-media.md
themes/PaperMod/ # Vendored PaperMod theme
layouts/
├── baseof.html # Theme shell + homepage class
├── list.html # List pages with private filtering
├── single.html # Posts with lastmod + newsletter
├── archives.html # Archives with private filtering
├── cooking/list.html # Cooking filters/badges
├── _partials/
│ ├── extend_head.html # Private robots + admonition sprites
│ ├── footer.html # Custom footer (no powered-by credit)
│ └── newsletter.html # Picoletter embed
└── shortcodes/ # Admonition + gallery shortcodes
assets/css/extended/
└── custom.css # Site styles (admonitions, cooking, tags)