在GitHub Pages上使用Pelican搭建博客的教程
作者:Xiaofeng Dong 发布时间:2021-08-02 18:47:48
Pelican 介绍
首先看看 Pelican 的一些主要特性:
Python实现,开放源码
输出静态页面,方便托管
支持主题,采用Jajin2模板引擎
支持代码语法高亮
支持reStructuredText、Markdown、AsciiDoc格式
支持Disqus评论
支持Atom和RSS输出
这些特性都是大爱,完全满足我对博客系统的基本需求,再配合免费无限制的GitHub Pages,一切近乎完美了。
安装 Pelican
开始前请自行安装Python环境,支持2.7.X和3.3+,为方便,再顺手装上distribute、pip、virtualenv。(注:我的操作系统是:Windows 7)
创建Pelican虚拟环境
virtualenv PelicanEnv --distribute
PelicanEnv\Scripts\activate
安装 Pelican
pip install pelican
如果您使用Markdown来写文章的话,还需要安装Markdown库
pip install Markdown
创建 Blog
创建一个 Blog 目录
mkdir myblog
cd myblog
快速创建 Blog
pelican-quickstart
根据提示一步步输入相应的配置项,不知道如何设置的接受默认即可,后续可以通过编辑pelicanconf.py文件更改配置。
以下是生成的目录结构:
myblog/
├── content # 存放输入的源文件
│ └── (pages) # 存放手工创建的静态页面
├── output # 生成的输出文件
├── develop_server.sh # 方便开启测试服务器
├── Makefile # 方便管理博客的Makefile
├── pelicanconf.py # 主配置文件
└── publishconf.py # 发布时使用的配置文件
撰写文章
在 content 目录下用 Markdown 语法来写一篇文章
Title: My super title
Date: 2010-12-03 10:20
Category: Python
Tags: pelican, publishing
Slug: my-super-post
Author: Alexis Metaireau
Summary: Short version for index and feeds
This is the content of my super blog post.
生成页面
make html
现在就可以在output目录查看生成的html文件了。
由于我的操作系统是Windows,我对Makefile做了一些修改。
PY=python
PELICAN=pelican
PELICANOPTS=
BASEDIR=$(CURDIR)
INPUTDIR=$(BASEDIR)/content
OUTPUTDIR=$(BASEDIR)/output
GITHUBDIR=$(BASEDIR)/togithub
CONFFILE=$(BASEDIR)/pelicanconf.py
PUBLISHCONF=$(BASEDIR)/publishconf.py
help:
@echo ' '
@echo 'Makefile for a pelican Web site '
@echo ' '
@echo 'Usage: '
@echo ' make help print help information '
@echo ' make all (re)generate the web site '
@echo ' make html (re)generate the web site '
@echo ' make clean remove the generated files '
@echo ' make cptogithub copy output files to GITHUBDIR '
@echo ' make regenerate regenerate files upon modification '
@echo ' make serve serve site at http://localhost:8000'
@echo ' make devserver start/restart develop_server.sh '
@echo ' make stopserver stop local server '
@echo ' make publish generate using production settings '
@echo ' '
all: html
html: clean $(OUTPUTDIR)/index.html cptogithub
clean:
@echo -n 'Cleaning............................'
@rm -fr $(OUTPUTDIR)
@mkdir $(OUTPUTDIR)
@echo 'Done'
$(OUTPUTDIR)/%.html:
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
cptogithub:
@echo -n 'Copying.............................'
@cp -fR $(OUTPUTDIR)/* $(GITHUBDIR)
@echo 'Done'
regenerate: clean
$(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
serve:
cd $(OUTPUTDIR) && $(PY) -m pelican.server
devserver:
$(BASEDIR)/develop_server.sh restart
stopserver:
kill -9 `cat pelican.pid`
kill -9 `cat srv.pid`
@echo 'Stopped Pelican and SimpleHTTPServer processes running in background.'
publish:
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS)
.PHONY: help all html clean cptogithub regenerate serve devserver stopserver publish
创建 GitHub Pages
GitHub Pages分两种,一种是项目页面,可创建多个;另一种是用户页面,每个用户ID只能创建一个。两种都可以用来托管Pelican博客,这里以用户页面为例。
点击这里,新建一个Repository,Repository名字可以是 xxx.github.io 或者 xxx.github.com,其中 xxx 是您的用户ID。
创建成功以后,便可以把生成的页面push到github。
cd output
git init
git add .
git commit -m "first commit"
git remote add origin https://github.com/xxx/xxx.github.io.git
git push -u origin master
现在可以通过 xxx.github.io 或者 xxx.github.com 来访问您的博客了。
域名绑定
在repo的根目录下面,新建一个名为CNAME的文本文件,里面写入你要绑定的域名,比如顶级域名 example.com 或者二级域名 xxx.example.com。
如果绑定的是顶级域名,则DNS要新建一条A记录,指向 204.232.175.78。
如果绑定的是二级域名,则DNS要新建一条CNAME记录,指向 xxx.github.io 或者 xxx.github.com 。
以我的为例:
CNAME文件
www.dongxf.com
DNSPod上设置
在浏览器地址栏中输入以下链接,都将跳转指向 http://www.dongxf.com/
http://dongxf.com/
http://www.dongxf.com/
http://blog.dongxf.com/
http://dongdxf.github.io/
http://dongdxf.github.com/
未尽事宜
其他内容请参考 Pelican官方文档 。我正在翻译这个文档,才刚开始,进展缓慢。请点击 Pelican文档中文版 访问,欢迎提出宝贵意见和建议。


猜你喜欢
- 一、椭圆绘制实例代码:import tkinter as tk &nb
- 1、简介AI 聊天机器人使用自然语言处理 (NLP) 来帮助用户通过文本、图形或语音与 Web 服务或应用进行交互。聊天机器人可以理解自然人
- atan()方法返回x的反正切值,以弧度表示。Syntax以下是atan()方法的语法:atan(x)注意:此函数是无法直接访问
- 整个重装步骤大致分四个步骤进行,第一步,备份原mysql中的所有数据库。第二步,完全卸载mysql第三步,下载安装新版mysql第四步,导入
- 本文实例讲述了python中metaclass原理与用法。分享给大家供大家参考,具体如下:什么是 metaclass.metaclass (
- MySQL Proxy(MySQL代理)是一个通过MySQL网络协议,提供MySQL服务器与客户端之间连接的应用工具,在基本配置条件下,My
- id(object)功能:返回的是对象的“身份证号”,唯一且不变,但在不重合的生命周期里,可能会出现相同的id值。此处所说的对象应该特指复合
- /** * The maximum supported {@code LocalTime}, '23:59:59.999999999
- 今天在工作中写项目的时候,遇到了一个让我感到几乎无解的问题,在转换了思路后,想出了一个折中的解决方案,记录如下。其实,问题的场景,非常简单:
- eval前言In [1]: eval("2+3")Out[1]: 5In [2]: eval('[x for x
- 一、基本介绍logging 模块是python自带的一个包,因此在使用的时候,不必安装,只需要import即可。logging有 5 个不同
- lxml是python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高XPath,全称XML Path
- 根据导师作业安排,在学习数字图像处理(刚萨雷斯版)第六章 彩色图像处理 中的彩色模型后,导师安排了一个比较有趣的作业:融合原理为:1 注意:
- 目录一、 环境准备:1.docker环境2.安装mariadb数据库二、ORM1.ORM简介2.django配置数据库第一种方式:第二种方式
- 使用正则提取数据,请求库requests,看代码,在存入数据库时,报错ERROR 1054 (42S22): Unknown column
- 前言MySQL是一个高速度、高性能、多线程、开放源代码,建立在客户/服务器(Client/Server)结构上的关系型数据库管理系(RDBM
- Mysql分页采用limt关键字select * from t_order limit 5,10; #返回第6-15行数据select *
- 备份还原数据库备份数据库企业管理器--或用SQL语句(完全备份):backup database 数据库 to
- #coding=utf-8#对话框import sysfrom PyQt4 import QtGui, QtCoreclass Window
- 本文主要介绍Python3.6及TensorFlow的安装和配置流程。一、Python官网下载自己电脑和系统对应的Python安装包。网址: