govuk_publishing_components 21.6.1 → 21.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/views/govuk_publishing_components/components/_layout_for_admin.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/docs/machine_readable_metadata.yml +8 -0
- data/lib/govuk_publishing_components/presenters/machine_readable/government_service_schema.rb +62 -0
- data/lib/govuk_publishing_components/presenters/schema_org.rb +3 -0
- data/lib/govuk_publishing_components/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a13af1fed7c83644cba1a6560410b377afc3b56c6f6052fb0bbeb415463606af
|
4
|
+
data.tar.gz: 9073f4bc6aecb731bd1feb06af7d644f6f58a7c4e415eb29514d42e86322d6e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e2198e7fd14f2db62e344f6afab74c9a7b95a498d7466dde50d46cb6b5419e95b7cef3cdbdced865f5caf4d46edf96e9a87f140908910100d85c2a412678fcb
|
7
|
+
data.tar.gz: b13e4685a7e3edb57402610401f98a862dd05c808ccb5f4c579fbab37d0d09520701f1980602e004bc6062a470b70b508e92a05e6cc355a18f5fb0d5eedfca42
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<%= csrf_meta_tags %>
|
11
11
|
<%= favicon_link_tag "govuk_publishing_components/favicon-#{environment}.png" %>
|
12
12
|
<%= stylesheet_link_tag "application" %>
|
13
|
-
<%= stylesheet_link_tag "print", media: print %>
|
13
|
+
<%= stylesheet_link_tag "print", media: "print" %>
|
14
14
|
<%= javascript_include_tag "govuk_publishing_components/vendor/modernizr" %>
|
15
15
|
<%= yield :head %>
|
16
16
|
</head>
|
@@ -62,6 +62,14 @@ examples:
|
|
62
62
|
<p>Your next of kin may need a strong stomach</p>
|
63
63
|
schema: :faq
|
64
64
|
canonical_url: https://www.gov.uk/how-to-train-your-dragon
|
65
|
+
government_service_schema:
|
66
|
+
data:
|
67
|
+
content_item:
|
68
|
+
title: "Apply for your first dragon"
|
69
|
+
base_path: "/apply-for-your-first-dragon"
|
70
|
+
description: "Apply for your first dragon from the Ministry of Dragons online"
|
71
|
+
details: {}
|
72
|
+
schema: :government_service
|
65
73
|
person_schema:
|
66
74
|
data:
|
67
75
|
content_item:
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module GovukPublishingComponents
|
2
|
+
module Presenters
|
3
|
+
class GovernmentServiceSchema
|
4
|
+
attr_reader :page
|
5
|
+
|
6
|
+
def initialize(page)
|
7
|
+
@page = page
|
8
|
+
end
|
9
|
+
|
10
|
+
def structured_data
|
11
|
+
# http://schema.org/GovernmentService
|
12
|
+
{
|
13
|
+
"@context" => "http://schema.org",
|
14
|
+
"@type" => "GovernmentService",
|
15
|
+
"name" => page.title,
|
16
|
+
"description" => page.description,
|
17
|
+
"url" => page.canonical_url
|
18
|
+
}
|
19
|
+
.merge(provider)
|
20
|
+
.merge(related_services)
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def related_services
|
26
|
+
related_links = page.content_item.dig('links', 'ordered_related_items')
|
27
|
+
|
28
|
+
return {} unless related_links.present?
|
29
|
+
|
30
|
+
{
|
31
|
+
"isRelatedTo" => related_links.each_with_object([]) do |link, items|
|
32
|
+
if link['schema_name'] == 'transaction'
|
33
|
+
items << {
|
34
|
+
"@type" => "GovernmentService",
|
35
|
+
"name" => link['title'],
|
36
|
+
"url" => link['web_url']
|
37
|
+
}
|
38
|
+
end
|
39
|
+
end
|
40
|
+
}
|
41
|
+
end
|
42
|
+
|
43
|
+
def provider
|
44
|
+
organisations = page.content_item.dig('links', 'organisations')
|
45
|
+
|
46
|
+
return {} unless organisations.present?
|
47
|
+
|
48
|
+
providers = organisations.map do |organisation|
|
49
|
+
{
|
50
|
+
"@type" => "GovernmentOrganization",
|
51
|
+
"name" => organisation['title'],
|
52
|
+
"url" => organisation['web_url']
|
53
|
+
}
|
54
|
+
end
|
55
|
+
|
56
|
+
{
|
57
|
+
"provider" => providers
|
58
|
+
}
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -2,6 +2,7 @@ require 'govuk_publishing_components/presenters/machine_readable/page'
|
|
2
2
|
require 'govuk_publishing_components/presenters/machine_readable/article_schema'
|
3
3
|
require 'govuk_publishing_components/presenters/machine_readable/creative_work_schema'
|
4
4
|
require 'govuk_publishing_components/presenters/machine_readable/faq_page_schema'
|
5
|
+
require 'govuk_publishing_components/presenters/machine_readable/government_service_schema'
|
5
6
|
require 'govuk_publishing_components/presenters/machine_readable/has_part_schema'
|
6
7
|
require 'govuk_publishing_components/presenters/machine_readable/is_part_of_schema'
|
7
8
|
require 'govuk_publishing_components/presenters/machine_readable/news_article_schema'
|
@@ -24,6 +25,8 @@ module GovukPublishingComponents
|
|
24
25
|
FaqPageSchema.new(page).structured_data
|
25
26
|
elsif page.schema == :article
|
26
27
|
ArticleSchema.new(page).structured_data
|
28
|
+
elsif page.schema == :government_service
|
29
|
+
GovernmentServiceSchema.new(page).structured_data
|
27
30
|
elsif page.schema == :news_article
|
28
31
|
NewsArticleSchema.new(page).structured_data
|
29
32
|
elsif page.schema == :person
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: govuk_publishing_components
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 21.
|
4
|
+
version: 21.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GOV.UK Dev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-10-
|
11
|
+
date: 2019-10-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gds-api-adapters
|
@@ -744,6 +744,7 @@ files:
|
|
744
744
|
- lib/govuk_publishing_components/presenters/machine_readable/article_schema.rb
|
745
745
|
- lib/govuk_publishing_components/presenters/machine_readable/creative_work_schema.rb
|
746
746
|
- lib/govuk_publishing_components/presenters/machine_readable/faq_page_schema.rb
|
747
|
+
- lib/govuk_publishing_components/presenters/machine_readable/government_service_schema.rb
|
747
748
|
- lib/govuk_publishing_components/presenters/machine_readable/has_part_schema.rb
|
748
749
|
- lib/govuk_publishing_components/presenters/machine_readable/is_part_of_schema.rb
|
749
750
|
- lib/govuk_publishing_components/presenters/machine_readable/news_article_schema.rb
|