Date Tags python

缘由

最终还是决定把博客挪到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