Sha256: e3e047e53b23fd2ea576c82c8ea31adb900aaf0c81b193234e2eca199da2571b
Contents?: true
Size: 1.78 KB
Versions: 1
Compression:
Stored size: 1.78 KB
Contents
require "yaml" require "tilt" module Middleman::Features::FrontMatter class << self def registered(app) app.extend ClassMethods ::Tilt::register MarukuTemplate, 'markdown', 'mkd', 'md' ::Tilt::register KramdownTemplate, 'markdown', 'mkd', 'md' ::Tilt::register BlueClothTemplate, 'markdown', 'mkd', 'md' ::Tilt::register RedcarpetTemplate, 'markdown', 'mkd', 'md' ::Tilt::register RDiscountTemplate, 'markdown', 'mkd', 'md' ::Tilt::register RedClothTemplate, 'textile' end alias :included :registered end module ClassMethods def parse_front_matter(content) yaml_regex = /^(---\s*\n.*?\n?)^(---\s*$\n?)/m if content =~ yaml_regex begin data = YAML.load($1) rescue => e puts "YAML Exception: #{e.message}" end content = content.split(yaml_regex).last end data ||= {} [data, content] end end module YamlAware def prepare options, @data = Middleman::Server.parse_front_matter(@data) super end end # MARKDOWN class MarukuTemplate < ::Tilt::MarukuTemplate include Middleman::Features::FrontMatter::YamlAware end class KramdownTemplate < ::Tilt::KramdownTemplate include Middleman::Features::FrontMatter::YamlAware end class BlueClothTemplate < ::Tilt::BlueClothTemplate include Middleman::Features::FrontMatter::YamlAware end class RedcarpetTemplate < ::Tilt::RedcarpetTemplate include Middleman::Features::FrontMatter::YamlAware end class RDiscountTemplate < ::Tilt::RDiscountTemplate include Middleman::Features::FrontMatter::YamlAware end # TEXTILE class RedClothTemplate < ::Tilt::RedClothTemplate include Middleman::Features::FrontMatter::YamlAware end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
middleman-2.0.0.beta2 | lib/middleman/features/front_matter.rb |