代码之家  ›  专栏  ›  技术社区  ›  Gui13

python2.6中没有加载降价的“meta”扩展?

  •  2
  • Gui13  · 技术社区  · 14 年前

    我正在尝试让meta扩展与python 2.6中的markdown一起工作。 代码如下:

    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测试.py
    降价版本:2.1.0
    已注册扩展:[]
    元:

    所以看起来元扩展甚至没有被加载,而它应该被加载(自2.0版以来,元应该包含在降价中)。

    你知道有什么问题吗?

    1 回复  |  直到 14 年前
        1
  •  2
  •   jfs    14 年前

    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']}