HugoPortfolioBlog

ink-free — Hugo Portfolio Template

By chollinger93

ink-free is a minimal Hugo theme for personal websites and blogs, forked from hugo-ink, removing the Google Fonts CDN and third-party analytics code in favor of local assets and a self-hosted analytics solution.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

1 previews
Author preview
Author-provided previewTop of page

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.

Recorded 2026-10-02View source

What stands out

A quick read of the recorded project description.

01

Removes the Google Fonts CDN and third-party analytics code, replacing them with local assets and self-hosted Umami analytics

02

Supports a configurable table of contents that can appear statically at the top, float in the sidebar, or both

03

Post overviews show word count, tags, and estimated reading time, and include a back button

04

Built-in inlineimg shortcode and image caption syntax, supporting inline rendering of images such as SVG

05

Optional Mermaid diagram support, loaded via CDN by default and adjustable through mermaidCDN

06

Provides random footer messages and an "Edit on GitHub" button

Template Details

ink-free is a Hugo theme for personal websites and blogs, positioned as a clean, privacy-focused vehicle for writing and showcasing work. It is forked from knadh's hugo-ink, which in turn derives from the Ezhil theme, so it retains a minimalist typographic style while making localization adjustments for privacy.

Compared with upstream hugo-ink, ink-free removes references to the Google Fonts CDN and deletes the original analytics code, instead supporting self-hosted Umami analytics. Functionally, it adds a back button for posts, a configurable table of contents (supporting a static top placement, a floating sidebar, or both), word count, tags, and estimated reading time in the overview, random footer messages, an "Edit on GitHub" button, an inlineimg shortcode for inline rendering of images such as SVG, Markdown syntax support for image captions, and optional Mermaid diagrams (loaded via CDN by default, adjustable through the mermaidCDN configuration). It also fixes styling issues such as tag alignment and syntax highlighting background color.

The theme requires Hugo 0.87.0 or later and is installed by adding a Git submodule under the themes directory of a Hugo site. Content can be distinguished by page type using the type field in front matter; static pages can be set to page to exclude them from the recent posts and all posts lists. Multilingual month names must be defined manually via month.yaml in the site's data directory. The theme is MIT licensed, and the example site is located in the exampleSite directory, viewable by running hugo serve --themesDir ../..

HugoPortfolioBlog

Is it right for your project?

Use Cases

  • Building a privacy-focused personal blog that does not rely on external font or analytics services
  • Creating a personal portfolio site with static pages and a post list
  • Adding reading aids such as a table of contents, syntax highlighting, word count, and reading time to technical articles
  • Displaying SVG or captioned images inline in posts using a shortcode
  • Using self-hosted Umami analytics to track visits instead of third-party analytics tools

Suitable For

  • Developers and writers building personal websites or blogs with Hugo
  • Users concerned about the privacy implications of third-party CDNs and external analytics services
  • Bloggers who need post metadata such as a table of contents, reading time, and tags
  • Users who want to freely modify and distribute the theme code under the MIT license

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Requires Hugo 0.87.0 or later.

  2. 2

    Add the theme repository via git submodule add under the themes directory of a Hugo site.

  3. 3

    The example site is located in exampleSite; run hugo serve --themesDir ../.. in that directory to preview it.

  4. 4

    Multilingual month names require creating month.yaml in the site's data directory; see exampleSite/data/ for an example file.

  5. 5

    Mermaid is loaded via CDN by default and can be adjusted through the mermaidCDN configuration; the Feather CDN can be enabled or statically hosted.

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version available in the public repository under the MIT license; the free scope is the code of that version and does not imply that external services or third-party assets are free.

Must comply with when using

  • You may use, modify, commercially use, and distribute the code of this version 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

  • Mermaid diagrams are loaded via an external CDN by default and require internet access to a third-party service; this can be changed to another address or self-hosted via the mermaidCDN configuration.
  • Feather icon assets can optionally be enabled via an external CDN or statically hosted yourself; enabling the CDN depends on a third-party service.
  • Visit analytics require deploying or using the Umami service yourself, which is an external service dependency and not a built-in theme feature.
  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
  • External services such as domains, hosting, databases, payments, or AI may incur separate charges.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

loads via CDN by default, can be set via `mermaidCDN`

Original README

Note that the Feather CDN can still be enabled, but you can also host it statically.

Original README

This theme currently supports [umami](https://github.com/umami-software/umami) for a privacy focused alternative.

Original README
https://github.com/chollinger93/ink-free/blob/master/LICENSE.mdhttps://github.com/chollinger93/ink-free/blob/master/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-02. 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 · 74 / 100
Technologies
Hugo
Website type
Portfolio · 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
2025-05-15
Screenshot last checked
2026-10-02

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.

Automatically checked against source and license rules; no manual editorial review.

Inspect the recorded source material

SHA-256: eb45674b429a0b7b77eab68ab9ff33e6a39564b114ad119582cd3c4df07080b2

2026-10-02T10:11:55.097Z

Source file / repository
# Ink-Free

[!["Example"](https://img.shields.io/static/v1?label=Example&message=chollinger.com&color=green&logo=hugo)](https://chollinger.com/blog)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=HUGO-version&message=>=0.87.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.87.0)
[![ink-free](https://img.shields.io/static/v1?label=ink-free&message=Theme&color=blue&logo=hugo)](ttps://themes.gohugo.io/themes/ink-free/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Crisp, minimal personal website and blog theme Hugo, designed for a collaborative, open-source, privacy conscious blog.

Forked from [knadh](https://github.com/knadh/hugo-ink) with custom adjustments. Originally forked from [Ezhil](https://github.com/vividvilla/ezhil).


## Ink-Free vs Hugo-Ink
This repository is a purely local (i.e., no CDNs[^1]), simplified version of `hugo-ink` with several **simplifications** for the sake of privacy:
- Removed all references to Google's font-CDN
- Removed Analytics code, replaced with self-hosted options[^2]

As well as some additional **features**:
- Added a Back button to all posts
- Added a Table of Contents (TOC), controlled by a variable, to all posts
  - The TOC can either be static at the top
  - Or floating on the side

- Added a word count, tags, and an approximate read time to the overview
- Added random footer messages
- Added "Edit this on GitHub" button
- Added `inlineimg` shortcode to render images (e.g. SVGs) in-line
- Added support for `![](image title="title")` syntax for image titles
- Random, somewhat humorous messages at the end of each post
- Added support for [mermaid](https://mermaid.js.org/) diagrams (*loads via CDN by default, can be set via `mermaidCDN`*)

And some **bugfixes**:
- Modified the CSS to
  - Order all tags inline, as opposed to as a list
  - Change the background color for Syntax Highlighting, otherwise we're looking at grey code on a grey background
  - Added some classes for a Back button

## Demo

### Overview

![Screenshot](images/screenshot.png "Ink-Free theme")

![image-20230620151830930](images/screenshot2.png)

![Dark Mode](images/dark_mode.png "Dark mode")

### Table Of Contents Options

#### Floating

![image-20230620114414684](images/floating_toc.png)

#### Static

![image-20230620151300448](images/static_toc.png)

#### Both

![image-20230620151006141](images/both_toc.png)

#### Truncated

![image-20230620151110164](images/truncated_toc.png)

#### Mobile

![image-20230620151645609](images/mobile_toc.png)

### Run the example
```
cd exampleSite
hugo serve  --themesDir ../..
```

## Features
* Syntax highlighting
* RSS feeds
* Custom CSS/JS
* Multilingual months support
* Custom TOC
* In-Line images w/ Titles
* Random footer messages
* "Edit this on GitHub" button
* Word count, tags, and an approximate read time in the overview
* [Umami](https://github.com/umami-software/umami) support

## Installation

cd into your hugo site's root directory and:

```sh
cd themes
git submodule add https://github.com/chollinger93/ink-free
```

For more information read the [official setup guide](https://gohugo.io/overview/installing/) of Hugo.


## Content type

You can specify content type with field `type` in your content. For example static pages can be set as type `page` which are excluded from recent posts and all posts page. You can use site params `mainSections` and `disableDisqusTypes` to control which page types are excluded from recent posts and Disqus comments respectively.

```md
---
title: "About"
date: 2019-04-19T21:37:58+05:30
type: "page"
---

This is some static page where you can write about yourself.
```

## Language Settings for the month

Due to the currently unavailable feature for multilingual dates in ``.Date`` from
Go. It is possible to create a ``month.yaml`` in the data folder of your
Hugo site root directoy. There is also an example file in
``exampleSite/data/``.

```sh
cat > month.yaml << EOF
1: "Jan"
2: "Feb"
3: "Mar"
4: "Apr"
5: "May"
6: "Jun"
7: "Jul"
8: "Aug"
9: "Sep"
10: "Oct"
11: "Nov"
12: "Dec"
EOF
```

## Credits

* [knadh](https://github.com/knadh/hugo-ink), who created hugo-ink
* [Ezhil theme](https://github.com/vividvilla/ezhil) from which Ink was forked


## License
Licensed under the MIT license.

[^1]: Note that the Feather CDN can still be enabled, but you can also host it statically.
[^2]: This theme currently supports [umami](https://github.com/umami-software/umami) for a privacy focused alternative.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.