大家好。
今天接着研究个人站长探索之博客搭建。
我们零成本搭建完博客之后,页面就孤零零的只有文章内容,没有合理的分类、排列,没有多语言切换的支持,甚至还没有博客的介绍、欢迎语这些,略显单薄。今天我们就给它加上。
首先,当然先找找抄的Demo了,在PaperMod Github 有Demo代码的地址,看看页面合适的内容,直接参照项目代码。
hugo 基础使用
内容组织方式 是按照来源结构组织的,也就是说,在content
目录下有zh
和en
目录,是通过切换URL来达到切换语言的目的的。
多语言
既然都脱离平台了,当然需要支持英文环境。看配置文件直接在language下区分了配置信息,但是缺少了默认语言和语言目录相关信息。
# 默认语言
defaultContentLanguage: zh
defaultContentLanguageInSubdir: true
# ...
languages:
en:
languageName: "English"
contentDir: "content/en" # 指定语言文件目录
# ...
zh:
languageName: "简体中文(chinese)"
contentDir: "content/zh"
欢迎语
再仔细查看demo配置文件,params下的homeInfoParams很明显就是当前的欢迎语,如需支持多语言,都得单独设置在对应语言的配置下。如:
zh:
languageName: "简体中文(chinese)"
contentDir: "content/zh"
params:
homeInfoParams:
Content: >
👋 欢迎来到Hawkeye-xb 的博客!
社交icon(Github icon)
在欢迎语下面提供直接跳转网址的社交按钮,比如说Github、推特(X)等。
socialIcons:
- name: github
title: View Source on Github
url: "https://github.com/adityatelange/hugo-PaperMod"
配置文件拆分
慢慢的,若是需要支持的语言种类多的话,咱们会面临配置文件会很长很长的问题。configuration-directory用来做环境区分的刚好可以将config文件拆开,满足咱的需求。
比如给出的多个菜单配置的例子
my-project/
└── config/
├── _default/
│ ├── hugo.toml
│ ├── menus.en.toml
│ ├── menus.de.toml
│ └── params.toml
└── production/
└── params.toml
目录结构还可以再menus目录下,分别创建en、de的配置文件。
菜单
头部的菜单导航,一眼望去,menu关键字就是了。
menu:
main:
- name: Archive
url: archives
weight: 5
- name: Search
url: search/
weight: 10
这里URL对应跳转的页面,和上面说的内容组织结构相对应。weight是对应排序的权重。
搜索、归档
正好菜单这里分别是归档和搜索的URL,意味着我们需要这两个path,再在demo页面看看效果,我们需要对应功能的页面。问题就来了,需要写输入框代码这些吗?看看demo相关文件:search、archives。
---
title: "Search"
placeholder: Search demo site with full text fuzzy search ...
layout: "search"
---
简单粗暴~
验证发现搜索框输入任何内容都没有展示匹配项。还需要paperMod fuseOpts来实现检索。
fuseOpts:
isCaseSensitive: false
shouldSort: true
location: 0
distance: 1000
threshold: 0.4
minMatchCharLength: 0
limit: 10 # refer: https://www.fusejs.io/api/methods.html#search
keys: ["title", "permalink", "summary", "content"] ## can be less but not more than shown in list
和hugo 输出设置,给检索功能提供内容。
params:
outputs:
home:
- HTML
- RSS
- JSON
类别、标签
分类taxonomies 在配置文件开启之后,对应文章定制配置上面,添加上tags和categories就可以。
taxonomies:
category: categories
tag: tags
series: series
文章头部
+++
...
categories = ['blog']
tags = ['hugo']
...
+++
最后
到这里稍微汇总下,我们设置了Hugo博客的多语言配置。
在这基础上,设置欢迎语、社交图标和对应的菜单。
再往菜单添加了归档、搜索、类别和标签,这么多的内容。
今天这五分钟,希望对您有帮助/doge。