写在前面的话
在当代自媒体如此发达的时代,如果不主动分享自己的想法、知识,会让自己常常陷入比较被动的局面,这种被动的局面不仅仅是金钱方面的,更重要的是无法让别人快速识别你的能力。博客是一种非常重要的传播自己知识体系的自媒体,可以让别人通过它快速的了解你,所以本文主要介绍通过pelican构建自己的博客系统,然后将内容发布到github pages的过程,希望能给其他同学提供一些帮助。
环境准备
# python3默认包含下面要用到的pip3工具
语言环境: brew install python3
# 这两个是必备依赖,pelican用来创建博客,markdown是让博客系统识别markdown文件,其他的依赖可以等安装插件,使用插件时,如果遇到报错再选择性安装
博客依赖: pip3 install pelican markdown
本地初始化博客系统
- 选择合适的目录,创建你的博客文件夹,这里以
blogs
为示例 - 进入
blogs
文件夹,允许命令pelican-quickstart
这个命令是互动式的,需要回答一些关于你博客的问题,比如博客的作者,博客的标题等等,请根据自己的个人信息回答完问题
- 执行完
pelican-quickstart
命令后,在blogs
目录中生成如下文件夹
__pycache__
: python编译相关的缓存文件,不需要关心
content
: 存储原始的博客文件
Makefile
: 编译、启动本地服务的配置文件
pelicanconf.py
: 博客本地相关的配置
publishconf.py
: 发布博客时的配置,也就是发布到服务端时的配置
tasks.py
: 一些命令的支撑代码,不需要关心
- 到这里,就恭喜大家,你可以在本地运行
make serve
,然后在浏览器打开http://localhost:8000
查看你的博客系统
博客系统的相关配置
如果你只需要一个简单的、可工作的博客,那么做完上面的工作,就可以将博客发布到github pages了,这部分的内容完全可以跳过。这部分主要是介绍一些主题和插件,让你的博客拥有更加强大的功能。
安装插件
- 在
blogs
目录运行命令git clone --recursive https://github.com/getpelican/pelican-plugins
,下载官方的插件集 - 在
pelicanconf.py
配置插件信息,例如
# 指定插件的存放目录
PLUGIN_PATHS = ['pelican-plugins']
# 在插件目录中查找需要加载的插件名字
PLUGINS = ['sitemap', 'neighbors', 'related_posts', 'tag_cloud']
- 每个插件可能需要不同的依赖以及配置,详情请参考pelican-plugins
- 最后,重新生成博客,启动服务查看插件效果(如何生成博客、启动服务,后面会介绍)
安装主题
- 在
blogs
目录运行命令git clone --recursive https://github.com/getpelican/pelican-themes
,下载官方的主题集 - 在
pelicanconf.py
配置主题信息,例如
# 指定博客主题
THEME = 'pelican-themes/attila'
- 每个主题可能需要不同的配置,详情请参考pelican-themes
- 最后,重新生成博客,启动服务查看插件效果(如何生成博客、启动服务,后面会介绍)
评论组件配置
给博客添加评论功能,让别人可以评论你的博客,本文介绍disqus评论组件的配置。主要该组件只能在服务端生效。
- 首先到disqus注册账号,并且获取你的
SITE_CODE
- 在
pelicanconf.py
中添加配置DISQUS_SITENAME = "SITE_CODE"
- 最关键的,如果想让你的评论组件生效,添加配置
SITEURL = '你博客站点的根域名'
,一定不能把这个配置留空,如果是本地调试可以留空,但是一旦发布到服务端,一定要填写 - 最后,重新生成博客,启动服务查看配置效果(如何生成博客、启动服务,后面会介绍)
谷歌分析配置
将博客信息添加谷歌分析,不仅能够让别人可以通过谷歌搜索到你的博客,而且还可以统计出有多少人在什么时间段看过你的博客,给博客增加非常强大的后台分析功能。
- 首先到google analytics注册账号,并且获取
GOOGLE_ANALYTICS_ID
- 在
pelicanconf.py
中添加配置GOOGLE_ANALYTICS = 'GOOGLE_ANALYTICS_ID'
如果需要绑定谷歌搜索控制台功能,则可以在谷歌搜索控制台获取
GOOGLE_SITE_VERIFICATION_CODE
在
pelicanconf.py
中添加配置GOOGLE_SITE_VERIFICATION = 'GOOGLE_SITE_VERIFICATION_CODE'
- 最后重新生成博客,并发布到服务端,并在google analytics验证你的配置是否生效
其他配置
- 指定静态文件目录:
STATIC_PATHS = ['images']
- 指定默认分页数值:
DEFAULT_PAGINATION = 4
- 指定博客相对路径:
ARTICLE_URL = '{date:%Y}/{date:%m}/{slug}.html'
- 其他更多的配置属性,详情请参考pelican-configs
- 最后,重新生成博客,启动服务查看配置效果(如何生成博客、启动服务,后面会介绍)
生成本地博客,以及启动服务调试
当你在本地完成了博客文章后,你需要查看一下最终效果在发布到服务端,这个时候就可以启用本地调试了。
- 首先所有博客源文件都是在
content
目录中的 - 其次在
blogs
目录中运行命令make html
,生成发布版的博客文件 - 最后在
blogs
目录中运行命令make serve
,在浏览器打开http://localhost:8000
查看你新写的博客了
发布博客
恭喜你只差最后一步就可以发布你的博客了,并且可以让别人看到你的私人博客系统,是不是很兴奋。这里主要介绍的是github的个人repository方式发布,当然如果条件允许,你也可以使用github的project方式发布,具体的区别请看publishing-sources-for-github-pages-sites。
- 首先到github注册账号,并且创建一个repository,名字为
username.github.io
- 其次到
output
目录,把你要发布的博客内容关联到新建的repository(新建的repository页面有步骤提升告诉你如何操作) - 最后将内容发布到repository
- 然后你就可以通过
https://username.github.io/index.html
访问你的博客了
总结
到这里你已经完成了一次博客的发布了,当然你的博客系统的配置是随时可以改的,哪天想换个主题了就选个新的主题更新就可以了。最后描述一下,持续写博客发布博客的流程。
content
目录编辑原始博客文件- 在
blogs
目录中运行命令make html
生成发布文件 - 在
blogs
目录中运行命令make serve
,在浏览器打开http://localhost:8000
调试你的博客 - 到
output
目录中运行
git add .
,添加跟踪所有文件的修改
git commit -m "commit msg"
,提交本地的修改
git push
,将本地修改发布到服务端
- 通过
https://username.github.io/index.html
访问你的博客