5

更换博客框架至 Hugo

 9 months ago
source link: https://ywang-wnlo.github.io/posts/4dea1ffb/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
本文主要记录了自己迁移博客至 Hugo 的过程中遇到的问题,以及一些小技巧

由于 Hexo 的环境配置较为复杂,而且个人又有多个电脑写博客的需求。另外 Hexo 的实时预览不能满足个人的需求,此外还有其他小问题,所以决定迁移博客至 Hugo

以下是两个框架之间的简单对比,相同的部分就不列入对比了

Hexo Hugo
环境配置 nodejs,配置复杂 二进制文件,下载即可使用
主题 好看,并且一直在维护(例如:NexT) 选择较少,并且大多过于简洁并停止维护
实时预览 主题修改需要重新编译 基本上都可以实时预览
文档 丰富 相对较少
图片路径 绝对路径,不能在 VSCode 实时预览 可以使用相对路径,方便在 VSCode 实时预览

安装 Hugo

Hugo 的 官网文档 虽然只有英文的,但是内容很全面

Windows

可以直接下载 二进制文件,然后手动将其添加到环境变量中

或者直接借助 Windows 的包管理工具 Winget 安装,就不用管环境变量了

winget install Hugo.Hugo.Extended

# 更新
winget upgrade Hugo.Hugo.Extended

Linux

以 Ubuntu 为例,直接 apt 安装即可

sudo apt install hugo

这里简单记录下部署的命令,具体的流程可以参考 官方教程

# 生成项目
hugo new site hugo-blog
cd hugo-blog
git init
git remote add origin xxx

# 以 FeelIt 主题为例
git submodule add [email protected]:khusika/FeelIt.git
git submodule init
git submodule update

# 覆盖配置文件
cp -r themes/FeelIt/exampleSite/hugo.toml .

# 生成空白文章
hugo new posts/Hello-World.md

# 本地预览
hugo server --disableFastRender
# 或者以 production 环境启动,方便调试评论系统等功能
hugo server --disableFastRender -e production

# 生成静态文件
hugo

接下来就是将 Hexo 的博文迁移到 Hugo 中,有几点要注意的

Front matter

hugo 的 Front matter 的部分变量名和 Hexo 的不一样,需要做一些转换

例如:update –> lastmod

之前 hexo 用 hexo-abbrlink 插件生成的永久链接,现在需要将其转换为 Hugo 的格式

首先要将每篇博客中的 abbrlink 修改为 slug,然后在 hugo.toml 中修改如下配置

[permalinks]
    posts = "/posts/:slug"

之前 hexo 的图片是需要放在同名的文件夹内的,而且路径是绝对路径,这样在 VSCode 中实时预览不了

而 hugo 可以直接放在同一目录下,然后使用相对路径即可,不过此时 Markdown 文件名需要改为 index.md,例如下面这样

$ tree
.
├── Hexo
│   ├── Hexo.md
│   ├── NexT
│   │   ├── NexT_Schemes.png
│   │   ├── OAuth_APP_ID_Secrets.png
│   │   ├── OAuth_APP_Register.png
│   │   └── index.md
│   └── SEO
│       ├── bing_add_sitemap.png
│       ├── bing_add_website.png
│       ├── bing_verify_ownership.png
│       ├── google_add_sitemap.png
│       ├── google_add_website.png
│       ├── google_check_website.png
│       ├── google_manual_submit.png
│       ├── google_site.png
│       ├── google_verify_ownership_1.png
│       ├── google_verify_ownership_2.png
│       └── index.md
└── Hugo.md

3 directories, 17 files

在发布之前需要将之前 hexo 占用的 gh-pages 分支名改掉,例如改为 hexo

然后新建一个分支,例如 gh-pages,然后重新将 gh-pages 的分支设置为 GitHub Pages 的分支

接下来发布就比较简单了,个人选择手动 git push publish 文件夹到 GitHub 的对应仓库即可

cd public
git init
git remote add origin xxx
git checkout -b gh-pages

git add .
git commit -m "first publish"
git push -u origin gh-pages
GitHub Pages 的部署会尝试用 Jekyll 编译,但是 Hugo 的博客是不需要编译的,所以可以在仓库的根目录下添加一个 .nojekyll 文件,这样就可以加快部署速度

Recommend

  • 19
    • www.diguage.com 4 years ago
    • Cache

    使用 Hugo 搭建博客

    使用 Hugo 搭建博客 2020-08-01

  • 9
    • 75.team 3 years ago
    • Cache

    Hugo 之旅 - 奇舞团博客

  • 12
    • zhuanlan.zhihu.com 3 years ago
    • Cache

    使用github,hugo,travis打造个人博客

    使用github,hugo,travis打造个人博客github给个人和组织免费提供github pages功能. 就是说如果有个repo的名字为http://cod3fn.github.io (cod3fn为你的github username), 那...

  • 11
    • liujiacai.net 3 years ago
    • Cache

    博客系统迁移:Hexo 到 Hugo

    上一篇文章介绍了 Emacs 的理念以及其强大的扩展功能,基本上能在 Emacs 里面做到事,我都在 Emacs 里面做。之前的博客一直都是用的 markdown 来书写,虽然 Emacs 也有 markdown 插件,但是总感觉体验不如 org-mode。这周末就趁着手热,把博客系统进行了升级,...

  • 10
    • blog.tankywoo.com 3 years ago
    • Cache

    博客从Jekyll迁移到Hugo

    博客从Jekyll迁移到Hugo [ #博客 ] [ January 3, 2021 ] 从...

  • 9

    Hugo的使用 Hugo号称是世界上最快的构建网站的框架,我们可以简单的编写MarkDown文件,而通过Hugo进行渲染.由此便可以迅速地构建一个静态网站.此外,Hugo还有大量的开源主题,进一步地方便了开发者们.这次博客的...

  • 10
    • blog.maolu.one 3 years ago
    • Cache

    使用 Hugo 搭建博客的一些笔记

    使用 Hugo 搭建博客的一些笔记 因为喜爱 YinYang 这个主题 ,所以这两天搭建了一个 Hugo 系统的博客,并且托管在 Github Pages 上,如果完全使用 Hugo,一年还能省四五百块大洋。初...

  • 17

    数据可视化嵌入实验 为啥想做这个 想在hugo博客里写一些数据可视化的作品,感觉echarts的可交互性最好,故在网上搜索嵌入方法。看到最好的解决方案是前端大神Alili的一篇博文

  • 4

    博客 功能添加 站...

  • 9
    • raycoder.me 3 years ago
    • Cache

    给Hugo博客加上baiduurls.txt

    SEO 1 mins给Hugo博客加上baiduurls.txt24-05-20 / 307 Words写作不易,资瓷一下呗!本文首发于个人博客:https://rayc...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK