用pelican搭建完美博客
前面有文章介绍本站采用了Python编写的Pelican静态生成博客系统, 之所以没有使用当前很火的Jekyll, 是因为它是Ruby编写, 而我又对Ruby没有啥兴趣, 所以还是选择了使用了我熟悉的Python编写的这套系统, 我用了一段时间,打算将使用经验分享出来
介绍
Pelican是一套开源的使用Python编写的博客静态生成, 可以添加文章和和创建页面, 可以使用MarkDown reStructuredText 和 AsiiDoc 的格式来抒写, 同时使用 Disqus评论系统, 支持 RSS和Atom输出, 插件, 主题, 代码高亮等功能, 采用Jajin2模板引擎, 可以很容易的更改模板
安装
可以从github克隆最新的代码安装, 并且建议在virtualenv下使用:
建立 virtualenv
virtualenv pelican # 创建
cd pelican
sh bin/activate # 激活虚拟环境
上面建立了一个Python的虚拟环境(这个命令不是内置可以使用 easy_install virtualenv 安装)
从github克隆最新代码安装Pelican
git clone git://github.com/getpelican/pelican.git # 代码
cd pelican
python setup.py install
上面步骤完成后就安装了Pelican
开始一个博客
mkdir /path/to/your/blog
cd /path/to/your/blog
pelican-quickstart
在回答一系列问题过后你的博客就建成的, 主要生成下列文件:
.
|-- content # 所有文章放于此目录
|-- develop_server.sh # 用于开启测试服务器
|-- Makefile # 方便管理博客的Makefile
|-- output # 静态生成文件
|-- pelicanconf.py # 配置文件
|-- publishconf.py # 配置文件
写一篇文章
在 content 目录新建一个 test.md文件, 填入一下内容:
Title: 文章标题
Date: 2013-04-18
Category: 文章类别
Tag: 标签1, 标签2 这里是内容
然后执行:
make html
用以生成html
然后执行
./develop_server.sh start
开启一个测试服务器, 这会在本地 8000 端口建立一个测试web服务器, 可以使用浏览器打开:http://localhost:8000来访问这个测试服务器, 然后就可以欣赏到你的博客了
创建一个页面
这里以创建 About页面为例
在content目录创建pages目录
mkdir content/pages
然后创建About.md并填入下面内容
Title: About Me
Date: 2013-04-18 About me content
执行 make html 生成html, 然后打开 http://localhost:8000查看效果
让Pelican支持评论
Pelican 使用Disqus评论, 可以申请在Disqus上申请一个站点, 然后在pelicanconf.py里添加或修改DISQUS_SITENAME项:
DISQUS_SITENAME = u"linuxzen"
执行
make html
浏览器打开 http://localhost:8000查看效果
更换主题
Pelican本身也提供了一些主题可供选择, 可以从github克隆下来
git clone git://github.com/getpelican/pelican-themes.git # 主题
然后在里面找到想要的主题, 然后拷到博客项目当前目录, 这里已neat为例
cp -r /path/to/themes/from/github/neat .
然后在 pelicanconf.py 配置文件里添加或修改 THEME项为 neat
THEME = "neat"
重新执行
make html
然后打开 http://localhost:8000 查看效果
使用插件
Pelican 一开始是将插件内置的, 但是新版本 Pelican将插件隔离了出来, 所以我们要到github上 克隆一份新的插件, 在博客目录执行
git clone git://github.com/getpelican/pelican-plugins.git # 插件
现在我们博客目录就新添了一个 pelican-plugins目录, 我们已配置sitemap插件为例, sitemap插件可以生成 sitemap.xml 供搜索引擎使用
在pelicanconf.py配置文件里加上如下项:
PLUGIN_PATH = u"pelican-plugins" PLUGINS = ["sitemap"] ## 配置sitemap 插件
SITEMAP = {
"format": "xml",
"priorities": {
"articles": 0.7,
"indexes": 0.5,
"pages": 0.3,
},
"changefreqs": {
"articles": "monthly",
"indexes": "daily",
"pages": "monthly",
}
}
然后再执行
make html
打开浏览器请求 http://localhost:8000/sitemap.xml即可看到生成的 Sitemap 了
拷贝静态文件
如果我们定义静态的文件, 该如何将它在每次生成的时候拷贝到 output 目录呢, 我们以robots.txt为例, 在我们的 content/extra 下面我们放了一个定义好的 robots.txt文件, 在pelicanconf.py更改或添加 FILES_TO_COPY项:
FILES_TO_COPY = (
("extra/robots.txt", "robots.txt"),
)
这样在每次生成html的时候都会把 content/extra下的 robots.txt 拷贝到 output目录下
拷贝静态目录
如果是一个静目录怎么办? 我们可以在pelicanconf.py里添加或修改 STATIC_PATHS项, 比如我们有个img目录用来放文章所使用的图片, 我们可以在pelicanconf.py添加
STATIC_PATHS = [u"img"]
然后执行
make html
然后 Pelican 就会将 img目录拷贝到 output/static/ 下
部署
上面都弄完之后你就可以得到一个功能健全的博客系统, 接下来就是部署到服务器, 上传到服务器并结合nginx或者apache等web服务器部署这里就不在详述
参考
参考文章:http://www.uoota.com/blog/archives/27222
如果还有其他问题请参考官方手册
用pelican搭建完美博客的更多相关文章
- Pelican搭建静态博客
前言 一直以来都希望拥有属于自己的个人博客,随性发点信息,写点技术感想,记录自己的生活,重要的是不受广告的影响.不被河蟹.不会担心有一天被莫名其妙地消失. 之前看过一篇文章:"像黑客一样写博 ...
- 利用Pelican搭建个人博客
博客基于win7系统,python2.7和pelican. 1.安装工具 安装virtualenv pip install virtualenv 下载make,或者make移动至任一目录,并将路径写入 ...
- 纯django开发最完美博客
2020年5月打造最时尚博客系统教程 为了学习速度,集中精力学习django和博客开发, 没有使用其它框架,也没有使用css预处理等 这样学起来最方便, 博客前后端都完成, www.duanshuil ...
- 使用Hexo + GitHub Pages 搭建个人博客
一.前言 之前是在CSDN上写博客的,但是无奈其广告满天飞,还有因为个人不太喜欢CSDN博客里的一些东西,加上看到很多技术大牛都有自己的个人博客,于是乎!便想着搭建一个自己的个人博客.其实之前写博客还 ...
- Pelican+Github博客搭建详细教程
操作系统:Mac OS / Linux 工具集: 1.Pelican--基于Python的静态网页生成器 2.马克飞象--Evernote出的Markdown文本编辑器 3.GoDaddy--域名供应 ...
- 利用Hexo搭建个人博客-博客发布篇
通过 <利用Hexo搭建个人博客-环境搭建篇> 以及 <利用Hexo搭建个人博客-博客初始化篇>,我们了解到了利用Hexo搭建个人博客需要的环境以及配置,下面这篇文章将会介绍如 ...
- 使用github与jekyll搭建个人博客(一)
虽然使用博客园还没有多久,但是最近看到一些大神的博客觉得很是炫酷.于是突发奇想,想要搭建自己的博客站点儿.编程菜鸟一枚,还是想要记录下最近的搭建博客经历. 使用github搭建个人博客的方式有很多,百 ...
- 使用 github + jekyll 搭建个人博客
github + jekyll 本地写markdown,然后push到github,就成了博客 其实我一早就知道这两者可以搭建个人博客,因为本人有个很好的习惯——每天都会去看看一些热门文章,了解行业最 ...
- 阿里云+wordpress搭建个人博客网站【小白专用的图文教程】
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
随机推荐
- 如何计算ModBus超时时间?
波特率:每秒钟通过信道传输的信息量称为位传输速率,也就是每秒钟传送的二进制位数,简称比特率.比特率表示有效数据的传输速率,用b/s .bit/s.比特/秒,读作:比特每秒. 如9600b/s:指总线上 ...
- 实现Linux下的ls -l命令
基本实现了Linux下的ls -l命令,对于不同的文件显示不同的颜色和显示符号链接暂时没有实现: /************************************************** ...
- MySQL数据库备份还原(基于binlog的增量备份)
MySQL数据库备份还原(基于binlog的增量备份) 一.简介 1.增量备份 增量备份 是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件.这就意味 ...
- URAL 1019 - Line Painting
跟前面某个题一样,都是区间染色问题,还是用我的老方法,区间离散化+二分区间端点+区间处理做的,时间跑的还挺短 坑爹的情况就是最左端是0,最右端是1e9,区间求的是开区间 #include <st ...
- XML和HTML中常用转义字符:
XML和HTML中都有一些特殊的字符,这些字符在XML和HTML中是不能直接使用的,如果必须使用这些字符,应该使用其对应的转义字符. XML常用转义字符: 字符 转义字符 描述 & & ...
- 设计模式 - 策略模式(Strategy Pattern) 具体解释
策略模式(Strategy Pattern) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26577879 本文版权全 ...
- 谈使用Eclipse与DDMS调试Android程序的方法
在Eclipse开发工具中调试程序的方法很多,但是使用Eclipse调试Android程序时需要注意一些细节上的问题.许多刚接触 Android的开发者,在调试Android程序时总是不能迅速地找到程 ...
- 升级ADT22.6后,Android模拟器无法创建
这 两天,在社区里看到有小伙伴们反应,自己在Eclipse下无法创建Android模拟器的问题.起初,自己也没太在意,我一直使用的是 Genymotion模拟器.然后,问题不解决,总有那么一天会让自己 ...
- iOS开发——swift精讲&MVC应用实战
MVC应用实战 iOS开发中设计模式是很重要的,其中,使用最多的就是MVC模式,今天就简单介绍一下在Swift中这么使用MVC模式来实现我们想要的功能: 模型-视图-控制器(Model-View-Co ...
- javascript---遇到关于this的相关问题(解决this)(持续更新中...)
1.在原型中使用this <!doctype html> <html lang="en"> <head> <meta charset=&q ...