class Kentico::Kontent::Resolvers::FrontMatterResolver
This class resolve the front matter of the page. It will be merged with internally generated front matter.
Public Class Methods
new(global_config)
click to toggle source
# File lib/kontent-jekyll/resolvers/front_matter_resolver.rb, line 98 def initialize(global_config) @global_config = global_config end
Public Instance Methods
execute(content_item, page_type)
click to toggle source
# File lib/kontent-jekyll/resolvers/front_matter_resolver.rb, line 102 def execute(content_item, page_type) front_matter = resolve_internal(content_item, page_type) if custom_resolver extra_data = custom_resolver.resolve(content_item, page_type) front_matter.merge!(extra_data) if extra_data end front_matter end
Private Instance Methods
custom_resolver()
click to toggle source
User-provided provided resolver is instantiated based on the name from configuration.
# File lib/kontent-jekyll/resolvers/front_matter_resolver.rb, line 118 def custom_resolver return @custom_resolver if @custom_resolver resolver_name = @global_config.front_matter_resolver return unless resolver_name @custom_resolver = Module.const_get(resolver_name).new end
page?()
click to toggle source
# File lib/kontent-jekyll/resolvers/front_matter_resolver.rb, line 153 def page? @page_type == Constants::PageType::PAGE end
post?()
click to toggle source
# File lib/kontent-jekyll/resolvers/front_matter_resolver.rb, line 157 def post? @page_type == Constants::PageType::POST end
resolve_internal(content_item, page_type)
click to toggle source
Posts and pages have different default front matter (tags, categories etc) so we need to determine the correct internal resolver based on the page type.
# File lib/kontent-jekyll/resolvers/front_matter_resolver.rb, line 131 def resolve_internal(content_item, page_type) @content_item = content_item @page_type = page_type resolver_factory .new(@global_config, type_config, content_item) .resolve end
resolver_factory()
click to toggle source
Determines default front matter resolver based on the page type.
# File lib/kontent-jekyll/resolvers/front_matter_resolver.rb, line 143 def resolver_factory return PostFrontMatterResolver if post? PageFrontMatterResolver if page? end
type_config()
click to toggle source
# File lib/kontent-jekyll/resolvers/front_matter_resolver.rb, line 148 def type_config return @global_config.posts if post? @global_config.pages[@content_item.system.type] if page? end