Converters(コンバータ)
サイトで使用したい新しいマークアップ言語がある場合は、あなた自身のコンバータを実施することで含めることができます。MarkdownとTextileのマークアップ言語は共にこのメソッドを実施しています。
Front Matterを忘れないでください
JekyllはYAMLヘッダ最初にあるファイルだけを変換します。それはプラグインで追加したコンバータの場合も同様です。
以下は.upcase
で終わる全てのポストを取得して、UpcaseConverter
を使用して変換するコンバータです。
module Jekyll
class UpcaseConverter < Converter
safe true
priority :low
def matches(ext)
ext =~ /^\.upcase$/i
end
def output_ext(ext)
".html"
end
def convert(content)
content.upcase
end
end
end
コンバータは最低3つのメソッドが必要です。
メソッド | 説明 |
---|---|
|
このコンバータで使用する拡張子のリストと一致するかどうか。(ドットを含む)ファイルの拡張子の引数をとる。一致する場合は |
|
(ドットを含む)出力ファイルの拡張子。
通常は |
|
コンテンツの変換ロジック。(front matterを含まない)ファイルのコンテンツを引数としてとります。文字列を返す必要があります。 |
先ほどの例では、UpcaseConverter#matches
でファイル名の拡張子が.upcase
かを確認し、そうであるならコンバータでレンダリングします。コンテンツを処理するためにUpcaseConverter#convert
を呼ぶということです。先ほどのシンプルなコンバータは、単純にコンテンツの文字列を大文字に変換します。最後に、ページをして保存するときに.html
拡張子を使用します。