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?

War es hilfreich?

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
scroll top