Jekyllのお勉強 -YAML部分と記事本文を分離する正規表現-
JekyllのYAML部分と記事本文を分離していると思われる正規表現を確認する。
正規表現
/\A(---\s*\n.*?\n?)^(---\s*$\n?)/m
こんな感じらしい
# Read the YAML frontmatter.
#
# base - The String path to the dir containing the file.
# name - The String filename of the file.
#
# Returns nothing.
def read_yaml(base, name)
begin
self.content = File.read(File.join(base, name))
if self.content =~ /\A(---\s*\n.*?\n?)^(---\s*$\n?)/m
self.content = $POSTMATCH
self.data = YAML.safe_load($1)
end
rescue SyntaxError => e
puts "YAML Exception reading #{File.join(base, name)}: #{e.message}"
rescue Exception => e
puts "Error reading file #{File.join(base, name)}: #{e.message}"
end
self.data ||= {}
end参考
Backlinks
Jekyllのタグとカテゴリを整理するために、一覧表示するWebアプリ(個人用)をつくった
カテゴリ名を一括変換したり、タグ名を整理する際に、今どうなっているか一覧にしたかったので、Railsで作ってみた。
無事一覧が出来たので気持ちいい。こういう庭いじり好きかも笑。
https://github.com/meganii/JekyllFFviewer Postsテーブル作成 metadataとして、JekyllのFront Matterを格納する。
2014-12-13
JekyllのFront matterを抽出する
require 'rubygems' require 'english' require 'yaml' content = File.read('test.markdown') content =~ /\A(---\s*\n.*?\n?)^(---\s*$\n?)/m YAML.load($MATCH)
参考 Jekyllのお勉強 -YAML部分と記事本文を分離する正規表現- Front-matter Module: English (Ruby 2.0.0)
2014-06-24