缘由
最终还是决定把博客挪到github上, 因为还是要用win, endnote重度依赖是一方面.处理"excel达人"遗留的神奇宏绘图是另一方面. 所以不得不在win下配好pelican.
最小环境配置
- git必装, github选装, 如果装了github, 那么win下的gitbash还算功能不错, git自带的那个bash实在是不甚好用
- python环境,我是python2.7.10
- pip一定要配好
- 用不用virtualenv全看个人喜好
- GNU make for win, 稍微有点麻烦,装好了还得记得加环境变量.
- 写markdown的编辑器得有个,我现在拿sublime写,开着vim model(就是大家说的真-神经病模式). 但是说实话win下gvim太难用了, 不算是真正能投入使用的工具, 没有偏爱的文本编辑器的话, notepad其实也可一用.
装装装
pip install pelican
pip install markdown
建个文件夹比如d:/blog之类的,进去,开cmd
pelican-quickstart
一路回车下来, 这些问题其实是回答pelicanconf.py的一些参数, 可以随便写了之后再改.
比如我的配置是
#!/usr/bin/env python
# -*- coding: utf-8 -*- #
from __future__ import unicode_literals
AUTHOR = u'Runsheng'
SITENAME = u'Buskined bioinformatics'
SITEURL = ''
PATH = 'content'
TIMEZONE = 'Asia/Shanghai'
DEFAULT_LANG = u'en'
建一个测试页面试下
在content
目录里面随便写个 test.md, 其中Title, data, Author三项必须有,否则 duang~
另外data的支持形式还算多样: 2015/06/17, 2015-06-17之类的都没问题
Title: 使用pelican搭建基于git的静态博客
Date: 2015/06/17
Category: 中文
Tags: python
Author: runsheng
之后回到blog
根目录, 也就是makefile在的地方, make html
. 该命令其实等价于pelican D:/blog/content/ -o D:/blog/output -s D:/blog/pelicanconfg.py
. 也就是说如果不幸GNU make
装不好的话也是有办法运行pelican的.
可喜可贺,可喜可贺啊.
生成的网页文件在/output下面. 如果通过了,'make serve'就可以在'localhost:8000'看下了.
精雕细琢
换主题
在blog目录下,把所有集成主题全部拿下一个个挑
git clone --recursive https://github.com/getpelican/pelican-themes
结果最后还是用了bootstrap变体, pelican-bootstrap3, 这个主题现在有个小坑, 在使用tipue_search插件搜索的时候, 搜索到的结果会返回 undefined.
不过这个分支https://github.com/phips/pelican-bootstrap3/tree/bump_tipue_to_v5/可以解决这个问题, 看到已经提交了pull request.
把改动的几个css和js放到 pelican-bootstrap3/static/tipuesearch下面替换现有文件即可.
根据主题选插件
在blog目录下,把所有集成插件全部拿下
git clone --recursive https://github.com/getpelican/pelican-plugins
虽然大部分插件都是全主题可用的,但是也存在好用与否的问题, 有些插件在原生主题上就需要你自己改base.css才能用,所以尽量配套选,避免麻烦.
最终状态
PLUGIN_PATHS = ['D:/blog/pelican-plugins']
PLUGINS = ['summary','sitemap','neighbors','tipue_search','tag_cloud']
DIRECT_TEMPLATES = ('index', 'categories', 'authors', 'archives', 'search')
tipue_search
在PLUGINS
中加入'tipue_search'
,在DIRECT_TEMPLATES
加入'search'
, 见上面最终状态。
tag_cloud
老实说,这个是不得不用,如果不打开,那么tag
显示永远为空.
在PLUGINS
中加入'tag_cloud'
,config文件中写入
DISPLAY_TAGS_ON_SIDEBAR = True
TAGS_URL = "tags.html"
tag_cloud = True
sitemap
在PLUGINS
中加入'sitemap'
,这样每次make html之后会生成site.xml文件供搜索.
SITEMAP = {
'format': 'xml',
'priorities': {
'articles': 0.7,
'indexes': 0.5,
'pages': 0.5
},
'changefreqs': {
'articles': 'monthly',
'indexes': 'daily',
'pages': 'monthly'
}
}
Disqus评论账户
git只存储静态网页,动态的评论可以托管给Disqus
系统,国内的比如多说
其实也可以, 但是原生theme不支持, 需要插件.
DISQUS_SITENAME = 'Shortname'
Google Analytics
拿到的tracking ID
是'UA-00000000-0'
格式的
GOOGLE_ANALYTICS = 'Tracking ID'
google站长工具还是很好用的。
预览没问题就可推到git上去了(以github为例)
github建一个repo, 名字为runsheng.github.io
这个名字必须是用户名.github.io
或者用户名.github.com
的形式
进入gitbash, 切到/blog/output目录下
把生成的静态页面推到github page上.
git init
git add .
git remote add origin https://github.com/runsheng/runsheng.github.io
git pull origin master
git commit "add html"
git push origin master
之后就可以访问 runsheng.github.io了.
填坑实录,pelicanconf.py
参数重设 (2015/07/07更新)
1. 需要注意的是PATHS参数现在同意接受list而不是string作为参数了,当然PLUGIN_PATHS = 'D:/blog/pelican-plugins'
也能用, 但是会出warning.
2. pelican-bootstrap3这个主题,在使用tipue_search插件搜索的时候, 搜索到的结果会返回 undefined.
不过这个分支https://github.com/phips/pelican-bootstrap3/tree/bump_tipue_to_v5/可以解决这个问题, 看到已经提交了pull request.
把改动的几个css和js放到 pelican-bootstrap3/static/tipuesearch下面替换现有文件即可.
3. DISQUS_SITENAME的评论有些网页能加载,有些不能,会返回“We are unable to load Disqus...”
本人实在JS debug无力。根据官方文档的说法,很可能是因为disqus_url由相对路径生成,但是生成的其实不对。针对这个倒是可以改下参数:
SITEURL = 'http://runsheng.github.io'
RELATIVE_URLS = False
似乎问题是解决了,不过这样就没办法在本地预览评论了,需要推上git之后才能看到。
4. pelican-bootstrap3这个主题必须使用tag_cloud插件,否则tag不能正常显示
5. 未解决,百度收录问题。
google站长工具很好用,提交url很方便。 相应的百度就是不友好的典型了。首先百度爬虫(他们自己叫蜘蛛)是被github限制了访问的,抓不到网站是正常。手动提交网址链接之后依旧全无反应,搁置了。
Comments
comments powered by Disqus