class Sitepress::Parsers::Notion

Parses metadata from the header of the page.

Constants

DELIMITER
KEY_DELIMITER
TITLE_KEY

Public Class Methods

new(content) click to toggle source
# File lib/sitepress/parsers/notion.rb, line 11
def initialize(content)
  scanner = StringScanner.new(content)
  # Parse title
  scanner.scan(/# (.+)#{DELIMITER}/)
  @title = scanner.captures.first
  # Parse metadata
  @raw_data = []
  while scanner.scan(/(.+?)#{KEY_DELIMITER} (.+)\n/)
    @raw_data.append scanner.captures
  end
  scanner.scan(/\n/)
  # Parse body
  @body = scanner.rest
end

Public Instance Methods

data() click to toggle source
# File lib/sitepress/parsers/notion.rb, line 26
def data
  Hash[@raw_data.prepend([TITLE_KEY, @title])]
end