Hugo 主题
正在写作 - 一个为作家网站设计的 Hugo 主题
正在写作是一个为 Hugo 制作的主题,专为希望创建简单网站的作家而设计。
功能
正在写作支持
- 多种不同的颜色主题
- 多语言(默认支持法语和英语)
- Mastodon Feed 集成
- 链接到您的 Patreon、Mastodon、Ko-fi 个人资料
- 用于标准显示页面的各种图书元数据
- 完全可定制
- 按图书类型显示
- 您的个人作者博客
- RSS 支持
安装
在您的 Hugo 网站根文件夹中,添加主题
git clone https://github.com/Wivik/am-writing-hugo-theme themes/am-writing
或作为子模块
git submodule add https://github.com/Wivik/am-writing-hugo-theme themes/am-writing
然后,继续进行配置。
配置
启用主题
在 hugo.yaml
(或 toml
)中更改主题
theme: am-writing
为图书列表添加以下分类法
taxonomies:
genres: genres
添加默认内容语言并指示它在子目录中。
defaultContentLanguage: fr
defaultContentLanguageInSubdir: true
然后,添加两种语言设置
不要更改 mainSections: ['books']
languages:
fr:
contentDir: content/fr
disabled: false
languageCode: fr-FR
languageName: Français
title: Demo Author
params:
subtitle: Auteur d'un Site Demo
mainSections: ['books']
weight: 1
menu:
main:
- identifier: home
name: 'Accueil'
url: /fr/
weight: 10
- identifier: books
name: 'Livres'
url: /fr/books/
weight: 20
- identifier: tags
name: 'Genres'
url: /fr/genres/
weight: 30
- identifier: legal
name: 'Mentions légales'
url: /fr/legal/
weight: 40
en:
contentDir: content/en
languageCode: en-GB
languageName: English
title: Demo Author
disabled: false
params:
subtitle: Writer of a Demo Website
mainSections: ['books']
weight: 2
menu:
main:
- identifier: home
name: 'Home'
url: /en/
weight: 10
- identifier: books
name: 'Books'
url: /en/books/
weight: 20
- identifier: tags
name: 'Genres'
url: /en/genres/
weight: 30
- identifier: legal
name: 'Legal Notice'
url: /en/legal/
weight: 40
根据您的选择进行调整。
特定设置
该主题支持以下设置
设置 | 必需 | 默认值 | 描述 |
---|---|---|---|
params.author | 否 | 无 | 您的作者姓名,您应该设置它。 |
params.avatar | 否 | 无 | 一张图片,预计在 /static 文件夹中。 |
params.blog | 否 | false | 启用或禁用博客功能。 支持的参数 - true - false (默认)有关如何使用,请参阅博客功能。 |
params.bookListType | 否 | grid | 更改图书列表样式,默认是带有描述的缩略图 grid 。另一个选项是 list 用于以前的显示方式。可能的值 - grid (默认)- list |
params.commission | 否 | false | 显示一个按钮,表明您接受委托。可能的值:true (接受委托),false (不接受委托) |
params.commissionLink | 否 | 无 | 指向您的委托平台的链接。 |
params.contentLicense | 否 | 无 | 在页脚中显示网站使用的许可证。例如:CC BY-SA 4.0 |
params.displaySubscribeButton | 否 | false | 与在您的 content 目录中放置并重命名的 subscribe-example.md 页面一起使用,此选项将启用一个“订阅”按钮,重定向到订阅页面。有关更多详细信息,请参阅订阅网站内容。 |
params.displaySubscribeRSS | 否 | true | 在“关于”左侧部分显示 RSS 订阅按钮。RSS 链接用于图书发布。如果启用了博客,也会显示另一个按钮。新闻通讯链接也是如此。 |
params.goodreads | 否 | 无 | 您的 GoodReads 个人资料 URL |
params.kofi | 否 | 无 | 您的 Ko-fi 个人资料 URL |
params.liberapay | 否 | 无 | 您的 Liberapay 支持 URL |
params.mastodon | 否 | 无 | 您的 Mastodon 个人资料的 URL。 |
params.mastodonMaxItems | 否 | 5 | 您希望在 Feed 中显示多少帖子。 |
params.newsletterIntegrationCode | 否 | 无 | 使用多行 YAML 语法在此处粘贴您的新闻通讯订阅的集成代码。 |
params.newsletterSubscriptionLink | 否 | 无 | 指向您的新闻通讯订阅页面的链接。此设置优先于订阅页面中的新闻通讯集成。 意思是如果您同时设置了这两个,将显示指向新闻通讯订阅的链接,而不是集成表单。 |
params.pageCountisEstimated | 否 | false | 如果设置为 true,这将在图书详情上显示页数时添加一个小弹出窗口,指示页数是估计值。如果您只发布 epub 文件,建议使用此选项,因为与实体书不同,它们没有实际定义的页面布局。 默认估计值据说基于每页 280 个单词(请参阅我的 epub 元数据导出工具了解更多信息)。您可以在 i18n 翻译中调整此消息。 |
params.patreon | 否 | 无 | 您的 Patreon 个人资料 URL。您需要一张首页图片,将其另存为 patreon.jpg 在 static/ 文件夹中。 |
params.theme | 否 | nord | 使用内置主题之一 - nord - catpuccin-latte - catpuccin-frappe |
params.themeFont | 否 | serif | 使用衬线或无衬线字体。可用选项 - serif - sans-serif |
params.books2readProfile | 否 | 无 | 指向您的 Books2Read 个人资料的 URL |
params.amazonAuthorProfile | 否 | 无 | 指向您的亚马逊作者个人资料的 URL |
params.googlePlayAuthorProfile | 否 | 无 | 指向您的 Google Play 图书个人资料的 URL |
params.xinxiiAuthorProfile | 否 | 无 | 指向您的 Xinxii 个人资料的 URL |
params.neovelAuthorProfile | 否 | 无 | 指向您的 Neovel 个人资料的 URL |
主题展示
Nord(默认)
Catpuccin Latte
Catpuccin Frappe
暗色
图书列表布局
该主题支持图书列表的两种布局:网格(默认)和列表。
网格布局
列表布局(之前的布局)
覆盖默认个人资料
左侧提供的简短个人简介在翻译文件中配置。要覆盖它,请创建一个翻译文件 <hugo 网站根目录>/i18n
,并根据语言命名(例如:英语:en.yaml
)。
在其中,您可以覆盖内置翻译
genres:
short-story: "Short Story"
science-fiction: "Science Fiction"
about:
author: |
Insert here your author's bio
legal-notice: |
The stories and characters in <YOUR NAME HERE>'s books are purely fictional. Any resemblance to existing or former persons is purely coincidental.
博客
这个主题也可以是您的博客。这是一个非常简单的功能,所以不要期望有花哨的用例。
要使用博客功能,请按照以下步骤操作
- 在您的 Hugo 网站配置中启用该功能
params:
blog: true
我建议减少文章摘要。也在 hugo 配置中添加以下设置
summaryLength: 20
- 添加菜单项
- identifier: blog
name: 'Blog'
url: /blog/
weight: 30
或者如果您使用多语言
- identifier: blog
name: 'Blog'
url: /fr/blog/
weight: 30
- identifier: blog
name: 'Blog'
url: /en/blog/
weight: 30
警告:在支持多语言的情况下,如果文章要显示给每种语言,则必须将其放在所有语言文件夹中。请参考多语言模式 Hugo 文档。
- 创建您的第一篇博客文章。
hugo new --kind blog blog/my-first-post.md
订阅网站内容
此功能旨在生成一个“如何订阅此内容”的页面。 基本上,它是你为你的受众提供的各种沟通渠道的聚合。
要启用此功能,首先需要在 hugo.yaml
中将 params.displaySubscribeButton
设置为 true
。 之后,将出现以下按钮:
然后,将主题中的 subscribe-example.md
文件复制到你的 content/
文件夹,并将其命名为 subscribe.md
。 注意,如果你的网站是多语言的,则需要将其复制到每个语言文件夹中。 例如 content/fr/subscribe.md
和 content/en/subscribe.md
。
此页面基本上是一个 Hugo 短代码列表,它将显示以下元素:
this_site
:关于在用户书签中注册网站的简单说明。rss_books
:仅用于书籍的 RSS 源。rss_blog
:用于博客功能的 RSS 源。 仅在启用博客时显示。newsletter
:你的新闻通讯提供商的集成代码。 将集成params.newsletterIntegrationCode
中提供的代码。fediverse
:如果设置中定义了你的 Mastodon 帐户的链接。
这些页面中显示的所有描述都可以在相关的 i18n
文件中被覆盖。
书籍管理
书籍页面内容
所有书籍页面均由元数据管理,markdown 文件中没有实际内容。
请参阅 archetype/book.md 文件以获取完整参考。
变量文档
名称 | 必需 | 默认值 | 描述 |
---|---|---|---|
amazon | 否 | 无 | 指向 Amazon KDP 条目的链接。 如果你只在 Amazon 上发布,请忽略此字段,并将链接放入 link 中。 |
author | 是 | {{ .Site.Params.author }} | 作者姓名,以防是不同的人。 |
authorsnote | 否 | 无 | 如果你想添加关于你书的个人评论。 |
book | 是 | true | 请勿删除或更改,模板会使用它。 |
cover | 不是必需,但建议使用 | {{ printf "%s.jpg" .File.ContentBaseName }} | 封面文件的名称。 此文件应位于 /static 文件夹中。 |
date | 是 | {{ .Date }} | 该书的出版日期。 Hugo 将其定义为页面创建日期,因此请修改它以反映实际发布日期。 |
description | 不是必需,但建议使用 | 无 | 该书的描述。 可以是概要或其他任何你想要的内容。 支持 Markdown。 |
draft | 否 | false | 如果你不想立即发布此条目,请设置为 true。 |
epub | 否 | false | 你可以直接提供一个 epub 文件,在此字段中放入 epub 文件名(例如:something.epub)。 它必须放置在 /static/free-books 文件夹中。 |
free | 否 | false | 如果你免费发布你的书,则会将主链接按钮的值更改为“免费书籍”。 |
freepreview | 否 | false | 如果你的书有免费预览,请在此处放入 .epub 文件的名称。 该文件应位于 /static/books-preview/ 文件夹中。 |
genres | 否 | 无 | 你书籍的类型列表。 使用 i18n 文件中提供的技术名称以翻译标签。 |
googlePlay | 否 | 无 | 如果你在 Google Play 图书上发布,则指向 Google Play 图书的链接。 |
isbn | 否 | 1234567891237 | 你书籍的 ISBN |
language | 是 | EN | 该书的语言。 如果是多语言并且该书有翻译版本,则为必填项。 |
link | 否 | 无 | 你的主要销售场所的链接。 例如 Book2Read。 如果缺少,页面将显示“不可用”。 |
pages | 否 | 70 | 该书包含多少页。 你可以使用我为此信息制作的工具。 |
patreon | 否 | 无 | 如果你在 Patreon 上发布,则指向 Patreon 的链接。 |
publishedOn | 否 | {{ .Date }} | 你的书的出版日期。 如果未提供,则默认为页面创建日期。 |
title | 是 | {{ replace .File.ContentBaseName "-" " " | title }} | 书名 |
words | 否 | 18k | 该书包含多少个单词。 你可以使用我为此信息制作的工具。 |
xinxii | 否 | 无 | 如果你在 XinXii 上发布,则指向 XinXii 的链接。 |
创建新书
使用具有正确类型的 Hugo。
hugo new content books/my-book.md --kind book
然后,相应地编辑新文件。
关于翻译书籍的注意事项
书籍文件(例如:my-book.md
)必须对于每种语言具有相同的名称。 更改文件内的标题。 这样,Hugo 就能够匹配你内容的各种语言。
例如:
en/books/my-book.md
=>title: My Book
fr/books/my-book.md
=>title: Mon Livre
许可证
Am Writing 基于 MIT 许可证授权。 请参阅 LICENSE。
第三方内容许可证
- Droid Serif 基于 Apache 2.0 许可证授权
- Droid Sans 基于 Apache 2.0 许可证授权
- 使用基于 Apache 2.0 许可证授权的 Remix Icons
- 使用基于 MIT 许可证授权的 Catpuccin 颜色方案
- 使用基于 MIT 许可证授权的 Nord Theme 颜色方案