自从用 Felix Felicis (liquidluck) 生成博客内容,根据自身需要对其做了部分功能扩充,本文记录修改的情况。
打开 Python-Markdown1 部分扩展 Markdown 语法支持
Python-Markdown 支持的扩展 Markdown 语法很丰富,可以参考 http://packages.python.org/Markdown/extensions/index.html,部分扩展语法的中文说明可参考扩展 Markdown 语法。
只需要修改一个文件 liquidluck/readers/mkd.py
,打开 Extra 和 Table of Contents 的扩展支持,修改内容2如下:
-------------------------- liquidluck/readers/mkd.py --------------------------
@@ -81,7 +81,7 @@ def markdown(text):
for module in markdown_prefork.values():
if module:
text = import_module(module)(text)
- md = Markdown()
+ md = Markdown(extensions=['extra','toc'])
return md.convert(text)
增加 Gravatar 作为博客 favicon3
参考 WordPress 技巧:使用 Gravatar 作为博客的 Favicon 和 Gravatar 官方开发资源进行修改,内容4如下:
---------------------- liquidluck/_templates/layout.html ----------------------
@@ -3,6 +3,7 @@
<head>
<meta charset="UTF-8">
<title>{% block title %}{{context.sitename}}{% endblock %}</title>
+ {% if context.gravatar %}<link rel="shortcut icon" href="{{gravatar_url(16)}}" />{% endif %}
<script>if (top !== self) top.location = self.location;</script>
<meta name="HandheldFriendly" content="True" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0" />
------------------------ liquidluck/writers/default.py ------------------------
@@ -4,6 +4,7 @@
import os
import sys
import hashlib
+import urllib
from math import log
from liquidluck.writers import Writer, FeedMixin, PagerMixin
@@ -15,6 +16,17 @@ from liquidluck import logger
_hash_cache = {}
+def gravatar_url(size):
+ """
+ generate URL requiered to request a Gravatar Image
+ using varialbe in config.ini context section:
+ gravatar: your gravatar email address
+ """
+
+ gravatar_url = "http://www.gravatar.com/avatar/" + hashlib.md5(ns.context.gravatar.lower()).hexdigest() + "?"
+ return gravatar_url + urllib.urlencode({'s':str(size)})
+
+
def static_url(name):
global _hash_cache
url = ns.site.static_prefix
@@ -40,6 +52,7 @@ class StaticWriter(Writer):
def start(self):
ns.storage.functions.update({'static_url': static_url})
+ ns.storage.functions.update({'gravatar_url': gravatar_url})
return
def run(self):
配置文件 config.ini 中 [context]
添加 gravatar 配置项,填写 Gravatar 的邮箱地址。新增的 gravatar_url 函数,用于生成获取 Gravatar 图片的链接,参数是获取图片的大小。如果使用其他模板,只需要在模板的 <head>
元素中添加 {% if context.gravatar %}<link rel="shortcut icon" href="{{gravatar_url(16)}}" />{% endif %}
就能将 Gravatar 作为博客 favicon3。
post 增加修改时间参数
帖子增加新的元数据参数 modified
,用于表示帖子最近一次修改的时间。依据 Felix Felicis wiki,帖子可以增加任意多的元数据。但由于自定义的元数据以字符串处理,因此增加时间参数就需要修改源码,将其转换成 datatime 类型。此处修改内容5如下,模板的修改主要是为了显示需要:
----------------------- liquidluck/_templates/post.html -----------------------
@@ -31,9 +31,15 @@
</div>
<div class="entry-meta fn-clear">
<p class="entry-time fn-left">
- Created at:
- <a href="/{{post.date.year}}/" rel="index"><time class="updated" datetime="{{post.date|xmldatetime}}" pubdate>{{post.date.strftime("%a, %b %d, %Y")}}</time></a>
+ Created at:
+ <a href="/{{post.date.year}}/" rel="index"><time class="created" datetime="{{post.date|xmldatetime}}" pubdate="pubdate">{{post.date.strftime("%a, %b %d, %Y")}}</time></a>
</p>
+ {% if post.modified %}
+ <p class="entry-time fn-left">
+ Modified at:
+ <time class="modified" datetime="{{post.modified|xmldatetime}}">{{post.modified.strftime("%a, %b %d, %Y")}}</time>
+ </p>
+ {% endif %}
{% if post.tags %}
<p class="entry-tags fn-left">
Tagged in:
------------------------ liquidluck/readers/__init__.py ------------------------
@@ -135,6 +135,14 @@ class Reader(object):
ns.storage.errors.append(self.filepath)
return None
+ if post.get('modified', None):
+ """ add a new parameter 'modified' in post, it indicates the last post modification date """
+ try:
+ post.modified = self._parse_datetime(post.get('modified'))
+ except ValueError as e:
+ ns.storage.errors.append(self.filepath)
+ return None
+
for key in post.keys():
if '_date' in key or '_time' in key:
try:
相关内容
-
生成本博客内容的 Felix Felicis 程序使用的 Markdown 解析包 ↩