module Middleman::CoreExtensions::FrontMatter

Frontmatter namespace

Public Class Methods

included(app)
Alias for: registered
registered(app) click to toggle source

Once registered

# File lib/middleman-core/core_extensions/front_matter.rb, line 13
def registered(app)
  # Parsing YAML frontmatter
  require "yaml"

  # Parsing JSON frontmatter
  require "active_support/json"

  app.send :include, InstanceMethods

  app.before_configuration do
    files.changed { |file| frontmatter_manager.clear_data(file) }
    files.deleted { |file| frontmatter_manager.clear_data(file) }
  end

  app.after_configuration do
    ::Middleman::Sitemap::Resource.send :include, ResourceInstanceMethods

    sitemap.register_resource_list_manipulator(
      :frontmatter,
      frontmatter_manager
    )

    sitemap.provides_metadata do |path|
      fmdata = frontmatter_manager.data(path).first || {}

      data = {}
      %w(layout layout_engine).each do |opt|
        data[opt.to_sym] = fmdata[opt] unless fmdata[opt].nil?
      end

      { :options => data, :page => fmdata }
    end
  end
end
Also aliased as: included