利用pelican和gitcafe搭建博客
##介绍
pelican是基于python的静态web站点生成器,由python编写
目前最火热的静态站点利器jekyll则由ruby编写,出于对python的爱,我于是选择用pelican
##gitcafe pages
gitcafe pages是类似于github pages的服务,不过国内访问速度更良心
###WHY gitcafe
github大法好,不过国内的访问速度令人蛋碎,当然,如果是海外党,可能恰好相反,不过如果有米,当然最好能够买一个域名,然后通过CNAME将国外和国内IP分别引导到github pages和gitcafe pages,具体做法可以参见该文
##QuickStart
在centos 7下,首先安装python,pip,virtualenv(可选,virtualenv可以将各种库,插件和主题打包到一起,比较方便)
yum install -y python python-devel python-libs python-pip
随后安装pelican和markdown库,如果需要建立虚拟环境(virtualenv),则可以参见该文
pip install pelican markdown
建立一个存放博客的目录,并进入目录,取名’waaagh’(绿皮万岁)
mkdir -p waaagh cd waaagh
QuickStart,运行:
pelican-quickstart
,根据提示,可以快速生成一个静态页面的生产环境,例如:(输入不支持backspace键,不过输入错误可以在随后生成的pelicanconf.py
文件中修改,直接按回车则是取默认值)
1 | (blog)[root@localhost waaagh]# pelican-quickstart |
完成后,目录结构如下:
yourproject/
├── content
│ └── (pages)
├── output
├── develop_server.sh
├── fabfile.py
├── Makefile
├── pelicanconf.py # Main settings file
└── publishconf.py # Settings to use when ready to publish
##push一篇博文
通常,我们将content目录作为存放文章源文件的目录,pelican支持rst,markdown和html文件。
不管3721,先撸一篇markdown文章吧:
1 | Title: 我的第一发博客 |
接下来,解释一下上面的文件内容:
- 以:隔开的key-value键值对可以成为元素局(metadata),他们构成了一些文章的基础属性,例如日期,标题,摘要等,具体的元数据可以参看pelican文档
- 正文和metadata以空行隔开
写好文章后,将其命名为hello_world.md(.md为markdown源文件的后缀名),然后在project根目录运行pelican /path/to/your/content/ [-s path/to/your/settings.py]
,其中,/path/to/your/content
即是存放文章源文件的目录,刚才我们使用了content目录,该目录的名称可以在pelicanconf.py
中配置,甚至,输出目录output
都可以用其他配置文件代替,配置文件pelicanconf.py
也可以是其他的配置文件,只需要指定path/to/your/settings.py
即可。
TIPS:
写好文章后,利用刚才的命令,就已经生成好页面到output
目录了,这时可以利用make serve
命令启动一个本地服务器,通过访问localhost.com:8000
来访问生成的页面
##主题
pelican支持各种主题,这里有各种主题及其下载链接,主题的安装和配置可以使用pelican-theme
工具,具体方法参见pelican-theme --help
##配置pelican
配置文件pelicanconf.py
包括了众多选项,可以参见该页进行配置
##git端的配置
在生成好第一篇文章后,可以进入到output
目录,这里的内容就是即将托管到gitcafe pages
的静态页面,首先,到gitcafe.com建立一个user pages或者project pages,方法参见官方帮助文档,简化下来的步骤就是:
- 在gitcafe.com中建立一个和用户名相同的repo
- 根据刚建立的空repo首页,将git username和email配置为相应的数据(在github中,非验证邮箱和用户名会导致pages build failure,不知道gitcafe是否有一样的机制)
- 在
output
目录,依次运行
1 | git init #初始化仓库 |
- OK,一切就绪,访问pkking.gitcafe.io查看渲染好的页面吧