class Middleman::CoreExtensions::FrontMatter::FrontmatterManager

def frontmatter_and_content(path)

Returns:
  • (Array) -

Parameters:
  • path (String) --
def frontmatter_and_content(path)
  full_path = if Pathname(path).relative?
    File.join(@app.source_dir, path)
  else
    path
  end
  
  data = {}
  content = nil
  if !::Middleman::Util.binary?(full_path)
    content = File.read(full_path)
    
    begin
      if content =~ /\A.*coding:/
        lines = content.split(/\n/)
        lines.shift
        content = lines.join("\n")
      end
      if result = parse_yaml_front_matter(content)
        data, content = result
      elsif result = parse_json_front_matter(content)
        data, content = result
      end
    rescue => e
      # Probably a binary file, move on
    end
  end
  [::Middleman::Util.recursively_enhance(data).freeze, content]
end