搭建静态博客

概述

本博客自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
2
source 'http://rubygems.org'
gem 'github-pages', group: :jekyll_plugins

然后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。