Linewise is a Vim-inspired Hugo theme for personal blogs. Posts behave like buffers, search borrows from quickfix, and the interface uses Vim as an interaction model without sacrificing reading comfort.
Demo and docs: linewise.tabsp.com
- Hugo theme installable as a git submodule or Hugo Module
- Markdown posts in
content/posts/ - Tags, posts list, RSS, sitemap, canonical URLs, and Open Graph metadata
- Client-side search backed by
/search.json - giscus comments powered by GitHub Discussions
- Vim-like command palette, search palette, bufferline, file explorer, and statusline
- Keyboard motions for list navigation and reading
- Mobile file explorer drawer and horizontally scrollable buffer tabs
- Hugo Extended
0.146.0or newer - Go, if installing with Hugo Modules
- Node.js and pnpm only for Linewise theme development and Playwright tests
Create a Hugo site:
hugo new site my-blog
cd my-blogThen choose one installation mode.
git submodule add https://github.com/tabsp/linewise themes/linewisebaseURL = "https://example.com"
title = "My Blog"
locale = "en"
theme = "linewise"hugo mod init github.com/you/my-blogbaseURL = "https://example.com"
title = "My Blog"
locale = "en"
[module]
[[module.imports]]
path = "github.com/tabsp/linewise"Use one mode per site. Do not configure both theme = "linewise" and a Linewise module import.
Add the Linewise defaults to your site config:
[taxonomies]
tag = "tags"
[params.linewise]
description = "Notes from the command line."
author = "Your Name"
locale = "en"
favicon = "favicon.svg"
ogImage = "og.svg"
showExplorer = true
showBufferline = true
[params.linewise.comments]
provider = "none"
[outputs]
home = ["HTML", "RSS", "JSON"]
[outputFormats.JSON]
mediaType = "application/json"
baseName = "search"
isPlainText = true
[markup.highlight]
noClasses = falseWrite posts in content/posts/:
---
title: "Your Post Title"
description: "A short description for SEO and previews."
date: 2026-01-01
tags: ["notes"]
draft: false
---Read the full documentation on the example site: Theme Reference.
pnpm install
pnpm dev
pnpm build
pnpm testpnpm dev serves the example site at http://localhost:4322/.
archetypes/ Hugo archetypes
assets/ Theme CSS and TypeScript bundled by Hugo Pipes
exampleSite/ Example Hugo site
images/ Theme screenshots
layouts/ Hugo templates, partials, and shortcodes
static/ Theme-owned static assets
theme.toml Hugo theme metadata
MIT
