From bbb0f9be0d92924ab44d80084092ccb5c36554c4 Mon Sep 17 00:00:00 2001 From: Weaxs <459312872@qq.com> Date: Thu, 14 Mar 2024 01:31:31 +0800 Subject: [PATCH 01/10] translate welcome && update i18n --- exampleSite/config/_default/menus.zh-cn.toml | 4 +- exampleSite/content/docs/_index.zh-cn.md | 17 ++++ .../content/docs/installation/index.zh-cn.md | 10 ++ .../content/docs/welcome/index.zh-cn.md | 92 +++++++++++++++++++ i18n/zh-CN.yaml | 2 +- i18n/zh-TW.yaml | 2 +- 6 files changed, 123 insertions(+), 4 deletions(-) create mode 100644 exampleSite/content/docs/installation/index.zh-cn.md create mode 100644 exampleSite/content/docs/welcome/index.zh-cn.md diff --git a/exampleSite/config/_default/menus.zh-cn.toml b/exampleSite/config/_default/menus.zh-cn.toml index bbc9cd54..df6d1f24 100644 --- a/exampleSite/config/_default/menus.zh-cn.toml +++ b/exampleSite/config/_default/menus.zh-cn.toml @@ -16,7 +16,7 @@ weight = 10 [[main]] - name = "Shortcodes" + name = "短代码" pageRef = "docs/shortcodes" weight = 15 @@ -48,7 +48,7 @@ weight = 90 [[main]] - name = "Merch" + name = "周边" url = "https://www.teepublic.com/user/blowfish-store/t-shirts" weight = 100 diff --git a/exampleSite/content/docs/_index.zh-cn.md b/exampleSite/content/docs/_index.zh-cn.md index e69de29b..5fff704f 100644 --- a/exampleSite/content/docs/_index.zh-cn.md +++ b/exampleSite/content/docs/_index.zh-cn.md @@ -0,0 +1,17 @@ +--- +title: "文档" +description: "如何使用 Blowfish。" + +cascade: + showDate: false + showAuthor: false + invertPagination: true +--- + +{{< lead >}} +了解如何使用简单而强大的 Blowfish。 +{{< /lead >}} + +本章节包含了你需要了解的有关 Blowfish 的所有信息。如果你是新用户,请查阅[安装]({{< ref "docs/installation" >}}) 指南,或者访问[示例]({{< ref "samples" >}}) 来了解 Blowfish 能做什么。 + +--- diff --git a/exampleSite/content/docs/installation/index.zh-cn.md b/exampleSite/content/docs/installation/index.zh-cn.md new file mode 100644 index 00000000..b4482a60 --- /dev/null +++ b/exampleSite/content/docs/installation/index.zh-cn.md @@ -0,0 +1,10 @@ +--- +title: "Installation" +date: 2020-08-16 +draft: false +description: "How to install the Blowfish theme." +slug: "installation" +tags: ["installation", "docs"] +series: ["Documentation"] +series_order: 2 +--- diff --git a/exampleSite/content/docs/welcome/index.zh-cn.md b/exampleSite/content/docs/welcome/index.zh-cn.md new file mode 100644 index 00000000..d59a7167 --- /dev/null +++ b/exampleSite/content/docs/welcome/index.zh-cn.md @@ -0,0 +1,92 @@ +--- +title: "欢迎来到 Blowfish" +date: 2022-01-19 +draft: false +description: "探索 Blowfish 2.0版本的新功能。" +tags: ["新用户", "文档"] +series: ["文档"] +series_order: 1 +--- + +{{< lead >}} +Blowfish 包含了大量的特性功能。 +{{< /lead >}} + +Blowfish 的目标是开发一个简单且轻量级的主题。 该主题是 Congo 的一个分支,并进行了大量扩展。 + +## Tailwind CSS 3.0 + +Tailwind CSS 是 Blowfish 的核心,当前版本包含了最新的[Tailwind CSS version 3](https://tailwindcss.com/blog/tailwindcss-v3)。 +Tailwind CSS 带来了性能优化,并提供了一些出色的新的 CSS 特性。 + + +{{< youtube "TmWIrBPE6Bc" >}} + +## 多语言支持 + +这是一个高频需求,Blowfish 现在支持多语言! +如果你使用多语言发布你的内容,网站将会构建包含所有可用翻译的版本。 +A highly requested feature, Blowfish is now multilingual! If you publish your content in multiple languages, the site will be built with all the translations available. + +
:gb: :de: :fr: :es: :cn: :brazil: :tr: :bangladesh:
+ +感谢社区的贡献,目前 Blowfish 已经翻译成二十六种语言,并且随着时间的推移还会支持更多。 顺便一提,欢迎您为支持新语言提交 [PR](https://github.com/nunocoracao/blowfish/pulls)。 + +## 支持 RTL 语言 + +新版本的Tailwind和多语言特性可以支持 RTL 语言。 + +启用 RTL 后,整个网站将会从右到左重新生成内容。主题中的所有元素都会重新风格化,以适应这种模式,有助于 RTL 语言者。 + +RTL 是基于单独语言控制的,所以你可以在项目中通过支持多语言来混合使用 RTL 和 LTR,主题会相应做出适配。 + +## 自动调整图片大小 + +Blowfish 2.0版本的重大变化是增加了自动调整图片大小的功能。基于 Hugo Pipes 提供的能力,实现了 Markdown 中的图片自动缩放到不同尺寸的功能。同时 Blowfish 2.0 还支持了 HTML `srcset` 以实现响应式图像,这能够为访问者优化图片大小。 + +![](image-resizing.png) + +```html + +My image +``` + +当然这一切都不需要你做任何改动!只需要在 Markdown 中插入标准的图片元素,Blowfish 主题会自动帮你完成这些。 + +如果你想要图片变得更可控一些,你可以使用短代码 `figure` 。 `figure` 已经被完全重写,用于提供类似调整大小的功能优势。 + +## 站点搜索 + +基于 [Fuse.js](https://fusejs.io) 提供的模糊搜索,访问者可以快速轻松地找到想要的内容。所有的模糊搜索都在客户端完成,不需要服务端做任何配置,同时保证了搜索的执行速度。只需要你在网站配置中启用这个功能就可以运行!哦,它甚至还支持全键盘导航! + +## 目录 + +这也是一个高频的需求,Blowfish 现在支持在文章内容页面中使用目录。你可以在本页面看到它的实际效果。目录完全是响应式的,并且会在不同屏幕分辨率下进行自动调整。 + +目录可以给予全局或者每篇文章,也可以使用标准的 Hugo 配置来完全定制化,允许你根据自己的项目调整。 + +## 可访问性改进 + +这个版本是至今为止最易访问的!Blowfish 不仅为更多项目提供了 ARIA 描述,还简单地调整了某些文本元素的对比度。 + +不仅如此,Blowfish 2.0 引入了 “跳转到内容” 和 “滚动到顶部” 的功能,使得导航更加便捷。你甚至可以仅用键盘快捷键来使用像搜索这样的功能,不需要使用鼠标哦~ + +新功能图片大小调节还提供了对 `alt` 和 `title` 元素的完全控制,为所有访问者提供一个无障碍的体验。 + +## 更多更多 + +当然还有无数其他的功能等待你的探索。例如在文章和列表页面显示分类、使用 `headline` 作者参数来定制你的主页,还有使用改进 JSON-LD 结构化数据,从而进一步优化了 SEO 性能等等。 + +## 结语 + +欢迎来尝试和探索强大而轻量的 Blowfish 2.0,打造优雅、个性化的创作之旅! + +如果您对 Blowfish 有更加创意的想法,欢迎随时[提交](https://github.com/nunocoracao/blowfish/discussions),期待与您共同营造 Blowfish 的开源文化! \ No newline at end of file diff --git a/i18n/zh-CN.yaml b/i18n/zh-CN.yaml index ccedd917..bed48637 100644 --- a/i18n/zh-CN.yaml +++ b/i18n/zh-CN.yaml @@ -1,5 +1,5 @@ global: - language: "ZN-CN" + language: "中文(简体)" article: anchor_label: "锚点" diff --git a/i18n/zh-TW.yaml b/i18n/zh-TW.yaml index 9940bc15..e2718f36 100644 --- a/i18n/zh-TW.yaml +++ b/i18n/zh-TW.yaml @@ -1,5 +1,5 @@ global: - language: "ZH-TW" + language: "中文(繁體)" article: anchor_label: "定位點" From 8626104b889d26953e11faa220044b632b4753dd Mon Sep 17 00:00:00 2001 From: Weaxs <459312872@qq.com> Date: Fri, 15 Mar 2024 02:24:56 +0800 Subject: [PATCH 02/10] translate installation --- .../content/docs/installation/index.zh-cn.md | 207 +++++++++++++++++- .../content/docs/welcome/index.zh-cn.md | 4 +- 2 files changed, 205 insertions(+), 6 deletions(-) diff --git a/exampleSite/content/docs/installation/index.zh-cn.md b/exampleSite/content/docs/installation/index.zh-cn.md index b4482a60..6c5b75b8 100644 --- a/exampleSite/content/docs/installation/index.zh-cn.md +++ b/exampleSite/content/docs/installation/index.zh-cn.md @@ -1,10 +1,209 @@ --- -title: "Installation" +title: "安装和配置" date: 2020-08-16 draft: false -description: "How to install the Blowfish theme." +description: "如何安装 Blowfish 主题。" slug: "installation" -tags: ["installation", "docs"] -series: ["Documentation"] +tags: ["安装", "文档"] +series: ["文档集合"] series_order: 2 --- + +如果想快速上有,可以按照标准的 Hugo [快速启动](https://gohugo.io/getting-started/quick-start/) 文档。 + +更详细的安装如下,[更新主题](#installing-updates)的教程也可以看此文档。 + +## 前言 + +本文将一步一步指导你学会使用 Hugo 和 Blowfish。本文中提到的大多数依赖项都可以在任意你想使用的平台中使用和安装。 + +### 安装 Hugo + +如果你之前没有使用过 Hugo,你首先需要了解[在本地机器安装 Hugo](https://gohugo.io/getting-started/installing)。你可以通过运行命令 `hugo version` 来检查是否安装完成。 + +{{< alert >}} +确保你使用 **Hugo 0.87.0** 或更高的版本,Blowfish 主题中使用了最新的 Hugo 特性。 +{{< /alert >}} + +你可以在 [Hugo 文档](https://gohugo.io/getting-started/installing) 中找到不同平台更加详细的安装指南。 + +### 使用 Blowfish-Tools 工具安装 (推荐) + +我们刚刚推出了一个 CLI 工具,帮助你首次使用 Blowfish。该工具将会为你创建一个新的 Hugo 项目、安装 Blowfish 主题并设置配置文件。但目前该工具仍处于测试阶段,如果遇到任何问题,请随时[提交 issues](https://github.com/nunocoracao/blowfish-tools)。 + +使用 `npm` 包或其他的包管理器,在全局环境中安装 CLI: +```shell +npx blowfish-tools +``` +或者 +```shell +npm i -g blowfish-tools +``` + +然后运行 `blowfish-tools` 命令,它将引导你完成创建和配置用例。 +```shell +blowfish-tools +``` + +你也可以运行 `blowfish-tools new` 命令来创建一个新的 Hugo 项目,并且一次性地安装主题。查看 CLI 帮助以获取更多信息。 +```shell +blowfish-tools new mynewsite +``` + +下面是一个简短的视频,介绍了如何使用 CLI 工具快速构建 Blowfish: + + + +### 手动安装 + +#### 创建新站点 + +运行 `hugo new site mywebsite` 命令,可以在`mywebsite`目录下创建一个新的 Hugo 站点。 + +下面会以 `mywebsite` 为例展开说明。当然你完全可以使用任何你喜欢的目录名称,但在阅读下面的内容时,请记得将`mywebsite`替换为此。 + +#### 下载 Blowfish 主题 + +有多种方法可以将 Blowfish 主题安装在 Hugo 站点中。下面我们由易到难逐一介绍: + +- [使用 Git 子模块安装](#install-using-git) (推荐) +- [使用 Hugo 模块安装](#install-using-hugo) +- [手动文件复制](#install-manually) + +如果你不确定用哪一个,请直接选择 Git 子模块的方式。 + +##### 使用 Git 子模块安装 + +这个方法可以保证主题简单且快速地安装和更新。除了 **Hugo** 和 **Go**,你还需要确保本地机器安装了 **Git**。 + +进入你刚才创建的网站目录 `mywebsite`,初始化一个新的 `git` 仓库并将 Blowfish 添加为子模块。 + +```bash +cd mywebsite +git init +git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish +``` + +然后 [设置主题的配置文件](#set-up-theme-configuration-files)。 + +##### 使用 Hugo 模板安装 + +这种方法是使用 Hugo 来管理你的主题,Hugo 使用 **Go** 来初始化和管理模块,所以首先需要确保已经安装了`go`。 + +1. [下载](https://golang.org/dl/) 并安装 Go。你可以使用 `go version` 命令来检查是否安装。 + + {{< alert >}} + 确保你使用 **Go 1.12** 或 更高的版本,Hugo 需要这个版本才能加载模块。 + {{< /alert >}} + +2. 在你刚才创建的网站目录 `mywebsite`下,为你的网站初始化模块: + + ```shell + # 如果你在 Github 上管理你的项目 + hugo mod init github.com// + + # 如果你在本地管理你的项目 + hugo mod init my-project + ``` + +3. 创建一个新文件 `config/_default/module.toml`,并添加下面的内容来配置主题: + + ```toml + [[imports]] + path = "github.com/nunocoracao/blowfish/v2" + ``` + +4. 使用`hugo server` 命令后,主题将会自动下载。 +5. 然后 [设置主题的配置文件](#set-up-theme-configuration-files). + +##### 手动复制文件 + +1. 下载最新的主题源码。 + + {{< button href="https://github.com/nunocoracao/blowfish/releases/latest" target="_blank" >}}从 Github 下载{{< /button >}} + +2. 解压缩, 并将文件夹重命名为 `blowfish`,将其移动到你的 Hugo 项目根目录下的 `themes/` 目录中。 +3. 然后 [设置主题的配置文件](#set-up-theme-configuration-files). + +#### 设置主题的配置文件 + +在你的网站根目录中,删除 Hugo 自动生成的 `config.toml` 文件。从主题中复制 `*.toml` 文件,粘贴到 `config/_default/` 目录中。这将确保你的主题设置准确无误,在此基础上你能够轻松地自定义主题。 + +{{< alert >}} +**注意:** 如果项目中已经存在 `module.toml` 文件,请不要覆盖它! +{{< /alert >}} + +根据你安装主题的不同方式,你可以在以下地方找到主题的配置文件: + +- **Hugo 模块:** 在 Hugo 的缓存目录, 或者从 Github [下载副本](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/nunocoracao/blowfish/tree/main/config/_default) from GitHub +- **Git 子模块 或 本地复制文件:** `themes/blowfish/config/_default` + +一旦你复制了这些文件,你的 config 目录看起来应该是这样: + +```shell +config/_default/ +├─ config.toml +├─ languages.en.toml +├─ markup.toml +├─ menus.en.toml +├─ module.toml # 通过 Hugo 模块安装 +└─ params.toml +``` + +{{< alert >}} +**重要:** 如果你没有使用 Hugo 模块安装 Blowfish,那么你必须在 `config.toml` 文件中添加 `theme = "blowfish"`。 +{{< /alert >}} + +### 下一步 + +基本的 Blowfish 安装已经完成。继续阅读 [快速开始]({{< ref "getting-started" >}}),了解更多关于主题配置的内容。 + +--- + +## 更新主题 + +经常会有 [新版本](https://github.com/nunocoracao/blowfish/releases) 的主题发布,这些版本主要是修复 bug 和添加新功能。如果想要用到新版本的功能,那么你需要更新网站的主题。 + +如何更新主题取决于最初安装主题时选择的安装方式,具体如下: + +- [使用 Git 子模块安装](#update-using-git) +- [使用 Hugo 模块安装](#update-using-hugo) +- [手动文件复制](#update-manually) + +### 利用 git 更新 + +Git 子模块的方式,可以使用 `git` 命令更新。只需执行以下命令,最新版的主题将会下载到你的本地仓库中: + +```shell +git submodule update --remote --merge +``` + +一旦子模块更新完毕,请检查你的确实是否一切正常。 + +### Update using Hugo + +Hugo 更新也十分容易。只需要进入网站根目录,并执行以下命令即可: + +```shell +hugo mod get -u +``` + +Hugo 将自动更新项目中所需的任何模块。它通过检查 `module.toml` 和 `go.mod` 来实现的。如果你在更新过程中遇到任何问题,请确保这两个文件是正常配置的。 + +重建完毕后,请检查网站是否一切正常。 + +### 手动更新 + +手动更新 Blowfish 需要下载主题的最新副本,并替换项目中的旧版本。 + +{{< alert >}} +注意:在手动替换过程中,你对主题文件中所做的任何修改都会丢失。 +{{< /alert >}} + +1. 下载主题最新版本的源码。 + + {{< button href="https://github.com/nunocoracao/blowfish/releases/latest" target="_blank" >}}从 Github 下载{{< /button >}} + +2. 解压缩, 将文件夹重命名为 `blowfish`,并移动到根目录 `themes/` 目录下。你需要覆盖旧版以替换所有的主题文件。 + +3. 重建站点,并检查网站是否一切正常。 \ No newline at end of file diff --git a/exampleSite/content/docs/welcome/index.zh-cn.md b/exampleSite/content/docs/welcome/index.zh-cn.md index d59a7167..8c94d9ef 100644 --- a/exampleSite/content/docs/welcome/index.zh-cn.md +++ b/exampleSite/content/docs/welcome/index.zh-cn.md @@ -3,8 +3,8 @@ title: "欢迎来到 Blowfish" date: 2022-01-19 draft: false description: "探索 Blowfish 2.0版本的新功能。" -tags: ["新用户", "文档"] -series: ["文档"] +tags: ["新手", "文档"] +series: ["文档集合"] series_order: 1 --- From 1c800f6d1b7c1d50d7483d6fe4a75fa351e89795 Mon Sep 17 00:00:00 2001 From: Weaxs <459312872@qq.com> Date: Sun, 17 Mar 2024 23:37:53 +0800 Subject: [PATCH 03/10] translate getting-started --- .../docs/getting-started/index.zh-cn.md | 272 ++++++++++++++++++ 1 file changed, 272 insertions(+) create mode 100644 exampleSite/content/docs/getting-started/index.zh-cn.md diff --git a/exampleSite/content/docs/getting-started/index.zh-cn.md b/exampleSite/content/docs/getting-started/index.zh-cn.md new file mode 100644 index 00000000..8f231dc0 --- /dev/null +++ b/exampleSite/content/docs/getting-started/index.zh-cn.md @@ -0,0 +1,272 @@ +--- +title: "快速开始" +date: 2020-08-15 +draft: false +description: "All the front matter variables available in Blowfish." +slug: "getting-started" +tags: ["安装", "文档"] +series: ["文档集合"] +series_order: 3 +--- + +{{< alert >}} +本节内容需要已经阅读了 [安装 Blowfish 主题]({{< ref "docs/installation" >}})。 +{{< /alert >}} + +
+{{< alert "fire" >}} +我们刚刚推出了一个 CLI 工具,用来帮助你快速开始 Blowfish。 它将帮助你安装和配置 Blowfish 主题。 可以使用以下命令全局安装 CLI 工具: +```bash +npx blowfish-tools +``` +{{< /alert >}} + + +Blowfish 中的配置文件中包含了主题需要的所有可能的设置选项。但默认情况下大多数设置都是被注释的,你只需要取消注释就可以激活或者修改设定选项。 + +## 基础设置 + +在刚刚安装完成,创建内容之前,有几个设置需要关注。从 `config.toml` 开始,设置 `baseURL` 和 `languageCode` 参数。`languageCode`参数是用来指定你创作内容的主要语言。 + +```toml +# config/_default/config.toml + +baseURL = "https://your_domain.com/" +languageCode = "en" +``` + +下一步是设置语言。尽管 Blowfish 支持多语言,但是 `config.toml` 只能配置一个主语言。 + +在 `config/_default` 文件夹中找到 `languages.en.toml`。如果你的主语言是英语,你可以直接使用此文件。否则需要重命名为主语言对应的文件名。例如,如果主语言是法语,那么需要将文件命名为 `languages.fr.toml`。 + +{{< alert >}} +注意:语言配置文件名中的语言代码需要与 `config.toml` 中 `languageCode` 相匹配。 +{{< /alert >}} + +```toml +# config/_default/languages.en.toml + +title = "My awesome website" + +[author] +name = "My name" +image = "img/author.jpg" +headline = "A generally awesome human" +bio = "A little bit about me" +links = [ + { twitter = "https://twitter.com/username" } +] +``` + +`[author]` 属性决定了作者信息的展示方式。 作者的图片信息应该放在 `assets/` 文件夹中。作者相关的链接将会按照排列顺序依次展示。 + +如果你还需要额外属性,在配置部分会有详细说明。 + +## 颜色方案 + +Blowfish 主题中包含了数个颜色方案,这些方案可以快速使用。如果需要修改方案,只需要简单的设置 `colorScheme` 参数即可。`colorScheme` 可选的值有`blowfish` (默认)、`avocado`、`fire`、`ocean`、`forest`、`princess`、`neon`、`bloody`、`terminal`、`marvel`、`noir`、`autumn`、`congo`和`slate`。 + +```toml +# config/_default/params.toml + +colorScheme = "blowfish" +``` + +Blowfish 定义了一种由三种主色调构成的配色方案,每种主色调包含了10种子色调,10个色调是借鉴 [Tailwind](https://tailwindcss.com/docs/customizing-colors#color-palette-reference) 中的定义。Blowfish 中定义了多个预置的三色主题,以便在整个主题中使用。 + +#### Blowfish(默认) +{{< swatches "#64748b" "#3b82f6" "#06b6d4" >}} + +#### Avocado +{{< swatches "#78716c" "#84cc16" "#10b981" >}} + +#### Fire +{{< swatches "#78716c" "#f97316" "#f43f5e" >}} + +#### Ocean +{{< swatches "#64748b" "#3b82f6" "#06b6d4" >}} + +#### Forest +{{< swatches "#658c86" "#3bf5df" "#06d45c" >}} + +#### Princess +{{< swatches "#8c658c" "#f53bf2" "#7706d4" >}} + +#### Neon +{{< swatches "#8338ec" "#ff006e" "#3a86ff" >}} + +#### Bloody +{{< swatches "#d90429" "#8d99ae" "#457b9d" >}} + +#### Terminal +{{< swatches "#004b23" "#38b000" "#1a759f" >}} + +#### Marvel +{{< swatches "#2541b2" "#d81159" "#ffbc42" >}} + +#### Noir +{{< swatches "#5c6b73" "#9db4c0" "#00a5cf" >}} + +#### Autumn +{{< swatches "#0a9396" "#ee9b00" "#bb3e03" >}} + +#### Congo +{{< swatches "#71717a" "#8b5cf6" "#d946ef" >}} + +#### Slate +{{< swatches "#6B7280" "#64748b" "#6B7280" >}} + +尽管这些事默认的方案,你也可以创建属于你自己的,详细信息请参阅 [高级自定义]({{< ref "advanced-customisation#colour-schemes" >}}) 部分。 + +## 整理内容 + +默认情况下, Blowfish 不强制你使用特定类型的内容。这样你可以随意自定义你想要的内容。你可能喜欢用作静态网站页面、博客帖子,或作为作品集中的某个项目。 + +这是基本 Blowfish 项目的快速概览。所有内容都放在 `content` 文件夹中: + +```shell +. +├── assets +│ └── img +│ └── author.jpg +├── config +│ └── _default +├── content +│ ├── _index.md +│ ├── about.md +│ └── posts +│ ├── _index.md +│ ├── first-post.md +│ └── another-post +│ ├── aardvark.jpg +│ └── index.md +└── themes + └── blowfish +``` + +一定要熟练掌握在 Hugo 中组织你想要的内容,此主题也旨在充分利用 Hugo 中页面页面捆绑的逻辑。请阅读 [Hugo 官方文档](https://gohugo.io/content-management/organization/) 以获取更多内容。 + +Blowfish 在分类方法上面也非常灵活。有的人喜欢使用标签(_tags_)和类别(_categories_)来分组内容,而有的人喜欢用话题(_topics_)。 + +Hugo 默认是使用帖子、标签和类别,这三种可以开箱即用的。但如果你希望自定义,那么可以创建 `taxonomies.toml` 配置文件来实现: + +```toml +# config/_default/taxonomies.toml + +topic = "topics" +``` + +这将把默认的标签和分类替换成话题。有关 Hugo 中命名分类法的更多内容,可以参考 [Hugo 分类方法](https://gohugo.io/content-management/taxonomies/)。 + +当你创建了一个新的分类法时,需要调整网站上的导航链接,以确保新分类可以指向正确的内容,下面会详细介绍。 + +## 菜单 + +Blowfish 有两个可以定制的菜单,以此来适配网站中的内容和布局。`main`菜单出现在网站头部,`footer`菜单出现在页面底部和版权声明上方。 + +这两个菜单都是配置在 `menus.en.toml` 文件中。与语言配置文件类似,如果你希望使用另一种语言,请重命名这个文件并将 `en` 替换为你所希望的语言代码。 + +```toml +# config/_default/menus.toml + +[[main]] + name = "Blog" + pageRef = "posts" + weight = 10 + +[[main]] + name = "Topics" + pageRef = "topics" + weight = 20 + +[[main]] + pre = "github" + name = "GitHub" + url = "https://github.com/nunocoracao/blowfish" + weight = 30 + +[[main]] + identifier = "github2" + pre = "github" + url = "https://github.com/nunocoracao/blowfish" + weight = 40 + +[[footer]] + name = "Privacy" + url = "https://external-link" +``` + +`name` 参数用于指定菜单中的文本。你还可以选择性的提供一个 `title` 标题,它将会被填充到链接的 HTML 代码的 `title` 属性中。 + +`pageRef` 参数用于引用 Hugo 的分类。这是配置菜单最简单的方法,你无需引用任何 Hugo 内容项,它会自动构建正确的链接。如果你需要链接到外部 URL,那么可以使用 `url` 参数。 + +`pre` 参数用于设置菜单条目上的图标,这个图标需要是 [Blowfish 图标集]({{< ref "samples/icons" >}})中的一个。这个参与可以和 `name` 一起使用,也可以单独使用。如果你指向展示图标,请设置 `identifier` 参数,否则 Hugo 将默认使用 `name` 作为 id,可能不会显示所有菜单项。 + +菜单中的多个链接将会根据 `weight` 权重参数进行从低到高排序,如果权重值一样那么会按照 `name` 字母顺序排序。 + +这两个菜单都是完全可选的,如果不需要也可以注释掉。你可以使用文件中提供的模板作为示例。 + +### 嵌套菜单 + +Blowfish 还支持嵌套菜单。你需要在`menu.toml` 中定义一个父级菜单项及其子菜单,使用 `parent` 可以指定子菜单项的父级。在上面菜单部分提到的所有参数一样适用于子菜单项,同样地,`pageRef` 和 `url` 也可以在父菜单项中使用。还需要注意一点,嵌套菜单只能在 `main` 菜单中可用,即网站头部的菜单。 + +```toml +# config/_default/menus.toml + +[[main]] + name = "Parent" + weight = 20 + +[[main]] + name = "sub-menu 1" + parent = "Parent" + pageRef = "samples" + weight = 20 + +[[main]] + name = "sub-menu 2" + parent = "Parent" + pageRef = "samples" + weight = 20 + +[[main]] + name = "sub-menu 3" + parent = "Parent" + pre = "github" + pageRef = "samples" + weight = 20 +``` + +### 子导航菜单 + +此外,你可以设置一个子导航菜单。只需要在 `menus.toml` 中将新的菜单项定义为 `subnavigation` 即可。 +这将在主菜单下面展示第二行,其中包含子类别项。 + +```toml +# config/_default/menus.toml + +[[subnavigation]] + name = "An interesting topic" + pageRef = "tags/interesting-topic" + weight = 10 + +[[subnavigation]] + name = "My Awesome Category" + pageRef = "categories/awesome" + weight = 20 +``` + +默认的 `name` 是 `pageRef` 的首字母大写。 + +## 缩略图 & 背景 + +Blowfish 的创立开端旨在便于为文章添加视觉效果。如果你熟悉 Hugo 的文章结构,只需要在您文章所在的文件夹中,放置一个以`feature*`开头的图像文件(Blowfish支持所有格式的文件,但更推荐使用 `.png` 或 `.jpg`)。就这样,Blowfish 就能够将图像文件作为文章的缩略图,而且能够在社交平台的 `oEmbed` 卡片中使用。 + +[这里]({{< ref "thumbnails" >}}) 有一个指南,提供了个人更多的内容和[示例]({{< ref "thumbnail_sample" >}})。如果你想看看具体如何操作可以看这里。 + +Blowfish 还支持在文章和列表中使用背景图。为了使与缩略图不同,可以添加一个名为 `background*` 开头的图像文件。当然如果你没有设置背景图片,Blowfish 会默认使用缩略图作为背景图。 + +## 详细配置 + +上面的步骤介绍了最基本的配置。如果你现在运行 `hugo server`,你将会看到一个空白的 Blowfish 网站。更加详细的内容在[配置]({{< ref "configuration" >}})中介绍。 + From d54ecd6a04e2e9f9ce11a9507bc7b14b7b64e8c6 Mon Sep 17 00:00:00 2001 From: Weaxs <459312872@qq.com> Date: Mon, 18 Mar 2024 16:22:19 +0800 Subject: [PATCH 04/10] translate configuration, content-examples, homepage-layout --- .../content/docs/configuration/index.zh-cn.md | 344 ++++++++++++++++++ .../docs/content-examples/index.zh-cn.md | 318 ++++++++++++++++ .../docs/getting-started/index.zh-cn.md | 2 +- .../docs/homepage-layout/index.zh-cn.md | 91 +++++ .../content/docs/welcome/index.zh-cn.md | 4 +- exampleSite/content/users/_index.zh-cn.md | 2 +- 6 files changed, 757 insertions(+), 4 deletions(-) create mode 100644 exampleSite/content/docs/configuration/index.zh-cn.md create mode 100644 exampleSite/content/docs/content-examples/index.zh-cn.md create mode 100644 exampleSite/content/docs/homepage-layout/index.zh-cn.md diff --git a/exampleSite/content/docs/configuration/index.zh-cn.md b/exampleSite/content/docs/configuration/index.zh-cn.md new file mode 100644 index 00000000..f6fc9e0a --- /dev/null +++ b/exampleSite/content/docs/configuration/index.zh-cn.md @@ -0,0 +1,344 @@ +--- +title: "配置" +date: 2020-08-14 +draft: false +description: "介绍 Blowfish 中所有可用的的配置变量。" +slug: "configuration" +tags: ["配置", "文档"] +series: ["文档集"] +series_order: 4 +--- + +Blowfish 适宜个高度定制化的主题,使用到了一些 Hugo 中最新的特性来简化配置方式。 + +主题附带了默认配置,可以让你快速启动一个基本的博客或静态网站。 + +{{< alert "fire" >}} +我们刚刚推出了 CLI 工具,来帮助你快速上手 Blowfish。它将帮助你进行安装和配置。使用以下命令可以全局范围安装 CLI 工具: +We just launched a CLI tool to help you get started with Blowfish. It will help you with installation and configuration. Install the CLI tool globally using: +```bash +npx blowfish-tools +``` +{{< /alert >}} + +> 配置文件是基于 TOML 格式的,这也是 Hugo 默认支持的语法。当然如果你愿意,也可以将配置转换成 YAML 或 JSON 格式。 + +默认情况下,在每个文件中都定义了主题中的可用参数,因此你可以自由调整设置来满足你的需求。 + +{{< alert >}} +正如[安装说明]({{< ref "/docs/installation#set-up-theme-configuration-files" >}})中的内容,如果你想调整主题配置,可以修改 Hugo 项目中 `config/_default/` 文件夹下的文件,并删除项目根目录中的 `config.toml` 文件。 +{{< /alert >}} + +## 网站配置 + +Blowfish 主题支持了 Hugo 框架中定义的所有标准配置变量。但如果希望有更好的体验,需要设置一些特定的配置。 + +网站配置是通过 `config/_default/config.toml` 文件管理的。下面的表格展示了 Blowfish 中的所有设置. + +值得注意的是,表格中提供的变量名可以使用点表示法来简化 TOML 数据结构,例如 `outputs.home` 指的是 `[outputs] home`。 + + +| 名称 | 默认值 | 描述 | +|--------------------------|---------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `theme` | `"blowfish"` | 当你使用 Hugo 模块安装时,应该移除这个配置项。但对 Git 子模块或本地文件复制的安装方式,必须将其设置为 blowfish 才能正常工作。 | +| `baseURL` | 无 | 网站 URL 根地址。 | +| `defaultContentLanguage` | `"en"` | 这个值决定了主题中组件和内容所使用的默认语言。 参考 [语言和 i18n](#language-and-i18n) 部分来了解 blowfish 支持的所有语言代码。 | +| `enableRobotsTXT` | `true` | 当开启这个值,`robots.txt` 文件将会被创建在站点根目录, 这将允许搜索引擎抓取整个网站。如果你想要自己提供 `robots.txt`,那么设置这个值为 `false` 并把你的文件放置到 `static` 目录下。 为了实现完全控制,你可以需要提供一个 [自定义布局]({{< ref "content-examples#custom-layouts" >}}) 来生成此文件。 | +| `paginate` | `10` | 定义文章列表中,每页展示的文章数量。 | +| `summaryLength` | `0` | 当[扉页参数]({{< ref "front-matter" >}}) 中没有提供文章摘要时,此参数定义了自动生成文章摘要的单词数量。如果值为`0`,则默认使用第一句话作为摘要。当摘要被隐藏,这个值没有任何效果。 | +| `outputs.home` | `["HTML", "RSS", "JSON"]` | 为站点自动生成输出格式。Blowfish 要求 HTML、RSS 和 JSON 都需要有,以保证主题组件可以正常运作。 | +| `permalinks` | 无 | 参考 [Hugo 文档](https://gohugo.io/content-management/urls/#permalinks) 中的自定义文章的固定链接配置。 | +| `taxonomies` | 无 | 参考 [整理内容]({{< ref "getting-started#organising-content" >}}) 中的分类器配置。 | + + +## 缩略图 + +Blowfish 的创立开端旨在便于为文章添加视觉效果。如果你熟悉 Hugo 的文章结构,只需要在你文章所在的文件夹中,放置一个以`feature*`开头的图像文件(Blowfish支持所有格式的文件,但更推荐使用 `.png` 或 `.jpg`)。就这样,Blowfish 就能够将图像文件作为文章的缩略图,而且能够在社交平台的 `oEmbed` 卡片中使用。 + +[这里]({{< ref "thumbnails" >}}) 可以看到更多内容,同时我们提供了一个[示例]({{< ref "thumbnail_sample" >}}),以便你具体看看如何操作。 + +## 语言和i18n + +Blowfish 针对多语言网站进行了优化,主题的资源素材目前已经翻译成了多个语言版本。语言配置允许你生成多个版本的内容介绍,为网站的访问者提供他们母语的定制化体验。 + +Blowfish 主题目前默认支持了以下语言: + +| 语言 | 代码 | +|------------------------------|---------| +| Arabic | `ar` | +| Bulgarian | `bg` | +| Bengali | `bn` | +| Catalan | `ca` | +| Czech | `cs` | +| German | `de` | +| English | `en` | +| Spanish (Spain) | `es` | +| Finnish | `fi` | +| French | `fr` | +| Hebrew | `he` | +| Croatian | `hr` | +| Hungarian | `hu` | +| Indonesian | `id` | +| Italian | `it` | +| Japanese | `ja` | +| Korean | `ko` | +| Polish | `pl` | +| Portuguese (Brazil) | `pt-br` | +| Portuguese (Portugal) | `pt-pt` | +| Romanian | `ro` | +| Russian | `ru` | +| Turkish | `tr` | +| Vietnamese | `vi` | +| Simplified Chinese (China) | `zh-cn` | +| Traditional Chinese (Taiwan) | `zh-tw` | + + +组件和静态资源的默认翻译在 `i18n/[code].yaml` 文件中,当然如果你想自定义,覆盖对应的文件即可。你也可以使用这种方法添加新的语言。如果你想与社区分享心得翻译,请[提交PR](https://github.com/nunocoracao/blowfish/pulls)。 + +### 配置 + +为了让 Blowfish 尽可能的灵活,每个网站都至少语言创建一个语言配置文件。默认情况下,Blowfish 提供了 `config/_default/languages.en.toml` 文件以默认支持英语。 + +默认的文件可以用来作为创建其他语言的一个模板,如果你希望用英语以外的语言撰写网站,也可以对其重命名。只需要格式遵循 `languages.[language-code].toml` 的命名即可。 + +{{< alert >}} +**注意:** 保证 [网站设置](#site-configuration) 中的 `defaultContentLanguage`参数和你提供的语言配置文件相匹配。 +{{< /alert >}} + + +#### 全局 + + +| 名称 | 默认值 | 描述 | +|----------------|--------------|-------------------------------------------------------------------------------------------------------------------------------------| +| `languageCode` | `"en"` | Hugo 中的默认语言代码。他可以是一个高层级语言(例如 `en`),也可以是一个变体子语言(例如 `en-au`),但一定需要和语言配置文件中的语言代码相匹配。为了符合 HTML 的规范并设置设置大小写敏感的 `isoCode`,Hugo希望这个值最好是小写。 | +| `languageName` | `"English"` | 语言名称。 | +| `weight` | `1` | 权重决定了在构建多语言时的语言顺序。 | +| `title` | `"Blowfish"` | 网站的标题。它将在网站头部和底部进行展示。 | + + +#### 参数 + + +| 名称 | 默认值 | 描述 | +|------------------------|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------| +| `params.displayName` | `"EN"` | 语言在网站中的展示名。 | +| `params.isoCode` | `"en"` | 用于 HTML 元数据的 ISO 语言代码。他可以是一个高层级语言(例如 `en`),也可以是一个变体子语言(例如 `en-au`)。 | +| `params.rtl` | `false` | 用于指定是否是 RTL 语言。设置为 `true` 则网站会从右向左重拍内容。Blowfish 完全支持同时使用 RTL 和 LTR 语言,并将动态调整。 | +| `params.dateFormat` | `"2 January 2006"` | 用于指定如何日期格式化。参考 [Hugo 文档](https://gohugo.io/functions/format/#gos-layout-string) 了解可以支持的格式。 | +| `params.logo` | 无 | `assets/` 文件夹中站点 logo 的相对路径。该 logo 文件需要提供 2x 分辨率并支持任何图像尺寸。 | +| `params.secondaryLogo` | 无 | `assets/` 文件夹中站点次要 logo 的相对路径。该 logo 文件需要提供 2x 分辨率并支持任何图像尺寸。这个 logo 的颜色方案应该是和上面的是相反或对比的。如果设置了这个值,当用户从 `defaultAppearance` 模式切换时,将会显示这个 logo。 | +| `params.description` | 无 | 网站表述。此参数将会被用作站点元数据。 | +| `params.copyright` | 无 | 此参数是一个 Markdown,用于网站页脚的版权声明。此参数可以包含占位符 { year } ,以此动态插入当前年份。 如果没有提供,Blowfish 将会使用网站 `title` 自动生成版权信息。 | + + + + +#### 作者 +| 名称 | 默认值 | 描述 | +|-------------------|-----------|------------------------------------------------------------------------------------------------------| +| `author.name` | 无 | 作者名。此参数将展示在文章页脚。并且如果主页使用了个人资料布局,也会展示此值。 | +| `author.image` | 无 | 作者头像的文件路径。图像应该是 1:1 的宽高比。可以放在网站的 `assets/` 文件夹中,也可以是外部 URL。 | +| `author.headline` | 无 | 包含作者头衔的 Markdown。它将展示在主页中作者姓名打分下方。 | +| `author.bio` | 无 | 包含作者简介的 Markdown。它将展示在文章页脚。 | +| `author.links` | 无 | 与作者详细信息一起显示的链接。配置文件中包含示例链接,取消注释即可启用。链接展示的顺序由他们在数组中定义的顺序决定。如果你想自定义链接,可以在 `assets/icons/` 中提供相应的SVG图片。 | + + +### 菜单 + +Blowfish 还支持针对特定语言的菜单配置。菜单配置文件的命名规则和语言配置文件的格式类似。只需要在文件名中提供语言代码,Hugo 就可以知道这是针对哪种语言的菜单。 + +菜单配置文件的命名格式是 `menus.[language-code].toml`。请始终确保菜单配置项中使用的语言代码和语言配置相匹配。 + +[快速开始]({{< ref "getting-started#menus" >}})部分更详细地介绍了这个文件的结构。你还可以参考 [Hugo 菜单文档](https://gohugo.io/content-management/menus/),以获取更多配置示例。 + +## 主题参数 + +Blowfish 提供了大量控制主题功能的配置参数,下面的表格中列举了 `config/_default/params.toml` 文件中所有的可用参数。 + +下面列举的文章参数是全局默认值,都可以在每个文章中的前置元数据内容中进行覆盖。详细可以参考 [扉页参数]({{< ref "front-matter" >}})。 + + + +### 全局 + +| 名称 | 默认值 | 描述 | +|---------------------------------|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `colorScheme` | `"blowfish"` | 主题使用的颜色方案。合法的值有: `blowfish` (默认)、`avocado`、`fire`、`ocean`、`forest`、`princess`、`neon`、`bloody`、`terminal`、`marvel`、`noir`、`autumn`、`congo` 和 `slate`。 具体参考[颜色方案]({{< ref "getting-started#colour-schemes" >}})以获取更多信息。 | +| `defaultAppearance` | `"light"` | 默认的主题外观,可以是 `light` 或者 `dark`。 | +| `autoSwitchAppearance` | `true` | 主题外观是否根据访问者操作系统的偏好自动切换。设置为 `false` 会强制网站始终使用 `defaultAppearance`。 | +| `enableSearch` | `false` | 是否开启网站的搜索功能,设为 `true` 即为启用。注意,搜索功能依赖于[站点设置](#site-configuration)中的 `outputs.home` 设置,请确保此值配置正确。 | +| `enableCodeCopy` | `false` | 是否可以将``代码块复制到剪贴板。想要使用代码复制功能,需要将 `highlight.noClasses` 参数设置为 `false`。 阅读 [其他配置文件](#other-configuration-files) 以获取更多信息。 | +| `mainSections` | 无 | 指定最近文章中应该展示的模块。 如果没有指定,则使用文章数量最多的板块。 | +| `showViews` | 无 | 是否显示文章和列表页面的阅读量。这需要集成 firebase ,具体可以看下面。 | +| `showLikes` | 无 | 是否显示文章和列表页面的喜爱数。这需要集成 firebase ,具体可以看下面。 | +| `robots` | 无 | 用于支持搜索引擎爬虫如何处理你的网站。如果设置了该值,它将被输出在页面头部。具体的参数值请参考 [Google 文档](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives)。 | +| `disableImageZoom` | `false` | 禁用网站上所有图片缩放功能。 | +| `disableImageOptimization` | `false` | 禁用图片上所有图片的调整大小和优化功能。 | +| `disableTextInHeader` | `false` | 禁用文本类型的标题,对基于 logo 的标题很有用。 | +| `defaultBackgroundImage` | 无 | 设置默认背景图,用于 `background` 和 `hero` 布局下的主页。 | +| `defaultFeaturedImage` | 无 | 设置默认背景图片,用于所有文章的`featured`图片,可以通过文章目录中的 `featured` 图片替换。 | +| `highlightCurrentMenuArea` | 无 | 当菜单被选择时,标记主菜单中的菜单项。 | +| `smartTOC` | 无 | 开启智能目录,视图中的项目将会被高亮显示。 | +| `smartTOCHideUnfocusedChildren` | 无 | 当开启智能目录,如果目录级别不再被聚焦时,将会隐藏更深层次的目录。 | + +### 页头 + +| 名称 | 默认值 | 描述 | +| --------------- | --------- |----------------------------------------------------------------------------| +| `header.layout` | `"basic"` | 定义整个站点的页头的布局,支持的参数有 `basic`、`fixed`、`fixed-fill`、and `fixed-fill-blur`. | + +### 页脚 + +| 名称 | 默认值 | 描述 | +| ------------------------------- | ------- |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `footer.showMenu` | `true` | 显示/隐藏页面底部菜单,该菜单可以在 `config/_default/menus.en.toml` 文件中的 `[[footer]]` 部分进行配置。 | +| `footer.showCopyright` | `true` | 是否在底部显示 copyright 版权信息。请注意,如果你想定制,可以在[语言配置](#language-and-i18n)中使用 `copyright` 参数。 | +| `footer.showThemeAttribution` | `true` | 是否在网站底部中显示"powered by" 的主题归属信息。如果禁用此参数,请考虑在你网站的其他位置设置主题归属信息,例如在关于页面。 | +| `footer.showAppearanceSwitcher` | `false` | 是否在也页面底部显示外观切换器。浏览器的本地存储会缓存访问者的偏好设置。 | +| `footer.showScrollToTop` | `true` | 当设置为 `true` 时,显示返回顶部的箭头按钮。 | + +### 主页 + +| 名称 | 默认值 | 描述 | +| ------------------------------- | ----------- |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `homepage.layout` | `"profile"` | 首页布局参数。合法的参数值有: `page`、`profile`、`hero`、`card`、`background` 或 `custom`。当你设置为 `custom` 时,你必须创建 `/layouts/partials/home/custom.html` 文件以定制自己的布局。参考[主页布局]({{< ref "homepage-layout" >}})来获取更多信息。 | +| `homepage.homepageImage` | 无 | 在 `hero` 和 `card` 布局中使用的图像。图片可以来自于本地的资源目录,也可以是外部图像 URL。参考 [主页布局]({{< ref "homepage-layout" >}}) 来获取更多信息。 | +| `homepage.showRecent` | `false` | 是否在主页展示最新文章列表。 | +| `homepage.showRecentItems` | 5 | 如果将 `showRecent` 设置为 `true`,此参数用于显示多少篇文章。如果没有设置或者为0,则默认显示5篇文章。 | +| `homepage.showMoreLink` | `false` | 是否在主页底部添加“显示更多”,该链接会降会用带到一个预定义位置。 | +| `homepage.showMoreLinkDest` | `/posts` | 更多按钮所指向的位置。 | +| `homepage.cardView` | `false` | 将列表展示为卡片容器。 | +| `homepage.cardViewScreenWidth` | `false` | 增强列表中卡片的宽度,使其可以占据可用的全部宽度。 | +| `homepage.layoutBackgroundBlur` | `false` | 向下滚动主页时,是否模糊背景图。 | + +### 文章页 + +| 名称 | 默认值 | 描述 | +| ------------------------------------- | --------- |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `article.showDate` | `true` | 是否显示日期。 | +| `article.showViews` | `false` | 是否显示文章阅读量。这需要集成 firebase ,具体可以看下面。 | +| `article.showLikes` | `false` | 是否显示文章喜爱数。这需要集成 firebase ,具体可以看下面。 | +| `article.showDateOnlyInArticle` | `false` | 是否在文章内显示日期,不影响文章列表或卡片页面的日期显示。 | +| `article.showDateUpdated` | `false` | 是否展示文章的更新日期。 | +| `article.showAuthor` | `true` | 是否在文章底部显示作者框。 | +| `article.showHero` | `false` | 缩略图是否会在每个页面中作为 hero 图像显示。 | +| `article.heroStyle` | 无 | hero 图像的展示样式,可选的参数值有:`basic`、`big`、`background`、`thumbAndBackground`。 | +| `article.layoutBackgroundBlur` | `true` | 向下滚动文章页时,是否模糊背景图。 | +| `article.layoutBackgroundHeaderSpace` | `true` | 在标题和正文之间添加空白区域间隔。 | +| `article.showBreadcrumbs` | `false` | 是否在标题栏显示面包屑导航。 | +| `article.showDraftLabel` | `true` | 当使用 `--buildDrafts` 构建网站时,是否在文章旁边显示草稿。 | +| `article.showEdit` | `false` | 是否展示编辑文章的链接。 | +| `article.editURL` | 无 | 当激活 `article.showEdit` 参数,此参数用于设置文章的编辑链接。 | +| `article.editAppendPath` | `true` | 当激活 `article.showEdit` 参数,是否将文章的路径附加到 `article.editURL` 参数所设置的 URL 后面。 | +| `article.seriesOpened` | `false` | 是否默认显示打开系列模块、 | +| `article.showHeadingAnchors` | `true` | 是否在文章标题旁添加锚点。 | +| `article.showPagination` | `true` | 是否在文章末尾展示上一篇/下一篇的文章链接。 | +| `article.invertPagination` | `false` | 是否翻转下一篇/上一篇文章链接的方向。 | +| `article.showReadingTime` | `true` | 是否展示文章的阅读时间。如果你的语言包含 CJK 语言,需要在 `config.toml` 中开启 `hasCJKLanguage` 参数。 | +| `article.showTableOfContents` | `false` | 是否展示文章的目录。 | +| `article.showRelatedContent` | `false` | 为文章显示相关内容。如果你想要启用此功能,请检查 `config.toml` 文件并复制所有 *related* 相关的参数,如果你想自定义,也可以对 `config.toml` 添加额外配置。更多内容请参考 [Hugo 文档](https://gohugo.io/content-management/related/) 中关于 *related* 的内容。 | +| `article.relatedContentLimit` | `3` | 如果启用`showRelatedContent`,则限制显示相关文章的数量。 | +| `article.showTaxonomies` | `false` | 是否显示文章的分类或标签信息。 | +| `article.showAuthorsBadges` | `false` | 是否在文章或列表中显示 `authors` 分类。这需要开启多个作者 `multiple authors` 和 `authors` 分类法。 请阅读 [这个网页]({{< ref "multi-author" >}}) 来获取更多内容。 | +| `article.showWordCount` | `false` | 是否显示文章的字数。 如果你的语言包含 CJK 语言,需要在 `config.toml` 中开启 `hasCJKLanguage` 参数。 | +| `article.showComments` | `false` | 是否在文章末尾添加 [评论部分]({{< ref "partials#comments" >}})。 | +| `article.sharingLinks` | 无 | 在文章末尾显示的分享链接。如果没有提供或设置为 `false`,则不会显示任何分享链接。可用的值包括:"linkedin"、"twitter"、"reddit"、"pinterest"、"facebook"、"email"、"whatsapp" 和 "telegram" | +| `article.showZenMode` | `false` | 指定是否激活文章阅读的禅模式,即隐藏常规的界面元素。 | + +### 列表页 + +| 名称 | 默认值 | 描述 | +| ---------------------------------- | --------- |--------------------------------------------------------------------------------------------------------------------------| +| `list.showHero` | `false` | 缩略图是否会在每个页面中作为 hero 图像显示。 | +| `list.heroStyle` | 无 | hero 图像的展示样式,可选的参数值有:`basic`、`big`、`background`、`thumbAndBackground`。 | +| `list.showBreadcrumbs` | `false` | 是否在标题栏显示面包屑导航。 | +| `list.layoutBackgroundBlur` | `true` | 向下滚动列表页时,是否模糊背景图。 | +| `list.layoutBackgroundHeaderSpace` | `true` | 在标题和正文之间添加空白区域间隔。 | +| `list.showTableOfContents` | `false` | 是否展示目录。 | +| `list.showSummary` | `false` | 是否在列表页显示文章摘要。如果在[扉页参数]({{< ref "front-matter" >}})中没有提供摘要,那么将会使用[站点配置](#site-configuration) 中的 `summaryLength` 参数自动生成一个。 | +| `list.showViews` | `false` | 是否显示文章阅读量。这需要集成 firebase ,具体可以看下面。 | +| `list.showLikes` | `false` | 是否显示文章喜爱数。这需要集成 firebase ,具体可以看下面。 | +| `list.showCards` | `false` | 是否将每个文章显示未卡片或简单的内联文本。 | +| `list.groupByYear` | `true` | 是否根据年做聚合。 | +| `list.cardView` | `false` | 将列表展示为卡片容器。 | +| `list.cardViewScreenWidth` | `false` | 增强列表中卡片的宽度,使其可以占据可用的全部宽度。 | +| `list.constrainItemsWidth` | `false` | 将项目宽度限制为 `prose` 以提高可读性。在没有 featurn 图片的时候非常有用。 | +| `list.showTableOfContents` | `false` | 是否显示目录。 | + +### Sitemap + +| 名称 | 默认值 | 描述 | +| ----------------------- | ---------------------- |-------------------------------------------------------------------------------------------------------------| +| `sitemap.excludedKinds` | `["taxonomy", "term"]` | 从生成的 `/sitemap.xml` 文件中排除的内容。 具体的配置请参考[Hugo 文档](https://gohugo.io/templates/section-templates/#page-kinds)。 | + +### 分类法 + +| 名称 | 默认值 | 描述 | +| ------------------------------ | --------- |-----------------------------------------------------------------------| +| `taxonomy.showTermCount` | `true` | 是否在分类列表总显示对应的数量。 | +| `taxonomy.showHero` | `false` | 缩略图是否会在每个页面中作为 hero 图像显示。 | +| `taxonomy.heroStyle` | 无 | hero 图像的展示样式,可选的参数值有:`basic`、`big`、`background`、`thumbAndBackground`。 | +| `taxonomy.showBreadcrumbs` | `false` | 是否在标题栏显示面包屑导航。 | +| `taxonomy.showViews` | `false` | 是否显示文章阅读量。这需要集成 firebase ,具体可以看下面。 | +| `taxonomy.showLikes` | `false` | 是否显示文章喜爱数。这需要集成 firebase ,具体可以看下面。 | +| `taxonomy.showTableOfContents` | `false` | 是否显示目录。 | +| `taxonomy.cardView` | `false` | 将列表展示为卡片容器。 | + +### 术语 + +| 名称 | 默认值 | 描述 | +| -------------------------- | --------- |----------------------------------------------------------------------| +| `term.showHero` | `false` | 缩略图是否会在每个页面中作为 hero 图像显示。 | +| `term.heroStyle` | 无 | hero 图像的展示样式,可选的参数值有: `basic`、`big`、`background`、`thumbAndBackground`。 | +| `term.showBreadcrumbs` | `false` | 是否在标题栏显示面包屑导航。 | +| `term.showViews` | `false` | 是否显示文章阅读量。这需要集成 firebase ,具体可以看下面。 | +| `term.showLikes` | `false` | 是否显示文章喜爱数。这需要集成 firebase ,具体可以看下面。 | +| `term.showTableOfContents` | `false` | 是否显示目录。 | +| `term.groupByYear` | `false` | 是否根据年做聚合。 | +| `term.cardView` | `false` | 将列表展示为卡片容器。 | +| `term.cardViewScreenWidth` | `false` | 增强列表中卡片的宽度,使其可以占据可用的全部宽度。 | + +### Firebase + +| 名称 | 默认值 | 描述 | +| ---------------------------- | --------- |---------------------------------------------------------------------------------------------------------------------| +| `firebase.apiKey` | 无 | Firebase apiKey, 与 Firebase 集成的必填参数。了解如何将 Firebase 集成进 Blowfish 请参考 [这个页面]({{< ref "firebase-views" >}})。 | +| `firebase.authDomain` | 无 | Firebase authDomain,与 Firebase 集成的必填参数。了解如何将 Firebase 集成进 Blowfish 请参考 [这个页面]({{< ref "firebase-views" >}})。 | +| `firebase.projectId` | 无 | Firebase projectId,与 Firebase 集成的必填参数。了解如何将 Firebase 集成进 Blowfish 请参考 [这个页面]({{< ref "firebase-views" >}})。 | +| `firebase.storageBucket` | 无 | Firebase storageBucket,与 Firebase 集成的必填参数。了解如何将 Firebase 集成进 Blowfish 请参考 [这个页面]({{< ref "firebase-views" >}})。 | +| `firebase.messagingSenderId` | 无 | Firebase messagingSenderId,与 Firebase 集成的必填参数。了解如何将 Firebase 集成进 Blowfish 请参考 [这个页面]({{< ref "firebase-views" >}})。 | +| `firebase.appId` | 无 | Firebase appId,与 Firebase 集成的必填参数。了解如何将 Firebase 集成进 Blowfish 请参考 [这个页面]({{< ref "firebase-views" >}})。 | +| `firebase.measurementId` | 无 | Firebase measurementId,与 Firebase 集成的必填参数。了解如何将 Firebase 集成进 Blowfish 请参考 [这个页面]({{< ref "firebase-views" >}})。 | + +### Fathom Analytics + +| 名称 | 默认值 | 描述 | +| ------------------------ | --------- |----------------------------------------------------------------------| +| `fathomAnalytics.site` | 无 | 支持 Fathom 站点分析平台。更多详细内容请参考 [分析文档]({{< ref "partials#analytics" >}})。 | +| `fathomAnalytics.domain` | 无 | 如果使用自定义域名的 Fathom Analytics,请在此提供,以便从自定义域名获取 `script.js`】。 | + +### BuyMeACoffee + +| 名称 | 默认值 | 描述 | +| ----------------------------------- | --------- |---------------------------| +| `buymeacoffee.identifier` | 无 | buymeacoffee 账号的用户名。 | +| `buymeacoffee.globalWidget` | 无 | 激活位于全局的 buymeacoffee 组件。 | +| `buymeacoffee.globalWidgetMessage` | 无 | 新用户首次访问网站时显示的消息。 | +| `buymeacoffee.globalWidgetColor` | 无 | 组件颜色,使用 HEX 格式。 | +| `buymeacoffee.globalWidgetPosition` | 无 | 组件位置,例如 "Left" 或 "Right"。 | +### 验证 + +| 名称 | 默认值 | 描述 | +|--------------------------| --------- |----------------------------------------------------------------------------------------| +| `verification.google` | 无 | Google 提供的网站验证字符串,用于在网站元数据中包含。 | +| `verification.bing` | 无 | Bing 提供的网站验证字符串,用于在网站元数据中包含。 | +| `verification.pinterest` | 无 | Pinterest 提供的网站验证字符串,用于在网站元数据中包含。 | +| `verification.yandex` | 无 | Yandex 提供的网站验证字符串,用于在网站元数据中包含。 | + + +## 别的配置文件 + +Blowfish 主题还包括 `markup.toml` 配置文件。这个文件包含了一些重要参数,来确保 Hugo 正确配置以生成使用 Blowfish 创建的网站。 + +需要确保次文件在 `config` 目录中,并设置所需要的值。否则某些功能可能无法正确启用,并可能导致意外行为。 diff --git a/exampleSite/content/docs/content-examples/index.zh-cn.md b/exampleSite/content/docs/content-examples/index.zh-cn.md new file mode 100644 index 00000000..a6c33d82 --- /dev/null +++ b/exampleSite/content/docs/content-examples/index.zh-cn.md @@ -0,0 +1,318 @@ +--- +title: "内容示例" +date: 2020-08-09 +draft: false +description: "包含 Blowfish 中所有可用部分的示例、" +slug: "content-examples" +tags: ["内容", "示例"] +series: ["文档集"] +series_order: 12 +--- + +如果你已经按顺序阅读了文档,那么你现在应该已经了解了 Blowfish 中所有的功能和配置信息。这个页面旨在把所有内容整合在一起,并提供一些你会在 Hugo 项目中使用的示例。 + +{{< alert >}} +**提示:** 如果你是Hugo的新用户,请务必阅读[官方文档](https://gohugo.io/content-management/page-bundles/),了解更多关于页面捆绑和资源的概念。 +{{< /alert >}} + +这个页面上的示例都可以根据不同的场景进行调整,期待你在做自己项目的同时,提出一些对特定内容格式化的想法。 + +## 分支页面 + +Hugo 中的分支页面包括主页、部分列表页面和分类页面等内容,请记住,这些分支页面的文件名都是 **`_index.md`**。 + +Blowfish 支持在分支页面中设置[扉页参数]({{< ref "front-matter" >}}),在扉页中设置的参数将会覆盖在配置文件中设置的参数默认值。例如,在分支页面中的 `title` 参数将会覆盖页面标题的默认值。 + +### 主页 + +| | | +| ------------ | -------------------- | +| **Layout:** | `layouts/index.html` | +| **Content:** | `content/_index.md` | + +Blowfish 中的主页比较特殊,它的整体设计是由主页的布局参数控制的。你可以在 [主页布局]({{< ref "homepage-layout" >}}) 来获取更多内容。 + +如果你想自定义主页的内容,你仅需创建一个 `content/_index.md` 文件。该文件中的任何内容都会包含在你的主页中。 + +**示例:** + +```yaml +--- +title: "欢迎来到 Blowfish !" +description: "这是往主页中添加内容的例子。" +--- +欢迎来到我的网站!我很高兴你的来访。 +``` +_这个例子设置了一个自定义标题,并在页面正文中添加了一些额外的内容。当然任何的 Markdown 都是可接受的,包括短代码、图片和连接。_ + +### 列表页 + +| | | +| ------------ | ---------------------------- | +| **Layout:** | `layouts/_default/list.html` | +| **Content:** | `content/../_index.md` | + +列表页将所有页面聚合到一个目录下,并为访问者提供了一种浏览页面的方式。博客或者作品集是一个典型案例,因为这两种类型的网站会将帖子或项目整合到一个列表页中。 + +创建一个列表页就如同创建子目录一样简单。例如,要创建一个 "Projects" 列表页,你可以创建`content/projects/`。然后为你的项目创建一个 Markdown 文件。 +Creating a list page is as simple as making a sub-directory in the content folder. For example, to create a "Projects" section, you would create `content/projects/`. Then create a Markdown file for each of your projects. + +列表页面默认会自动生成,如果你想在列表添加一些页自定义内容,还需要在此目录创建一个 `_index.md` 文件。 + +```shell +. +└── content + └── projects + ├── _index.md # /projects + ├── first-project.md # /projects/first-project + └── another-project + ├── index.md # /projects/another-project + └── project.jpg +``` + +Hugo 将会自动为目录中对应的项目页面生成 URL。 + +类似于主页,列表页面也可以通过 `_index.md` 文件来添加自定义的内容。Blowfish将会在自定义内容的下方,展示这个列表所包含的所有子页面。 + +**示例:** + +```yaml +--- +title: "项目" +description: "了解我的一些项目。" +cascade: + showReadingTime: false +--- +本节包含了我所有的当前项目。 +``` + +_在上面的示例中,这里的 `cascade` 参数被用来隐藏该列表页下任何子页面的阅读时间。这样做是的任何子页面都不会显示阅读时间,这是一种为整个部分添加默认参数的好方法。_ + +[样本部分]({{< ref "samples" >}})提供了列表页面的例子。 + +### 分类页面 + +| | | +| ---------------- | -------------------------------- | +| **List layout:** | `layouts/_default/taxonomy.html` | +| **Term layout:** | `layouts/_default/term.html` | +| **Content:** | `content/../_index.md` | + +分类页面有两种形式:分类列表和分类术语。列表页面显示给定分类中每个属于的列表,术语页面显示与给定术语相关的页面列表。 + +术语这个词可能会有些令人困惑,所以这里让我们举个例子,假设将 `animals` 分类。 + +首先,想要在 Hugo 中使用分类,需要先进行配置。通过创建 `config/_default/taxonomies.toml` 文件并定义分类名称来完成创建。 + +```toml +# config/_default/taxonomies.toml + +animal = "animals" +``` + +Hugo 期望分类定义式 单数 = “复数” 的形式,所以这里添加单数 `animal` 等于复数 `animals` 来创建我们的分类示例。 + +现在 `animals` 分类就有了,需要在内容中添加它。下面是一个简单的在扉页参数中添加分类的例子: + +```yaml +--- +title: "进入狮子的巢穴" +description: "这周我们学习狮子。" +animals: ["lion", "cat"] +--- +``` + +现在我们已经在 `animals` 分类中添加了 `lion` 和 `cat` 两个术语。 + +目前看起来还不太明显,但是 Hugo 将会为这个分类自动生成分类列表页和两个术语页。默认情况下可以在 `/animals/` 地址访问列表页,在 `/animals/lion/` 和 `/animals/cat/` 访问术语页。 + +这个列表页会列举出所有包含在这个分类中的术语。在上面的例子中,`/animals/` 页面会包含 "lion" 和 "cat" 的链接,以此将访问者导向至具体的术语页。 + +术语页将会列举出包含这个术语的所有页面。这些术语页面本质上和[列表页面](#list-pages)相同,并且以类似的方式运作。 + +如果你想在分类页面中添加自定义的内容,只需要对应文件夹的目录中创建 `_index.md` 文件即可。 + +```shell +. +└── content + └── animals + ├── _index.md # /animals + └── lion + └── _index.md # /animals/lion +``` + +这些 `_index.md` 中的内容都会放置在生成的分类页面上。与其他页面一样,[扉页参数]({{< ref "front-matter" >}})中设置的变量也可以用来覆盖默认值。比如你可以有一个标签名是`lion`,但是可以将其覆盖成 "Lion"。 + +想要查看实际效果,可以看[标签分类列表]({{< ref "tags" >}})。 + +## 叶子页面 + +| | | +| ------------------------- | ------------------------------- | +| **Layout:** | `layouts/_default/single.html` | +| **Content (standalone):** | `content/../page-name.md` | +| **Content (bundled):** | `content/../page-name/index.md` | + +Hugo 中的页面叶子页面是一个标准的内容页面,它不包含子页面的页面。可以作为关于页面,或者位于个人博客网站中的文章。 + +最重要的是,与分支页面不同,叶子页面应该被命名为 `index.md`,而不是带下划线的`_index.md`。叶子页面比较特殊,它可以是一个在列表页面中的一个有唯一名称的文件,也可以是在一个有唯一名称的页面捆绑包。 + +```shell +. +└── content + └── blog + ├── first-post.md # /blog/first-post + ├── second-post.md # /blog/second-post + └── third-post + ├── index.md # /blog/third-post + └── image.jpg +``` + +当页面中包含类似图片的资源,应该使用页面捆绑包,即子目录的方式。页面捆绑包时一个包含 `index.md` 文件的子目录。将资源和页面内容打包在同一个目录中是必要的,因为许多短代码和其他主题逻辑假设资源和页面捆绑在一起, + +**示例:** + +```yaml +--- +title: "我的第一篇博客文章" +date: 2022-01-25 +description: "欢迎来到我的博客" +summary: "了解更多关于我和我创建博客的初衷。" +tags: ["welcome", "new", "about", "first"] +--- +_这_ 是博客的内容。 +``` + +叶子页面有很多的[扉页参数]({{< ref "front-matter" >}}),来帮你你自定义展示它。 + +### 外部链接 + +Blowfish 允许外部页面链接和文章列表一起显示在列表页。如果你在第三方网站(如Medium)有文章,或者你想连接到研究论文,而不想在 Hugo 中复制内容,这将非常有用。 + +为了创建一个外部链接文章,需要设置一些特殊的扉页参数: + +```yaml +--- +title: "我的 Medium 文章" +date: 2022-01-25 +externalUrl: "https://medium.com/" +summary: "我在Medium上写了一篇文章。" +showReadingTime: false +_build: + render: "false" + list: "local" +--- +``` + +除了像 `title` 和 `summary` 这种普通的扉页参数外,需要设置 `externalUrl` 参数来告诉 Blowfish 这不是一篇普通的文章。访问者在访问后,会被重定向到这里提供的 URL。 + +此外,我们使用了 `_build` 参数来避免 Hugo 生成一个普通页面。因为我们是一个连接到外部的 URL,生成页面是没有意义的。 + +Hugo 中可以通过命令来快速生成一个外部链接的文件,在创建新的外部链接是,只需要指定 `-k external` 即可。这让生成外部链接文章变得更简单。 + +```shell +hugo new -k external posts/my-post.md +``` + +### 简单页面 + +| | | +| ----------------- | ------------------------------ | +| **Layout:** | `layouts/_default/simple.html` | +| **Front Matter:** | `layout: "simple"` | + +Blowfish 包含了一个用于简单页面的布局。简单布局是一个全宽的模板,并仅仅展示 Markdown 中的内容,不包含任何主题中的特性。 + +简单布局中唯一可用的特性是面包屑导航和分享链接。这个行为也是通过 [扉页参数]({{< ref "front-matter" >}}) 来控制。 + +如果想在特定页面上启用简单布局,添加 `layout` 扉页参数,并设置为 `"simple"`: + +```yaml +--- +title: "我的着陆页" +date: 2022-03-08 +layout: "simple" +--- +这个页面的内容是全宽的。 +``` + +## 自定义布局 + +Hugo 的其中一个好处就是它让整个站点、单独内容或页面创建自定义布局变得容易。 + +自定义布局遵循所有 Hugo 的模板规则,更多信息可以在 [Hugo 官方文档](https://gohugo.io/templates/introduction/) 中找到。 + +### 覆盖默认布局 + +上面讨论的每种内容类型都列出了其对应的布局文件。如果你在本地项目中创建了这个文件,它将覆盖主题的默认模板,由此可以来自定义网站的样式布局。 + +例如,创建一个 `layouts/_default/single.html` 文件,此文件将允许用户完全自定义叶子页面的布局。 + +### 自定义部分布局 + +如果你想为个别内容创建自定义布局也很简单。这在使用特定样式列出某种类型内容时会非常有效。 + +让我们简单看一个例子,来了解如何为"Projects"页面创建自定义的特殊布局。 + +为了做到这一点,使用常规的Hugo规则来在 `content` 目录下组织你的内容。此外,在和 `layout` 目录中创建和内容部分相同的目录结构,并在此目录下添加一个 `list.html` 文件,此文件是 "projects" 内容的一个新的列表页布局。 + +```shell +. +└── content +│ └── projects +│ ├── _index.md +│ ├── first-project.md +│ └── second-project.md +└── layouts + └── projects + └── list.html +``` + +`list.html` 文件将会覆盖默认的模板,但只会作用在 `projects` 部分。我们先看看 `_index.md` 文件的内容。 + +```yaml +--- +title: "Blowfish" +date: 2021-08-11 +icon: "github" +description: "用Tailwind CSS构建的Hugo主题。" +topics: ["Hugo", "Web", "Tailwind"] +externalUrl: "https://github.com/nunocoracao/blowfish/" +--- +``` + +_在这个例子中,我们为每个项目添加了一些参数,然后我们在列表模板中可以使用他们。虽然这个例子没有页面的内容,但这并不组织你添加内容。这是自己的的自定义模板,完全可以随心所欲!_ + +定义了项目内容后,现在我们可以创建一个列表模板来输出项目中的信息。 +```go +{{ define "main" }} +
+ {{ range .Pages }} + + {{ end }} +
+{{ end }} +``` + +尽管这是一个比较简单的例子,但你可以看到这里的 `list.html` 文件遍历了本节中的所有子页面,然后输出了每个页面的 HTML 链接 和图标。每个项目的扉页参数被用来确定显示哪些信息。 +Although this is quite a straightforward example, you can see that it steps through each of the pages in this section (ie. each project), and then outputs HTML links to each project alongside an icon. The metadata in the front matter for each project is used to determine which information is displayed. + +请记住,构建网站的时候需要重新编译 Tailwind CSS,一定要确保相关的样式和类可用。这在[高级定制]({{< ref "advanced-customisation" >}})部分有更详细的说明。 + +当尝试使用自定义模板时,请务必先了解默认的 Blowfish 模板是如何工作的,然后将其作为指南或模板。补充一点,[Hugo 文档](https://gohugo.io/templates/introduction/) 也是学习创建自定义模板的宝贵资源。 diff --git a/exampleSite/content/docs/getting-started/index.zh-cn.md b/exampleSite/content/docs/getting-started/index.zh-cn.md index 8f231dc0..fb36c964 100644 --- a/exampleSite/content/docs/getting-started/index.zh-cn.md +++ b/exampleSite/content/docs/getting-started/index.zh-cn.md @@ -260,7 +260,7 @@ Blowfish 还支持嵌套菜单。你需要在`menu.toml` 中定义一个父级 ## 缩略图 & 背景 -Blowfish 的创立开端旨在便于为文章添加视觉效果。如果你熟悉 Hugo 的文章结构,只需要在您文章所在的文件夹中,放置一个以`feature*`开头的图像文件(Blowfish支持所有格式的文件,但更推荐使用 `.png` 或 `.jpg`)。就这样,Blowfish 就能够将图像文件作为文章的缩略图,而且能够在社交平台的 `oEmbed` 卡片中使用。 +Blowfish 的创立开端旨在便于为文章添加视觉效果。如果你熟悉 Hugo 的文章结构,只需要在你文章所在的文件夹中,放置一个以`feature*`开头的图像文件(Blowfish支持所有格式的文件,但更推荐使用 `.png` 或 `.jpg`)。就这样,Blowfish 就能够将图像文件作为文章的缩略图,而且能够在社交平台的 `oEmbed` 卡片中使用。 [这里]({{< ref "thumbnails" >}}) 有一个指南,提供了个人更多的内容和[示例]({{< ref "thumbnail_sample" >}})。如果你想看看具体如何操作可以看这里。 diff --git a/exampleSite/content/docs/homepage-layout/index.zh-cn.md b/exampleSite/content/docs/homepage-layout/index.zh-cn.md new file mode 100644 index 00000000..31bbe322 --- /dev/null +++ b/exampleSite/content/docs/homepage-layout/index.zh-cn.md @@ -0,0 +1,91 @@ +--- +title: "主页布局" +date: 2020-08-13 +draft: false +description: "在 Blowfish 主题中设置主页布局。" +slug: "homepage-layout" +tags: ["主页", "布局", "文档"] +series: ["文档集"] +series_order: 5 +--- + +Blowfish 提供了一个完全灵活的主页布局。你可以选择两种主要模板,并提供了额外的参数来帮助调整设计。当然,你也可以提供自己的模板,完全控制主页的内容。 + +主页布局由 `params.toml` 配置文件中的 `homepage.layout` 参数来控制的。此外所有布局都默认包括 [最近文章](#recent-articles)。 + +## 个人资料布局 (profile) + +默认的布局是 profile 布局,这非常适合个人网站和博客。它将作者的详细信息置于中心位置,并附带了头像和社交平台的链接。 + + + +作者信息是在语言配置文件中提供的。具体的参数详情,请参考[快速入门]({{< ref "getting-started" >}})和[语言配置]({{< ref "configuration##language-and-i18n" >}})的内容。 + +此外,主页内容中提供的任何 Markdown 都会显示在作者资料的下方。这对使用短代码显示简介或其他主页的自定义内容提供了更多的灵活性。 + +如果想要启用 profile 布局,请在 `params.toml` 配置文件中设置 `homepage.layout = "profile"`。 + +## 页面布局(page) + +页面布局只会简单的显示你的 Markdown 内容,这种方式非常适合静态网站,并提供了很多灵活性。 + + + +如果想要启用 page 布局,请在 `params.toml` 配置文件中设置 `homepage.layout = "page"`。 + +## 英雄布局(hero) + +英雄布局(hearo)组合了个人资料布局(profile)和卡片布局(card)。它不仅显示了网站作者的个人信息,还在个人资料下方加载了你的 markdown 内容。 + + + +如果想要启用 hero 布局,请在 `params.toml` 配置文件中设置 `homepage.layout = "hero"`。 + +## 背景布局(background) + +背景布局(background)相对于英雄布局(hero)更叫平滑。和英雄布局(hero)类似,它也显示了网站作者的信息,并在其下方加载 markdown 内容。 + + + +如果想要启用 background 布局,请在 `params.toml` 配置文件中设置 `homepage.layout = "background"` 和 `homepage.homepageImage` 。 + +## 卡片布局(card) + +卡片模板(card)是在页面布局上的扩展,它同样提供了灵活性。在显示了你的 markdown 内容的同时,展示了一个卡片组件中的图像。 + + + +如果想要启用 card 布局,请在 `params.toml` 配置文件中设置 `homepage.layout = "card"` 和 `homepage.homepageImage` 。 + +## 自定义布局(custom) + +如果以上几个布局还没有满足你的需求,你还可以自己创建自定义布局。这样你可以基于一个空白的画布,来完全控制页面上的内容。 + +如果想要启用 custom 布局,请在 `params.toml` 配置文件中设置 `homepage.layout = "custom"` 。 + +配置好参数后,在 `layouts/partials/home` 目录下创建一个 `custom.html` 文件。 `custom.html` 文件中定义的任何内容都会被放置在网站主页的内容区域。你可以使用 HTML、Tailwind 或 Hugo 模板函数来定义你的布局。 + +如果你想在自定义布局上添加 [最近文章](#recent-articles),请使用 `recent-articles/main.html` 中的内容。 + +如果你想在网站[主页]({{< ref "/" >}})使用自定义布局来实现在个人资料和页面布局之间的切换。这里的[GitHub 仓库](https://github.com/nunocoracao/blowfish/blob/main/exampleSite/layouts/partials/home/custom.html)有一个例子可以参考。 + +## 最近文章 + +所有的主页布局都可以在主要内容下方显示最近文章。如果想要启用此功能,只需要在 `params.toml` 配置文件中将 `homepage.showRecent` 参数设置为 `true` 即可。 + + + +这部分会列举出你在 `mainSections` 参数中设置的文章列表,此参数允许你使用网站上的任何内容类型。例如,如果你想在最新文章中展示 _posts_ 和 _projects_ 内容中的文章,你可以将此值设置为 `["posts", "projects"]`,这两个部分中的所有文章都会填充到最近文章列表中。Blowfish 主题期望这个参数是一个数组,如果你只想设置一个部分的所有文章,你可以设置为 `["blog"]` 即可。 + +## 缩略图 + +Blowfish 为你的文章提供了视觉支持。如果你熟悉 Hugo 的文章结构,只需要在你的文章对应的文件夹中防止一个以`feature*`开头的图像文件即可,图像类型几乎支持所有格式,更推荐使用`.png` 或者 `.jpg`。这样一来,Blowfish 将会在你的网站内使用该图片作为缩略图,并用在社交媒体平台上的 oEmbed 卡片中。 + +[这是]({{< ref "thumbnails" >}})有更多详细内容,并且有一个便于理解的[示例]({{< ref "thumbnail_sample" >}})。 + +## 卡片画廊 + +Blowfish 支持将标准的文章列表显示为卡片画廊,你可以在主页的最近文章和网站上的文章列表中配置这个选项。 +- 对于主页可以使用 `homepage.cardView` 和 `homepage.cardViewScreenWidth` 参数 +- 对于列表页可以使用 `list.cardView` 和 `list.cardViewScreenWidth` 参数 +请查看 [配置文件]({{< ref "configuration" >}}) 以获取更多信息。 diff --git a/exampleSite/content/docs/welcome/index.zh-cn.md b/exampleSite/content/docs/welcome/index.zh-cn.md index 8c94d9ef..e6053281 100644 --- a/exampleSite/content/docs/welcome/index.zh-cn.md +++ b/exampleSite/content/docs/welcome/index.zh-cn.md @@ -30,7 +30,7 @@ A highly requested feature, Blowfish is now multilingual! If you publish your co
:gb: :de: :fr: :es: :cn: :brazil: :tr: :bangladesh:
-感谢社区的贡献,目前 Blowfish 已经翻译成二十六种语言,并且随着时间的推移还会支持更多。 顺便一提,欢迎您为支持新语言提交 [PR](https://github.com/nunocoracao/blowfish/pulls)。 +感谢社区的贡献,目前 Blowfish 已经翻译成二十六种语言,并且随着时间的推移还会支持更多。 顺便一提,欢迎你为支持新语言提交 [PR](https://github.com/nunocoracao/blowfish/pulls)。 ## 支持 RTL 语言 @@ -89,4 +89,4 @@ Blowfish 2.0版本的重大变化是增加了自动调整图片大小的功能 欢迎来尝试和探索强大而轻量的 Blowfish 2.0,打造优雅、个性化的创作之旅! -如果您对 Blowfish 有更加创意的想法,欢迎随时[提交](https://github.com/nunocoracao/blowfish/discussions),期待与您共同营造 Blowfish 的开源文化! \ No newline at end of file +如果你对 Blowfish 有更加创意的想法,欢迎随时[提交](https://github.com/nunocoracao/blowfish/discussions),期待与你共同营造 Blowfish 的开源文化! \ No newline at end of file diff --git a/exampleSite/content/users/_index.zh-cn.md b/exampleSite/content/users/_index.zh-cn.md index 4d996202..48e7b645 100644 --- a/exampleSite/content/users/_index.zh-cn.md +++ b/exampleSite/content/users/_index.zh-cn.md @@ -18,7 +18,7 @@ cardViewScreenWidth: true {{< alert >}} -**您是 Blowfish 用户 ?** 请在这个列表中添加您的站点, [提交 PR](https://github.com/nunocoracao/blowfish/blob/main/exampleSite/content/users/users.json). +**你是 Blowfish 用户 ?** 请在这个列表中添加你的站点, [提交 PR](https://github.com/nunocoracao/blowfish/blob/main/exampleSite/content/users/users.json). {{}} From b5307d0fb5e62a2bfdb30937a34646f6f7f3ff7f Mon Sep 17 00:00:00 2001 From: Weaxs <459312872@qq.com> Date: Wed, 20 Mar 2024 02:17:17 +0800 Subject: [PATCH 05/10] translate advanced-customisation, front-matter, firebase-views --- .../advanced-customisation/index.zh-cn.md | 238 ++++++++++++++++++ .../content/docs/configuration/index.zh-cn.md | 32 +-- .../docs/firebase-views/index.zh-cn.md | 55 ++++ .../content/docs/front-matter/index.zh-cn.md | 57 +++++ .../docs/getting-started/index.zh-cn.md | 2 +- .../content/docs/installation/index.zh-cn.md | 2 +- 6 files changed, 368 insertions(+), 18 deletions(-) create mode 100644 exampleSite/content/docs/advanced-customisation/index.zh-cn.md create mode 100644 exampleSite/content/docs/firebase-views/index.zh-cn.md create mode 100644 exampleSite/content/docs/front-matter/index.zh-cn.md diff --git a/exampleSite/content/docs/advanced-customisation/index.zh-cn.md b/exampleSite/content/docs/advanced-customisation/index.zh-cn.md new file mode 100644 index 00000000..a5b91e9d --- /dev/null +++ b/exampleSite/content/docs/advanced-customisation/index.zh-cn.md @@ -0,0 +1,238 @@ +--- +title: "高级定制" +date: 2020-08-08 +draft: false +description: "了解如何手动构建 Blowfish。" +slug: "advanced-customisation" +tags: ["高级", "CSS", "文档"] +series: ["文档集"] +series_order: 13 +--- + +你可以通过多种方法对 Blowfish 进行高级定制。阅读下文,了解更多可定制的内容以及最佳的实现方式。 + +如果需要更进一步的建议,请在 [GitHub 讨论](https://github.com/nunocoracao/blowfish/discussions) 上发布你的问题。 + +## Hugo 项目结构 + +在深入之前,首先快速了解一下 [Hugo 项目结构](https://gohugo.io/getting-started/directory-structure/)以及管理内容和主题定制的最佳实践。 + +{{< alert >}} +**总结:** 不要直接编辑主题文件。只在你的 Hugo 项目子目录中进行定制,而不是在主题目录。 +{{< /alert >}} + +Blowfish 充分利用了 Hugo 中所有标准特性。它允许针对主题所有内容进行定制和覆盖,同时无需担心更改任何核心的主题文件。这将允许无缝的升级体验,同时让你完全控制网站的外观。 + +为了实现这一点,你不应该直接调整任何主题本身的文件。无论你是通过 Hugo 模块、Git 子模块,或者是本地复制到`themes/`的安装方式,都应该保持主题文件本身的完整性。 + +调整主题行为的正确方法是通过使用 Hugo 强大的[文件查找顺序](https://gohugo.io/templates/lookup-order/)覆盖文件。总之,查找顺序确保了包含在你的项目目录中的文件都会优先于主题文件。 + +例如,如果你想覆盖 Blowfish 中所有文章的模板,只需要简单的创建 `layouts/_default/single.html` 文件并防止在项目的根目录中即可,该文件将覆盖 Blowfish 主题中定义的 `single.html` 且无需更改主题自身的文件。总之,文件查找顺序确保了包含在你项目目录中的任何文件的优先级都高于主题中对应的文件。 + +只要你遵循这个简单的实践,你将始终能够更新主题(或测试不同的主题版本),同时也无需担心会丢失任何自定义修改。 + +## 更改图像优化设置 + +Hugo 有很多内置方式来调整、裁剪和优化图像。 + +例如,在 `layouts/partials/article-link/card.html` 文件中有以下代码: + +```go +{{ with .Resize "600x" }} +
+{{ end }} +``` + +Hugo 在这里默认将图片调整为 600px,并保持比例。 + +值得注意的是,类似[锚点](https://gohugo.io/content-management/image-processing/#anchor)这种图片的默认配置也可以在你的[站点配置](https://gohugo.io/content-management/image-processing/#processing-options)以及模板本身中设置。 + +参考[Hugo 关于图像处理的文档](https://gohugo.io/content-management/image-processing/#image-processing-methods)来获取更多信息。 + +## 颜色方案 + +Blowfish 提供了多种颜色方案。如果你想在 Blowfish 提供的内置方案基础上更改颜色方案,你仅需要修改 `colorScheme` 参数即可。关于内置颜色方案可以参考[入门指南]({{< ref "getting-started#colour-schemes" >}})的内容。 + +除了默认方案之外,你还可以创建自己的颜色方案,并根据自己的喜好重新设计整个网站。可以通过在 `assets/css/schemes/` 目录中创建 `.css` 文件来新建颜色方案。一旦文件被创建,只需要将主题配置中 `colorScheme` 参数设置为对应的名称即可。 + +{{< alert "github">}} +**注意:** 手动生成这些文件会比较困难,我构建了一个 `nodejs` 工具来帮助完成这项工作——[Fugu](https://github.com/nunocoracao/fugu)。总之,你只需要在调色板中选择三个主要颜色的 `hex` 值,程序将会输出一个可以直接导入到 Blowfish 主题的 CSS 文件。 +{{< /alert >}} + +Blowfish 主题定义了一个以三个主色调为核心的颜色方案,这三个主色调分别作为 `neutral`、`primary` 和 `secondary`,其中每一个主色调对应了10个具体的颜色。 + +由于 Tailwind CSS 3.0 会用不透明度来计算颜色的值,所以方案中指定的颜色需要[符合特定格式](https://github.com/adamwathan/tailwind-css-variable-text-opacity-demo),即提供红色、绿色和蓝色的颜色值。 + +```css +:root { + --color-primary-500: 139, 92, 246; +} +``` + +上面这个例子定义了一个 `primary-500` 颜色的 CSS 变量,其中红色的值是`139`,绿色的值是`92`,蓝色的值是`246`. + +你可以使用现有的颜色样式作为模板,自由地定制自己喜欢的颜色。但如果你需要一些定制颜色方案的灵感,可以查看官方的[Tailwind 颜色方案参考](https://tailwindcss.com/docs/customizing-colors#color-palette-reference)。 + +## 覆盖样式表 + +如果你只是想添加自定义样式以设置 HTML 中某些元素的样式。Blowfish 允许你在自己的 CSS 样式表中覆盖默认样式。只需要在 `assets/css/` 目录下创建 `custom.css` 文件即可。 + +`custom.css` 文件将会被 Hugo 压缩,并在主题本身的样式之后自动加载,这意味着你设置的自定义文件将会覆盖主题自身的样式。 + +### 使用额外的字体 + +Blowfish 允许你轻松修改字体网站的字体。在 `assets/css/` 目录下创建完 `custom.css` 文件后,将你的字体文件放置到 `static/fonts/` 目录下。 + +```shell +. +├── assets +│ └── css +│ └── custom.css +... +└─── static + └── fonts + └─── font.ttf + +``` + +这将使得字体在网站中可用。现在你只需要在 `custom.css` 文件中引用它,并在适当的地方替换即可。下面这个示例,展示了如何给整个 `html` 替换字体。 + +```css +@font-face { + font-family: font; + src: url('/fonts/font.ttf'); +} + +html { + font-family: font; +} +``` + +### 调整字体大小 + +更改网站的字体大小,也是通过用覆盖默认样式实现的。Blowfish 在整个主题中使用了基于 HTML 字体大小,即 `font-size` 属性来控制字体大小的。Tailwind 将字体大小默认设置为 `12pt`,当然也可以更改成自己喜欢的值。 + +按照[上面所说]({{< ref "#overriding-the-stylesheet" >}}),创建一个 `custom.css` 并添加一下 CSS 声明: + +```css +/* Increase the default font size */ +html { + font-size: 13pt; +} +``` + +只需要更改这一个值,网站上的所有字体就会调整到此值。因此如果想让字体更大,让此值大于 `12pt`;同理想让字体更小,小于 `12pt` 即可。 + +## 从源码构建主题CSS + +如果你想进行重大更改,可以使用Tailwind CSS 的 JIT 编译器,并从头开始重建整个主题的CSS。如果你想调整 Tailwind 配置或者添加额外的 Tailwind 类,JIT 会非常有用, + +{{< alert >}} +**注意:** 手动构建主题是为高级用户所准备的。 +{{< /alert >}} + +接下来让我们一步一步了解 Tailwind CSS 是如何构建和工作的。 + +### Tailwind 配置 + +为了生成只包含实际使用的 Tailwind 类的 CSS 文件,Blowfish 在主题的根目录中定义了 `tailwind.config.js` 文件,用来扫描所有 HTML 模板和 Markdown 内容文件,以检查被标记的样式。下面是 `tailwind.config.js` 中的内容: + +```js +// themes/blowfish/tailwind.config.js + +module.exports = { + content: [ + "./layouts/**/*.html", + "./content/**/*.{html,md}", + "./themes/blowfish/layouts/**/*.html", + "./themes/blowfish/content/**/*.{html,md}", + ], + + // 更多... +}; +``` + +默认配置包含了以上路径,这里囊括了大部分内容文件。主要你遵循上面的项目结构,那么你无需修改 `tailwind.config.js` 就能轻松生成自己的 CSS 文件。但这样一来,需要你将 **Blowfish 作为子目录`themes/blowfish/` 放置在你的项目中**,Git子模块(推荐)和本地复制文件的安装方式可以做到这一点,但是 Hugo 模块的安装方式不适用。[安装文章]({{< ref "installation" >}})介绍了如何使用这三种安装方式。 + +### 项目结构 + +为了利用默认配置,你的项目应该看起来是这样: + +```shell +. +├── assets +│ └── css +│ └── compiled +│ └── main.css # 这是我们生成的文件 +├── config # 站点配置 +│ └── _default +├── content # site content +│ ├── _index.md +│ ├── projects +│ │ └── _index.md +│ └── blog +│ └── _index.md +├── layouts # 站点的自定义布局 +│ ├── partials +│ │ └── extend-article-link/simple.html +│ ├── projects +│ │ └── list.html +│ └── shortcodes +│ └── disclaimer.html +└── themes + └── blowfish # Git 子模块或本地复制安装 +``` + +这个结构示例添加了一个`projects` 内容,并为其添加了自定义布局、自定义短代码和扩充文章链接的部分。遵循此项目的结构,需要做的就是重新编译 `main.css` 文件。 + +### 安装依赖 + +为了使编译过程正常运行,你需要进入 `themes/blowfish/` 目录并安装项目依赖。你需要在本地环境执行安装 [npm](https://docs.npmjs.com/cli/v7/configuring-npm/install)。 + +```shell +cd themes/blowfish +npm install +``` + +### 运行 Tailwind 编译器 + +安装完依赖后,接下来就是使用 [Tailwind CLI](https://v2.tailwindcss.com/docs/installation#using-tailwind-cli) 调用 JIT 编译器。回到你的 Hugo 项目根目录并执行以下命令: + +```shell +cd ../.. +./themes/blowfish/node_modules/tailwindcss/lib/cli.js -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit +``` + +这个命令稍微有点复杂,因为涉及到几个路径。但本质上你是在调用 Tailwind CLI 并提供下面三个参数: +- Tailwind 配置文件 `tailwind.config.js` +- 主题的 `main.css` 文件 +- 编译产出后的 CSS 文件的位置 `assets/css/compiled/` + +配置文件将自动检查你项目和主题中的所有内容和布局,并构建一个新的 CSS 文件,这个 CSS 文件包含了你的网站中需要的所有CSS。由于 Hugo 处理文件层次结构的方式,你项目中的 `main.css` 文件将自动覆盖主题中的 `main.css` 文件。 + +每次你对布局进行更改并需要新的 Tailwind CSS 样式时,都需要重新运行命令并生成新的 CSS 文件。为了简化步骤,你可以在命令的末尾添加 `-w` 来启用监视模式运行 JIT 编译器。 + +### 制作构建脚本 + +为了提供一个更加完整的方案,你可以为这些命令添加别名来简化整个过程,或者想我一样,在项目的根目录中添加一个包含脚本的 `package.json` 文件: + +```js +// package.json + +{ + "name": "my-website", + "version": "1.0.0", + "description": "", + "scripts": { + "server": "hugo server -b http://localhost -p 8000", + "dev": "NODE_ENV=development ./themes/blowfish/node_modules/tailwindcss/lib/cli.js -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit -w", + "build": "NODE_ENV=production ./themes/blowfish/node_modules/tailwindcss/lib/cli.js -c ./themes/blowfish/tailwind.config.js -i ./themes/blowfish/assets/css/main.css -o ./assets/css/compiled/main.css --jit" + }, + // and more... +} +``` + +现在,当你想要设计网站时,可以调用 `npm run dev`,编译器会以监视模式运行。当你准备部署时,运行 `npm run build` 就可以得到一个简洁的 Tailwind CSS 构建。 + +🙋‍♀️如果你需要帮助,请随时在 [GitHub 讨论区](https://github.com/nunocoracao/blowfish/discussions)提出问题。 + diff --git a/exampleSite/content/docs/configuration/index.zh-cn.md b/exampleSite/content/docs/configuration/index.zh-cn.md index f6fc9e0a..15b7efd3 100644 --- a/exampleSite/content/docs/configuration/index.zh-cn.md +++ b/exampleSite/content/docs/configuration/index.zh-cn.md @@ -150,7 +150,7 @@ Blowfish 还支持针对特定语言的菜单配置。菜单配置文件的命 菜单配置文件的命名格式是 `menus.[language-code].toml`。请始终确保菜单配置项中使用的语言代码和语言配置相匹配。 -[快速开始]({{< ref "getting-started#menus" >}})部分更详细地介绍了这个文件的结构。你还可以参考 [Hugo 菜单文档](https://gohugo.io/content-management/menus/),以获取更多配置示例。 +[入门指南]({{< ref "getting-started#menus" >}})部分更详细地介绍了这个文件的结构。你还可以参考 [Hugo 菜单文档](https://gohugo.io/content-management/menus/),以获取更多配置示例。 ## 主题参数 @@ -171,7 +171,7 @@ Blowfish 提供了大量控制主题功能的配置参数,下面的表格中 | `enableCodeCopy` | `false` | 是否可以将``代码块复制到剪贴板。想要使用代码复制功能,需要将 `highlight.noClasses` 参数设置为 `false`。 阅读 [其他配置文件](#other-configuration-files) 以获取更多信息。 | | `mainSections` | 无 | 指定最近文章中应该展示的模块。 如果没有指定,则使用文章数量最多的板块。 | | `showViews` | 无 | 是否显示文章和列表页面的阅读量。这需要集成 firebase ,具体可以看下面。 | -| `showLikes` | 无 | 是否显示文章和列表页面的喜爱数。这需要集成 firebase ,具体可以看下面。 | +| `showLikes` | 无 | 是否显示文章和列表页面的点赞量。这需要集成 firebase ,具体可以看下面。 | | `robots` | 无 | 用于支持搜索引擎爬虫如何处理你的网站。如果设置了该值,它将被输出在页面头部。具体的参数值请参考 [Google 文档](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives)。 | | `disableImageZoom` | `false` | 禁用网站上所有图片缩放功能。 | | `disableImageOptimization` | `false` | 禁用图片上所有图片的调整大小和优化功能。 | @@ -218,7 +218,7 @@ Blowfish 提供了大量控制主题功能的配置参数,下面的表格中 | ------------------------------------- | --------- |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `article.showDate` | `true` | 是否显示日期。 | | `article.showViews` | `false` | 是否显示文章阅读量。这需要集成 firebase ,具体可以看下面。 | -| `article.showLikes` | `false` | 是否显示文章喜爱数。这需要集成 firebase ,具体可以看下面。 | +| `article.showLikes` | `false` | 是否显示文章点赞量。这需要集成 firebase ,具体可以看下面。 | | `article.showDateOnlyInArticle` | `false` | 是否在文章内显示日期,不影响文章列表或卡片页面的日期显示。 | | `article.showDateUpdated` | `false` | 是否展示文章的更新日期。 | | `article.showAuthor` | `true` | 是否在文章底部显示作者框。 | @@ -241,7 +241,7 @@ Blowfish 提供了大量控制主题功能的配置参数,下面的表格中 | `article.relatedContentLimit` | `3` | 如果启用`showRelatedContent`,则限制显示相关文章的数量。 | | `article.showTaxonomies` | `false` | 是否显示文章的分类或标签信息。 | | `article.showAuthorsBadges` | `false` | 是否在文章或列表中显示 `authors` 分类。这需要开启多个作者 `multiple authors` 和 `authors` 分类法。 请阅读 [这个网页]({{< ref "multi-author" >}}) 来获取更多内容。 | -| `article.showWordCount` | `false` | 是否显示文章的字数。 如果你的语言包含 CJK 语言,需要在 `config.toml` 中开启 `hasCJKLanguage` 参数。 | +| `article.showWordCount` | `false` | 是否显示文章的字数。 如果你的语言属于 CJK 语言,需要在 `config.toml` 中开启 `hasCJKLanguage` 参数。 | | `article.showComments` | `false` | 是否在文章末尾添加 [评论部分]({{< ref "partials#comments" >}})。 | | `article.sharingLinks` | 无 | 在文章末尾显示的分享链接。如果没有提供或设置为 `false`,则不会显示任何分享链接。可用的值包括:"linkedin"、"twitter"、"reddit"、"pinterest"、"facebook"、"email"、"whatsapp" 和 "telegram" | | `article.showZenMode` | `false` | 指定是否激活文章阅读的禅模式,即隐藏常规的界面元素。 | @@ -258,7 +258,7 @@ Blowfish 提供了大量控制主题功能的配置参数,下面的表格中 | `list.showTableOfContents` | `false` | 是否展示目录。 | | `list.showSummary` | `false` | 是否在列表页显示文章摘要。如果在[扉页参数]({{< ref "front-matter" >}})中没有提供摘要,那么将会使用[站点配置](#site-configuration) 中的 `summaryLength` 参数自动生成一个。 | | `list.showViews` | `false` | 是否显示文章阅读量。这需要集成 firebase ,具体可以看下面。 | -| `list.showLikes` | `false` | 是否显示文章喜爱数。这需要集成 firebase ,具体可以看下面。 | +| `list.showLikes` | `false` | 是否显示文章点赞量。这需要集成 firebase ,具体可以看下面。 | | `list.showCards` | `false` | 是否将每个文章显示未卡片或简单的内联文本。 | | `list.groupByYear` | `true` | 是否根据年做聚合。 | | `list.cardView` | `false` | 将列表展示为卡片容器。 | @@ -281,23 +281,23 @@ Blowfish 提供了大量控制主题功能的配置参数,下面的表格中 | `taxonomy.heroStyle` | 无 | hero 图像的展示样式,可选的参数值有:`basic`、`big`、`background`、`thumbAndBackground`。 | | `taxonomy.showBreadcrumbs` | `false` | 是否在标题栏显示面包屑导航。 | | `taxonomy.showViews` | `false` | 是否显示文章阅读量。这需要集成 firebase ,具体可以看下面。 | -| `taxonomy.showLikes` | `false` | 是否显示文章喜爱数。这需要集成 firebase ,具体可以看下面。 | +| `taxonomy.showLikes` | `false` | 是否显示文章点赞量。这需要集成 firebase ,具体可以看下面。 | | `taxonomy.showTableOfContents` | `false` | 是否显示目录。 | | `taxonomy.cardView` | `false` | 将列表展示为卡片容器。 | ### 术语 -| 名称 | 默认值 | 描述 | -| -------------------------- | --------- |----------------------------------------------------------------------| -| `term.showHero` | `false` | 缩略图是否会在每个页面中作为 hero 图像显示。 | +| 名称 | 默认值 | 描述 | +| -------------------------- | --------- |------------------------------------------------------------------------| +| `term.showHero` | `false` | 缩略图是否会在每个页面中作为 hero 图像显示。 | | `term.heroStyle` | 无 | hero 图像的展示样式,可选的参数值有: `basic`、`big`、`background`、`thumbAndBackground`。 | -| `term.showBreadcrumbs` | `false` | 是否在标题栏显示面包屑导航。 | -| `term.showViews` | `false` | 是否显示文章阅读量。这需要集成 firebase ,具体可以看下面。 | -| `term.showLikes` | `false` | 是否显示文章喜爱数。这需要集成 firebase ,具体可以看下面。 | -| `term.showTableOfContents` | `false` | 是否显示目录。 | -| `term.groupByYear` | `false` | 是否根据年做聚合。 | -| `term.cardView` | `false` | 将列表展示为卡片容器。 | -| `term.cardViewScreenWidth` | `false` | 增强列表中卡片的宽度,使其可以占据可用的全部宽度。 | +| `term.showBreadcrumbs` | `false` | 是否在标题栏显示面包屑导航。 | +| `term.showViews` | `false` | 是否显示文章阅读量。这需要集成 firebase ,具体可以看下面。 | +| `term.showLikes` | `false` | 是否显示文章点赞量。这需要集成 firebase ,具体可以看下面。 | +| `term.showTableOfContents` | `false` | 是否显示目录。 | +| `term.groupByYear` | `false` | 是否根据年做聚合。 | +| `term.cardView` | `false` | 将列表展示为卡片容器。 | +| `term.cardViewScreenWidth` | `false` | 增强列表中卡片的宽度,使其可以占据可用的全部宽度。 | ### Firebase diff --git a/exampleSite/content/docs/firebase-views/index.zh-cn.md b/exampleSite/content/docs/firebase-views/index.zh-cn.md new file mode 100644 index 00000000..2927dcf5 --- /dev/null +++ b/exampleSite/content/docs/firebase-views/index.zh-cn.md @@ -0,0 +1,55 @@ +--- +title: "Firebase: 阅读量 & 点赞量" +date: 2020-08-03 +draft: false +description: "了解 Blowfish 如何继承 Firebase,并动态显示阅读量和点赞量。" +slug: "firebase-views" +tags: ["firebase", "阅读量", "点赞量"] +series: ["文档集"] +series_order: 15 +--- + +为了能够在网站中获取动态数据,我们支持了对 Firebase 的集成。这将允许你在列表和文章中使用阅读量功能。 + +1. 访问 Firebase 并创建一个账户 +2. 创建一个新项目 +3. 选择分析位置 +4. Blowfish 是通过 `params.toml` 配置文件中的 firebase 相关参数,来和 firebase 继承的,更多的细节内容可以参考 }}">这个页面。你可以在下面找到集成 firebase 的文件示例,请注意 FirebaseConfig 对象内的参数。 + +``` +// 从你需要的 SDK 中导入所需的函数 +import { initializeApp } from "firebase/app"; +import { getAnalytics } from "firebase/analytics"; +// TODO: Add SDKs for Firebase products that you want to use +// https://firebase.google.com/docs/web/setup#available-libraries + +// 你 Web 应用的 Firebase 配置 +// 对于 Firebase JS SDK v7.20.0 以及更高版本,measurementId 参数是可选的 +const firebaseConfig = { + apiKey: "AIzaSyB5tqlqDky77Vb4Tc4apiHV4hRZI18KGiY", + authDomain: "blowfish-21fff.firebaseapp.com", + projectId: "blowfish-21fff", + storageBucket: "blowfish-21fff.appspot.com", + messagingSenderId: "60108104191", + appId: "1:60108104191:web:039842ebe1370698b487ca", + measurementId: "G-PEDMYR1V0K" +}; + +// 初始化 Firebase +const app = initializeApp(firebaseConfig); +const analytics = getAnalytics(app); +``` + +5. 设置 Firestore - 选择 Build 并打开 Firestore. 创建一个数据库,并在生产环境中启动。选择服务器位置然后等待其部署完成。启动之后你需要配置规则。只需要复制并粘贴下面的内容,然后点击发布即可。 +``` +rules_version = '2'; +service cloud.firestore { + match /databases/{database}/documents { + match /{document=**} { + allow read, write: if request.auth != null; + } + } +} +``` +6. 开启匿名授权 - 选择 Build 并打开 Authentication。选择开始,点击 Anonymous 并开启,保存。 +7. 享受 - 现在可以激活 Blowfish 中文章阅读量和点赞量的功能。 diff --git a/exampleSite/content/docs/front-matter/index.zh-cn.md b/exampleSite/content/docs/front-matter/index.zh-cn.md new file mode 100644 index 00000000..77805c33 --- /dev/null +++ b/exampleSite/content/docs/front-matter/index.zh-cn.md @@ -0,0 +1,57 @@ +--- +title: "扉页参数" +date: 2020-08-10 +draft: false +description: "文本主要介绍 Blowfish 中页面中可以添加的所有的前页/扉页参数。" +slug: "front-matter" +tags: ["扉页", "配置", "文档"] +series: ["文档集"] +series_order: 7 +--- + +除了 [Hugo 中默认的前置参数](https://gohugo.io/content-management/front-matter/#front-matter-variables),Blowfish 主题中还添加了大量的参数选项来自定义单个页面的展示方式。所有可用的扉页参数如下。 + +扉页参数中的默认值是从[基础配置]({{< ref "configuration" >}})中继承的,所有只有当你想要覆盖默认值时,才需要在当前页面指定这些参数。 + + +| 名称 | 默认值 | 描述 | +|-------------------------------|-----------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------| +| `title` | 无 | 文章名称。 | +| `description` | 无 | 文章的描述信息,它会被添加在 HTML 的 `` 元数据中。 | +| `externalUrl` | 无 | 如果文章发布在第三方网站上,这里提供只想对应文章的 URL 地址。提供 URL 将会组织生成内容页面,对这篇文章的任何引用都会直接跳转到第三方网站的 URL 上面。 | +| `editURL` | `article.editURL` | 当激活 `showEdit` 参数时,此参数用来设置编辑文章的 URL。 | +| `editAppendPath` | `article.editAppendPath` | 当激活 `showEdit` 参数时,该参数指定是否将当前文章路径添加到 `editURL` 设置的 URL 后面。 | +| `groupByYear` | `list.groupByYear` | 是否在列表页面按年份对文章进行分组。 | +| `menu` | 无 | 当设置此值,这篇内容的链接将会出现在菜单中。有效值是 `main` 或 `footer`。 | +| `robots` | 无 | 支持搜索引擎的爬虫如何处理这篇文章。如果设置了此值,它将在页面头部输出。更多内容请参考 [Google 文档](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives)。 | +| `sharingLinks` | `article.sharingLinks` | 指定文章结尾显示哪些分享链接。如果没有设置或设置为 `false` ,则没有分享链接。 | +| `showAuthor` | `article.showAuthor` | 是否在页脚处显示作者框。 | +| `authors` | 无 | 用于展示多作者的数组,如果设置了将会覆盖 `showAuthor` 设置。这里使用了多作者的特性,查看[这个页面]({{< ref "multi-author" >}})来获取更多信息。 | +| `showAuthorsBadges` | `article.showAuthorsBadges` | 是否在文章和列表页展示`authors`作者分类。想是它生效需要开启`multiple authors`多作者和 `authors` 作者分类。 查看[这个页面]({{< ref "multi-author" >}})来获取更多信息。 | +| `featureimage` | 无 | 基于外部 URL 的 feature 图片链接。 +| `featureimagecaption` | 无 | feature 图片的说明,仅在 hero 样式的 `big` 风格下展示。 +| `showHero` | `article.showHero` | 是否在文章页面将所裸土作为文章页面内的 hero 图片显示。 | +| `heroStyle` | `article.heroStyle` | hero 图片的风格,合法的值有: `basic`、`big`、`background`、`thumbAndBackground`。 | +| `showBreadcrumbs` | `article.showBreadcrumbs` or `list.showBreadcrumbs` | 是否在文章或列表页面显示面包屑导航。 | +| `showDate` | `article.showDate` | 是否显示文章的日期。具体日期使用 `date` 参数设置。 | +| `showDateUpdated` | `article.showDateUpdated` | 是否显示文章的更新日期。具体日期使用 `lastmod` 参数设置。 | +| `showEdit` | `article.showEdit` | 是否显示编辑文章内容的链接。 | +| `showHeadingAnchors` | `article.showHeadingAnchors` | 是否在文章的标题旁显示锚点链接。 | +| `showPagination` | `article.showPagination` | 是否在文章页脚显示下一篇/上一篇链接。 | +| `invertPagination` | `article.invertPagination` | 是否翻转下一篇/上一篇的链接方向。 | +| `showReadingTime` | `article.showReadingTime` | 是否显示文章的预估阅读时间。 | +| `showTaxonomies` | `article.showTaxonomies` | 是否显示文章关联的分类/标签。 | +| `showTableOfContents` | `article.showTableOfContents` | 是否显示文章目录。 | +| `showWordCount` | `article.showWordCount` | 是否显示文章字数统计。如果你的语言属于 CJK 语言,需要在 `config.toml` 中开启 `hasCJKLanguage` 参数。 | +| `showComments` | `article.showComments` | 是否在文章页脚显示 [评论部分]({{< ref "partials#comments" >}})。 | +| `showSummary` | `list.showSummary` | 是否在文章或列表页显示摘要。 | +| `showViews` | `article.showViews` | 是否显示文章和列表页面的阅读量。这需要集成 firebase ,具体可以看[这个页面]({{< ref "firebase-views" >}})来了解如何在 Blowfish 中集成firebase。 | +| `showLikes` | `article.showLikes` | 是否显示文章和列表页面的点赞量。这需要集成 firebase ,具体可以看[这个页面]({{< ref "firebase-views" >}})来了解如何在 Blowfish 中集成firebase。 | +| `seriesOpened` | `article.seriesOpened` | 是否打开系列模块。 | +| `series` | 无 | 文章所属的系列数组,我们建议每篇文章只属于一个系列。 | +| `series_order` | 无 | 文章在系列中的编号。 | +| `summary` | Auto generated using `summaryLength` (see [site configuration]({{< ref "configuration#site-configuration" >}})) | 当启用 `showSummary` 时,这是作为这篇文章摘要的Markdown字符串。 | +| `xml` | `true` unless excluded by `sitemap.excludedKinds` | 是否将这篇文章包含在生成的 `/sitemap.xml` 文件中。 | +| `layoutBackgroundBlur` | `true` | 向下滚动主页时,是否模糊背景图。 | +| `layoutBackgroundHeaderSpace` | `true` | 在标题和正文之间添加空白区域间隔。 | + diff --git a/exampleSite/content/docs/getting-started/index.zh-cn.md b/exampleSite/content/docs/getting-started/index.zh-cn.md index fb36c964..00c0518b 100644 --- a/exampleSite/content/docs/getting-started/index.zh-cn.md +++ b/exampleSite/content/docs/getting-started/index.zh-cn.md @@ -1,5 +1,5 @@ --- -title: "快速开始" +title: "入门指南" date: 2020-08-15 draft: false description: "All the front matter variables available in Blowfish." diff --git a/exampleSite/content/docs/installation/index.zh-cn.md b/exampleSite/content/docs/installation/index.zh-cn.md index 6c5b75b8..461dfc00 100644 --- a/exampleSite/content/docs/installation/index.zh-cn.md +++ b/exampleSite/content/docs/installation/index.zh-cn.md @@ -156,7 +156,7 @@ config/_default/ ### 下一步 -基本的 Blowfish 安装已经完成。继续阅读 [快速开始]({{< ref "getting-started" >}}),了解更多关于主题配置的内容。 +基本的 Blowfish 安装已经完成。继续阅读 [入门指南]({{< ref "getting-started" >}}),了解更多关于主题配置的内容。 --- From 6b341ad8118b5d0ccf143860267698341d3c7d98 Mon Sep 17 00:00:00 2001 From: Weaxs <459312872@qq.com> Date: Wed, 20 Mar 2024 11:35:00 +0800 Subject: [PATCH 06/10] translate thumbnails, multi-author to zh-cn --- .../content/docs/front-matter/index.zh-cn.md | 78 +++++++------- .../content/docs/multi-author/index.zh-cn.md | 100 ++++++++++++++++++ .../content/docs/thumbnails/index.zh-cn.md | 46 ++++++++ 3 files changed, 185 insertions(+), 39 deletions(-) create mode 100644 exampleSite/content/docs/multi-author/index.zh-cn.md create mode 100644 exampleSite/content/docs/thumbnails/index.zh-cn.md diff --git a/exampleSite/content/docs/front-matter/index.zh-cn.md b/exampleSite/content/docs/front-matter/index.zh-cn.md index 77805c33..caf3f654 100644 --- a/exampleSite/content/docs/front-matter/index.zh-cn.md +++ b/exampleSite/content/docs/front-matter/index.zh-cn.md @@ -14,44 +14,44 @@ series_order: 7 扉页参数中的默认值是从[基础配置]({{< ref "configuration" >}})中继承的,所有只有当你想要覆盖默认值时,才需要在当前页面指定这些参数。 -| 名称 | 默认值 | 描述 | -|-------------------------------|-----------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------| -| `title` | 无 | 文章名称。 | -| `description` | 无 | 文章的描述信息,它会被添加在 HTML 的 `` 元数据中。 | -| `externalUrl` | 无 | 如果文章发布在第三方网站上,这里提供只想对应文章的 URL 地址。提供 URL 将会组织生成内容页面,对这篇文章的任何引用都会直接跳转到第三方网站的 URL 上面。 | -| `editURL` | `article.editURL` | 当激活 `showEdit` 参数时,此参数用来设置编辑文章的 URL。 | -| `editAppendPath` | `article.editAppendPath` | 当激活 `showEdit` 参数时,该参数指定是否将当前文章路径添加到 `editURL` 设置的 URL 后面。 | -| `groupByYear` | `list.groupByYear` | 是否在列表页面按年份对文章进行分组。 | -| `menu` | 无 | 当设置此值,这篇内容的链接将会出现在菜单中。有效值是 `main` 或 `footer`。 | +| 名称 | 默认值 | 描述 | +|-------------------------------|-----------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------| +| `title` | 无 | 文章名称。 | +| `description` | 无 | 文章的描述信息,它会被添加在 HTML 的 `` 元数据中。 | +| `externalUrl` | 无 | 如果文章发布在第三方网站上,这里提供只想对应文章的 URL 地址。提供 URL 将会组织生成内容页面,对这篇文章的任何引用都会直接跳转到第三方网站的 URL 上面。 | +| `editURL` | `article.editURL` | 当激活 `showEdit` 参数时,此参数用来设置编辑文章的 URL。 | +| `editAppendPath` | `article.editAppendPath` | 当激活 `showEdit` 参数时,该参数指定是否将当前文章路径添加到 `editURL` 设置的 URL 后面。 | +| `groupByYear` | `list.groupByYear` | 是否在列表页面按年份对文章进行分组。 | +| `menu` | 无 | 当设置此值,这篇内容的链接将会出现在菜单中。有效值是 `main` 或 `footer`。 | | `robots` | 无 | 支持搜索引擎的爬虫如何处理这篇文章。如果设置了此值,它将在页面头部输出。更多内容请参考 [Google 文档](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives)。 | -| `sharingLinks` | `article.sharingLinks` | 指定文章结尾显示哪些分享链接。如果没有设置或设置为 `false` ,则没有分享链接。 | -| `showAuthor` | `article.showAuthor` | 是否在页脚处显示作者框。 | -| `authors` | 无 | 用于展示多作者的数组,如果设置了将会覆盖 `showAuthor` 设置。这里使用了多作者的特性,查看[这个页面]({{< ref "multi-author" >}})来获取更多信息。 | -| `showAuthorsBadges` | `article.showAuthorsBadges` | 是否在文章和列表页展示`authors`作者分类。想是它生效需要开启`multiple authors`多作者和 `authors` 作者分类。 查看[这个页面]({{< ref "multi-author" >}})来获取更多信息。 | -| `featureimage` | 无 | 基于外部 URL 的 feature 图片链接。 -| `featureimagecaption` | 无 | feature 图片的说明,仅在 hero 样式的 `big` 风格下展示。 -| `showHero` | `article.showHero` | 是否在文章页面将所裸土作为文章页面内的 hero 图片显示。 | -| `heroStyle` | `article.heroStyle` | hero 图片的风格,合法的值有: `basic`、`big`、`background`、`thumbAndBackground`。 | -| `showBreadcrumbs` | `article.showBreadcrumbs` or `list.showBreadcrumbs` | 是否在文章或列表页面显示面包屑导航。 | -| `showDate` | `article.showDate` | 是否显示文章的日期。具体日期使用 `date` 参数设置。 | -| `showDateUpdated` | `article.showDateUpdated` | 是否显示文章的更新日期。具体日期使用 `lastmod` 参数设置。 | -| `showEdit` | `article.showEdit` | 是否显示编辑文章内容的链接。 | -| `showHeadingAnchors` | `article.showHeadingAnchors` | 是否在文章的标题旁显示锚点链接。 | -| `showPagination` | `article.showPagination` | 是否在文章页脚显示下一篇/上一篇链接。 | -| `invertPagination` | `article.invertPagination` | 是否翻转下一篇/上一篇的链接方向。 | -| `showReadingTime` | `article.showReadingTime` | 是否显示文章的预估阅读时间。 | -| `showTaxonomies` | `article.showTaxonomies` | 是否显示文章关联的分类/标签。 | -| `showTableOfContents` | `article.showTableOfContents` | 是否显示文章目录。 | -| `showWordCount` | `article.showWordCount` | 是否显示文章字数统计。如果你的语言属于 CJK 语言,需要在 `config.toml` 中开启 `hasCJKLanguage` 参数。 | -| `showComments` | `article.showComments` | 是否在文章页脚显示 [评论部分]({{< ref "partials#comments" >}})。 | -| `showSummary` | `list.showSummary` | 是否在文章或列表页显示摘要。 | -| `showViews` | `article.showViews` | 是否显示文章和列表页面的阅读量。这需要集成 firebase ,具体可以看[这个页面]({{< ref "firebase-views" >}})来了解如何在 Blowfish 中集成firebase。 | -| `showLikes` | `article.showLikes` | 是否显示文章和列表页面的点赞量。这需要集成 firebase ,具体可以看[这个页面]({{< ref "firebase-views" >}})来了解如何在 Blowfish 中集成firebase。 | -| `seriesOpened` | `article.seriesOpened` | 是否打开系列模块。 | -| `series` | 无 | 文章所属的系列数组,我们建议每篇文章只属于一个系列。 | -| `series_order` | 无 | 文章在系列中的编号。 | -| `summary` | Auto generated using `summaryLength` (see [site configuration]({{< ref "configuration#site-configuration" >}})) | 当启用 `showSummary` 时,这是作为这篇文章摘要的Markdown字符串。 | -| `xml` | `true` unless excluded by `sitemap.excludedKinds` | 是否将这篇文章包含在生成的 `/sitemap.xml` 文件中。 | -| `layoutBackgroundBlur` | `true` | 向下滚动主页时,是否模糊背景图。 | -| `layoutBackgroundHeaderSpace` | `true` | 在标题和正文之间添加空白区域间隔。 | +| `sharingLinks` | `article.sharingLinks` | 指定文章结尾显示哪些分享链接。如果没有设置或设置为 `false` ,则没有分享链接。 | +| `showAuthor` | `article.showAuthor` | 是否在页脚处显示作者框。 | +| `authors` | 无 | 用于展示多创作者的数组,如果设置了将会覆盖 `showAuthor` 设置。这里使用了多作者的特性,查看[这个页面]({{< ref "multi-author" >}})来获取更多信息。 | +| `showAuthorsBadges` | `article.showAuthorsBadges` | 是否在文章和列表页展示`authors`作者分类。想是它生效需要开启`multiple authors`多创作者和 `authors` 作者分类。 查看[这个页面]({{< ref "multi-author" >}})来获取更多信息。 | +| `featureimage` | 无 | 基于外部 URL 的特征图片链接。 +| `featureimagecaption` | 无 | 特征图片的说明,仅在 hero 样式的 `big` 风格下展示。 +| `showHero` | `article.showHero` | 是否在文章页面将所裸土作为文章页面内的 hero 图片显示。 | +| `heroStyle` | `article.heroStyle` | hero 图片的风格,合法的值有: `basic`、`big`、`background`、`thumbAndBackground`。 | +| `showBreadcrumbs` | `article.showBreadcrumbs` or `list.showBreadcrumbs` | 是否在文章或列表页面显示面包屑导航。 | +| `showDate` | `article.showDate` | 是否显示文章的日期。具体日期使用 `date` 参数设置。 | +| `showDateUpdated` | `article.showDateUpdated` | 是否显示文章的更新日期。具体日期使用 `lastmod` 参数设置。 | +| `showEdit` | `article.showEdit` | 是否显示编辑文章内容的链接。 | +| `showHeadingAnchors` | `article.showHeadingAnchors` | 是否在文章的标题旁显示锚点链接。 | +| `showPagination` | `article.showPagination` | 是否在文章页脚显示下一篇/上一篇链接。 | +| `invertPagination` | `article.invertPagination` | 是否翻转下一篇/上一篇的链接方向。 | +| `showReadingTime` | `article.showReadingTime` | 是否显示文章的预估阅读时间。 | +| `showTaxonomies` | `article.showTaxonomies` | 是否显示文章关联的分类/标签。 | +| `showTableOfContents` | `article.showTableOfContents` | 是否显示文章目录。 | +| `showWordCount` | `article.showWordCount` | 是否显示文章字数统计。如果你的语言属于 CJK 语言,需要在 `config.toml` 中开启 `hasCJKLanguage` 参数。 | +| `showComments` | `article.showComments` | 是否在文章页脚显示 [评论部分]({{< ref "partials#comments" >}})。 | +| `showSummary` | `list.showSummary` | 是否在文章或列表页显示摘要。 | +| `showViews` | `article.showViews` | 是否显示文章和列表页面的阅读量。这需要集成 firebase ,具体可以看[这个页面]({{< ref "firebase-views" >}})来了解如何在 Blowfish 中集成firebase。 | +| `showLikes` | `article.showLikes` | 是否显示文章和列表页面的点赞量。这需要集成 firebase ,具体可以看[这个页面]({{< ref "firebase-views" >}})来了解如何在 Blowfish 中集成firebase。 | +| `seriesOpened` | `article.seriesOpened` | 是否打开系列模块。 | +| `series` | 无 | 文章所属的系列数组,我们建议每篇文章只属于一个系列。 | +| `series_order` | 无 | 文章在系列中的编号。 | +| `summary` | Auto generated using `summaryLength` (see [site configuration]({{< ref "configuration#site-configuration" >}})) | 当启用 `showSummary` 时,这是作为这篇文章摘要的Markdown字符串。 | +| `xml` | `true` unless excluded by `sitemap.excludedKinds` | 是否将这篇文章包含在生成的 `/sitemap.xml` 文件中。 | +| `layoutBackgroundBlur` | `true` | 向下滚动主页时,是否模糊背景图。 | +| `layoutBackgroundHeaderSpace` | `true` | 在标题和正文之间添加空白区域间隔。 | diff --git a/exampleSite/content/docs/multi-author/index.zh-cn.md b/exampleSite/content/docs/multi-author/index.zh-cn.md new file mode 100644 index 00000000..c92adb31 --- /dev/null +++ b/exampleSite/content/docs/multi-author/index.zh-cn.md @@ -0,0 +1,100 @@ +--- +title: "多创作者模式" +date: 2020-08-10 +draft: false +description: "为你的文章设置多个作者。" +slug: "multi-author" +tags: ["作者", "配置", "文档"] +series: ["文档集"] +series_order: 10 +showAuthor: true +authors: + - "nunocoracao" +showAuthorsBadges : false +--- + +一个网站会有多个创作者共同贡献内容,所以需要再整个网站中默认使用多创作者。对于这种情况,Blowfish 允许用户使用多创作者功能拓展创作者列表。 + +为了保持向后兼容,这个功能仅允许定义额外的创作者,并不会以任何方式修改之前通过配置文件添加的创作者。 + +## 新建创作者 + +新建创作者的第一步是设置一个 `./data/authors` 文件夹。然后,你可以在里面简单的添加新创作者的 `json` 文件。文件的名称是你在文章引用该作者时需要指定的 `key`。 + +例如,在 `./data/authors` 文件夹中新建一个 `nunocoracao.json` 文件。文件的内容示例如下。`name`、`image`、`bio` 和 `social` 是目前创作者文件支持的4个参数,这与你在 `languages.[language-code].toml` 配置文件中的默认创作者配置类似。 + +_注意:社交参数中的 `key` 将会默认获取主题的图标 icon,当然你也可以在 `assests/icons` 文件夹中设置任何图标。_ + +```json +{ + "name": "Nuno Coração", + "image" : "img/nuno_avatar.jpg", + "bio": "Theme Creator", + "social": [ + { "linkedin": "https://linkedin.com/in/nunocoracao" }, + { "twitter": "https://twitter.com/nunocoracao" }, + { "instagram": "https://instagram.com/nunocoracao" }, + { "medium": "https://medium.com/@nunocoracao" }, + { "github": "https://github.com/nunocoracao" }, + { "goodreads": "http://goodreads.com/nunocoracao" }, + { "keybase": "https://keybase.io/nunocoracao" }, + { "reddit": "https://reddit.com/user/nunoheart" } + ] +} +``` + +## 在文章中引用创作者 + +你已经新建好了创作者,下一步让我们在文章中引用它。在下面的实例中,我们使用前面新建的创作者 `key` 来引用它。 + +Blowfish 将会使用额外创作者对应`json`文件中的数据,以帮助在文章中渲染此作者。这个功能不会以改变整个站点配置的默认作者,因此你可以分别控制他们。使用 `showAuthor` 参数,可以配置是否显示默认作者,这适用于单创作者的博客。扉页中的 `authors` 参数允许你为文章定义额外的创作者,这里的创作者将独立于整个站点中的默认创作者。 + +```md +--- +title: "多创作者" +date: 2020-08-10 +draft: false +description: "为你的文章设置多个作者。" +slug: "multi-author" +tags: ["authors", "config", "docs"] +showAuthor: true +authors: + - "nunocoracao" +showAuthorsBadges : false +--- +``` + +上面这个示例和当前这个页面一样,将显示默认创作者和新创作者。你可以滚动此页面来查看实际效果。 + +## 新建创作者分类法 + +如果你想要获取每个作者的文章列表,需要配置 `authors` 分类,这会让你了解到一些更有趣的配置。这个是多创作者模式中的一个可选步骤。 +To get lists of articles for each of your authors you can configure the `authors` taxonomy, which opens up some more configurations that might be interesting. This is an optional step in the process that is not required to display the authors in your articles. + +第一步是在 `config.toml` 文件中配置 `authors` 分类法,如下所示。尽管 `tag` 和 `category` 默认是 Hugo 定义的,但只要你添加了一个特定的分类法,就需要显式添加 `tag` 和 `category`,否则基于 Hugo 的文件加载顺序,站点将不会处理 `tag` 和 `category`。 + +```toml +[taxonomies] + tag = "tags" + category = "categories" + author = "authors" +``` + +这样一来,你将会有一个所有创作者列表的页面,并且每个创作者都会显示他们参与创作的文章列表。如果你想在每个文章中以徽章的形式中展示作者,有两种方式:在全局配置文件添加 `article.showAuthorsBadges` 参数 或 在每篇文章的扉页参数中配置 `showAuthorsBadges`参数。 + +最后,你可以为每个创作者页面添加更多细节内容,以便显示简介、链接或者适合你需求的任何其他信息。为了实现这一点,需要在 `./content/authors` 文件夹中为每个创作者添加一个目录名为 `key` 的文件夹,并在文件夹中添加 `_index.md` 文件,对于上面的例子,我们会得到一个 `.content/authors/nunocoracao/_index.md` 文件。在这个文件中你可以添加创作者的实际姓名和他们自己的个人信息页面。本文档站点中的作者就是这么配置的,你可以在文档站点中查看实际效果。 + +```md +--- +title: "Nuno Coração" +--- + +Nuno's awesome dummy bio. + +``` + +## 示例 + +下面这个示例,介绍了演示了如何关闭站点默认创作者,并在文章中添加多创作者。 + +{{< article link="/samples/multiple-authors/" >}} \ No newline at end of file diff --git a/exampleSite/content/docs/thumbnails/index.zh-cn.md b/exampleSite/content/docs/thumbnails/index.zh-cn.md new file mode 100644 index 00000000..4c332f3e --- /dev/null +++ b/exampleSite/content/docs/thumbnails/index.zh-cn.md @@ -0,0 +1,46 @@ +--- +title: "缩略图" +date: 2020-08-10 +draft: false +description: "为你的文章配置缩略图。" +slug: "thumbnails" +tags: ["缩略图", "配置", "文档"] +series: ["文档集"] +series_order: 6 +--- + +## 缩略图 + +Blowfish 对视觉支持进行了增强,可以让你轻松地为文章添加缩略图。你只需要将一个以 `feature*` 开头的图像文件(支持几乎所有格式,但更推荐 `.png` 或 `.jpg`)放置在文章所在的目录中,如下面所示: + +```shell +content +└── awesome_article + ├── index.md + └── featured.png +``` + +这将告诉 Blowfish 这篇文章有一个特征图片,这个图片可以在网站作为缩略图使用,也可以用于社交平台上的 oEmbed 卡片。 + +## 文件结构 + +如果你仅仅使用一个 `.md` 文件作为文章,文件结构如下所示: + +```shell +content +└── awesome_article.md +``` + +如果想添加缩略图,你需要将单个 Markdown 文件放在文件夹中。创建一个与文章同名的目录,在其中创建 `index.md` 文件。文件结构如下所示: + +```shell +content +└── awesome_article + └── index.md +``` + +然后你只需要像之前那样添加一个特征图片。如果你想看示例,你可以参 [这个示例]({{< ref "thumbnail_sample" >}})。 + +## Hero 图片 + +缩略图将默认用作每篇文章的 hero 图片。开启此功能,可以使用全局的 `article.showHero` 参数来控制整个站点所有文章,或者扉页参数 `showHero` 来控制其中一个文章。如果你想覆盖 hero 图片的样式,你可以在 `./layouts/partials/` 文件夹中创建一个名为 `hero.html` 的文件,它会覆盖主题中的默认部分。 From 44b3b17faccc53d6a766912e65f59165a4d00733 Mon Sep 17 00:00:00 2001 From: Weaxs <459312872@qq.com> Date: Wed, 20 Mar 2024 11:52:16 +0800 Subject: [PATCH 07/10] translate thumbnails, multi-author, samples,icons, thumbnail_sample to zh-cn --- exampleSite/content/samples/_index.zh-cn.md | 20 +++ .../content/samples/icons/index.zh-cn.md | 116 ++++++++++++++++++ .../samples/thumbnail_sample/index.zh-cn.md | 40 ++++++ 3 files changed, 176 insertions(+) create mode 100644 exampleSite/content/samples/_index.zh-cn.md create mode 100644 exampleSite/content/samples/icons/index.zh-cn.md create mode 100644 exampleSite/content/samples/thumbnail_sample/index.zh-cn.md diff --git a/exampleSite/content/samples/_index.zh-cn.md b/exampleSite/content/samples/_index.zh-cn.md new file mode 100644 index 00000000..20d81083 --- /dev/null +++ b/exampleSite/content/samples/_index.zh-cn.md @@ -0,0 +1,20 @@ +--- +title: "Samples" +description: "See what's possible with Blowfish." + +cascade: + showEdit: false + showSummary: false + hideFeatureImage: true +--- + +{{< lead >}} +Blowfish 让你的内容栩栩如生。 :heart_eyes: +{{< /lead >}} + +本节包含一些演示页面,展示了Blowfish如何呈现不同类型的内容。你还可以看到一个[分类列表]({{< ref "tags" >}})页面的示例。 + + +_**旁注:** 这个页面只是一个标准的Blowfish文章列表,并且已经配置了Hugo来生成一个`samples`内容类型并显示文章摘要。_ + +--- diff --git a/exampleSite/content/samples/icons/index.zh-cn.md b/exampleSite/content/samples/icons/index.zh-cn.md new file mode 100644 index 00000000..c956e657 --- /dev/null +++ b/exampleSite/content/samples/icons/index.zh-cn.md @@ -0,0 +1,116 @@ +--- +title: "图标" +date: 2020-08-14 +lastmod: 2022-03-09 +draft: false +description: "Blowfish 支持的图标。" +slug: "icons" +tags: ["图标", "示例", "短代码"] +type: 'sample' +--- + +Blowfish 内置了许多 [FontAwesome 6](https://fontawesome.com/icons) 中的图标。你可以使用 [图标部分]({{< ref "docs/partials#icon" >}})或者[图标短代码]({{< ref "docs/shortcodes#icon" >}})将这些图标包含在你的网站中。 + +当然,Blowfish 完全支持自定义图标。只需要将自己的 SVG 文件放在 `assets/icons/` 目录下即可。图标目录中的任何图标可以在整个主题中使用。为了实现自动填充颜色,每个 SVG 图标源码中必须添加 `fill="currentColor"` 属性。 + +下面是所有的内置图标及其名称。 + +| 图标名称 | 预览 | +|----------------------|-----------------------------------| +| amazon | {{< icon amazon >}} | +| apple | {{< icon apple >}} | +| bars | {{< icon bars >}} | +| bell | {{< icon bell >}} | +| blogger | {{< icon blogger >}} | +| bluesky | {{< icon bluesky >}} | +| bomb | {{< icon bomb >}} | +| bug | {{< icon bug >}} | +| check | {{< icon check >}} | +| circle-info | {{< icon circle-info >}} | +| code | {{< icon code>}} | +| codepen | {{< icon codepen >}} | +| comment | {{< icon comment >}} | +| dev | {{< icon dev >}} | +| discourse | {{< icon discourse >}} | +| docker | {{< icon docker >}} | +| download | {{< icon download >}} | +| dribbble | {{< icon dribbble >}} | +| edit | {{< icon edit >}} | +| email | {{< icon email >}} | +| envelope | {{< icon envelope >}} | +| expand | {{< icon expand >}} | +| eye | {{< icon eye >}} | +| facebook | {{< icon facebook >}} | +| fire | {{< icon fire >}} | +| flickr | {{< icon flickr >}} | +| fork | {{< icon fork >}} | +| foursquare | {{< icon foursquare >}} | +| ghost | {{< icon ghost >}} | +| github | {{< icon github >}} | +| gitlab | {{< icon gitlab >}} | +| globe | {{< icon globe >}} | +| goodreads | {{< icon goodreads >}} | +| google | {{< icon google >}} | +| graduation-cap | {{< icon graduation-cap >}} | +| hackernews | {{< icon hackernews >}} | +| hashnode | {{< icon hashnode >}} | +| heart-empty | {{< icon heart-empty >}} | +| heart | {{< icon heart >}} | +| image | {{< icon image >}} | +| instagram | {{< icon instagram >}} | +| keybase | {{< icon keybase >}} | +| kickstarter | {{< icon kickstarter >}} | +| ko-fi | {{< icon ko-fi >}} | +| language | {{< icon language >}} | +| lastfm | {{< icon lastfm >}} | +| lightbulb | {{< icon lightbulb >}} | +| link | {{< icon link >}} | +| linkedin | {{< icon linkedin >}} | +| list | {{< icon list >}} | +| location-dot | {{< icon location-dot >}} | +| lock | {{< icon lock >}} | +| mastodon | {{< icon mastodon >}} | +| medium | {{< icon medium >}} | +| microsoft | {{< icon microsoft >}} | +| moon | {{< icon moon >}} | +| mug-hot | {{< icon mug-hot >}} | +| music | {{< icon music >}} | +| orcid | {{< icon orcid >}} | +| patreon | {{< icon patreon >}} | +| paypal | {{< icon paypal >}} | +| pencil | {{< icon pencil >}} | +| pgpkey | {{< icon pgpkey >}} | +| phone | {{< icon phone >}} | +| pinterest | {{< icon pinterest >}} | +| poo | {{< icon poo >}} | +| reddit | {{< icon reddit >}} | +| researchgate | {{< icon researchgate >}} | +| rss | {{< icon rss >}} | +| rss-square | {{< icon rss-square >}} | +| scale-balanced | {{< icon scale-balanced >}} | +| search | {{< icon search >}} | +| shield | {{< icon shield >}} | +| skull-crossbones | {{< icon skull-crossbones >}} | +| slack | {{< icon slack >}} | +| snapchat | {{< icon snapchat >}} | +| soundcloud | {{< icon soundcloud >}} | +| stack-overflow | {{< icon stack-overflow >}} | +| star | {{< icon star >}} | +| steam | {{< icon steam >}} | +| stripe | {{< icon stripe >}} | +| substack | {{< icon substack >}} | +| sun | {{< icon sun >}} | +| tag | {{< icon tag >}} | +| telegram | {{< icon telegram >}} | +| threads | {{< icon threads >}} | +| tiktok | {{< icon tiktok >}} | +| triangle-exclamation | {{< icon triangle-exclamation >}} | +| tumblr | {{< icon tumblr >}} | +| twitch | {{< icon twitch >}} | +| twitter | {{< icon twitter >}} | +| wand-magic-sparkles | {{< icon wand-magic-sparkles >}} | +| whatsapp | {{< icon whatsapp >}} | +| x-twitter | {{< icon x-twitter >}} | +| xing | {{< icon xing >}} | +| xmark | {{< icon xmark >}} | +| youtube | {{< icon youtube >}} | diff --git a/exampleSite/content/samples/thumbnail_sample/index.zh-cn.md b/exampleSite/content/samples/thumbnail_sample/index.zh-cn.md new file mode 100644 index 00000000..63dce5de --- /dev/null +++ b/exampleSite/content/samples/thumbnail_sample/index.zh-cn.md @@ -0,0 +1,40 @@ +--- +title: "缩略图" +date: 2022-09-26 +draft: false +description: "在你的文章中开启缩略图。" +slug: "thumbnail_sample" +tags: ["thumbnail", "sample"] +summary: "一个展示如何在你的文章中开始使用缩略图的快速示例。" +type: 'sample' +--- + +这是一个在你的文章使用缩略图的快速示例。 + +如果你的文章目录看起来像这样: +If your average directory for an article looks like this: + +```shell +content +└── awesome_article.md +``` + +你需要将他从单个 markdown 文件更改为一个同名文件夹。创建一个与文章同名的目录,并在此目录中添加一个 `index.md` 文件。目录结构如下所示: + +```shell +content +└── awesome_article + └── featured.png +``` + +在文件夹内部,你可以添加一个 `feature*` 开头的特征图片(支持几乎所有格式,但推荐使用 `.png` 或 `.jpg`)。目录结构如下所示: + +```shell +content +└── awesome_article + ├── index.md + └── featured.png +``` + +这将告诉 Blowfish 这篇文章有一个特征图片,这个图片可以在网站作为缩略图使用,也可以用于社交平台上的 oEmbed 卡片。 +作为一个示例,你可以尝试将这篇文章的 URL 复制粘贴到一个可以显示 oEmbeds 的平台,如 Twitter、WhatsApp、Telegram等等。 From 1e7b2c58db11c22ab4e4e70f98e122f2457acd31 Mon Sep 17 00:00:00 2001 From: Weaxs <459312872@qq.com> Date: Wed, 20 Mar 2024 19:17:33 +0800 Subject: [PATCH 08/10] enable hasCJKLanguage --- exampleSite/config/_default/hugo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/exampleSite/config/_default/hugo.toml b/exampleSite/config/_default/hugo.toml index d8a9ec7b..f229bbcd 100644 --- a/exampleSite/config/_default/hugo.toml +++ b/exampleSite/config/_default/hugo.toml @@ -12,6 +12,7 @@ defaultContentLanguage = "en" enableRobotsTXT = true paginate = 100 summaryLength = 30 +hasCJKLanguage = true buildDrafts = false buildFuture = false From c3719406ac34c83cfb534451db5e8e13950014bf Mon Sep 17 00:00:00 2001 From: Weaxs <459312872@qq.com> Date: Wed, 20 Mar 2024 19:30:24 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E4=B8=AD=E6=96=87=EF=BC=88=E7=AE=80?= =?UTF-8?q?=E4=BD=93=EF=BC=89=20->=20=E7=AE=80=E4=BD=93=E4=B8=AD=E6=96=87?= =?UTF-8?q?=20=E4=B8=AD=E6=96=87=EF=BC=88=E7=B9=81=E9=AB=94=EF=BC=89=20->?= =?UTF-8?q?=20=E7=B9=81=E9=AB=94=E4=B8=AD=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- exampleSite/config/_default/languages.zh-cn.toml | 4 ++-- i18n/zh-CN.yaml | 2 +- i18n/zh-TW.yaml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/exampleSite/config/_default/languages.zh-cn.toml b/exampleSite/config/_default/languages.zh-cn.toml index b7fa7ecd..cc05c68c 100644 --- a/exampleSite/config/_default/languages.zh-cn.toml +++ b/exampleSite/config/_default/languages.zh-cn.toml @@ -1,10 +1,10 @@ languageCode = "zh-cn" -languageName = "中文(简体)" +languageName = "简体中文" weight = 2 title = "Blowfish" [params] - displayName = "中文(简体)" + displayName = "简体中文" isoCode = "zh-cn" rtl = false dateFormat = "2006-01-02" diff --git a/i18n/zh-CN.yaml b/i18n/zh-CN.yaml index e7c490af..737f9caf 100644 --- a/i18n/zh-CN.yaml +++ b/i18n/zh-CN.yaml @@ -1,5 +1,5 @@ global: - language: "中文(简体)" + language: "简体中文" article: anchor_label: "锚点" diff --git a/i18n/zh-TW.yaml b/i18n/zh-TW.yaml index e2718f36..022fc586 100644 --- a/i18n/zh-TW.yaml +++ b/i18n/zh-TW.yaml @@ -1,5 +1,5 @@ global: - language: "中文(繁體)" + language: "繁體中文" article: anchor_label: "定位點" From 433b51208d280d02a7c38fb9bf5cc1a13c5a232d Mon Sep 17 00:00:00 2001 From: Weaxs <459312872@qq.com> Date: Wed, 20 Mar 2024 19:37:37 +0800 Subject: [PATCH 10/10] fix --- exampleSite/content/docs/firebase-views/index.zh-cn.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exampleSite/content/docs/firebase-views/index.zh-cn.md b/exampleSite/content/docs/firebase-views/index.zh-cn.md index 2927dcf5..b55cd07c 100644 --- a/exampleSite/content/docs/firebase-views/index.zh-cn.md +++ b/exampleSite/content/docs/firebase-views/index.zh-cn.md @@ -2,7 +2,7 @@ title: "Firebase: 阅读量 & 点赞量" date: 2020-08-03 draft: false -description: "了解 Blowfish 如何继承 Firebase,并动态显示阅读量和点赞量。" +description: "了解 Blowfish 如何集成 Firebase,并动态显示阅读量和点赞量。" slug: "firebase-views" tags: ["firebase", "阅读量", "点赞量"] series: ["文档集"] @@ -14,7 +14,7 @@ series_order: 15 1. 访问 Firebase 并创建一个账户 2. 创建一个新项目 3. 选择分析位置 -4. Blowfish 是通过 `params.toml` 配置文件中的 firebase 相关参数,来和 firebase 继承的,更多的细节内容可以参考 }}">这个页面。你可以在下面找到集成 firebase 的文件示例,请注意 FirebaseConfig 对象内的参数。 +4. Blowfish 是通过 `params.toml` 配置文件中的 firebase 相关参数,来和 firebase 集成的,更多的细节内容可以参考 }}">这个页面。你可以在下面找到集成 firebase 的文件示例,请注意 FirebaseConfig 对象内的参数。 ``` // 从你需要的 SDK 中导入所需的函数