操作系统:Linux/ubuntu
使用工具:
-
Github Pages——Github为每位注册用户提供300M的站点空间。
-
Pelican——基于Python的静态网页生成器。
-
Python——pelican工具需要Python运行环境。
-
Markdown——Markdown文本编辑器。
-
其他——个人申请的域名、Google Analytics(谷歌站点数据检测分析工具)、Disqus(提供博客评论功能)、DNSPod(提供免费域名解析注册服务)等。
##### 最终效果:欢迎访问我的个人博客:http://ivesein.github.io/
一 、使用Github Pages创建个人博客页面
Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。GitHub可以托管各种git库的站点。通过GitHub Pages生成的静态站点,可以免费托管、自定义主题、并且自制网页界面。
-
首先注册Github账户:http://github.com/。
-
登录Github账户,点击“Create a new repo”创建库名为*username.github.io*的新仓库。这里的username要替换为你自己的用户名
-
创建SSH密钥并上传到Github:
-
在终端输入:
ssh -keygen一路回车,完成后将.pub文件中的内容粘贴到github账户设置页面的ssh-key中。 -
在终端输入:
ssh -T git@github.com验证是否成功。 -
设置好后就可上传你的blog项目到该仓库生成网页用来展示了。
*以上内容都很简单,有问题可以参考Github官方帮助文档:
帮助文档:Github官方帮助文档
二 、 安装Python、Pelican 和Markdown
Pelican是一套开源的使用Python编写的博客静态生成工具, 可以添加文章和和创建页面, 可以使用MarkDown reStructuredText 和 AsiiDoc 的格式来抒写, 同时使用 Disqus评论系统, 支持 RSS和Atom输出, 插件, 主题, 代码高亮等功能, 采用Jajin2模板引擎, 可以很容易的更改模板。
-
安装Python:Linux/ubuntu系统一般自带Python。在终端输入:
python -V来查看当前Python版本信息。如果需要可以到官网安装:http://www.python.org/ -
安装Pelican:有两种方法来安装,如果安装了pip则可以在终端输入:
pip install pelican来安装;或者从github克隆最新代码安装。建议在virtualenv下使用。 -
首先建立 virtualenv(Python虚拟环境)
virtualenv pelican #创建pelican虚拟环境 cd pelican sh bin/activate #激活虚拟环境 -
从github克隆最新代码安装Pelican
python git clone git://github.com/getpelican/pelican.git cd pelican python setup.py install -
安装Markdown
python
pip install markdown
三 、 创建博客骨架
接下来将通过初始化Pelican设置来生成一个基本的博客框架。
- 创建blog项目目录:
mkdir blogs
cd blogs
pelican-quickstart
- 根据提示一步步输入相应的配置项,不知道如何设置可以直接默认即可,后续可以通过编辑peilicanconf.py文件进行配置更改。完成后会在根目录生成以下文件:
.
|-- content # 所有博客文章放于此目录
│ └── (pages) # 存放手动创建的静态页面
|-- develop_server.sh # 用于开启测试服务器
|-- Makefile # 方便管理博客的Makefile
|-- output # 静态生成文件
|-- pelicanconf.py # 配置文件
|-- publishconf.py # 配置文件
- 更改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用户名
- 以后每次写完文章就可以通过在blogs项目根目录下执行
make github进行一键部署发布到github了。在http://username.github.io查看效果。
四 、使用Markdown写测试博客并上传到github发布
Markdown是当下非常流行的一种文本编辑语法,支持HTML转换,书写博文排版也方便快捷。
- 写一篇测试文章:用markdown语法写一篇测试文章保存为.md格式存放在content文件夹下。完成后执行以下命令,即可在浏览器输入
localhust:8000查看效果:
make publish
make serve
- 创建一个页面:这里以创建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端口查看效果。
- 创建导航目录项: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'