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