Hugo启动器

hugo-ink — Hugo 启动器模板

作者 vinooganesh

Ink 是一个基于 Hugo 的极简个人网站与博客主题,强调无外部请求、自托管字体与资源,并内置浅色/深色模式、模糊搜索、llms.txt 输出和 Ask AI 按钮。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

1 个预览视图
作者提供的预览
作者提供的预览首屏预览

来自项目 README 的原始预览。

目前有 1 张原始预览,可打开完整图片查看设计细节。

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-03查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

无外部请求:不依赖 CDN 与 Google Fonts,字体与资源自托管

02

浅色/深色模式:无闪烁切换,支持系统偏好检测与 Alt+T 快捷键

03

搜索:Fuse.js 模糊搜索,仅在搜索页加载,需配置 JSON 输出

04

AI 相关输出:提供 llms.txt 结构化站点索引与可配置的 Ask AI 按钮

05

内容功能:文章目录、相关文章、系列导航、代码复制按钮与完整 RSS

06

可定制:17 个 CSS 自定义属性、21 条可翻译 UI 字符串与多种安装方式

模板详细介绍

Ink 是面向个人网站与博客的 Hugo 主题,代码采用 MIT 许可。它把首页加载控制在不依赖 CDN、Google Fonts 或外部请求的范围内,字体 Inter 以自托管 WOFF2 形式提供,CSS 与 JS 均经过压缩并带指纹与 SRI 哈希。主题内置浅色/深色模式切换,支持跟随系统偏好,并提供键盘快捷键(Alt+T 切换主题、/ 聚焦搜索、Escape 清空搜索)。

内容层面,Ink 提供博客文章、About、Now 和搜索等页面布局。文章 front matter 可控制目录(ShowToc、TocOpen)、系列(series)、搜索隐藏(searchHidden)以及 llms.txt 隐藏(hidden)。相关文章通过 tags 与 date 索引自动生成,系列导航用于多篇连载。搜索页使用 Fuse.js,仅在搜索页加载,需要站点输出 JSON;llms.txt 输出需要配置自定义 output format。首页可展示头像、简介、社交链接和 Ask AI 按钮,Ask AI 按钮默认指向 Claude、ChatGPT 与 Perplexity,也可自定义或关闭。

主题要求 Hugo v0.123.0 或更高版本,建议使用 extended 版本。安装方式包括 Git submodule、Hugo Module 和直接下载三种。README 中列出了完整的配置参数、front matter 参考、17 个 CSS 自定义属性以及 21 条可翻译的 UI 字符串。演示图片、字体、图标等第三方素材的许可需要单独核对,域名、托管等外部服务可能产生费用。

Hugo启动器

适合你的项目吗?

适用场景

  • 搭建个人网站或技术博客,希望首页不发起外部请求
  • 需要浅色/深色模式、阅读进度条、粘性页头等阅读体验的博客
  • 为文章添加目录、相关文章和系列导航的连载型内容站点
  • 希望为 AI 爬虫提供 llms.txt 索引,并在首页放置 Ask AI 入口
  • 需要多语言 UI 字符串翻译与键盘可访问性的 Hugo 站点

适合人群

  • 使用 Hugo v0.123.0 或更高版本的个人开发者与写作者
  • 偏好极简排版、自托管资源、无 JavaScript 框架的站点
  • 需要博客、About、Now 与搜索页面的个人内容站点
  • 愿意通过 hugo.toml 与 CSS 变量进行配置和样式定制

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    需要 Hugo v0.123.0 或更高版本,建议使用 extended 版本

  2. 2

    安装方式可选 Git submodule、Hugo Module(需 Go)或下载 release 解压到 themes/ink/

  3. 3

    启用搜索需在 [outputs] 的 home 中加入 JSON,并创建使用 layout: search 的 content/search.md

  4. 4

    启用 llms.txt 需在 [outputs] 的 home 中加入 llmstxt,并配置对应的 outputFormats

  5. 5

    示例站点位于 exampleSite/,可复制其 hugo.toml 作为配置起点

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • 使用该主题需安装 Hugo v0.123.0 或更高版本,建议使用 extended 版本,否则可能无法正常构建站点。
  • 若选择 Hugo Module 安装方式,需要预先安装 Go 环境;使用 Git submodule 或下载方式则无此要求。
  • 启用搜索功能需在站点配置的 [outputs] 中为 home 添加 JSON 输出格式,并创建使用 layout: search 的搜索页,否则搜索不可用。
  • Ask AI 按钮依赖外部 AI 服务(如 Claude、ChatGPT、Perplexity),点击后会跳转至这些第三方站点;不支持 URL 传参的工具需依赖剪贴板复制提示词,使用这些外部服务可能受其各自条款与费用约束。
  • 主题自托管的 Inter 字体采用 SIL Open Font License,与主题代码的 MIT 许可不同,再分发或修改字体时需遵守其单独许可条款。
  • 搜索功能使用的 Fuse.js 采用 Apache 2.0 许可,与主题代码的 MIT 许可不同,再分发时需保留其单独许可与声明。
  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

Requires Hugo **v0.123.0** or later (extended edition recommended)

README 原文

Requires [Go](https://go.dev/dl/) installed.

README 原文

Requires `"JSON"` in your `[outputs]` config. Search is powered by Fuse.js and loads only on this page.

README 原文

If a tool supports URL-based prompts, include `PROMPT` in the URL — it will be replaced with the auto-generated prompt. For tools without URL prompt support, the prompt is copied to clipboard before opening.

README 原文

- [Inter](https://rsms.me/inter/) typeface by Rasmus Andersson (SIL Open Font License)

README 原文

- [Fuse.js](https://www.fusejs.io/) by Kiro Risk (Apache 2.0)

README 原文
https://github.com/vinooganesh/hugo-ink/blob/main/LICENSEhttps://github.com/vinooganesh/hugo-ink/blob/main/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-03。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
Hugo Themes
资料与维护参考分
资料一般 · 63 / 100
技术栈
Hugo
网站类型
启动器
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-02-18
截图检查日期
2026-10-03

目前没有记录演示链接。请依据仓库说明在本地评估;仅凭截图无法确认交互行为。

目录记录的主要技术栈是 Hugo。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

审核声明: [email protected] · 2026-10-04

查看当时使用的来源资料

SHA-256: 122b8141d0122f7548c10a35cb4f867633c943488728441fee000423422c61aa

2026-10-03T14:18:44.678Z

来源文件 / 仓库
# Ink

A minimal, blazing-fast Hugo theme for personal websites and blogs.

**Fast | Minimal | AI-Ready | Sub-100KB**

Built by [Vinoo Ganesh](https://vinoo.io) ([GitHub](https://github.com/vinooganesh))

---

![Ink theme — light mode](https://raw.githubusercontent.com/vinooganesh/hugo-ink/main/images/screenshot.png)

![Ink theme — dark mode](https://raw.githubusercontent.com/vinooganesh/hugo-ink/main/images/screenshot-dark.png)

---

## Features

- Sub-100KB first page load — no CDN, no Google Fonts, no external requests
- Flash-free light/dark mode with OS preference detection
- Self-hosted [Inter](https://rsms.me/inter/) font (Latin subset, ~76KB WOFF2 total)
- Minified and fingerprinted assets with SRI hashes
- No JavaScript frameworks — vanilla inline JS only
- Fuzzy search powered by [Fuse.js](https://www.fusejs.io/) (loaded only on search page)
- `llms.txt` output — structured site index for AI crawlers
- Ask AI buttons — one-click prompt to Claude, ChatGPT, Perplexity
- JSON-LD structured data (Article, WebSite, WebPage)
- Table of Contents (collapsible, per-post opt-in)
- Related posts (auto-generated, 3-column grid)
- Post series navigation
- Code copy button on all code blocks
- Full-content RSS feed with autodiscovery
- Dedicated [Now page](https://nownownow.com/about) layout
- Reading progress bar, scroll-to-top, sticky header
- Open Graph, Twitter Cards, canonical URLs
- Full i18n support (21 translatable UI strings)
- Keyboard accessible with ARIA labels and semantic HTML
- Print stylesheet and `prefers-reduced-motion` support
- Four responsive breakpoints

> Requires Hugo **v0.123.0** or later (extended edition recommended)

---

## Installation

### Method 1: Git Submodule (recommended)

```bash
hugo new site my-site
cd my-site
git init
git submodule add https://github.com/vinooganesh/hugo-ink.git themes/ink
```

Set the theme in `hugo.toml`:

```toml
theme = "ink"
```

**Updating:**

```bash
git submodule update --remote --merge
```

### Method 2: Hugo Module

Requires [Go](https://go.dev/dl/) installed.

```bash
hugo new site my-site
cd my-site
hugo mod init github.com/your-username/my-site
```

Add to `hugo.toml`:

```toml
[module]
  [[module.imports]]
    path = "github.com/vinooganesh/hugo-ink"
```

**Updating:**

```bash
hugo mod get -u github.com/vinooganesh/hugo-ink
```

### Method 3: Download

Download the [latest release](https://github.com/vinooganesh/hugo-ink/releases) and extract into `themes/ink/`.

---

## Quick Start

After installing, the fastest way to get running:

```bash
# Copy the example configuration
cp themes/ink/exampleSite/hugo.toml hugo.toml

# Create your first post
hugo new posts/hello-world.md

# Start the dev server
hugo server
```

Open [http://localhost:1313](http://localhost:1313) to see your site.

The `exampleSite/` directory contains a full working site you can reference for content structure and configuration.

---

## Configuration

### Minimal `hugo.toml`

The minimum config to get a working site:

```toml
baseURL = "https://example.com/"
languageCode = "en-us"
title = "My Site"
theme = "ink"

[params]
  author = "Your Name"
  description = "My personal site."
  homeTitle = "Your Name"
  homeSubtitle = "A short tagline."

[menu]
  [[menu.main]]
    name = "Blog"
    url = "/posts/"
    weight = 1

[outputs]
  home = ["HTML", "RSS"]
```

### Full `hugo.toml`

All available options with comments:

```toml
baseURL = "https://example.com/"
languageCode = "en-us"
title = "Your Name"
theme = "ink"

[params]
  author = "Your Name"
  description = "Designer, developer, and writer."
  homeTitle = "Your Name"
  homeSubtitle = "Designer, developer, and writer."
  homeBio = "I build things for the web and write about technology, design, and the craft of making software."
  homeImage = "/images/avatar.jpg"    # Avatar on homepage (place in static/images/, renders as 110px circle)
  favicon = "/favicon.ico"            # Place in static/
  recentPostsCount = 3                # Posts shown on homepage (default: 3)

  # Social links — displayed in the homepage hero section
  [[params.socialLinks]]
    name = "GitHub"
    url = "https://github.com"
    external = true                   # Opens in new tab with external link indicator
  [[params.socialLinks]]
    name = "LinkedIn"
    url = "https://linkedin.com"
    external = true
  [[params.socialLinks]]
    name = "Email"
    url = "mailto:[email protected]"
  [[params.socialLinks]]
    name = "Blog"
    url = "/posts/"

  # Ask AI buttons — shown on homepage, configurable
  # If omitted entirely, defaults to Claude, ChatGPT, and Perplexity
  # Use PROMPT in URL for tools with native query support
  [[params.askAI]]
    name = "Claude"
    url = "https://claude.ai/new"
  [[params.askAI]]
    name = "ChatGPT"
    url = "https://chatgpt.com/"
  [[params.askAI]]
    name = "Perplexity"
    url = "https://perplexity.ai/search?q=PROMPT"

# Navigation menu
[menu]
  [[menu.main]]
    name = "Now"
    url = "/now/"
    weight = 1
  [[menu.main]]
    name = "About"
    url = "/about/"
    weight = 2
  [[menu.main]]
    name = "Blog"
    url = "/posts/"
    weight = 3

# Output formats — add "llmstxt" and "JSON" to enable llms.txt and search
[outputs]
  home = ["HTML", "RSS", "llmstxt", "JSON"]

[outputFormats.llmstxt]
  mediaType = "text/plain"
  baseName = "llms"
  isPlainText = true
  notAlternative = true

# Related posts — powers the "Related Posts" section on blog posts
[related]
  includeNewer = true
  threshold = 80
  toLower = true
  [[related.indices]]
    name = "tags"
    weight = 100
  [[related.indices]]
    name = "date"
    weight = 10
```

### Site Parameters Reference

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `author` | string | — | Author name for meta tags |
| `description` | string | — | Site description for SEO |
| `homeTitle` | string | — | Large heading on homepage |
| `homeSubtitle` | string | — | Subtitle below the heading |
| `homeBio` | string | — | Paragraph text on homepage |
| `homeImage` | string | — | Avatar image path (110px circle) |
| `favicon` | string | — | Favicon path |
| `recentPostsCount` | int | `3` | Number of posts on homepage |
| `socialLinks` | array | — | Social links in hero section |
| `askAI` | array | Claude, ChatGPT, Perplexity | AI prompt buttons on homepage |

---

## Content

### Directory Structure

```
content/
  about.md              # About page
  now.md                # Now page (uses layout: "now")
  search.md             # Search page (uses layout: "search")
  posts/
    my-first-post.md
    another-post.md
```

### Blog Post Front Matter

```yaml
---
title: "My Post"
date: 2026-02-15
tags: ["go", "web"]
description: "A short description for SEO and post cards."
ShowToc: true              # Show table of contents (default: false)
TocOpen: true              # TOC starts expanded (default: false)
series: "My Series"        # Group posts into a navigable series
searchHidden: true         # Exclude from search index (default: false)
hidden: true               # Exclude from llms.txt (default: false)
cover: "/images/cover.jpg" # Open Graph / Twitter Card image
---
```

### Front Matter Reference

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `title` | string | — | Post title |
| `date` | date | — | Publication date |
| `tags` | array | — | Tags for categorization and related posts |
| `description` | string | — | SEO meta description and post card summary |
| `ShowToc` | bool | `false` | Show table of contents |
| `TocOpen` | bool | `false` | TOC expanded by default |
| `series` | string | — | Series name for multi-part posts |
| `searchHidden` | bool | `false` | Hide from search index |
| `hidden` | bool | `false` | Hide from llms.txt |
| `cover` | string | — | Image for Open Graph / Twitter Cards |

### Special Pages

**Search page** — Create `content/search.md`:

```yaml
---
title: "Search"
layout: "search"
searchHidden: true
---
```

Requires `"JSON"` in your `[outputs]` config. Search is powered by Fuse.js and loads only on this page.

**Now page** — Create `content/now.md`:

```yaml
---
title: "Now"
layout: "now"
subtitle: "What I'm up to these days"
---
```

Uses a dedicated layout. Learn more about [Now pages](https://nownownow.com/about).

**About page** — Create `content/about.md`:

```yaml
---
title: "About"
---
```

Uses the default single page layout.

---

## Customization

### Colors

The theme uses 17 CSS custom properties with full light/dark pairs. Override them in your own stylesheet:

```css
:root {
  --bg: #ffffff;
  --text: #111111;
  --link: #0066cc;
  /* ... */
}
```

| Variable | Light | Dark | Used for |
|----------|-------|------|----------|
| `--bg` | `#fafaf9` | `#1c1917` | Page background |
| `--text` | `#1c1917` | `#fafaf9` | Primary text |
| `--text-secondary` | `#78716c` | `#a8a29e` | Meta text, subtitles |
| `--link` | `#2563eb` | `#60a5fa` | Link color |
| `--link-hover` | `#1d4ed8` | `#93bbfd` | Link hover |
| `--accent` | `#2563eb` | `#60a5fa` | Focus rings, progress bar |
| `--border` | `#e7e5e4` | `#44403c` | Borders, dividers |
| `--code-bg` | `#f5f5f4` | `#292524` | Inline code background |
| `--code-text` | `#44403c` | `#d6d3d1` | Inline code text |
| `--code-block-bg` | `#1e1e1e` | `#292524` | Code block background |
| `--code-block-text` | `#d4d4d4` | `#d6d3d1` | Code block text |
| `--tag-bg` | `#f5f5f4` | `#292524` | Tag pill background |
| `--tag-text` | `#44403c` | `#d6d3d1` | Tag pill text |
| `--blockquote-border` | `#d6d3d1` | `#57534e` | Blockquote left border |
| `--selection-bg` | `#2563eb` | `#60a5fa` | Text selection background |
| `--selection-text` | `#fff` | `#1c1917` | Text selection text |
| `--hover-bg` | `#f5f5f4` | `#292524` | Card hover background |

### Ask AI Buttons

Configurable via `params.askAI`. If omitted entirely, defaults to Claude, ChatGPT, and Perplexity.

Add any AI tool:

```toml
[[params.askAI]]
  name = "Gemini"
  url = "https://gemini.google.com/"
```

If a tool supports URL-based prompts, include `PROMPT` in the URL — it will be replaced with the auto-generated prompt. For tools without URL prompt support, the prompt is copied to clipboard before opening.

To disable Ask AI buttons entirely, set an empty array:

```toml
[params]
  askAI = []
```

### i18n / Translations

The theme ships with English (`i18n/en.yaml`). All 21 UI strings are translatable.

Create `i18n/xx.yaml` in your site root for your language:

```yaml
# i18n/es.yaml
prev: "← Anterior"
next: "Siguiente →"
search: "Buscar"
search_placeholder: "Escribir para buscar..."
search_no_results: "No se encontraron resultados."
search_unavailable: "Indice de busqueda no disponible."
search_requires_js: "La busqueda requiere JavaScript."
recent: "Recientes"
view_all: "Ver todo"
toggle_theme: "Cambiar tema"
scroll_to_top: "Ir arriba"
copy: "copiar"
copied: "Copiado!"
toc_title: "Tabla de contenidos"
related_posts: "Articulos relacionados"
ask_ai_label: "Pregunta a la IA sobre este sitio"
page_not_found: "Pagina no encontrada"
back_home: "Volver al inicio"
series: "Serie"
min_read:
  one: "1 min de lectura"
  other: "{{ .Count }} min de lectura"
```

---

## Keyboard Shortcuts

| Key | Action |
|-----|--------|
| `Alt + T` | Toggle light/dark mode |
| `/` | Focus search input (on search page) |
| `Escape` | Clear search input |

---

## Performance

| Asset | Size |
|-------|------|
| CSS (minified) | ~15 KB |
| Inter 400 (Latin WOFF2) | 37 KB |
| Inter 700 (Latin WOFF2) | 38 KB |
| Inline JS | ~2 KB |
| Fuse.js (search page only) | 15.4 KB |
| **Homepage first load** | **~95 KB** |

No external requests. No CDN. No Google Fonts. Everything is self-hosted.

---

## Credits

- [Inter](https://rsms.me/inter/) typeface by Rasmus Andersson (SIL Open Font License)
- [Fuse.js](https://www.fusejs.io/) by Kiro Risk (Apache 2.0)
- Inspired by [PaperMod](https://github.com/adityatelange/hugo-PaperMod)

## License

[MIT](LICENSE)
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。