我是这样用jekyll搭建个人博客的

Tags:

好几年前就尝试用github pages服务来搭建github博客,当时也已经用了jekyll,不过由于那时候主要是在windows下工作学习(学图形学),手头也只有一台电脑,在win环境弄jekyll实在是不方便,要装ruby啊gem啊,都感觉没有linux环境顺手,最后还是转去了csdn博客。不过csdn博客在我毕业后也是荒废了。

2018-8-8 更新:

经网友提醒发现sitemap的地址是localhost,研究发现是jekyll serve生成的sitemap.xml和jekyll build生成的是不一样的,提交_site文件夹时要用jekyll build的。

正文

现在我的解决方案是,用我购买的阿里云vps(在阿里云叫ecs),并把我的博客git整个放到Dropbox,并在vps上面搭建了jekyll服务器,就搞定了测试用的博客服务器了。

写博客的流程就简单了,在win或mac下都可以写,md文件一保存,就会被dropbox同步到云端,然后vps的dropbox文件夹也会即时被更新,而jekyll serve是会自动检测文件状态的,一旦被修改就会重新generate静态网站。那么我就可以直接本地开个浏览器,进入 http://vps地址:jekyll服务器端口/,去预览了。

还有就是,在win和mac下有个叫sourcetree的git客户端,十分好用,完全不用打git指令,点几下按钮就可以把代码push到github,也就进一步简化了写博客的步骤。

另外,我发现jekyll-now是符合github pages规范的jekyll程序,但是功能太不完整了,连文章分类tag功能都没。于是我只能回归普通jekyll的模式,开2个git仓库,一个用来放jekyll代码,一个用来放jekyll生成的网站静态代码(也就是本博客的代码)。要更新博客,只需要提交博客的git即可,jekyll的git倒是随意,反正有dropbox在同步,不怕丢失。

最后的最后,吐槽下坚果云。坚果云的linux版只支持桌面版,没有terminal的版本,导致我在vps上无法用坚果云。Dropbox虽然被墙了,但是Dropbox支持linux terminal,而且安装超级简单,按照官方说明,一下子就搞定了。

更新

决定还是在本机搭建jekyll服务了。

Windows

安装python,下载地址:https://www.python.org/downloads/release/python-2712/,打开后点击Windows x86-64 MSI installer。

以下所有指令需要在cmd命令行下执行(需要管理员权限)。

按照:https://jekyllrb.com/docs/windows/#installation,安装choco、ruby、gem、jekyll。

choco安装命令(最好用官网的命令,因为可能会更新):

@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin

安装ruby和gem:

choco install ruby -y

用gem安装jekyll:

gem install jekyll

其中,可能会遇到https的问题,要根据https://gist.github.com/fnichol/867550处理。简单来说下载http://curl.haxx.se/ca/cacert.pem到本机,并添加一个环境变量SSL_CERT_FILE指向cacert.pem。

然后是安装需要的插件:

gem install jekyll-tagging

gem install jekyll-sitemap

安装DevKit,教程: https://github.com/oneclick/rubyinstaller/wiki/Development-Kit

即下载DevKit的安装包,然后解压到一个目录里,在该目录执行:

ruby dk.rb init

然后执行ruby dk.rb review,检查是否能够正确安装,如果提示 ** Invalid configuration. Please fix 'config.yml.'**,就需要编辑 config.yml文件,譬如我是改成了:

---
- C:\tools\ruby23

然后再执行ruby dk.rb review,没报错就可以安装了:

D:\devkit>ruby dk.rb install
[INFO] Updating convenience notice gem override for 'C:/tools/ruby23'
[INFO] Installing 'C:/tools/ruby23/lib/ruby/site_ruby/devkit.rb'

如果只打印了上面这2行提示,就是正确安装了。

最后安装pygments和redcarpet:

gem install pygments.rb

gem install redcarpet

然后就可以在Blog目录执行:jekyll serve 了:

D:\wyman_blog>jekyll serve
Configuration file: D:/bitsync_default/wyman_blog/wyman_blog/_config.yml
            Source: D:/bitsync_default/wyman_blog/wyman_blog
       Destination: D:/bitsync_default/wyman_blog/wyman_blog/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
                    done in 2.048 seconds.
  Please add the following to your Gemfile to avoid polling for changes:
    gem 'wdm', '>= 0.1.0' if Gem.win_platform?
 Auto-regeneration: enabled for 'D:/bitsync_default/wyman_blog/wyman_blog'
Configuration file: D:/bitsync_default/wyman_blog/wyman_blog/_config.yml
    Server address: http://127.0.0.1:4000/
  Server running... press ctrl-c to stop.

Mac

简单得很,首先,ruby和gem都是内置在MacOS里的。

依次执行:

sudo gem install jekyll

sudo gem install jekyll-tagging

sudo gem install jekyll-sitemap

sudo gem install pygments.rb

sudo gem install redcarpet

即可。

(未经授权禁止转载)
Written on July 18, 2015

博主将十分感谢对本文章的任意金额的打赏^_^