Sha256: bb67af79d3c72e5146019ccbdba5bf511e81e67a3fc3203e34d4818c5ad2d607

Contents?: true

Size: 1.4 KB

Versions: 20

Compression:

Stored size: 1.4 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][:full_service_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

20 entries across 20 versions & 2 rubygems

Version Path
govuk_tech_docs-2.0.7 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-2.0.6 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-2.0.5 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-2.0.4 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-2.0.3 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-2.0.2 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-2.0.1 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-2.0.0.pre.test.pre.release.pre.525 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-2.0.0.pre.test.pre.release.pre.524 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-2.0.0.test.pre.release.521 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-2.0.0 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-1.9.0.pre.rc2 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-1.9.0.pre.gfe lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-1.8.3 lib/govuk_tech_docs/meta_tags.rb
dss_tech_docs-0.1.2 lib/govuk_tech_docs/meta_tags.rb
dss_tech_docs-0.1.1 lib/govuk_tech_docs/meta_tags.rb
dss_tech_docs-0.1.0 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-1.8.2 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-1.8.1 lib/govuk_tech_docs/meta_tags.rb
govuk_tech_docs-1.8.0 lib/govuk_tech_docs/meta_tags.rb