Three-column layout: left navigation, main content, right-side table of contents and tags/categories
hugo-theme-nonentity — Hugo Blog Template
By snowme34
Nonentity is a minimal, responsive Hugo blog theme with a three-column layout: left navigation, main content, and right-side table of contents, tags, and categories. It includes full-text search, tag filtering, Giscus comments, and light/dark color scheme switching.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Preview provided in the project README.
One original preview is available. Open the full image to inspect the design.
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Responsive navigation: collapses to an icon bar on tablets and becomes a drawer on mobile
No JavaScript framework dependency; provides full-text search and tag AND/OR filtering
Supports Giscus comments, Cloudflare analytics, RSS, and instant light/dark color scheme switching
Links multilingual posts within the same section via the translations field in front matter
Template Details
Nonentity is a blog theme for Hugo that focuses on minimalism and responsiveness. The page uses a three-column structure: a navigation sidebar on the left, main content in the center, and table of contents, tags, and categories on the right. At tablet widths, the left navigation collapses into an icon bar; on mobile, it becomes a drawer-style navigation.
The theme does not rely on JavaScript frameworks. It provides full-text search across posts, pages, tags, and categories; the table of contents supports scroll position tracking; and tag filtering can switch between AND/OR modes. Comments use Giscus, analytics use Cloudflare, and RSS is supported. Code highlighting offers two color schemes: GitHub Light and Dracula Dark. The site color scheme can be switched instantly between light and dark.
Configuration is centralized under [params] in hugo.toml, covering site description, footer text, keywords, date format, favicon, pagination count, profile card, about link, social icons, left navigation extensions, table of contents, copyright and license badges, Giscus comments, and Cloudflare analytics. Post front matter supports categories, tags, toc, comment, excerpt, description, lang, and translations; translations links multilingual versions within the same section by listing each other's slugs, without enabling Hugo multilingual mode.
Before use, note the following: the theme requires Hugo >= 0.111.3; syntax highlighting and search depend on noClasses = false in [markup.highlight] and JSON output included for home in [outputs]. Comments render only on pages in the post section. Third-party assets such as demo images, fonts, and icons must be checked against their respective licenses; the code itself is under the MIT license.
Is it right for your project?
Use Cases
- Building a text-focused personal technical blog that needs a table of contents and tag/category organization
- Projects that want to avoid front-end frameworks and rely solely on Hugo to output a static site
- Blogs that need multilingual versions of the same post without enabling Hugo multilingual mode
- Content sites using Giscus as the comment system and requiring tag filtering and full-text search
Suitable For
- Developers familiar with Hugo configuration and front matter
- Bloggers who prefer a minimal three-column reading layout
- Writing sites that need light/dark color schemes and code highlighting
- Users willing to prepare their own Giscus and Cloudflare credentials
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Requires Hugo >= 0.111.3; can be installed via git submodule or Hugo module, and set theme = "nonentity" in hugo.toml
- 2
Must set noClasses = false in [markup.highlight] and add JSON to home in [outputs], otherwise syntax highlighting and search will not work
- 3
Giscus comments require a public GitHub repository with Discussions enabled, and repoID and categoryID obtained from giscus.app
- 4
Cloudflare analytics requires entering your own beacon token
- 5
Third-party assets such as demo images, fonts, and icons must be checked for licenses separately; do not judge solely based on the code's MIT license
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope applies to that version's code and does not mean external services or third-party assets are free.
Must comply with when using
- You may use, modify, commercialize, and distribute this version's code for free.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses; do not judge solely based on the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
- Enabling Giscus comments requires your own public GitHub repository with Discussions enabled, and obtaining credentials such as repoID and categoryID from giscus.app; this is an external service dependency.
- Cloudflare analytics requires entering your own beacon token; this is an external service credential requirement.
- Syntax highlighting and search depend on specific Hugo configuration (noClasses = false and home output including JSON); without them, the features are unavailable.
- Comments render only on pages in the post section; other sections do not display comments.
- Using this theme requires Hugo version 0.111.3 or later.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
Requires a public GitHub repo with Discussions enabled. Get your IDs at [giscus.app](https://giscus.app).
Original README
token = "your-beacon-token"
Original README
These must be present for syntax highlighting and search to work correctly.
Original README
Comments are rendered only on pages in the `post` section.
Original README
https://github.com/snowme34/hugo-theme-nonentity/blob/main/LICENSEhttps://github.com/snowme34/hugo-theme-nonentity/blob/main/README.mdHugo `>= 0.111.3`
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-05. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- Partly documented · 68 / 100
- Technologies
- Hugo
- Website type
- Blog
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-04-20
- Screenshot last checked
- 2026-10-05
No demo link is recorded. Use the repository instructions to evaluate the project locally; the screenshot alone cannot establish interactive behavior.
The catalog identifies Hugo as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: [email protected] · 2026-10-05
Inspect the recorded source material
SHA-256: df2e63a9c314cfd079cc6f00276bd759007ab8db01f5bff4a2a9859b60e8e653
2026-10-05T00:45:36.015Z
Source file / repository# Nonentity
A minimal, responsive, searchable Hugo blog theme. Three-column layout: left nav sidebar, content, right sidebar (TOC / tags / categories).

## Features
- No JavaScript frameworks
- Responsive — collapses to rail nav on tablet, drawer nav on mobile
- Full-text search across posts, pages, tags, and categories
- Table of contents with scroll tracking
- Tag filtering with AND/OR mode
- Giscus comments, Cloudflare Analytics, RSS
- Syntax highlighting (GitHub light / Dracula dark)
- Light and dark color scheme with instant switching
## Requirements
Hugo `>= 0.111.3`
## Installation
### Git submodule
```bash
git submodule add https://github.com/snowme34/hugo-theme-nonentity themes/nonentity
```
Set `theme = "nonentity"` in `hugo.toml`.
### Hugo module
```toml
[module]
[[module.imports]]
path = "github.com/snowme34/hugo-theme-nonentity"
```
## Configuration
All options go under `[params]` in `hugo.toml` unless noted otherwise.
### Site
```toml
[params]
description = "Used in <meta name=description> for SEO."
footerText = "Text shown at the bottom of every page."
keywords = ["blog", "developer"] # <meta name=keywords>
dateFormat = "January 2, 2006" # Go time format
favicon = "/images/favicon.png" # Path to favicon
enableRSS = true # Adds RSS link in <head> and sidebar footer
showColorSchemeToggle = true # Show the light/dark toggle button
rightSidebarInfo = "Text shown in the right sidebar info panel. Falls back to description if not set."
rightSidebarInfoTitle = "About" # Title of the right sidebar info panel
```
### Pagination
```toml
[params]
paginate = 15 # Posts per page on home and section lists
paginateArchive = 10 # Posts per page on archive (/post/)
paginateTaxonomy = 5 # Posts per page on a single tag or category page (e.g. /tags/hugo/)
paginateTags = 15 # Posts per page in the tag filter results on /tags/
```
### Profile card
Shown at the top of the left sidebar.
```toml
[params.profile]
avatar = "/images/avatar.png" # Path to avatar image
name = "Your Name"
bio = "Short bio line"
link = "/" # Where clicking the avatar goes
```
### About link
By default the "About" nav item links to your local `about/` page. Set `params.about.url` to redirect it to an external URL instead.
```toml
[params.about]
url = "https://example.com/about" # omit to use the local about/ page
```
### Social links
Displayed in the sidebar footer. Sorted by `weight` (ascending).
Built-in icon names: `github`, `x`, `instagram`, `mastodon`, `youtube`, `bilibili`, `rss`.
```toml
[[params.socials]]
name = "GitHub"
url = "https://github.com/you"
icon = "github"
weight = 1
```
For a custom icon, use `iconSvg` instead of `icon`:
```toml
[[params.socials]]
name = "My Site"
url = "https://example.com"
iconSvg = "<svg ...></svg>"
weight = 10
```
### Extra left nav items
Add custom links to the left sidebar navigation, either before (`prepend`) or after (`append`) the default items.
```toml
[params.leftNavExtra]
enable = true
[[params.leftNavExtra.items]]
name = "GitHub"
link = "https://github.com/you"
location = "append" # "append" or "prepend"
svg = "<svg ...></svg>"
```
### Table of contents
Enabled globally here; can be overridden per-page with `toc: false` in front matter.
```toml
[params.toc]
enable = true
[markup.tableOfContents]
startLevel = 2
endLevel = 4
```
### Copyright and license badge
```toml
[params.copyright]
text = "© 2026 Your Name"
[params.copyright.license]
enable = true
name = "CC BY-NC-SA 4.0"
image = "/images/cc-by-nc-sa.png"
link = "https://creativecommons.org/licenses/by-nc-sa/4.0/"
```
### Comments (Giscus)
Requires a public GitHub repo with Discussions enabled. Get your IDs at [giscus.app](https://giscus.app).
```toml
[params.comments.giscus]
enable = true
repo = "username/repo"
repoID = "R_..."
category = "General"
categoryID = "DIC_..."
mapping = "pathname"
strict = "0"
reactionsEnabled = "1"
emitMetadata = "0"
inputPosition = "bottom"
theme = "preferred_color_scheme"
lang = "en"
loading = "lazy"
```
Comments are rendered only on pages in the `post` section.
### Analytics (Cloudflare)
```toml
[params.analytics.cloudflare]
enable = true
token = "your-beacon-token"
```
### Required Hugo settings
These must be present for syntax highlighting and search to work correctly.
```toml
[markup.highlight]
noClasses = false # Required: use CSS classes, not inline styles
[outputs]
home = ["HTML", "JSON", "RSS"] # Required: JSON output powers search
```
## Front matter
| Key | Type | Description |
| --- | --- | --- |
| `categories` | string[] | Categories for this post. |
| `tags` | string[] | Tags for this post. |
| `toc` | bool | Per-page TOC override. `true` forces it on, `false` forces it off, regardless of the global `params.toc.enable` setting. |
| `comment` | bool | Set to `false` to disable comments on a specific post. Has no effect if comments are not globally enabled. |
| `excerpt` | string | Custom summary shown in post lists. Falls back to the first 180 characters of the page's plain text. |
| `description` | string | Page `<meta name="description">` for SEO. Takes highest priority; falls back to `excerpt`, then the auto-generated summary, then `params.description`. |
| `lang` | string | Language of this post (`en`, `zh`, `jp`). Used to localize the "Also available in:" label when `translations` is set. |
| `translations` | string[] | Slugs of translated versions of this post. Renders an "Also available in:" list linking to each. |
### Translations
Link translated versions of a post by listing each other's slugs. All posts remain in the same section; no multilingual mode required.
It is recommended to name translated files with the same base slug suffixed by the 2-character language code:
```
content/post/my-post-en.md
content/post/my-post-zh.md
content/post/my-post-jp.md
```
```yaml
# content/post/my-post-en.md
lang: en
translations:
- "my-post-zh"
- "my-post-jp"
# content/post/my-post-zh.md
lang: zh
translations:
- "my-post-en"
- "my-post-jp"
```
Each post renders a localized "Also available in:" block with links to the others. If a slug does not match any page, it is silently skipped.
## Design Credit
A rewrite from scratch for [hexo-theme-symphony](https://github.com/snowme34/hexo-theme-symphony), which is my fork of
- [hexo-theme-pure](https://github.com/cofess/hexo-theme-pure)
- [hexo-theme-dawn](https://github.com/Ruffianjiang/hexo-theme-dawn)
## License
MIT — see [LICENSE](LICENSE).
Explore similar templates
Compare previews and descriptions within the same stack and category.

hugo-PaperMod
A fast, clean, responsive Hugo theme for blogs and lightweight portfolios, with three layout modes (Regular, Home-Info, Profile), automatic and manual light/dark themes, Fuse.js client-side search, multilingual support, and built-in Open Graph, Twitter Cards, and Schema.org data.
Hugo · Portfolio

LoveIt
LoveIt is a clean, elegant, and feature-rich Hugo blog theme derived from LeaveIt and KeepIt, MIT-licensed. It offers light/dark modes, responsive layout, multilingual support, and search via Lunr.js or Algolia.
Hugo · Blog

hugo-coder
hugo-coder is a minimalist Hugo blog theme maintained by luizdepra under the MIT license. It provides a clean, text-focused blog appearance, configuration documentation in the docs directory, and a complete exampleSite with hugo.toml.
Hugo · Blog

blowfish
Blowfish is a Hugo personal website and blog theme built with Tailwind CSS 4, focused on lightness, simplicity, and content-first presentation.
Hugo · Blog

hugo-paper
hugo-paper is a simple, clean, and customizable Hugo blog theme configured through config.toml or hugo.toml.
Hugo · Blog

hextra
Hextra is a Hugo theme for documentation and blog sites, built on Hugo and Tailwind CSS with design referencing Nextra.
Hugo · Documentation
