Pelican搭建静态博客
前言
一直以来都希望拥有属于自己的个人博客,随性发点信息,写点技术感想,记录自己的生活,重要的是不受广告的影响、不被河蟹、不会担心有一天被莫名其妙地消失。
之前看过一篇文章:“像黑客一样写博客”,一下子就被这种简单的方式深深的吸引住了。你只需要一个称手的文本编辑器(Markdown编辑器),再配合终端的git命令就OK了,其余的都不用管了,交给第三方去。几条简单的命令就可以发布博客。
优点:
- 直接使用Markdown写文章
- 全站静态化,根据Markdown生成文章的静态页面
- 直接在Terminal把文章push到Github上即可,有版本管理真好,然后加之Github Page的支持,虽然有一些些小问题,比如缓存,但瑕不掩瑜
- 整个写作过程和写代码的过程是一致的,符合码农的行为习惯,也就是所谓的“像黑客一样写博客”
本博客是在Gentoo Linux环境下搭建完成,托管到Github Pages。
效果见我的博客:http://aceking.gitcafe.io
知识储备
搭建博客的工具选用了Pelican,Pelican是一个用Python语言编写的静态网站生成器,支持使用restructuredText和Markdown写文章,配置灵活,扩展性强,有许多优秀的主题和插件可供使用。Pelican 的Github地址是:https://github.com/getpelican/pelican;主页:http://blog.getpelican.com/
搭建过程中涉及如下技术知识,不过你不必害怕,只是使用它们的开源框架而已,并不需要自己编码,点击可以了解它们是如何的强大,当然你也可以略过它们,后面遇到时再进行了解。
假如你不能打开它们,原因你懂的,请爬墙解决~
搭建Pelican环境
安装git,pip
emerge --ask git
emerge --ask dev-python/pip
使用virtualenv工具创建pelican虚拟环境
emerge --ask virtualenv
virtualenv ~/virtualenvs/pelican
cd ~/virtualenvs/pelican
source bin/activate
安装pelican
pip install pelican
安装markdown,typogrify
pip install Markdown
pip install typogrify
创建博客站点
mkdir blog //创建文件夹,名称可根据自己喜欢定
cd blog
pelican-quickstart
pelican-quickstart执行命令后,会提示输入博客的配置项,除了少数几个必填以外,其它都可以选择默认,而且都可以在pelicanconf.py文件中进行更改,所以你可以随意选择。
命令成功执行后,会出现pelican的框架,如下所示
blog/
├── content # 存放输入的markdown或RST源文件
│ └── (pages) # 存放手工创建的静态页面,可选
│ └── (posts) # 存放手工创建的文章,可选
├── output # 存放最终生成的静态博客
├── develop_server.sh # 测试服务器
├── Makefile # 管理博客的Makefile
├── pelicanconf.py # 配置文件
└── publishconf.py # 发布文件,可删除
选择博客主题
回到blog目录下,按如下步骤下载pelican官方主题,从里面挑选出自己喜欢的主题吧,大多数主题预览界面你可以打开这个网页进行查看。不过如今pelican又新出了很多主题,所以你需看看pelican主题开源库。
- 克隆主题到本地
git clone https://github.com/getpelican/pelican-themes.git
- 打开
pelicanconf.py配置文件,更改或添加THEME为自己喜欢的主题,例如本博客所挑选的elegant,更多的配置含义请关注官方文档。
THEME = 'pelican-themes/gum'
添加评论系统
开启个人博客的原因在于分享知识,分享就需要交流,评论模块当然少不了。在Disqus上申请帐号,按照流程Disqus会分配给你站点的Shortname,记牢Shortname,如果忘了请进入admin/settings中查看。然后同理,在pelicanconf.py添加
DISQUS_SITENAME = Shortname
书写文章
完成上述博客主体搭建后,使用markdownpad创建一个.md文件,保存于content文件夹中(或自己加入posts文件夹)。
Metadata syntax for Markdown posts should follow this pattern:
Title: My super title
Date: 2010-12-03 10:20
Modified: 2010-12-05 19:30
Category: Python
Tags: pelican, publishing
Slug: my-super-post
Authors: Alexis Metaireau, Conan Doyle
Summary: Short version for index and feeds
This is the content of my super blog post.
发布博客站点
Publish your site
有三种方法可以发布博客:
- pelican命令
- fabric
- make
生成博客站点
pelican /path/to/your/content/ [-s path/to/your/settings.py]
预览生成的站点
For Python 2, run:
cd output
python -m SimpleHTTPServer
For Python 3, run:
cd output
python -m http.server
浏览http://localhost:8000/地址预览效果.
部署博客站点
pelican content -s publishconf.py
自动化操作
- Fabric
pip install Fabric
fab build
fab regenerate
fab serve
fab publish
- Make
make html
make regenerate
make serve
make devserver
./develop_server.sh stop
备注:发布的简单流程:
pelican content生成页面至output目录,然后git pushoutput目录到github站点的gh-pages或gitcafe-pages分支,即可自动渲生成染博客。
参考资料:
http://www.xycoding.com/articles/2013/11/21/blog-create/
Pelican搭建静态博客的更多相关文章
- 【一】Ubuntu14.04+Jekyll+Github Pages搭建静态博客
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- windows上使用mkdocs搭建静态博客
windows上使用mkdocs搭建静态博客 之前尝试过用HEXO搭建静态博客,最近发现有个叫mkdocs的开源项目也是搭建静态博客的好选择,而且它支持markdown格式,下面简要介绍一下mkdoc ...
- 使用github和hexo搭建静态博客
获得更多资料欢迎进入我的网站或者 csdn或者博客园 终于写这篇文章了,这是我使用github和hexo搭建博客的一些心得,希望能给大家一点帮助.少走点弯路.刚接触github,只是用来存项目的版本, ...
- 在GitHub上使用Hexo搭建静态博客
搭建静态博客须要一个前提是电脑上有安装git而且有github帐号,这个不懂能够看廖雪峰先生的git教程 1.下载nodejs.在官网上能够下载 2.使用git进入你新建的一个目录,输入命令 npm ...
- Hexo搭建静态博客踩坑日记(二)
前言 Hexo搭建静态博客踩坑日记(一), 我们说到利用Hexo快速搭建静态博客. 这节我们就来说一下主题的问题与主题的基本修改操作. 起步 chrome github hexo git node.j ...
- Hexo搭建静态博客踩坑日记(一)
前言 博客折腾一次就好, 找一个适合自己的博客平台, 专注于内容进行提升. 方式一: 自己买服务器, 域名, 写前端, 后端(前后分离最折腾, 不分离还好一点)... 方式二: 利用Hexo, Hug ...
- hexo搭建静态博客
1. 环境环境 1.1 安装Git 请参考[1] 1.2 安装node.js 下载:http://nodejs.org/download/ 可以下载 node-v0.10.33-x64.msi 安装时 ...
- 使用CHCA搭建静态博客
[toc] chca是一个使用golang开发的静态博客生成器,简单.方便.快捷,抛弃每次都需要使用命令编译文件,采用文件监听方式编译,作者只需把markdown文件放到配置中的markdown文件夹 ...
- Hexo快速搭建静态博客并实现远程VPS自动部署
这篇文章将如何搭建hexo,以及如何通过git webhooks实现远程vps的自动部署 这篇文件适合的条件: 简单的用于个人博客.公司博客展示,hexo的定位是静态博客,要实现动态服务器的功能并不适 ...
随机推荐
- python 字符串(汉语)获得MD5编码
MD5即Message-Digest Algorithm 5(消息摘要算法第五版)的简称,是当前计算机领域用于确保信息传输完整一致而广泛使用的散列算法之一(又译哈希算法.摘要算法等),主流编程语言普遍 ...
- T4模板与数据访问层的分离
当在企业级应用中使用EF时,会发现实体类库与数据访问层是分离的. 来一张效果图. 具体步骤: 1.运用EF生成原始的实体类 在程序集中添加完ADO.NET实体数据模型后,生成相应的实体类,此时,T4模 ...
- HashTable类模板_C++
好久没看数据结构了,今天终于要用到hash,整理一下写了个hash类模板 template<typename T> class DataType { public: T key; Data ...
- 有一个array的数组,长度为10000,大小不一,用算法找出该数组中的最大值。
不用算法的答案是: var a=[1,2,3,5……];alert(Math.max.apply(null, a));//最大值alert(Math.min.apply(null, a));//最 ...
- LLVM小结
随笔- 5 文章- 0 评论- 10 LLVM小结 如果说gcc是FSF的传奇,llvm就是Chris Lattner的小清新.当然啦,想具体看看这位四处游山玩水还GPA 4.0的大神和他的 ...
- linux 原生系统发送电子邮件 (在本地与因特网)
有用的资料在 Linux mail 命令 http://www.cnblogs.com/JemBai/archive/2012/01/24/2329136.html 还有这里 Linux系统下mail ...
- linux 下 openssl 编译和交叉编译
此随便记录一下编译openssl时遇到的各种问题以及解决办法. 点击此处下载 OpenSSL(version-1.0.1e) linux 64位系统编译32位版本: setarch i386 ./Co ...
- CKEditor 自主控制图片上传
在ASP.NET中使用CKEditor编辑器,如果想控制图片上传,即把上传的图片路径名存到数据中,可以自定义一个上传功能 首先自定义CKEditor的配置文件 在config.js中添加以下代码,红色 ...
- Unity3D中使用MiniJson解析json的例子
json: --------------------------------- { "name":"中国", "province&qu ...
- java模式之装饰模式
1. 什么叫装饰模式? 根据业务的需求,需要对一个类的方法进行增强的处理. 2. 为什么需要装饰模式? 拓展性更加的好,当觉得这个装饰不好的时候,可以直接拿下,不需要改变任何的代码. 3. 装饰模式的 ...