posts

Theme Reference

Install, configure, customize, and operate the Linewise Hugo theme.

This reference is the canonical user-facing documentation for Linewise.

Requirements

  • Hugo Extended 0.146.0 or newer
  • Git, when installing with a submodule
  • Go, when installing with Hugo Modules

Installation

Choose one installation mode per site. Do not configure both a git submodule and a Hugo Module import in the same site.

Git submodule

hugo new site my-blog
cd my-blog
git submodule add https://github.com/tabsp/linewise themes/linewise
baseURL = "https://example.com"
title = "My Blog"
locale = "en"
theme = "linewise"

Hugo Module

hugo mod init github.com/you/my-blog
baseURL = "https://example.com"
title = "My Blog"
locale = "en"

[module]
[[module.imports]]
path = "github.com/tabsp/linewise"

Required 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 = false

Linewise ships CSS for Hugo’s class-based Chroma output. Keep noClasses = false so code blocks use the theme palette.

Content

Put posts in content/posts/.

---
title: "Your Post Title"
description: "A short description for SEO and previews."
date: 2026-01-01
lastmod: 2026-01-02
tags: ["reference"]
draft: false
---

Public config

Theme-owned options live under [params.linewise].

KeyDefaultPurpose
descriptionsite description fallbackSEO and Open Graph fallback text
authoremptyAuthor metadata where templates need it
localesite localeTheme-owned locale fallback for widgets
favicon"favicon.svg"Favicon path under your site’s static/ directory
ogImage"og.svg"Open Graph image path under your site’s static/ directory
showExplorertrueRender the file explorer and mobile drawer
showBufferlinetrueRender the bufferline above the workspace
comments.provider"none"Comments provider. Supported values are "none" and "giscus"

Linewise generates /search.json with Hugo’s home JSON output. The browser runtime lazy-loads that file on the first search interaction and reuses it for the search palette and /find/ page.

Override boundaries

These files are public override points:

layouts/_partials/head.html
layouts/_partials/comments.html
layouts/_partials/post-meta.html
layouts/shortcodes/aside.html

Copy one into the same path in your site to override it.

These partials are internal for now because the TypeScript runtime depends on their data-lw-* hooks:

layouts/_partials/command.html
layouts/_partials/explorer.html
layouts/_partials/help-panel.html
layouts/_partials/icon.html
layouts/_partials/topbar.html
layouts/_partials/status.html
layouts/_partials/page-list.html
layouts/_partials/scripts.html

If you override an internal partial, preserve the data-lw-* attributes or the keyboard and search runtime may stop working.

Upgrade workflow

For a git submodule install:

cd themes/linewise
git fetch --tags
git checkout v0.2.0
cd ../..
hugo

Then commit the submodule pointer in your site.

For a Hugo Module install:

hugo mod get github.com/tabsp/linewise@v0.2.0
hugo mod tidy
hugo

Review local layout overrides, custom CSS, and release notes after each theme update.