class GovukTechDocs::MetaTags

Attributes

config[R]
current_page[R]

Public Class Methods

new(config, current_page) click to toggle source
# File lib/govuk_tech_docs/meta_tags.rb, line 3
def initialize(config, current_page)
  @config = config
  @current_page = current_page
end

Public Instance Methods

browser_title() click to toggle source
# File lib/govuk_tech_docs/meta_tags.rb, line 27
def browser_title
  [page_title, site_name].select(&:present?).uniq.join(' | ')
end
canonical_url() click to toggle source
# File lib/govuk_tech_docs/meta_tags.rb, line 31
def canonical_url
  "#{host}#{current_page.url}"
end
tags() click to toggle source
# File lib/govuk_tech_docs/meta_tags.rb, line 8
def tags
  all_tags = {
    'description' => page_description,
    'og:description' => page_description,
    'og:image' => page_image,
    'og:site_name' => site_name,
    'og:title' => page_title,
    'og:type' => 'object',
    'og:url' => canonical_url,
    'twitter:card' => 'summary',
    'twitter:domain' => URI.parse(host).host,
    'twitter:image' => page_image,
    'twitter:title' => browser_title,
    'twitter:url' => canonical_url,
  }

  Hash[all_tags.select { |_k, v| v }]
end

Private Instance Methods

frontmatter() click to toggle source
# File lib/govuk_tech_docs/meta_tags.rb, line 63
def frontmatter
  current_page.data
end
host() click to toggle source
# File lib/govuk_tech_docs/meta_tags.rb, line 55
def host
  config[:tech_docs][:host].to_s
end
locals() click to toggle source
# File lib/govuk_tech_docs/meta_tags.rb, line 59
def locals
  current_page.metadata[:locals]
end
page_description() click to toggle source
# File lib/govuk_tech_docs/meta_tags.rb, line 47
def page_description
  locals[:description] || frontmatter.description
end
page_image() click to toggle source
# File lib/govuk_tech_docs/meta_tags.rb, line 39
def page_image
  "#{host}/images/govuk-large.png"
end
page_title() click to toggle source
# File lib/govuk_tech_docs/meta_tags.rb, line 51
def page_title
  locals[:title] || frontmatter.title
end
site_name() click to toggle source
# File lib/govuk_tech_docs/meta_tags.rb, line 43
def site_name
  config[:tech_docs][:full_service_name] || config[:tech_docs][:service_name]
end