Module: Pakyow::Presenter::FrontMatterParser Private
- Defined in:
- lib/pakyow/presenter/front_matter_parser.rb
Overview
This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.
Parses front matter from text files.
Constant Summary collapse
- MATTER_MATCHER =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
/\A---\s*\n(.*?\n?)^---\s*$\n?/m
Class Method Summary collapse
-
.parse(html_string, _file = nil) ⇒ Object
private
Parses HTML and returns a hash of front matter info.
-
.parse_and_scrub(html_string) ⇒ Object
private
Parses HTML and returns: - a hash of front matter info - the HTML with front matter removed.
-
.scrub(html_string) ⇒ Object
private
Returns HTML with front matter removed.
Class Method Details
.parse(html_string, _file = nil) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Parses HTML and returns a hash of front matter info
15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/pakyow/presenter/front_matter_parser.rb', line 15 def self.parse(html_string, _file = nil) unless match = html_string.match(MATTER_MATCHER) return Support::IndifferentHash.new end begin Support::IndifferentHash.deep(YAML.load(match.captures[0]).to_h) rescue Psych::SyntaxError => error raise FrontMatterParsingError.build(error, context: match.captures[0]) end end |
.parse_and_scrub(html_string) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Parses HTML and returns:
-
a hash of front matter info
-
the HTML with front matter removed
37 38 39 |
# File 'lib/pakyow/presenter/front_matter_parser.rb', line 37 def self.parse_and_scrub(html_string) return parse(html_string), scrub(html_string) end |
.scrub(html_string) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns HTML with front matter removed
29 30 31 |
# File 'lib/pakyow/presenter/front_matter_parser.rb', line 29 def self.scrub(html_string) html_string.gsub(MATTER_MATCHER, "") end |