搭建静态博客
概述
本博客自2017-03-11在GitHub上创建,至今已有接近一年。在这里简单介绍一下静态博客的搭建,以及其优缺点。此外,还包括对其他形式博客的试用结果,以及GitHub Pages上博客的历史。
所谓静态博客,即没有数据库的动态内容,仅仅是一堆网页。但借助Leancloud等平台,也可以加入一定的动态内容。
常见的博客有三种类型:
- 提供博客的网站,如OIer常用的csdn、cnblogs,小学用过的网易博客,Google Blogger。一些OJ也提供了博客功能,例如洛谷最近也推出了博客,主要用来写题解。
- 静态博客托管,从强制公开的GitHub Pages,到允许私有的Bitbucket,国内用Coding代替。
- 动态博客,需要数据库支持,最著名的是WordPress,一般都要有自己的服务器。当然Coding似乎也推出了动态博客服务,然而我并没有用过。
提供博客的网站
优点
- 入门很方便,编辑器一般也是富文本的WYSIWYG,还便于插入多媒体内容。
- 一般服务免费,有的还提供低级的域名。
- 搜索引擎优化较好。
- 评论、主题等功能都有提供。
缺点
- 可自定义性差,只能用提供的格式,不能直接修改HTML。
- 可能有广告。
Google Blogger
之前看到过有人用Blogger,因此趁这个机会试用一下。以下试用均以NOIp2017提高组游记为例,基本用到了OIer的博客常用的功能。
Blogger允许HTML代码,因此最简单的方法是用pandoc把Markdown转换为HTML,还可以提供数学公式、代码高亮支持。我用了KaTeX,注意Blogger不提供数学公式、表格等常用功能。
当然,传统的是用WYSIWYG可视化编辑,可以用来上传图片,再复制源代码,替换到HTML中即可。需要注意的是,HTML的优先级比可视化编辑高,因此HTML内容总会显示。
最终效果:https://zhzh2001.blogspot.com/2018/04/noip2017_28.html
总结:不适合写题解之类的内容,普通文本还可以接受。可以使用HTML使得Blogger可以做到静态博客的水平,提供的主题也比较丰富。
洛谷博客
非常适合写OI内容,不过应该不适合发一些与OI无关的,只能作为学术博客。洛谷也有图床,且现在的Markdown支持非常完善,基本上直接把代码复制上去,改一下图片就可以了。表格还有待提高,没有分割线。
至于主题,我比较喜欢HolaKit,比较充分的利用了页面空间,样式也比较简单。
GitHub Pages
在2017/3到2018/1期间的托管平台,这里来回顾一下这段历史。虽然还不到一年,但是变化非常大,我也体会到了Jekyll的种种问题。
环境配置
~~配置比较麻烦,这里简要提一下,~~请参见Setting up your GitHub Pages site locally with Jekyll。在*nix下应该比较方便,我也没试过。但是Jekyll不原生支持Windows。Windows 10可以通过WSL安装,当然有些问题。
以前推荐用chocolatey:
1 @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
然后
choco install ruby
。我不会告诉你我因为网速太慢而放弃了chocolatey。
现在用rubyinstaller很方便了,装完ruby环境用gem install jekyll bundler
安装Jekyll的一堆包。
然后开始配置GitHub Pages。在根目录下的Gemfile
中必须有
1 | source 'http://rubygems.org' |
然后bundle install
安装依赖项,用bundle update
更新依赖。用bundle exec jekyll serve
启动服务器!
Jekyll的默认端口和hexo一样是4000,可以用hexo s -p 2333
来指定服务器端口。
历史
查看Git历史的方法:用gitk选择版本,并执行强制reset master即可,当然会使当前更改丢失。
最好不要在重置回最新前关闭gitk,否则不能找到后期的历史,可能要去GitHub上对照了。换句话说,退出前确保重置到最新。
2017/03/17(c8c72e01)
首次加入了_config.yml
,可以使用本地预览了。一个相当原始的雏形,主题是Cayman。