class MCMarkdown::Parsers::Frontmatter

Attributes

content[R]

Public Class Methods

new(content) click to toggle source
# File lib/mc_markdown/parsers/frontmatter.rb, line 7
def initialize content
  @content = content
end

Public Instance Methods

parsed() click to toggle source
# File lib/mc_markdown/parsers/frontmatter.rb, line 11
def parsed
  match   = content.match( frontmatter_regex )
  raw_fm  = match[1]
  content = match[2]

  if raw_fm && !raw_fm.empty?
    frontmatter = SafeYAML.load raw_fm, safe: true,
                                        deserialize_symbols:  true,
                                        raise_on_unknown_tag: true
  else
    frontmatter = {}
  end

  [ frontmatter, content ]
end

Private Instance Methods

frontmatter_regex() click to toggle source
# File lib/mc_markdown/parsers/frontmatter.rb, line 29
def frontmatter_regex
  # http://rubular.com/r/tJ6VoFBuqK
  # [1] => frontmatter || nil
  # [2] => content
  /(?:(?:\A-{3,}\s*\n+) (.+?) (?:-{3,}\s*\n+))? (.*)/mx
end