Meta-Data

初回公開:2018/01/01
最終更新:2018/01/13

Meta-Data Extension — Python Markdown」のドキュメントをつたない翻訳,勝手な解釈。

【 目次 】

要約

Meta-Data extensionは、ドキュメントに関するメタデータを定義するための構文を追加します。
それはMultiMarkdownの構文に触発され、それに従います。
現在のところ、このextensionはメタデータを使用しませんが、ただ単に、他のextensionやPythonコードで直接使用するMarkdownインスタンスのメタ属性として提供します。

このextensionは標準のMarkdownライブラリに含まれています。


訳者による蛇足

MultiMarkdownというのは

構文

メタデータは、以下のようなMarkdown文書の冒頭に定義された一連のキーワードと値で構成されます。

Title:   My Document
Summary: A brief description of my document.
Authors: Waylan Limberg
         John Doe
Date:    October 2, 2007
blank-value: 
base_url: http://example.com
This is the first paragraph of the document.

キーワードは大文字と小文字を区別せず、文字、数字、アンダースコア、ダッシュで構成され、コロンで終わらなければなりません。
値は、行のコロンの後に続くもので構成され、空白の場合もあります。

行が4つ以上のスペースで字下げされている場合、その行は前のキーワードの値の追加行と見なされます。
キーワードは、必要な数の行を持つことができます。

最初の空白行は、ドキュメントのすべてのメタデータを終了します。
したがって、文書の最初の行を空白にすることはできません。

あるいは、YAML形式のデリミネータを使用して、メタデータの開始および/または終了をマークすることもできます。
そうする際には、文書の最初の行は---とする必要があります。
メタデータは、最初の空白行、または終端デリミネータ(---またはどちらか...)のいずれか早い方を含む最初の行で終了します。
YAMLデリミネーターはサポートされていますが、メタデータはYAMLとして解析されません。

すべてのメタデータは、Markdownによる処理が行われる前に文書から削除されます。


訳者による蛇足

YAMLについては

使い方

extensionの一般的な使用法については、Extensionsを参照、extensionの名前として markdown.extensions.metaを指定してください。

メタデータへのアクセス

メタデータは、MarkdownクラスのインスタンスのMeta属性にPythonの辞書(Dict)データとして利用可能になります。
たとえば、上記のドキュメントを使用して。

>>> md = markdown.Markdown(extensions = ['markdown.extensions.meta'])
>>> html = md.convert(text)
>>> # Meta-data has been stripped from output
>>> print html
<p>This is the first paragraph of the document.</p>

>>> # View meta-data
>>> print md.Meta
{
'title' : ['My Document'],
'summary' : ['A brief description of my document.'],
'authors' : ['Waylan Limberg', 'John Doe'],
'date' : ['October 2, 2007'],
'blank-value' : [''],
'base_url' : ['http://example.com']
}

キーはすべて小文字で、値は各項目がそのキーの1行である文字列のリストで構成されています。
こうすることで、必要に応じて改行を保存することができます。
または、必要に応じて項目を結合することもできます。
データに関する仮定はありません。
見つかったものが単にMeta属性に渡されます。

おそらく、メタデータをテンプレートシステムに渡すことも、さまざまなMarkdown extensionで使用することもできます。
可能性は開発者の想像力に任されています。

互換性のあるExtensions

現在、次のextensionsがMeta-Data extensionで動作することが知られています。
サポートすることが知られているキーワードもリストされています。

  • HeaderId
    • header_level
    • header_forceid
  • WikiLinks
    • wiki_base_url
    • wiki_end_url
    • wiki_html_class
ページのトップへ戻る