引言
随着对于信息的浏览增多,往往会有对于其他语言的文章书写需求 (同时现代的作品几乎都是多语言支持),同时又因为好像自从毕设当时加了个多语言支持,之后做的东西或者设计的东西往往都会想要去进行国际化支持,就 最近写的一个相当于练手的东西 也整了多语言支持捏 (不过这并不是我想要的效果,太古老了,想做一个现代点的,另外 在做啦 ,希望可以坚持做完)
回过头来看看我的博客,这个陪伴我最久的作品,它还没有国际化,虽然也有一般都是写简体中文文章的原因啦, 之前的博客 界面部分中文部分英文实际上整的多少有点混乱了,虽然我个人可以看懂,但对于非相关人士可能就会感到疑惑
但原先的 Jekyll 我折腾半天愣是没成功多语言,转向原生支持国际化的 Hugo 啦。不过每个主题都有其特色,这个主题对于分类与标签和上个主题区别很大,之后慢慢修改适应才行
这篇文章写的很潦草吧,主要它的配置貌似很依赖主题,我也几乎都是根据主题的示例改的,所以也没什么好写的我觉得 (因为官方文档也很丰富)
环境
使用 Docker 有 Hugo 的容器,所以环境问题没怎么折腾 (使用的东西可以看 这里 呢)
创建博客
创建新博客
hugo new site blogName
进入目录
cd blogName
初始化仓库
git init
安装主题,这里使用 hugo-theme-stack 主题,其他同理
git submodule add https://github.com/CaiJimmy/hugo-theme-stack/ themes/hugo-theme-stack
配置 hugo.toml
选择主题
theme = 'hugo-theme-stack'
预览
hugo server
包含草稿 (draft) 的预览
hugo server -D
部分修改可能需要清除缓存才能生效 (比如配置项、页面的修改)
hugo --cleanDestinationDir
构造网站,默认构造文件在 public 下
hugo
多语言支持
在站点配置文件 (我使用 yml 配置) 配置默认语言
defaultContentLanguage: 'zh-cn' # 默认语言代码
defaultContentLanguageInSubdir: false # 默认语言路径是否带语言代码
然后配置具体语言项目
languages:
zh-cn:
contentDir: 'content/zh-cn' # 文章在哪个目录
disabled: false
languageCode: 'zh-cn'
languageDirection: 'ltr' # 文章从左到右 (ltr) 还是从右到左 (rtl)
languageName: '简体中文'
title: "yexca'Blog"
weight: 1
zh-tw:
contentDir: 'content/zh-tw'
disabled: false
languageCode: 'zh-tw'
languageDirection: 'ltr'
languageName: '繁體中文'
title: "yexca'Blog"
weight: 2
文章撰写
不同于 Jekyll,Hugo 的文章撰写稍微有点复杂,同时加上国际化支持,使得文章更加复杂 (复杂的好处是自定义程度高),这点可能根据不同主题不一样,我说下我用的,首先上方语言项目配置指定了文章的目录,需要在 content 创建相应目录,然后该语言的文章就在该目录下写作
同时,指定文章是在哪个目录下,stack 主题配置文件中可以指定
params:
mainSections:
- posts
这就表明我简体中文的文章应该放在 content/zh-cn/posts
里,然后还有一些目录是主题指定的,可以看对应主题示例
现在要写创建一个简体中文的新文章可以使用
TZ="Asia/Tokyo" hugo new content/zh-cn/posts/test.md
不指定时区的话默认使用 UTC 时间 (虽然可以自己改,但习惯了 Jekyll 自动创建的我觉得自己写时间很麻烦)
文章默认创建模板在 blogName/archetypes
下,可以改为 yml 格式