سؤال

أحاول الحصول على امتداد META يعمل مع Marmdown في 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
نسخة تخفيض: 2.1.0
ملحقات مسجلة: [
meta: {}

لذلك يبدو أن امتداد META لم يتم تحميله ، في حين أنه يجب أن يكون (من المفترض أن يتم تضمين 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