«Мета» расширение для Markdown не загружается в Python2.6?

StackOverflow https://stackoverflow.com/questions/4148036

  •  30-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь получить мета-расширение, работающую с Markdown в Python 2.6. Код выглядит так:

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 должна быть включена в Markdown с версии 2.0).

Знаете ли вы, в чем проблема?

Это было полезно?

Решение

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']}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top