Class: Pocketbook::BookRenderer::FrontMatter

Inherits:
Object
  • Object
show all
Defined in:
lib/pocketbook/book_renderer/front_matter.rb

Instance Method Summary collapse

Instance Method Details

#extract(markdown) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/pocketbook/book_renderer/front_matter.rb', line 6

def extract(markdown)
  match = markdown.match(/\A---\s*\n(.*?)\n---\s*\n/m)
  return [{}, markdown] unless match

  data = YAML.safe_load(match[1], aliases: true)
  data = {} unless data.is_a?(Hash)

  [symbolize_keys(data), markdown[match[0].length..]]
rescue Psych::SyntaxError
  [{}, markdown]
end