"Meta" -Erweiterung für Markdown nicht in Python2.6?
Frage
Ich versuche, die Meta -Erweiterung mit Markdown in Python 2.6 in Arbeit zu bringen. Der Code sieht so aus:
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
Und meine Datei sieht so aus:
Title: Chaleur
Date: 2010-07-11
Author: Gui13
Simple md test
![Chaleur](../content/chaleur.jpg)
Was ich gerne bekommen möchte, ist so etwas wie 'title' : 'Chaleur', 'date' : '2010-07-11', 'author' : 'gui13'
Beim Drucken der md.Meta
.
Was ich bekomme, ist Folgendes:
$ python test.py
Markdown -Version: 2.1.0
Registrierte Erweiterungen: [
Meta: {}
Es sieht also so aus, als ob die Meta -Erweiterung nicht einmal geladen ist, während sie sein sollte (Meta soll seit Version 2.0 in Markdown enthalten sein).
Wissen Sie, was das Problem ist?
Lösung
convert()
erwartet Text. Ersetzen md.convert(file)
durch 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
Ausgabe:
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']}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow