选择一个平台

我需要一个开源博客平台。

或许是 Wordpress。一个商业开源博客程序,基于 PHP。

并不否认 WP 是现在最好用的开源博客之一。 但是安全行业的经历让我选择放弃无用的功能,选择更加简洁的平台。 (功能越多,攻击面就越广,这无法避免。)

也就是静态博客,例如基于 Ruby 的 Jekyll,基于 Python 的 Pelican,基于 JS 的 Hexo。 可以选择一个自己熟悉的语言。

Pelican

基于Python,高度定制化,有不少不错的插件。 使用了Python优秀的Jinja2、Markdown和Pygments模块。

Usage

参考文档 http://docs.getpelican.com/en/stable

Editor

选择了vim作为编辑器。当然还需要一点插件

Pulgin

推荐的插件有:

  • summary:适合大段summary
  • jinja2content:在文章中也可以使用jinja2,非常灵活

Theme

Bootstrap4的新Example不错,简洁,清晰。打算做一个移植。

HightLight

pygmentize -f html -S colorful -a .highlight > highlight.css

创建 pelican 工程

Python Environment

See Python Environment

mkvirtualenv --python=/usr/bin/python3 pelican

Installation

pip install pelican Markdown

Some

Start

pelican-quickstart

Theme

git clone https://github.com/getpelican/pelican-themes.git
cp pelican-bootstrap3 /path/you/pelican/theme

Plugins

git clone https://github.com/getpelican/pelican-plugins.git
cp jinjia2content /path/you/pelican/plugins

Config

edit to pelicanconf.py

# Theme
THEME = './theme'
PYGMENTS_STYLE = 'custom'
PYGMENTS_RST_OPTIONS = {'classprefix': 'pgcss', 'linenos': 'table'}
#FAVICON = 'theme/favicon.ico'

# Plugins
PLUGIN_PATHS = ['./pelican-plugins']
PLUGINS = ['jinja2content','summary']

# Static
STATIC_PATHS = [
    'static',
]
EXTRA_PATH_METADATA = {
    'extra/robots.txt': {'path': 'robots.txt'},
}