将Pelican版本更新到3.3

用Pelican有一段时间了, 由于重装了系统, 所以安装Pelican的最新版本,最新版本为 3.3, 顺便也升级模板和插件.

Pelican特别喜欢更改配置文件, 而且错误提示非常烂, 完全不知道在说什么, 而且没有安装markdown包的话根本不提示, 仅仅就错误退出, 下面就这次升级越到的问题做个记录.

Makefile

Pelican升级后会有很多莫名奇妙的问题, 首先之前的Makefile不能使用, 所以需要重新生成一份:

pelican-quickstart .

当然上面操作会更改配置文件, 我用git管理, 所以很方便的checkout, 如果你的不是, 先备份下配置文件吧.

ATOM Feed

然后make html的时候失败提示

File /path/to/project/output/feeds/all.atom.xml is to be overwritten!

看了 pelican上的issue 原来是更改了FEED_ATOM的配置项, 使用了 FEED_ALL_ATOM配置项, 将FEED_ATOM配置项改为FEED_ALL_ATOM配置即可

但是改完之后页面的ATOM FEED链接没有指向正确的地址, 查看模板文件, 发现模板还在引用FEED_ATOM, 改成FEED_ALL_ATOM即可.

Markdown

如果莫名奇妙的错误, 没有错误信息, 也没有输出HTML, 那么可能就是markdown包没装, Pelican的错误提示真心无语.

easy_install -U markdown

Markdown 代码高亮

Markdown 是通过指定 MD_EXTENSIONS 选项类配置代码高亮的之前配置这样就可以

MD_EXTENSIONS =  (['codehilite', 'extra', 'fenced_code', 'tables', 'sane_lists'])

但是发现现在无法高亮代码, 查看了源码原来要手动指定高亮 css, 不然css会设置成 codhilite python MD_EXTENSIONS = (['codehilite(css_class=highlight)', 'extra', 'fenced_code', 'tables', 'sane_lists'])

静态文件

Pelican去掉了FILE\_TO\_COPY项, 所以之前拷贝robots.txt之类的文件, 就会失效, 使用STATIC_PATHS即可

STATIC_PATHS = [u"upload", "extra/robots.txt",
                "extra/404.html",
            ]

如果想指定静态文件位置, 可以使用STATIC_SAVE_AS, 会将静态文件存到另外一个目录, 而且对所有STATIC_PATHS项生效

STATIC_SAVE_AS = "static/"

也可以使用 EXTRA_PATH_METADATA来为每一项指定路径

EXTRA_PATH_METADATA = {
    "extra/robots.txt":{"path":"robots.txt"},
    "extra/404.html": {"path":"404.html"},
}

至此, Pelican升级完毕

Show Comments