UP
Table of Contents(目次)
前のページへ
Python-Markdown Extensionsのつたない翻訳


WikiLinks

執筆:2018/01/01
更新:2018/01/13

WikiLinks Extension — Python Markdown」をつたない翻訳,勝手な解釈。

【 目次 】

要約

WikiLinks extensionは、WikiLinkのサポートを追加します。
具体的には、任意の [[bracketed]]ワード(二重のブラケット付きのワード)がリンクに変換されます。
このextensionは標準のMarkdownライブラリに含まれています。

構文

[[bracketed]]ワードは、二重括弧で囲まれた大文字または小文字、数字、ダッシュ、下線とスペースの任意の組み合わせです。
したがって、

[[Bracketed]]

次のHTMLが生成されます。

<a href="/Bracketed/" class="wikilink">Bracketed</a>

WikiLinksには自動的にclass="wikilink"割り当てられているので、必要に応じてページ上の他のリンクとは別のスタイルのWikiLinkを簡単に作成できます。
クラスを変更する方法については、以下を参照してください。

また、スペースが使用されている場合、そのスペースはリンクのアンダースコアに変換されますが、ラベルはそのままです。
おそらく、以下の例がベストな説明になるでしょう:

[[Wiki Link]]

結果

<a href="/Wiki_Link/" class="wikilink">Wiki Link</a>

使い方

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

extensionの設定については、ライブラリリファレンスを参照してください。

デフォルトの動作では、各リンクを現在のドメインのドキュメントルートにポイントし、末尾にスラッシュを付けて閉じます。
さらに、各リンクはHTMLクラス属性wikilinkが割り当てられます。

デフォルトの動作を変更するには、次のオプションが用意されています。

  • base_url: URLの先頭に追加する文字列。

    Default: '/'

  • end_url: URLの末尾に追加する文字列。

    Default: '/'

  • html_class: CSSクラス。なしの場合は空白のままにします。

    Default: 'wikilink'

  • build_url: その部分からURLをフォーマットするための呼び出し可能なオブジェクト(関数)を指定します。

例として、リンクが常にサブディレクトリ/wiki/を指し 、終わりに.htmlを付加するには。

>>> from markdown.extensions.wikilinks import WikiLinkExtension
>>> html = markdown.markdown(text,
...     extensions=[WikiLinkExtension(base_url='/wiki/', end_url='.html')]
... )

上記の結果は、[[WikiLink]]に対して、次のリンクを生成するでしょう。

<a href="/wiki/WikiLink.html" class="wikilink">WikiLink</a>

もし、baseおよび/またはURLのendを変更することでまさにより以上の事をしたいなら、3つの引数(label、 base、およびend)を受け入れる呼び出し可能なオブジェクトを渡すこともまたできます。
呼び出し可能なオブジェクトは、その全体のURLを返します。

>>> def my_url_builder(label, base, end):
...    # ここにlabel, base, end引数を使ってurlを生成するコードを記述する
...    return url
...
>>> html = markdown.markdown(text,
...     extensions=[WikiLinkExtension(build_url=my_url_builder)],
... )

クラス属性を変更または削除するためのオプションも用意されています。

>>> html = markdown.markdown(text,
...     extensions=[WikiLinkExtension(html_class='myclass')]
... )

すべてのWikiLinkに対してクラス属性myclassが割り当てられます。

<a href="/WikiLink/" class="myclass">WikiLink</a>

Meta-Data extensionをいっしょに使う

WikiLinks extensionは、Meta-Data Extensionもサポートしています。
詳細については、そのextensionのドキュメントを参照してください。
サポートされているメタデータキーワードは次のとおりです。

  • wiki_base_url
  • wiki_end_url
  • wiki_html_class

これを使用すると、メタデータはextension_configsインタフェースを通じて提供される設定より優先されます。

このドキュメント:

wiki_base_url: http://example.com/
wiki_end_url:  .html
wiki_html_class:

A [[WikiLink]] in the first paragraph.
<p>A <a href="http://example.com/WikiLink.html">WikiLink</a> in the first paragraph.</p>

訳者による蛇足

恥ずかしながら、Wikiという言葉の意味が理解できていなかったので

WikiLinksというキーワードでググってみたら、関係ないWikiLinksというスマホあぷりがヒットしてしまった。
ウィキペディアを参照するのに便利なアプリらしい。

そもそもWikiというのは

Web上からハイパーリンクをはって、みんなで文章を編集,知識を共有するためのシステムの事らしい。
ハワイ語で「速い」を意味する形容詞だって。
うきうきって気分(おやじギャグで失礼)。

ここでいうWikiLinksという意味は、ウィキ文書のマークアップ構文、[[リンクドキュメント]]をhtmlのアンカータタグに変換するextensionという事のようだ。

ページのトップへ戻る