[Github]github结合pelican(未完待续)

pelican

Pelican Static Site Generator, Powered by Python:Pelican是python语言写的静态网站生成器。因为我一直打算用github pages做一个博客,现在已经学会用Hexo在github pages上做博客了。但是我一想:我一个pythoner,干嘛不用python写的静态网站生成器。我想应该是网上教程太少,那我今天就来搞一搞。顺便记录下来,整理出一个教程,希望一切顺利!

开始

1.首先用virtualenv创建一个env

mkdir blog
cd blog
virtualenv env
source env/bin/activate  #激活环境

2.使用pip安装pelican和markdown

pip install pelican
pip install markdown

3.创建pelican目录结构

pelican-quickstart
# 根据提示进行设置,没有输入内容就是使用默认值按‘回车’就可以了

> Where do you want to create your new web site? [.]
> What will be the title of this web site? 削微寒
> Who will be the author of this web site? xueweihan
> What will be the default language of this web site? [en] zh
> Do you want to specify a URL prefix? e.g., http://example.com   (Y/n)
> What is your URL prefix? (see above example; no trailing slash) xueweihan.com
> Do you want to enable article pagination? (Y/n)
> How many articles per page do you want? [10]
> What is your time zone? [Europe/Paris] Asia/Shanghai
> Do you want to generate a Fabfile/Makefile to automate generation and publishing? (Y/n)
> Do you want an auto-reload & simpleHTTP script to assist with theme and site development? (Y/n)
> Do you want to upload your website using FTP? (y/N) n
> Do you want to upload your website using SSH? (y/N) n
> Do you want to upload your website using Dropbox? (y/N) n
> Do you want to upload your website using S3? (y/N) n
> Do you want to upload your website using Rackspace Cloud Files? (y/N) n
> Do you want to upload your website using GitHub Pages? (y/N)
Done. Your new project is available at /Users/xueweihan/Documents/blog

文件结构如下:

blog/
├── content              # 写的文章放这里
├── output               # 生成的输出文件(发布的内容)
├── develop_server.sh    
├── Makefile             # 方便管理博客的Makefile
├── pelicanconf.py       # 主配置文件
└── publishconf.py

我们下面只用到我解释的这几个目录和文件,大致有个印象即可

4.编写文章测试下效果

Date: 2016-02-28
Title: 测试
Tags: 测试
Slug: test

# pelican
Pelican Static Site Generator, Powered by Python:Pelican是python语言写的静态网站生成器。因为我一直打算用git pages做一个博客,现在已经学会用Hexo在git pages上做博客了。但是我还是一想:我一个pythoner,干嘛不用python写的静态网站生成器。应该是网上教程太少,那我今天就来搞一搞。顺便记录下来,整理出一个教程,希望一切顺利!

在content目录下创建一个名为:test.md的markdown文件,把上面的那些内容放进去,用来测试效果。

5.本地查看效果

# 在blog目录下执行
pelican content # 根据content中的内容,生成静态网站到output目下

# 在output目录下执行
python -m pelican.server

以上两个命令执行完,没有报错的话就用浏览器打开:127.0.0.1:8000,效果如下:

[Github]github结合pelican(未完待续)_第1张图片

输入:ctrl + c 停止服务

5.上传到github pages 现在就差最后一步,上传到github pages上面。 一步步的来:

首先在github上创建一个项目,Repository name填写:你的github用户名.github.io 如下图:

然后在output目录依次输入:

git init
git add .
git commit -m "pelican static blog test"
git remote add origin [email protected]:你的github用户名/你的github用户名.github.io.git
# 例如我的就是:[email protected]:521xueweihan/521xueweihan.github.io.git
git push -u origin master

最后访问:http://你的github用户名.github.io/ 例如我的就是:http://521xueweihan.github.io/

页面如下图: [Github]github结合pelican(未完待续)_第2张图片

简化发布流程

还记得Makefile文件吗?我们通过修改这个文件,实现1条指令发布博客到github pages上。

blog目录下的Makefile文件中的内容替换成下面的内容(原Makefile文件的内容都不要)

PY?=python
PELICAN?=pelican
PELICANOPTS=



BASEDIR=$(CURDIR)
INPUTDIR=$(BASEDIR)/content
OUTPUTDIR=$(BASEDIR)/output
CONFFILE=$(BASEDIR)/pelicanconf.py
PUBLISHCONF=$(BASEDIR)/publishconf.py


DEBUG ?= 0
ifeq ($(DEBUG), 1)
    PELICANOPTS += -D
endif

RELATIVE ?= 0
ifeq ($(RELATIVE), 1)
    PELICANOPTS += --relative-urls
endif

html:
    $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)

clean:
    [ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR)

regenerate:
    $(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)

serve:
ifdef PORT
    cd $(OUTPUTDIR) && $(PY) -m pelican.server $(PORT)
else
    cd $(OUTPUTDIR) && $(PY) -m pelican.server
endif

publish:
    $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)

github: publish
    cd $(OUTPUTDIR) ; git add . ;  git commit -m '更新博客' ; git push origin master

更新博客流程

  1. 我们把写好的markdown格式的文章放到content中,然后在blog目录下
  2. 本地查看效果的话:make html 然后make serve 最后访问:127.0.0.1:8000
  3. 发布到github:make github 完成

未完待续

  • 独立域名
  • 主题
  • 结构
  • follew me on the github
  • ico
  • rebot.txt
  • 评论系统
  • 百度,google收录和分析

参考

  • lizherui的博客
  • pelican官方文档
  • pelican中文文档(不全)
  • Pelican搭建静态博客

你可能感兴趣的:([Github]github结合pelican(未完待续))