# Hugo or Typecho?博客是个问题

接触hugo的契机是我需要一个文档平台。
我在写api文档的时候，需要一个美观的工具。

简单考察了下主流工具
锁定在docsify，gitbook和vuepress上

docsify是动态加载md文件，非常非常轻量，可以放在github pages上，适合写项目文档，但感觉也只适合写项目文档.我也简单部署了一下，不算漂亮但很干练--> [https://viogami.github.io/VioGo/](https://viogami.github.io/VioGo/)

gitbook是真的文档工具，不用任何自定义，也无法自定义，集成git。是商业产品但也挺不错的，啥都能写。

vuepress得有前端维护，我是放弃了，美观是真的美观，各种生态支持也很棒，适合前端小伙伴。

都很简单，上手即用，然后写完是要部署和发布的，自然就想到了各类博客平台。
写这篇文章是在typecho上，这也是我比较青睐的一个平台，虽然要搭建基础设施--数据库之类的，但搭建完了写博客非常容易，功能也很完善，加上我之前也是简单折腾过，整体模样我已经很满意了。

但是人就是喜新厌旧呀，看到不少人推荐了hugo生成静态md文件，也想试下效果。说做就做，即刻下载hugo，选择主题，然后放两篇已有的博文看看效果。

选了QUBT这个主题，感觉还是挺美观的，主要针对的是移动端的显示，但整体也很棒。直接迁移。

## 我的hugo站点:[https://viogami.github.io/blog](https://viogami.github.io/blog)

写hugo需要懂点前端，专注md文件的编写。hugo官方文档中的很多功能实际上是针对hugo主题开发者的，写博客需要了解的就是hugo的全局yaml文件的配置，以及md语法和为了美化可能需要嵌入的html语法。

如果用了主题，要更多的自定义化再了解下hugo生成的目录结构就好了，因为重写只要新建相同目录覆盖

## hugo写博客坑点

### 不要使用hugo短代码

官方示例是

```
\{\{<figure src=""...>}}
```

这样方式实现短代码的，但这样就会把md文件限死了只能在hugo上显示了，md文件应该是通用的，而且这种短代码也并不“短”，既然这样为什么不用html嵌入呢。

### 把博客文章命名为index.md

这样是为了可以以相对路径插入图片
命名为index.md后，就能识别在同一文件夹下的图片，用 `![xxx](1.png)`的方式就能访问到md文件同级的1.png文件了。
有各种图片导入方式，但这样更通用，更多平台兼容，强推。至于文章名，用文件夹名区分就好了。

### 建议部署在github pages

都用hugo了，还依赖基础设施部署也有点奇怪了，那为什么不用typecho呢？性能在当今已经看不出区别了。
直接用github的action，每次提交自动部署。注意action的使用次数是有限制的，~~但更新这么勤快也不至于吧~~

## typecho还是hugo？

- 想好是用动态博客(typecho)还是静态博客(hugo)，动态依赖数据库，静态不能在线编辑，因为要编译。
- 想轻量部署选hugo，但部署后需要折腾前端，适合无服务器用户
- 有服务器懂后端选typecho，需要折腾部署前，部署后很轻松

---

- 想依赖git管理博客选hugo
- 想随时随地写博客选typecho
- typecho可以直接网页浏览器上写博客，和任何博客平台一样
- hugo需要在编辑器中编写了后git提交，比如我就得在vscode中写

---

- typecho数据在数据库，hugo的数据在本地。typecho通过用户管理系统来实现多人写作，hugo是通过git，然后在文章中添加作者信息。
