Markdown的'meta'扩展没有在Python2.6中加载?

时间:2010-11-10 19:04:02

标签: python markdown meta

我正在尝试使用Python 2.6中的markdown进行元扩展。 代码如下所示:

import markdown as m

print "Markdown version: ", m.version
file = "file.md"
md = m.Markdown( extensions = ['meta']) # doesn't complain
print "Registered extensions: ", md.registeredExtensions
text = open(file)
try:
    md.convert(file)
except AttributeError as a:
    print "Error: ", a
print "Meta: ", md.Meta

我的文件看起来像这样:

Title: Chaleur
Date: 2010-07-11
Author: Gui13

Simple md test
![Chaleur](../content/chaleur.jpg)

打印'title' : 'Chaleur', 'date' : '2010-07-11', 'author' : 'gui13'时,我希望获得的内容与md.Meta类似。

我得到的是:

  

$ python test.py
  Markdown版本:2.1.0
  注册扩展名:[]
  Meta:{}

所以看起来meta扩展甚至没有被加载,而它应该是(meta应该包含在版本2.0以来的Markdown中)。

你知道这是什么问题吗?

1 个答案:

答案 0 :(得分:2)

convert()期待文字。将md.convert(file)替换为md.convert(open(file).read())

import markdown as m

print "Markdown version: ", m.version
file = "file.md"
md = m.Markdown(extensions=['meta']) # doesn't complain

print "Registered extensions: ", md.registeredExtensions
print "Preprocessors:", md.preprocessors.keys()
text = open(file).read()
try:
    print md.convert(text)
except AttributeError as a:
    print "Error: ", a
print "Meta: ", md.Meta

输出:

Markdown version:  2.1.0
Registered extensions:  []
Preprocessors: ['meta', 'html_block', 'reference']
<p>Simple md test
<img alt="Chaleur" src="../content/chaleur.jpg" /></p>
Meta:  {u'date': [u'2010-07-11'], u'author': [u'Gui13'], u'title': [u'Chaleur']}