Pregunta

Estoy intentando conseguir la extensión de meta trabajar con rebaja en Python 2.6. Los código es el siguiente:

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

Y mi archivo es similar al siguiente:

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

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

Lo que me gustaría conseguir es algo así como 'title' : 'Chaleur', 'date' : '2010-07-11', 'author' : 'gui13' al imprimir el md.Meta.

Lo que se ve es la siguiente:

  

$ pitón test.py
  Versión de rebajas: 2.1.0
  extensiones registrados: []
  Meta: {}

Así que parece que la extensión meta no es ni siquiera carga, mientras que debería ser (meta se supone que debe ser incluido en Markdown desde la versión 2.0).

¿Usted sabe cuál es el problema?

¿Fue útil?

Solución

convert() espera de texto. Reemplazar md.convert(file) por 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

Salida:

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']}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top