Class: Textus::Builder::Renderer::Markdown

Inherits:
Textus::Builder::Renderer show all
Defined in:
lib/textus/builder/renderer/markdown.rb

Instance Method Summary collapse

Methods inherited from Textus::Builder::Renderer

#initialize

Constructor Details

This class inherits a constructor from Textus::Builder::Renderer

Instance Method Details

#call(mentry:, data:) ⇒ Object

Raises:



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/textus/builder/renderer/markdown.rb', line 7

def call(mentry:, data:)
  raise TemplateError.new("entry '#{mentry.key}': markdown build requires a template") unless mentry.template

  body = Mustache.render(@template_loader.call(mentry.template), data)
  from = if mentry.is_a?(Textus::Manifest::Entry::Derived) &&
            mentry.source.is_a?(Textus::Manifest::Entry::Derived::Projection)
           Array(mentry.source.select).compact
         else
           []
         end
  frontmatter = {
    "generated" => {
      "at" => Time.now.utc.iso8601,
      "from" => from,
    },
  }
  Entry.for_format("markdown").serialize(meta: frontmatter, body: body)
end