class Gollum::Filter::YAML

Extract YAML frontmatter from data and build metadata table.

Constants

YAML_FRONT_MATTER_REGEXP

Regexp thanks to jekyll

Public Instance Methods

extract(data) click to toggle source
# File lib/gollum-lib/filter/yaml.rb, line 9
def extract(data)
  data.gsub!(YAML_FRONT_MATTER_REGEXP) do
    @markup.metadata ||= {}
    begin
      frontmatter = ::YAML.safe_load(sanitize(Regexp.last_match[1]))
      @markup.metadata.merge!(frontmatter) if frontmatter.respond_to?(:keys) && frontmatter.respond_to?(:values)
    rescue ::Psych::SyntaxError, ::Psych::DisallowedClass, ::Psych::BadAlias => error
      @markup.metadata['errors'] ||= []
      @markup.metadata['errors'] << "Failed to load YAML frontmatter: #{error.message}"
    end
    ''
  end
  data
end
process(data) click to toggle source
# File lib/gollum-lib/filter/yaml.rb, line 24
def process(data)
  data
end