先吐槽一下,写的好几篇关于五行八卦的文章竟然被csdn提示违法国家法律。。。那只能考虑自建blog,不能被捆绑手脚了。
正巧也一直想搞一个本地的markdown系统,毕竟md放在本地总是第一要务。
目前流行的hugo试下来还蛮好,发文记录安装过程。
全程手工下载,不用git
二进制
直接搞现成的~~
执行文件下载网址:https://github.com/gohugoio/hugo/releases
源码生成
源码下载网址:https://github.com/gohugoio/hugo
解压缩全部,使用命令go build
,这个就不用多废话了吧。。。哈哈。
注意,如果提示你build
不成,请查一下你的go版本是不是最新的,写本文时用的go 1.18.3
,如果是go 1.17.x
版本则不能正常生成。
将hugo.exe
放于D:/test/hugo
目录内,使用cmd
命令
hugo new site blogTest
执行后生成D:/test/hugo/blogTest
目录,这个目录是当前blogTest
项目的根目录,然后把hugo.exe
移入这个真正的根目录,待会儿的命令需要用到他。
官方模板下载地址:https://themes.gohugo.io/
假定下载模板testTpl
,下载后解压缩到D:/test/hugo/blogTest/themes/testTpl
中。
在D:/test/hugo
目录内,使用cmd
命令
hugo new first.md
hugo new posts/about.md
此时生成目录和md文件:
D:/test/hugo/blogTest/content/first.md
D:/test/hugo/blogTest/content/posts/about.md
。
about.md文件内容如下:
---
title: "About"
date: 2022-06-26T16:15:50+08:00
draft: true
---
注意这条draft: true
,意思是本文为草稿,文章后面要用到。
在最后---
的下面写上一句## 好吧,测试一下
,markdown语言就不多说了。
在D:/test/hugo
目录内,使用cmd
命令
hugo server --theme=testTpl --buildDrafts --watch
go server
命令将自动启用内置web server,默认在本机浏览器使用http://127.0.0.1:1313
打开,具体端口号请注意终端的结果提示。
在D:/test/hugo
目录内,使用cmd
命令
hugo
-B
是--buildDrafts
的缩写)hugo -B
hugo --theme=testTpl --buildDrafts
生成的静态文件都在D:/test/hugo/blogTest/public
,包含文章、样式、多媒体文件等。
此时将public
目录中的所有文件上传到托管服务器就能对外使用。
有两处配置是重点,如果这两处不配置,则生成的静态文件无法正常显示或舒畅使用:
D:/test/hugo/blogTest/config.toml
内容中修改baseURL
和新增theme
。baseURL
为项目在web server上的根目录(可加域名也可不加,但需要符合绝对和相对目录的规则)。content
为文章所在本机目录,可以将文章原件单独存放,hugo系统归另一个目录。theme
为所使用的模板名称。uglyURLs
将标题名作为文件名或作为目录名,默认为false
,如果本地用图,则建议使用true
baseURL = 'http://127.0.0.1/hugo/blogTest/public/'
contentdir = "c:/blog/test"
languageCode = 'en-us'
title = 'My New Hugo Site'
theme = "testTpl"
uglyURLs = true
D:/test/hugo/blogTest/content/posts/about.md
文章中的draft: true
改为draft: false
,否则直接使用hugo
命令的话,草稿是不会生成静态文件的,也不会出现在文章列表里,go server
命令同理。first.md
和about.md
文件中只有about.md
非草稿,即draft: false
,所以使用hugo
命令直接生成静态文件的话,将出现只含一篇文章的首页。如果使用Obsidian写博客,则为了附件能正常使用,建议设置如图,重点是插入基于当前笔记的相对路径
。
详细的obsidian使用方法:《obsidian配合hugo的使用,让markdown本地编辑软件与在线化无缝衔接》
再次强烈建议:实际使用时尽量将博客原文存在其他目录,hugo的程序放在另一个目录。
在hugo的config.toml
中设置contentdir
目录来读取博客原文。