Sha256: 033b054d3824b6379fba9561e22fab29d4b899e1abadff56f48c732fd13dc676

Contents?: true

Size: 1.36 KB

Versions: 9

Compression:

Stored size: 1.36 KB

Contents

module GovukTechDocs
  class MetaTags
    def initialize(config, current_page)
      @config = config
      @current_page = current_page
    end

    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

    def browser_title
      [page_title, site_name].select(&:present?).uniq.join(' | ')
    end

    def canonical_url
      "#{host}#{current_page.url}"
    end

  private

    attr_reader :config, :current_page

    def page_image
      "#{host}/images/govuk-large.png"
    end

    def site_name
      config[:tech_docs][:service_name]
    end

    def page_description
      locals[:description] || frontmatter.description
    end

    def page_title
      locals[:title] || frontmatter.title
    end

    def host
      config[:tech_docs][:host].to_s
    end

    def locals
      current_page.metadata[:locals]
    end

    def frontmatter
      current_page.data
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
govuk_tech_docs-1.7.0 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-1.6.3 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-1.6.2 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-1.6.1 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-1.6.0 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-1.5.0 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-1.4.0 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-1.3.1 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-1.3.0 lib/govuk_tech_docs/meta_tags.rb