module NoraMark
module Html
class FrontmatterWriter
include Util
def initialize(generator)
@generator = generator
@context = generator.context
@writers = {
stylesheets: proc do |value|
value = [value] if value.is_a? String
@context.stylesheets.concat value
end,
title: proc do |value|
@context.title = escape_html value
end,
lang: proc do |value|
@context.lang = escape_html value.strip
end,
paragraph_style: proc do |value|
@context.paragraph_style = value.strip.to_sym
end,
namespace: proc do |value|
@context.namespaces.merge! value
end,
meta: proc do |value|
@context.metas << value
end
}
end
def write(node)
if node.yaml.keys.map(&:to_sym).include? :stylesheets
@context.stylesheets = []
end
if node.yaml.keys.map(&:to_sym).include? :meta
@context.metas = []
end
node.yaml.each {
|k,v|
writer = @writers[k.to_sym]
writer.call(v) unless writer.nil?
}
end
end
end
end