Index ¦ Archives ¦ Atom

Github+Pelican搭建博客教程

操作系统:Linux/ubuntu

使用工具:

  1. Github Pages——Github为每位注册用户提供300M的站点空间。

  2. Pelican——基于Python的静态网页生成器。

  3. Python——pelican工具需要Python运行环境。

  4. Markdown——Markdown文本编辑器。

  5. 其他——个人申请的域名、Google Analytics(谷歌站点数据检测分析工具)、Disqus(提供博客评论功能)、DNSPod(提供免费域名解析注册服务)等。

##### 最终效果:欢迎访问我的个人博客:http://ivesein.github.io/

一 、使用Github Pages创建个人博客页面

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。GitHub可以托管各种git库的站点。通过GitHub Pages生成的静态站点,可以免费托管、自定义主题、并且自制网页界面。

  1. 首先注册Github账户:http://github.com/。

  2. 登录Github账户,点击“Create a new repo”创建库名为*username.github.io*的新仓库。这里的username要替换为你自己的用户名

  3. 创建SSH密钥并上传到Github:

  4. 在终端输入:ssh -keygen一路回车,完成后将.pub文件中的内容粘贴到github账户设置页面的ssh-key中。

  5. 在终端输入:ssh -T git@github.com验证是否成功。

  6. 设置好后就可上传你的blog项目到该仓库生成网页用来展示了。

*以上内容都很简单,有问题可以参考Github官方帮助文档:

​ 帮助文档:Github官方帮助文档

二 、 安装Python、Pelican 和Markdown

Pelican是一套开源的使用Python编写的博客静态生成工具, 可以添加文章和和创建页面, 可以使用MarkDown reStructuredText 和 AsiiDoc 的格式来抒写, 同时使用 Disqus评论系统, 支持 RSS和Atom输出, 插件, 主题, 代码高亮等功能, 采用Jajin2模板引擎, 可以很容易的更改模板。

  1. 安装Python:Linux/ubuntu系统一般自带Python。在终端输入:python -V来查看当前Python版本信息。如果需要可以到官网安装:http://www.python.org/

  2. 安装Pelican:有两种方法来安装,如果安装了pip则可以在终端输入:pip install pelican来安装;或者从github克隆最新代码安装。建议在virtualenv下使用。

  3. 首先建立 virtualenv(Python虚拟环境)

    virtualenv pelican #创建pelican虚拟环境 cd pelican sh bin/activate #激活虚拟环境

  4. 从github克隆最新代码安装Pelican

    python git clone git://github.com/getpelican/pelican.git cd pelican python setup.py install

  5. 安装Markdown

python pip install markdown

三 、 创建博客骨架

接下来将通过初始化Pelican设置来生成一个基本的博客框架。

  1. 创建blog项目目录:

mkdir blogs cd blogs pelican-quickstart

  1. 根据提示一步步输入相应的配置项,不知道如何设置可以直接默认即可,后续可以通过编辑peilicanconf.py文件进行配置更改。完成后会在根目录生成以下文件:

. |-- content # 所有博客文章放于此目录 │ └── (pages) # 存放手动创建的静态页面 |-- develop_server.sh # 用于开启测试服务器 |-- Makefile # 方便管理博客的Makefile |-- output # 静态生成文件 |-- pelicanconf.py # 配置文件 |-- publishconf.py # 配置文件

  1. 更改Makefile文件,设置一键上传部署到Github,打开根目录下的Makefile文件,更改以下部分:

github: publish cd ./output ; git init ; git remote add origin git@github.com:username/username.github.io ; git add . ; git commit -m 'my comments' ; git push origin +master #这段命令的意思是:进入output文件夹,初始化仓库,添加本地仓库origin到远程 仓库,此处的username均要替换为你自己的github用户名

  1. 以后每次写完文章就可以通过在blogs项目根目录下执行make github进行一键部署发布到github了。在http://username.github.io查看效果。

四 、使用Markdown写测试博客并上传到github发布

Markdown是当下非常流行的一种文本编辑语法,支持HTML转换,书写博文排版也方便快捷。

  1. 写一篇测试文章:用markdown语法写一篇测试文章保存为.md格式存放在content文件夹下。完成后执行以下命令,即可在浏览器输入localhust:8000查看效果:

make publish make serve

  1. 创建一个页面:这里以创建About页面为例。在content目录下创建pages子文件夹:

mkdir content/pages

然后创建About.md并编辑以下内容:

``` title: About Me date: 2017-02-10

Hello everyone! I'm ivesein~ ```

*注意上面的title和date是.md文件的重要参数,需要卸载文档开头。比如

Title: Pelican+Github Date: 2017-02-10 10:20 Modified: 2017-02-10 10:30 Tags: python, pelican Slug: build-blog-system-by-pelican Authors: Ivesein Summary: hahahah... Status: draft #用于预览时使用,正式发布时应删除

*相关介绍请参见Pelican官方开发文档:http://pelican-zh.readthedocs.org/en/latest/zh-cn/。完成后同样可以在浏览器本地8000端口查看效果。

  1. 创建导航目录项:Menu Item设置。在你的博客中,可以设置相应的菜单项,才当项是通过pelicanconf.py设置的,具体如下所示:

MENUITEMS = (("ITEM1","http://github.com"), ("ITEM2",URL), ......)

五 、 安装主题

Pelican支持大量的开源主题,GitHub上的 pelican-themes 项目有几十套主题,大部分都带了效果预览图。可以从里面挑一个你喜欢的主题样式来使用。还有一个更方便的挑选主题的方式,直接打开 www.pelicanthemes.com 挑选吧。一个网页里就列出了几乎所有的主题。我的博客是使用 foundation-default-colours 主题,并在这套主题的基础上进行了一些定制。选定好喜欢的主题后,从GitHub上下载下来所有的主题:

mkdir ~/pelican
cd ~/pelican
git clone https://github.com/getpelican/pelican-themes.git

从里面拷贝一份你选中的主题到项目根目录的 themes 目录下,在本文的例子中是 ~/lab/blogs/themes 。然后在 pelicanconf.py 和 publishconf.py 里通过下面代码指定博客主题:

THEME = "themes/foundation-default-colours"

通常的做法是,选中一个自己喜欢的主题后,会进行一些定制。Pelican使用 Jinja2 来配置主题。一个主题的典型结构如下:

├── static
│   ├── css
│   └── images
└── templates
    ├── analytics_cnzz.html # 这个是我添加的使用cnzz的统计服务的代码
    ├── analytics.html      # 这是Google Analytics的代码
    ├── archives.html       # 这个是博客归档页面的模板
    ├── article.html        # 这个是博客正文的显示模板
    ├── base.html           # 这个是所有页面的父类模板,即所有页面都引用这个页面。比如网页导航栏啊之                               类的,都定义在这里
    ├── categories.html     # 所有博客文章的分类列表
    ├── category.html       # 某个博客分类的文章列表模板
    ├── index.html          # 主页
    ├── page.html           # 分页显示的模板
    ├── tag.html            # 某类标签下的文章列表
    └── tags.html           # 所有的标签列表页面模板

稍微有点Jinja的知识加上一些HTML和CSS的知识,就可以自己定义主题了。

为什么博客主页打开半天都不显示出来?因为GFW封锁了几乎所有和Google相关的网站,这些主题里又用了Google的字体,所以下载这些字体时会导致无法下载成功而半天不显示网页。解决方案很简单,直接修改css文件,不去下载Google字体即可。比如针对 foundation-default-colours 主题,打开主题根目录下的 static/css/foundation.css 和 static/css/foundation.min.css 文件,删除掉 @import url("//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,700"); 内容即可。当然,如果你和你的读者都是翻墙高手,那就不会遇到这个问题了。

六 、安装第三方评论系统Disqus

在Disqus上申请一个站点,记住shortname。 在pelicanconf.py添加:

DISQUS_SITENAME = shortname

七 、添加Google Analytics

去Google Analytics申请账号并通过验证,记下跟踪ID(Track ID), 在pelicanconf.py添加:

GOOGLE_ANALYTICS = '跟踪ID'

© Ivesein. Built using Pelican. Theme by Giulio Fidente on github.