就像我以前说过的,我所想要的一个博客系统应该是最简单的,我只需要发布一些文章和几个静态页面而已,WordPress或者Drupal这种东西实在是太大了,所以我一直都是使用TextPattern作为我的博客发布系统的,从今天开始,我开始转到一个基本Python的纯静态发布系统 - Felix Felicis

静态发布是我最喜欢的方式(没有之一),我喜欢的网站发布系统应该是这样的,内容可以以最简单的方式管理,根据模板发布成为纯HTML页面,之后需要动态调用的(比如说评论需要服务器端处理)使用一个统一的接口(这似乎Movable Type是最合适的,但是它实在是太太大了),而现在这个就完全满足了我的要求。

今天一个下午的时间写了一个同步工具,我只需要在本地发布,然后该同步工具就会自动的将发布得到的HTML页面、CSS/JS文件、图片资源等等同步更新到我的一个S3桶里面去,而我的域名因为绑定到这个桶,所以就有了你现在看到的这个博客了,关于如何绑定域名到S3的桶,请看我前面专门介绍该问题的文章《Amazon S3的域名绑定》

我的同步工具现在还只是实现了将更新上至S3桶中,但是还没有任何其它优化,比如如果文件没有更新就不上传,如果本地已经不存在的,在S3服务器也同步删除掉那个对象等等功能,不过都还在开发中,应该今天晚上就会搞定的吧,刚刚开始使用S3没多久,还有很多事情需要做啊……评论我已经使用了DISQUS的服务,这样一来就省得我再在自己的服务器上写评论系统了,而且这个东西用起来并不比我写的差(应该说是好得多吧……)。

现在更新文章的方式再简单不过了:

  1. 在本地相应的目录中(比如: */home/cox/cox.im/content*)创建一个新文件(我取名为:*My Blog Is Using Static Publish System.md*)。
  2. 打开该文件,以下面这样的格式输入内容:
    # 我的博客现在已经开始使用静态发布系统进行更新了
    
    - url_title: my-blog-is-using-static-publishing-system
    - date: 2012-11-19 17:36:36
    - public: true
    - tags: Blog, Python, Amazon, S3, CMS, Boto
    - category: tech
    
    --------------------------------------------------------
    
    就像我以前说过的,我所想要的一个博客系统应该是最简单的,我只需要发布一些文章和几个
    静态页面而已,WordPress或者Drupal这种东西实在是太大了,所以我一直都是使用TextPattern
    作为我的博客发布系统的,从今天开始,我开始转到一个基本Python的纯静态发布系统。
  3. 保存该文件,在当前目录(*settings.py*)文件所在目录,执行下面命令:
    $ liquidluck build -v
  4. 重新发布完成之后,就可以使用Tornado服务器进行预览:
    $ liquidluck server
  5. 打开 http://127.0.0.1:8000 即可预览刚才的更新了,如果都没有问题,则执行我的同步工具:
    $ python sync.py
  6. 同步完成之后(这需要一些时间,但是如果是在服务器上面更新的话,那应该会快很多),即可打开自己的博客查看更新了http://cox.im/.

上面这是一种特定的格式,在第一个—————-*之前的所有内容都属于文章的Meta信息,之后的就是文章正文,Meta信息的格式就是上面这种的,我给本文定义了 *url_title*、*date*等属性,这些并不全都是必要的,但是 *date 如果有的话就称之为文章(博客文章),如果没有这个属性的话就是页面(静态页面是不需要跟踪时间的)。所有的这些属性都是可以在模板中使用的,模板引擎使用的是 *jinja2*。

我准备把现在使用的这个系统进行一些修改,增加一些功能,比如发布的时候可以选择发布在本地服务器、FTP发布、SHELL登陆远程服务器发布、S3发布等等,同时还需要增加一些其它更通用的细节功能吧,根本自己的需求来修改……

我一直使用的都是 MarkDown,使用起来很方便,当然 Felix Felicis 系统本身还支持reStructuredText,你也可以自己扩展适合你自己使用习惯的MarkUp Language。

标签: none

评论已关闭