pydata

Keep Looking, Don't Settle

Static github pages with Pelican

  1. 安装 git, pelican, markdown, typogrify(增强排版)
  2. 建立blog文件夹
  3. markdown / ipynb 的源文件放在./blog/content下面
  4. 在blog下面运行 make html,如果要local查看,再运行make serve (python3 -m http.server)
  5. 主题:在blog下面下载themes,然后到pelicanconf.py里面修改主题
  6. 插件:在blog下面建立plugins文件夹,然后下载插件到这儿。然后到pelicanconf.py里面修改主题
  7. 到./blog/output目录下面 push到github

重新设置

  1. 把blog/content文件夹下面的文件拷出来备用
  2. 删除blog文件夹
  3. 到git上删除songhuiming.github.io这个repositary,在setting最下面可以删除
  4. 重复上面的步骤

添加plugins

  1. git clone plugins主题到./blog/pelican-plugins
  2. 选择需要采用的plugins,新的plugins base不支持tag cloud,所以要自己添加,要不然那儿总是空白

怎么更改页面设计

  1. 更改页首的menu

在pelicanconf.py里面更改menuitems,让它链接到你想要得页面。通常categories,archives这些都是模板自带的。

MENUITEMS = (
    ('Categories', '/functions/categories.html'),
    ('Archives', '/functions/archives.html'),
    ('About Me', '/functions/aboutMe.html')
)
  1. 更改右边的sidebar

需要到主题里面去修改(比如我选的gum主题)。进入pelican-themes/gum/template/sidebar.html,然后修改下面的(下面例子里面把原来的categories改为分类)

<h4>分类</h4>
{% if categories %}
<ul>
        {% for cat, null in categories %}
                <li><a href="{{ SITEURL }}/{{ cat.url|e }}">{{ cat }}</a></li>
        {% endfor %}
</ul>
{% endif %}

最后附加一个怎么直接使用ipynb文件作为blog

1. 按照这个 copy相应的py文件到pelican-plugins/ipyng文件夹下面
2. 在pelicanconf.py做如下修改
MARKUP = ('md', 'ipynb')
PLUGIN_PATH = './plugins'
PLUGINS = ['ipynb.markup']
3. 对每个ipynb文件,添加.ipynb-meta文件
4. 但是这个时候会发生各种import Error,找不到各种文件。需要手动添加这些文件的路径

png png

5. 比如要找IPython (traitlets)的路径,linux下面命令是locate IPython (locate traitlets),找到IPython (traitlets)的路径

png png png

6. 把路径添加到pelicanconf.py
import sys
sys.path.append('/home/shm/anaconda/pkgs/ipython-5.1.0-py27_0/lib/python2.7/site-packages/')
sys.path.append('/home/shm/anaconda/pkgs/traitlets-4.3.1-py27_0/lib/python2.7/site-packages/')
sys.path.append('/home/shm/anaconda/lib/python2.7/site-packages/')

png

Reference

  1. pelican官网翻译
  2. 一个实例
  3. 很漂亮的设计