Skip to content

Commit 3d994eb

Browse files
authored
Merge pull request #387 from alphagov/optional-non-govuk-favicon
Allow non-GOV.UK favicon and opengraph assets
2 parents dd95f27 + c7ade1d commit 3d994eb

File tree

4 files changed

+75
-6
lines changed

4 files changed

+75
-6
lines changed

CHANGELOG.md

+8
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
## Unreleased
2+
3+
- [Allow non-GOV.UK favicon and opengraph assets](https://github.com/alphagov/tech-docs-gem/pull/387)
4+
5+
To use a non-crown assets, you need to
6+
- add `favicon.ico`, `favicon.svg` and `opengraph-image.png` to your `source/images` folder.
7+
- set `show_govuk_logo: false`
8+
19
## 4.1.2
210

311
## Fixes

lib/govuk_tech_docs/meta_tags.rb

+5-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,11 @@ def canonical_url
4848
attr_reader :config, :current_page
4949

5050
def page_image
51-
"#{host}/assets/govuk/assets/images/govuk-opengraph-image.png"
51+
if config[:tech_docs][:show_govuk_logo]
52+
"#{host}/assets/govuk/assets/images/govuk-opengraph-image.png"
53+
else
54+
"#{host}/images/opengraph-image.png"
55+
end
5256
end
5357

5458
def site_name

lib/source/layouts/core.erb

+10-5
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,16 @@
1010
<%= stylesheet_link_tag :manifest %>
1111

1212
<link rel="canonical" href="<%= meta_tags.canonical_url %>">
13-
<link rel="icon" sizes="48x48" href="/assets/govuk/assets/images/favicon.ico">
14-
<link rel="icon" sizes="any" href="/assets/govuk/assets/images/favicon.svg" type="image/svg+xml">
15-
<link rel="mask-icon" href="/assets/govuk/assets/images/govuk-icon-mask.svg" color="#0b0c0c">
16-
<link rel="apple-touch-icon" href="/assets/govuk/assets/images/govuk-icon-180.png">
17-
<link rel="manifest" href="/assets/govuk/assets/manifest.json">
13+
<% if config[:tech_docs][:show_govuk_logo] %>
14+
<link rel="icon" sizes="48x48" href="/assets/govuk/assets/images/favicon.ico">
15+
<link rel="icon" sizes="any" href="/assets/govuk/assets/images/favicon.svg" type="image/svg+xml">
16+
<link rel="mask-icon" href="/assets/govuk/assets/images/govuk-icon-mask.svg" color="#0b0c0c">
17+
<link rel="apple-touch-icon" href="/assets/govuk/assets/images/govuk-icon-180.png">
18+
<link rel="manifest" href="/assets/govuk/assets/manifest.json">
19+
<% else %>
20+
<link rel="icon" sizes="48x48" href="/images/favicon.ico">
21+
<link rel="icon" sizes="any" href="/images/favicon.svg" type="image/svg+xml">
22+
<% end %>
1823

1924
<% meta_tags.tags.each do |name, content| %>
2025
<%= tag :meta, name: name, content: content %>

spec/govuk_tech_docs/meta_tags_spec.rb

+52
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def generate_title(site_name:, page_title:)
3737
host: "https://www.example.org",
3838
service_name: "Foo",
3939
full_service_name: "Test Site",
40+
show_govuk_logo: true,
4041
)
4142

4243
current_page = double("current_page",
@@ -56,6 +57,31 @@ def generate_title(site_name:, page_title:)
5657
)
5758
end
5859

60+
it "returns standard meta tag with non GOV.UK twitter image" do
61+
config = generate_config(
62+
host: "https://www.example.org",
63+
service_name: "Foo",
64+
full_service_name: "Test Site",
65+
show_govuk_logo: false,
66+
)
67+
68+
current_page = double("current_page",
69+
data: { description: "The description.", title: "The Title" },
70+
url: "/foo.html",
71+
metadata: { locals: {} })
72+
73+
tags = GovukTechDocs::MetaTags.new(config, current_page).tags
74+
75+
expect(tags).to eql(
76+
"description" => "The description.",
77+
"twitter:card" => "summary",
78+
"twitter:domain" => "www.example.org",
79+
"twitter:image" => "https://www.example.org/images/opengraph-image.png",
80+
"twitter:title" => "The Title - Test Site",
81+
"twitter:url" => "https://www.example.org/foo.html",
82+
)
83+
end
84+
5985
it "adds a noindex robots tag when the site config prevents indexing" do
6086
config = generate_config(
6187
prevent_indexing: true,
@@ -128,6 +154,7 @@ def generate_title(site_name:, page_title:)
128154
host: "https://www.example.org",
129155
service_name: "Foo",
130156
full_service_name: "Test Site",
157+
show_govuk_logo: true,
131158
)
132159

133160
current_page = double("current_page",
@@ -147,6 +174,31 @@ def generate_title(site_name:, page_title:)
147174
)
148175
end
149176

177+
it "returns a custom opengraph meta tag image" do
178+
config = generate_config(
179+
host: "https://www.example.org",
180+
service_name: "Foo",
181+
full_service_name: "Test Site",
182+
show_govuk_logo: false,
183+
)
184+
185+
current_page = double("current_page",
186+
data: { description: "The description.", title: "The Title" },
187+
url: "/foo.html",
188+
metadata: { locals: {} })
189+
190+
og_tags = GovukTechDocs::MetaTags.new(config, current_page).opengraph_tags
191+
192+
expect(og_tags).to eql(
193+
"og:description" => "The description.",
194+
"og:image" => "https://www.example.org/images/opengraph-image.png",
195+
"og:site_name" => "Test Site",
196+
"og:title" => "The Title",
197+
"og:type" => "object",
198+
"og:url" => "https://www.example.org/foo.html",
199+
)
200+
end
201+
150202
it "uses the local variable as page title for proxied pages" do
151203
current_page = double("current_page",
152204
data: { description: "The description." },

0 commit comments

Comments
 (0)