govspeak 6.7.5 → 6.8.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/CHANGELOG.md +18 -0
- data/README.md +1 -2
- data/lib/govspeak/html_sanitizer.rb +1 -1
- data/lib/govspeak/template_renderer.rb +1 -1
- data/lib/govspeak/version.rb +1 -1
- data/lib/govspeak.rb +7 -5
- data/test/govspeak_button_test.rb +8 -8
- data/test/govspeak_test.rb +92 -37
- data/test/test_helper.rb +0 -2
- metadata +23 -43
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4de0ad0d505ecb467987eb27087a076411a0bd6de2fe535eb058b0550d17d09d
|
4
|
+
data.tar.gz: 5b1cba9b7ecc6bc47d1f1646e0dfbb3ff3c2a5cee04a41079c8bb419b0b21610
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: def9659344fe5ed585999686924483c0c8dbc6a130820b86fa427d3eee31b635f2ac64efd0e15a2e42d5102e0b709f15f13c5d70f9d76c90757241bb6734bd23
|
7
|
+
data.tar.gz: 6ff2c9ae06337d1b8030cf823c8dab8983a99c0fab7abe7673e7c917347ff91be94834c6b00601397ecef2ada1837e58c69cf21419a872571e218bc55e64d695
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,21 @@
|
|
1
|
+
## 6.8.0
|
2
|
+
|
3
|
+
* Drop support for Ruby 2.6 which reaches End of Life (EOL) on 31/03/2022
|
4
|
+
* Add support for Rails 7 by loosening the version constraint on `activeview` gem
|
5
|
+
* Fix deprecation notices caused by the bump in Ruby version
|
6
|
+
|
7
|
+
## 6.7.8
|
8
|
+
|
9
|
+
* Fixes bug which reverts acronyms from being converted into abbr tags [#229](https://github.com/alphagov/govspeak/pull/229)
|
10
|
+
|
11
|
+
## 6.7.7
|
12
|
+
|
13
|
+
* Fix broken HTML in CTA extension. [#226](https://github.com/alphagov/govspeak/pull/226)
|
14
|
+
|
15
|
+
## 6.7.6
|
16
|
+
|
17
|
+
* Add draggable false to button markup and validation [#224](https://github.com/alphagov/govspeak/pull/224)
|
18
|
+
|
1
19
|
## 6.7.5
|
2
20
|
|
3
21
|
* Fix footnotes in call-to-action boxes [222](https://github.com/alphagov/govspeak/pull/222)
|
data/README.md
CHANGED
@@ -28,8 +28,7 @@ Once govspeak has been updated and version incremented then:
|
|
28
28
|
|
29
29
|
Also, consider if:
|
30
30
|
- [whitehall](https://github.com/alphagov/whitehall) needs updating (as custom govspeak changes are present)
|
31
|
-
- [
|
32
|
-
- [govpspeak-preview](https://github.com/alphagov/govspeak-preview) is worth updating
|
31
|
+
- [govpspeak-preview](https://github.com/alphagov/govspeak-preview) needs updating
|
33
32
|
|
34
33
|
Any pages that use govspeak to generate Content will need to *republished* in order for the new changes to be reflected.
|
35
34
|
|
@@ -55,7 +55,7 @@ class Govspeak::HtmlSanitizer
|
|
55
55
|
elements: Sanitize::Config::RELAXED[:elements] + %w[govspeak-embed-attachment govspeak-embed-attachment-link svg path].concat(allowed_elements),
|
56
56
|
attributes: {
|
57
57
|
:all => Sanitize::Config::RELAXED[:attributes][:all] + %w[role aria-label],
|
58
|
-
"a" => Sanitize::Config::RELAXED[:attributes]["a"] + [:data],
|
58
|
+
"a" => Sanitize::Config::RELAXED[:attributes]["a"] + [:data] + %w[draggable],
|
59
59
|
"svg" => Sanitize::Config::RELAXED[:attributes][:all] + %w[xmlns width height viewbox focusable],
|
60
60
|
"path" => Sanitize::Config::RELAXED[:attributes][:all] + %w[fill d],
|
61
61
|
"div" => [:data],
|
data/lib/govspeak/version.rb
CHANGED
data/lib/govspeak.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require "active_support"
|
1
2
|
require "active_support/core_ext/hash"
|
2
3
|
require "active_support/core_ext/array"
|
3
4
|
require "erb"
|
@@ -224,7 +225,7 @@ module Govspeak
|
|
224
225
|
text = text.strip
|
225
226
|
href = href.strip
|
226
227
|
|
227
|
-
%(\n<a role="button" class="#{button_classes}" href="#{href}" #{data_attribute}>#{text}</a>\n)
|
228
|
+
%(\n<a role="button" draggable="false" class="#{button_classes}" href="#{href}" #{data_attribute}>#{text}</a>\n)
|
228
229
|
end
|
229
230
|
|
230
231
|
extension("highlight-answer") do |body|
|
@@ -322,7 +323,7 @@ module Govspeak
|
|
322
323
|
end
|
323
324
|
|
324
325
|
extension("call-to-action", surrounded_by("$CTA")) do |body|
|
325
|
-
doc = Kramdown::Document.new(body.strip).to_html
|
326
|
+
doc = Kramdown::Document.new(preprocess(body.strip), @options).to_html
|
326
327
|
doc = %(\n<div class="call-to-action">\n#{doc}</div>\n)
|
327
328
|
footnotes = body.scan(/\[\^(\d+)\]/).flatten
|
328
329
|
|
@@ -464,9 +465,10 @@ module Govspeak
|
|
464
465
|
end
|
465
466
|
|
466
467
|
def add_acronym_alt_text(html)
|
467
|
-
|
468
|
-
|
469
|
-
|
468
|
+
# FIXME: this code is buggy and replaces abbreviations in HTML tags - removing the functionality for now
|
469
|
+
# @acronyms.each do |acronym|
|
470
|
+
# html.gsub!(acronym[0], "<abbr title=\"#{acronym[1].strip}\">#{acronym[0]}</abbr>")
|
471
|
+
# end
|
470
472
|
end
|
471
473
|
end
|
472
474
|
end
|
@@ -47,7 +47,7 @@ class GovspeakTest < Minitest::Test
|
|
47
47
|
assert_html_output %(
|
48
48
|
<p>Text before the button with line breaks</p>
|
49
49
|
|
50
|
-
<p><a class="gem-c-button govuk-button" role="button" href="http://www.gov.uk">Start Now</a></p>
|
50
|
+
<p><a class="gem-c-button govuk-button" role="button" draggable="false" href="http://www.gov.uk">Start Now</a></p>
|
51
51
|
|
52
52
|
<p>test after the button</p>
|
53
53
|
)
|
@@ -65,21 +65,21 @@ class GovspeakTest < Minitest::Test
|
|
65
65
|
# Make sure button renders when typical linebreaks are before it, seen in publishing applications
|
66
66
|
test_given_govspeak "{button}[Line breaks](https://gov.uk/random){/button}\r\n\r\n{button}[Continue](https://gov.uk/random){/button}\r\n\r\n{button}[Continue](https://gov.uk/random){/button}" do
|
67
67
|
assert_html_output %(
|
68
|
-
<p><a class="gem-c-button govuk-button" role="button" href="https://gov.uk/random">Line breaks</a></p>
|
68
|
+
<p><a class="gem-c-button govuk-button" role="button" draggable="false" href="https://gov.uk/random">Line breaks</a></p>
|
69
69
|
|
70
|
-
<p><a class="gem-c-button govuk-button" role="button" href="https://gov.uk/random">Continue</a></p>
|
70
|
+
<p><a class="gem-c-button govuk-button" role="button" draggable="false" href="https://gov.uk/random">Continue</a></p>
|
71
71
|
|
72
|
-
<p><a class="gem-c-button govuk-button" role="button" href="https://gov.uk/random">Continue</a></p>
|
72
|
+
<p><a class="gem-c-button govuk-button" role="button" draggable="false" href="https://gov.uk/random">Continue</a></p>
|
73
73
|
)
|
74
74
|
end
|
75
75
|
|
76
76
|
test_given_govspeak "{button}[More line breaks](https://gov.uk/random){/button}\n\n{button}[Continue](https://gov.uk/random){/button}\n\n{button}[Continue](https://gov.uk/random){/button}" do
|
77
77
|
assert_html_output %(
|
78
|
-
<p><a class="gem-c-button govuk-button" role="button" href="https://gov.uk/random">More line breaks</a></p>
|
78
|
+
<p><a class="gem-c-button govuk-button" role="button" draggable="false" href="https://gov.uk/random">More line breaks</a></p>
|
79
79
|
|
80
|
-
<p><a class="gem-c-button govuk-button" role="button" href="https://gov.uk/random">Continue</a></p>
|
80
|
+
<p><a class="gem-c-button govuk-button" role="button" draggable="false" href="https://gov.uk/random">Continue</a></p>
|
81
81
|
|
82
|
-
<p><a class="gem-c-button govuk-button" role="button" href="https://gov.uk/random">Continue</a></p>
|
82
|
+
<p><a class="gem-c-button govuk-button" role="button" draggable="false" href="https://gov.uk/random">Continue</a></p>
|
83
83
|
)
|
84
84
|
end
|
85
85
|
|
@@ -104,7 +104,7 @@ class GovspeakTest < Minitest::Test
|
|
104
104
|
<p>lorem lorem lorem
|
105
105
|
lorem lorem lorem</p>
|
106
106
|
|
107
|
-
<p><a class="gem-c-button govuk-button" role="button" href="https://gov.uk/random">Random page</a></p>
|
107
|
+
<p><a class="gem-c-button govuk-button" role="button" draggable="false" href="https://gov.uk/random">Random page</a></p>
|
108
108
|
|
109
109
|
<p>lorem lorem lorem
|
110
110
|
lorem lorem lorem</p>
|
data/test/govspeak_test.rb
CHANGED
@@ -440,6 +440,60 @@ Teston
|
|
440
440
|
</div>)
|
441
441
|
end
|
442
442
|
|
443
|
+
test_given_govspeak "
|
444
|
+
$CTA
|
445
|
+
|
446
|
+
This is a test:
|
447
|
+
|
448
|
+
s1. This is number 1.
|
449
|
+
s2. This is number 2.
|
450
|
+
s3. This is number 3.
|
451
|
+
s4. This is number 4.
|
452
|
+
|
453
|
+
$CTA" do
|
454
|
+
assert_html_output %(
|
455
|
+
<div class="call-to-action">
|
456
|
+
<p>This is a test:</p>
|
457
|
+
|
458
|
+
<ol class="steps">
|
459
|
+
<li>
|
460
|
+
<p>This is number 1.</p>
|
461
|
+
</li>
|
462
|
+
<li>
|
463
|
+
<p>This is number 2.</p>
|
464
|
+
</li>
|
465
|
+
<li>
|
466
|
+
<p>This is number 3.</p>
|
467
|
+
</li>
|
468
|
+
<li>
|
469
|
+
<p>This is number 4.</p>
|
470
|
+
</li>
|
471
|
+
</ol>
|
472
|
+
</div>
|
473
|
+
)
|
474
|
+
end
|
475
|
+
|
476
|
+
test_given_govspeak "
|
477
|
+
$CTA
|
478
|
+
[external link](http://www.external.com) some text
|
479
|
+
$CTA
|
480
|
+
" do
|
481
|
+
assert_html_output %(
|
482
|
+
<div class="call-to-action">
|
483
|
+
<p><a rel="external" href="http://www.external.com">external link</a> some text</p>
|
484
|
+
</div>)
|
485
|
+
end
|
486
|
+
|
487
|
+
test_given_govspeak "
|
488
|
+
$CTA
|
489
|
+
[internal link](http://www.not-external.com) some text
|
490
|
+
$CTA", document_domains: %w[www.not-external.com] do
|
491
|
+
assert_html_output %(
|
492
|
+
<div class="call-to-action">
|
493
|
+
<p><a href="http://www.not-external.com">internal link</a> some text</p>
|
494
|
+
</div>)
|
495
|
+
end
|
496
|
+
|
443
497
|
test_given_govspeak "
|
444
498
|
$CTA
|
445
499
|
Click here to start the tool
|
@@ -994,43 +1048,44 @@ Teston
|
|
994
1048
|
)
|
995
1049
|
end
|
996
1050
|
|
997
|
-
|
998
|
-
|
999
|
-
|
1000
|
-
|
1001
|
-
|
1002
|
-
|
1003
|
-
|
1004
|
-
|
1005
|
-
|
1006
|
-
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1010
|
-
|
1011
|
-
|
1012
|
-
|
1013
|
-
|
1014
|
-
|
1015
|
-
|
1016
|
-
|
1017
|
-
|
1018
|
-
|
1019
|
-
|
1020
|
-
|
1021
|
-
|
1022
|
-
|
1023
|
-
|
1024
|
-
|
1025
|
-
|
1026
|
-
|
1027
|
-
|
1028
|
-
|
1029
|
-
|
1030
|
-
|
1031
|
-
|
1032
|
-
|
1033
|
-
|
1051
|
+
# FIXME: this code is buggy and replaces abbreviations in HTML tags - removing the functionality for now
|
1052
|
+
# test_given_govspeak "
|
1053
|
+
# $LegislativeList
|
1054
|
+
# * 1. Item 1[^1] with an ACRONYM
|
1055
|
+
# * 2. Item 2[^2]
|
1056
|
+
# * 3. Item 3
|
1057
|
+
# $EndLegislativeList
|
1058
|
+
#
|
1059
|
+
# [^1]: Footnote definition one
|
1060
|
+
# [^2]: Footnote definition two with an ACRONYM
|
1061
|
+
#
|
1062
|
+
# *[ACRONYM]: This is the acronym explanation
|
1063
|
+
# " do
|
1064
|
+
# assert_html_output %(
|
1065
|
+
# <ol class="legislative-list">
|
1066
|
+
# <li>1. Item 1<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">[footnote 1]</a></sup> with an <abbr title="This is the acronym explanation">ACRONYM</abbr>
|
1067
|
+
# </li>
|
1068
|
+
# <li>2. Item 2<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">[footnote 2]</a></sup>
|
1069
|
+
# </li>
|
1070
|
+
# <li>3. Item 3</li>
|
1071
|
+
# </ol>
|
1072
|
+
#
|
1073
|
+
# <div class="footnotes" role="doc-endnotes">
|
1074
|
+
# <ol>
|
1075
|
+
# <li id="fn:1" role="doc-endnote">
|
1076
|
+
# <p>
|
1077
|
+
# Footnote definition one<a href="#fnref:1" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
1078
|
+
# </p>
|
1079
|
+
# </li>
|
1080
|
+
# <li id="fn:2" role="doc-endnote">
|
1081
|
+
# <p>
|
1082
|
+
# Footnote definition two with an <abbr title="This is the acronym explanation">ACRONYM</abbr><a href="#fnref:2" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
1083
|
+
# </p>
|
1084
|
+
# </li>
|
1085
|
+
# </ol>
|
1086
|
+
# </div>
|
1087
|
+
# )
|
1088
|
+
# end
|
1034
1089
|
|
1035
1090
|
test_given_govspeak "
|
1036
1091
|
The quick brown
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: govspeak
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.8.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:
|
11
|
+
date: 2022-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionview
|
@@ -16,20 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '7'
|
19
|
+
version: '6'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
24
|
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
30
|
-
- - "<"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '7'
|
26
|
+
version: '6'
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: addressable
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -194,16 +188,16 @@ dependencies:
|
|
194
188
|
name: rubocop-govuk
|
195
189
|
requirement: !ruby/object:Gem::Requirement
|
196
190
|
requirements:
|
197
|
-
- -
|
191
|
+
- - '='
|
198
192
|
- !ruby/object:Gem::Version
|
199
|
-
version: 4.
|
193
|
+
version: 4.3.0
|
200
194
|
type: :development
|
201
195
|
prerelease: false
|
202
196
|
version_requirements: !ruby/object:Gem::Requirement
|
203
197
|
requirements:
|
204
|
-
- -
|
198
|
+
- - '='
|
205
199
|
- !ruby/object:Gem::Version
|
206
|
-
version: 4.
|
200
|
+
version: 4.3.0
|
207
201
|
- !ruby/object:Gem::Dependency
|
208
202
|
name: simplecov
|
209
203
|
requirement: !ruby/object:Gem::Requirement
|
@@ -218,20 +212,6 @@ dependencies:
|
|
218
212
|
- - ">="
|
219
213
|
- !ruby/object:Gem::Version
|
220
214
|
version: '0'
|
221
|
-
- !ruby/object:Gem::Dependency
|
222
|
-
name: simplecov-rcov
|
223
|
-
requirement: !ruby/object:Gem::Requirement
|
224
|
-
requirements:
|
225
|
-
- - ">="
|
226
|
-
- !ruby/object:Gem::Version
|
227
|
-
version: '0'
|
228
|
-
type: :development
|
229
|
-
prerelease: false
|
230
|
-
version_requirements: !ruby/object:Gem::Requirement
|
231
|
-
requirements:
|
232
|
-
- - ">="
|
233
|
-
- !ruby/object:Gem::Version
|
234
|
-
version: '0'
|
235
215
|
description: |-
|
236
216
|
A set of extensions to markdown layered on top of the kramdown
|
237
217
|
library for use in the UK Government Single Domain project
|
@@ -340,36 +320,36 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
340
320
|
requirements:
|
341
321
|
- - ">="
|
342
322
|
- !ruby/object:Gem::Version
|
343
|
-
version: '2.
|
323
|
+
version: '2.7'
|
344
324
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
345
325
|
requirements:
|
346
326
|
- - ">="
|
347
327
|
- !ruby/object:Gem::Version
|
348
328
|
version: '0'
|
349
329
|
requirements: []
|
350
|
-
rubygems_version: 3.
|
330
|
+
rubygems_version: 3.3.7
|
351
331
|
signing_key:
|
352
332
|
specification_version: 4
|
353
333
|
summary: Markup language for single domain
|
354
334
|
test_files:
|
355
|
-
- test/
|
335
|
+
- test/govspeak_test_helper.rb
|
356
336
|
- test/blockquote_extra_quote_remover_test.rb
|
357
|
-
- test/govspeak_images_bang_test.rb
|
358
|
-
- test/govspeak_contacts_test.rb
|
359
|
-
- test/govspeak_table_with_headers_test.rb
|
360
337
|
- test/govspeak_link_extractor_test.rb
|
361
|
-
- test/
|
362
|
-
- test/
|
363
|
-
- test/govspeak_button_test.rb
|
338
|
+
- test/govspeak_images_test.rb
|
339
|
+
- test/govspeak_link_test.rb
|
364
340
|
- test/govspeak_extract_contact_content_ids_test.rb
|
365
|
-
- test/govspeak_test_helper.rb
|
366
341
|
- test/govspeak_footnote_test.rb
|
367
|
-
- test/
|
342
|
+
- test/presenters/h_card_presenter_test.rb
|
343
|
+
- test/govspeak_attachments_inline_test.rb
|
368
344
|
- test/govspeak_structured_headers_test.rb
|
345
|
+
- test/test_helper.rb
|
346
|
+
- test/govspeak_button_test.rb
|
347
|
+
- test/govspeak_attachment_test.rb
|
369
348
|
- test/html_sanitizer_test.rb
|
370
|
-
- test/
|
349
|
+
- test/govspeak_contacts_test.rb
|
350
|
+
- test/govspeak_attachments_image_test.rb
|
351
|
+
- test/govspeak_images_bang_test.rb
|
371
352
|
- test/govspeak_test.rb
|
353
|
+
- test/govspeak_table_with_headers_test.rb
|
354
|
+
- test/html_validator_test.rb
|
372
355
|
- test/govspeak_attachment_link_test.rb
|
373
|
-
- test/govspeak_attachment_test.rb
|
374
|
-
- test/presenters/h_card_presenter_test.rb
|
375
|
-
- test/govspeak_attachments_inline_test.rb
|