谈谈这个博客程序 MiniAkio

15 Aug, 2013

这个博客程序我已经使用一年多了,现在看起来非常稳定,至于稳定,我的意思是大概因为功能简单,而且自己清楚怎样操作,所以没出现过什么问题。博客一开始就开源在Github上,不过上面只有一个简单的说明,趁着最近最新版本的发布,就在这里写一个详细一点的说明。

首先,你可以看一下下面的 Q&A,再决定这个博客程序是否适合你。先介绍怎么让这个博客跑起来。前提是需要有一点 Python 知识,然后就是按照下面的步骤来了。

第一:创建 Python 虚拟环境,当然,如果不创建可以跳过此步:

$ virtualenv blogenv
$ cd blogenv
$ source bin/activate

第二:下载博客源代码,有两种方法,如果你有使用 Git,则可以

$ git clone https://github.com/SerhoLiu/serholiu.com.git

如果没有,可以直接到这里下载压缩包。

第三:安装依赖、配置然后就可以运行了。这一步包括安装必要的依赖包,创建数据库和博客设置等。

$ cd serholiu.com
$ pip install -r requirements.txt
$ python tools.py -o createdb    #请先在 tools.py 中填写相关信息
$ python run.py

在浏览器中打开 http://localhost:8888 就可以了。

使用方法

  1. 文章发布:参照 example 文件夹下面的 post_example.md 文档,注意请严格按照格式,包括时间格式,完成后,复制内容到后台 /post/new 粘贴后发布即可。可以添加 <!--more--> 标签来控制文章截断,用于首页显示,并可以选择是否开启评论。

  2. Picky发布: 参照 picky 文件夹下面的文档,发布时只需要到 /post/picky 上传文档即可。

  3. 站点设置:请根据 blogconfig.py 中的说明进行。评论默认使用的是 Disqus,需要修改 miniakio/templates/post.html 中的用户名为自己的,如果使用其它评论系统,替换相关代码即可。

  4. 生成环境:在 VPS 上搭建,你需要对 Nginx 和 Supervisord 有一定的了解,配置可以参考 example 下的相应文件,具体使用方法请看在服务器上部署 Tornado 开发的网站,如果最后还有不明或者有问题的地方,在下面留言即可。

Q & A

  1. Q: 为什么后台发布界面如此简单,甚至丑陋?

    A: 作为一个发布平台,在设计时,其功能只是展示你的文章,所以在编辑时,你可以选择自己喜欢的编辑器本地编辑,发布时只需要复制到发布框里即可。对于 Picky 这种类型的文章,你甚至只需要上传文件即可。

  1. Q: 为什么没有评论功能?

    A: 事实证明,如此简单的一个系统没有必要加入评论功能。一般情况下,要实现完整的评论功能,代码量可能比现有的代码量多一倍,而且毫无意义。所以使用第三方评论系统吧。默认使用的是Disqus。可以更换其他评论系统,方法见上面的使用方法第三点。

  2. Q: 既然这么功能这么简单,为什么不直接做出静态博客?

    A: 如果我喜欢静态博客,就不会写这个博客程序了。现在静态博客确实流行,不过我不太喜欢,一则我喜欢折腾,每次修改样式后都需要重新生成,太麻烦;二则还有一个Picky功能 ,使用静态无法实现。

  3. Q: 那么为什么选择 SQLite3 数据库?而不是 MySQL 什么的。

    A: 还是那个词——简单。SQLite Python 自带,使用方便,如果你配置过 MySQL 什么的,你就会体会到好处了,事实证明,就博客而言,SQLite3 已经完全够用。当然,换成 MySQL、PostgreSQL 也非常方便。重要的一点是,在小内存 VPS 上,使用 SQLite 更有优势。

  4. Q: 什么是Picky功能?

    A: Picky 对应 WordPress 的 Page 功能,可以用于单独的页面,和博客文章所独立。Picky 没有评论(你可以添加),没有分类,没有 Tag。作为 Markdown 文件存于服务器,每次访问时才渲染。

  5. Q: 我还有其它问题怎么办?

    A: 在下面留言,或者到这里 github.com/SerhoLiu/serholiu.com/issues 提交问题,当然,欢迎 pull request。