Meta-Data

《 初回公開:2022/03/26 , 最終更新:未 》

原文は

旧バージョンの記事は

【 目次 】

要約

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

この拡張機能は、標準の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でさらに処理する前に、すべてのメタデータがドキュメントから削除されます。

使い方

一般的な拡張機能の使用法については、拡張機能を参照してください。
拡張機能の名前としてmetaを使用します。

ささいな例:

markdown.markdown(some_text, extensions=['meta'])

メタデータへのアクセス

メタデータは、MarkdownクラスのインスタンスのMeta属性でpython Dictとして利用できるようになります。
たとえば、上記のドキュメントを使用します。

>>> md = markdown.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拡張機能によって使用される可能性があります。
可能性は開発者の想像力に任されています。

互換性のある拡張機能

次の拡張機能は、現在、メタデータ拡張機能で機能することがわかっています。
それらがサポートすることが知られているキーワードもリストされています。

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