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的定位是静态博客,要实现动态服务器的功能并不适 ...
随机推荐
- 序列化和反序列化的几种方式(DataContractSerializer)
序列化和反序列化的几种方式(DataContractSerializer) DataContractSerializer 类 使用提供的数据协定,将类型实例序列化和反序列化为 XML 流或文档. 无法 ...
- 把项目做成jar包
方法一.在eclipse3.1中把项目做成jar包步骤. 打包前的工作. 在项目下创建一个文件夹,名为META-INF,再在其下创建文件MANIFEST.MF 编辑的内容如下: Manifest-Ve ...
- jquery mobile扁平化设计样式--Jquery mobile Flat UI介绍
jquery mobile扁平化设计样式--Jquery mobile Flat UI介绍 这几天开发的web app使用了jquery mobile,jquery mobile自带的样式比较适合做企 ...
- 三角形(Triangle)
三角形(Triangle) 问题 给出一个三角形,找出从顶部至底部的最小路径和.每一步你只能移动到下一行的邻接数字. 例如,给出如下三角形: [ [2], [3,4], [6,5,7], [4,1,8 ...
- JSP实现页面跳转的方式
js实现页面跳转的几种方式普通方式 第一种: <script language="javascript" type="text/javascript"&g ...
- 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)
技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...
- C语言中判断int,long型等变量是否赋值的方法
博主这段时间在写一些C程序的代码,由于以前对C不是了解很多,故遇到很多瓶颈,当然,其中也有很多有趣的方法可以利用以解决这些难题,下面这个问题就是博主遇到的一个麻烦. 声明了 int ,long 型等局 ...
- CAS-ticket not recognized
描述:项目用单点登陆后,在页面中刷新时报错,错误信息如下: Servlet.service() for servlet default threw exception: org.jasig.cas.c ...
- 一起来玩echarts系列(二)------echarts图表自适应问题
为了直观查看公司服务器各个进程占用的内存动态情况,我使用echarts进行数据可视化,具体的实现过程按下不表. 最后实现的效果如图: 然后问题就来了,因UI采用了Bootstrap响应式框架,所以除了 ...
- [jstips]undefined和null的区别
undefined是指一个变量没有被声明,或者被声明了但是还没有被赋值 null是一个特定值(an assignment value ),代表"没有值"(no value) Jav ...