Sha256: 1ef9822a4a25b82ff341cd5dcd37f45519ebb44552cd476d1480a3d795224a66
Contents?: true
Size: 1.93 KB
Versions: 4
Compression:
Stored size: 1.93 KB
Contents
# typed: true # frozen_string_literal: true require 'frontman/config' require 'frontman/context' require 'frontman/renderers/markdown_renderer' require 'frontman/renderers/erb_renderer' require 'frontman/resource' require 'sorbet-runtime' module RenderHelper extend T::Sig sig do params(template: String, data: T.any(Hash, CustomStruct)) .returns(String) end def partial(template, data = {}) partial_dir = Frontman::Config.get( :partial_dir, fallback: 'views/partials' ) r = Frontman::Resource.from_path( File.join(partial_dir, template), nil, false ) r.render(nil, data) end sig do params( page: Frontman::Resource, options: T.any(Hash, CustomStruct) ).returns(String) end def render_page(page, options = {}) # We force not to render any layout options[:layout] = nil options[:ignore_page] = true # We don't need to cache here since it already done in the render function # of the resource page.render(nil, options) end sig do params(options: T.any(Hash, CustomStruct)).returns(String) end def render_current_page(options = {}) render_page(Frontman::App.instance.current_page, options) end sig { params(content: String).returns(String) } def render_markdown(content) compiled = Frontman::MarkdownRenderer.instance.compile(content) Frontman::MarkdownRenderer.instance.render( compiled, nil, Frontman::Context.new, {} ) end sig do params( content: String, template_data: T.nilable(Hash) ).returns(String) end def render_erb(content, template_data = nil) context = Frontman::Context.new if !template_data.nil? && template_data template_data.each do |key, value| context.singleton_class.send(:define_method, key) { value } end end compiled = Frontman::ErbRenderer.instance.compile(content) Frontman::ErbRenderer.instance.render(compiled, nil, context, {}) end end
Version data entries
4 entries across 4 versions & 1 rubygems