class Jekyll::PoolePlugin::Renderer

The Renderer class for Poole.

Constants

META_TAG

Public Class Methods

new(context, _markup) click to toggle source
# File lib/poole/renderer.rb, line 14
def initialize(context, _markup)
  @site   = context.registers[:site]
  @page   = context.registers[:page]

  @site_name = @site.config['title']
end

Public Instance Methods

render_all() click to toggle source
# File lib/poole/renderer.rb, line 21
def render_all
  tags = []
  tags << render_site_name
  tags << render_title
  tags << render_type
  tags << render_description
  tags << render_published_time
  tags << render_author
  tags << render_url
  tags << render_canonical
  tags << render_image
  tags.push(*render_categoies)

  tags.delete_if { |v| v.nil? || v == '' }.join("\n")
end
render_author() click to toggle source
# File lib/poole/renderer.rb, line 71
def render_author
  author = @page['author'] || @site.config['author']
  format META_TAG, property: 'article:author', content: author if author
end
render_canonical() click to toggle source
# File lib/poole/renderer.rb, line 81
def render_canonical
  url = remove_index(@site.config['url'] + @page['url'])
  format LINK_TAG, rel: 'canonical', href: url
end
render_categoies() click to toggle source
# File lib/poole/renderer.rb, line 94
def render_categoies
  Array(@page['categories']).map do |category|
    format META_TAG, property: 'article:tag', content: category
  end
end
render_description() click to toggle source

TODO: Pull from a post's excerpt if a description does not exist.

# File lib/poole/renderer.rb, line 55
def render_description
  description = @page['description'] || nil

  format(
    META_TAG,
    property: 'og:description',
    content: description) if description
end
render_image() click to toggle source
# File lib/poole/renderer.rb, line 86
def render_image
  image = @page['image'] || @site.config['og_image']
  format(
    META_TAG,
    property: 'og:image',
    content: @site.config['url'] + '/' + image) if image
end
render_published_time() click to toggle source
# File lib/poole/renderer.rb, line 64
def render_published_time
  format(
    META_TAG,
    property: 'article:published_time',
    content: @page['date'].iso8601) if @page['date']
end
render_site_name() click to toggle source
# File lib/poole/renderer.rb, line 37
def render_site_name
  format(
    META_TAG,
    property: 'og:site_name',
    content: @site_name) if @site_name
end
render_title() click to toggle source
# File lib/poole/renderer.rb, line 44
def render_title
  title = @page['title'] || @site_name
  format META_TAG, property: 'og:title', content: title if title
end
render_type() click to toggle source
# File lib/poole/renderer.rb, line 49
def render_type
  type = @page['title'] ? 'article' : 'website'
  format META_TAG, property: 'og:type', content: type
end
render_url() click to toggle source
# File lib/poole/renderer.rb, line 76
def render_url
  url = remove_index(@site.config['url'] + @page['url'])
  format META_TAG, property: 'og:url', content: url
end

Private Instance Methods

remove_index(string) click to toggle source
# File lib/poole/renderer.rb, line 102
def remove_index(string)
  string.slice!('index.html')
  string
end