govspeak 6.7.2 → 6.7.6
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 +15 -2
- data/lib/govspeak/html_sanitizer.rb +1 -1
- data/lib/govspeak/version.rb +1 -1
- data/lib/govspeak.rb +23 -8
- data/test/govspeak_button_test.rb +8 -8
- data/test/govspeak_test.rb +234 -0
- metadata +24 -44
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 80c02b999651b2cd76424eabedc7619aaf9e494f2049fe16cf4a3ab34869de0f
|
|
4
|
+
data.tar.gz: adfc46a4aec8dd5c46f54990e392928da7d7610256750a7726b053a679689d90
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1d04823f5e51d7612529ef89b27a11366c0d8bae6bb3ab0c3d121fbc929e3a3df18dcb3390fbc75f1e706c7e8c3fd742663ffafe74330c5d87e0087370599eb3
|
|
7
|
+
data.tar.gz: 96f99f887fa623976d28b9cb3e22377650113669635e2f7f77b2bf6eca1f68b3fb43b078ed762c2a4ce0cf44ee7d6f68ad6ea997211b0f39aabfbc1bc43dff93
|
data/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
|
-
##
|
|
1
|
+
## 6.7.6
|
|
2
2
|
|
|
3
|
-
*
|
|
3
|
+
* Add draggable false to button markup and validation [#224](https://github.com/alphagov/govspeak/pull/224)
|
|
4
|
+
|
|
5
|
+
## 6.7.5
|
|
6
|
+
|
|
7
|
+
* Fix footnotes in call-to-action boxes [222](https://github.com/alphagov/govspeak/pull/222)
|
|
8
|
+
|
|
9
|
+
## 6.7.4
|
|
10
|
+
|
|
11
|
+
* Remove Nokogumbo dependency to [resolve warning](https://github.com/sparklemotion/nokogiri/issues/2205) [220](https://github.com/alphagov/govspeak/pull/220)
|
|
12
|
+
|
|
13
|
+
## 6.7.3
|
|
14
|
+
|
|
15
|
+
* Fix regex for footnotes in legislative lists [218](https://github.com/alphagov/govspeak/pull/218)
|
|
4
16
|
|
|
5
17
|
## 6.7.2
|
|
6
18
|
|
|
19
|
+
* Minimum Ruby version specified at 2.6 [215](https://github.com/alphagov/govspeak/pull/215)
|
|
7
20
|
* Fix footnotes in legislative lists [216](https://github.com/alphagov/govspeak/pull/216)
|
|
8
21
|
|
|
9
22
|
## 6.7.1
|
|
@@ -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
|
@@ -6,7 +6,6 @@ require "htmlentities"
|
|
|
6
6
|
require "kramdown"
|
|
7
7
|
require "kramdown/parser/govuk"
|
|
8
8
|
require "nokogiri"
|
|
9
|
-
require "nokogumbo"
|
|
10
9
|
require "rinku"
|
|
11
10
|
require "sanitize"
|
|
12
11
|
require "govspeak/header_extractor"
|
|
@@ -123,7 +122,7 @@ module Govspeak
|
|
|
123
122
|
source = Govspeak::BlockquoteExtraQuoteRemover.remove(source)
|
|
124
123
|
source = remove_forbidden_characters(source)
|
|
125
124
|
|
|
126
|
-
|
|
125
|
+
footnote_definitions(source)
|
|
127
126
|
|
|
128
127
|
self.class.extensions.each do |_, regexp, block|
|
|
129
128
|
source.gsub!(regexp) do
|
|
@@ -133,12 +132,12 @@ module Govspeak
|
|
|
133
132
|
source
|
|
134
133
|
end
|
|
135
134
|
|
|
136
|
-
def
|
|
135
|
+
def footnote_definitions(source)
|
|
137
136
|
is_legislative_list = source.scan(/\$LegislativeList.*?\[\^\d\]*.*?\$EndLegislativeList/m).size.positive?
|
|
138
|
-
|
|
137
|
+
is_cta = source.scan(/\$CTA.*?\[\^\d\]*.*?\$CTA/m).size.positive?
|
|
138
|
+
footnotes = source.scan(/\[\^(\d+)\]:(.*)/)
|
|
139
139
|
@acronyms = source.scan(/(?<=\*)\[(.*)\]:(.*)/)
|
|
140
|
-
|
|
141
|
-
if is_legislative_list && footnotes.size.positive?
|
|
140
|
+
if (is_legislative_list || is_cta) && footnotes.size.positive?
|
|
142
141
|
list_items = footnotes.map do |footnote|
|
|
143
142
|
number = footnote[0]
|
|
144
143
|
text = footnote[1].strip
|
|
@@ -225,7 +224,7 @@ module Govspeak
|
|
|
225
224
|
text = text.strip
|
|
226
225
|
href = href.strip
|
|
227
226
|
|
|
228
|
-
%(\n<a role="button" class="#{button_classes}" href="#{href}" #{data_attribute}>#{text}</a>\n)
|
|
227
|
+
%(\n<a role="button" draggable="false" class="#{button_classes}" href="#{href}" #{data_attribute}>#{text}</a>\n)
|
|
229
228
|
end
|
|
230
229
|
|
|
231
230
|
extension("highlight-answer") do |body|
|
|
@@ -322,10 +321,26 @@ module Govspeak
|
|
|
322
321
|
lines.join
|
|
323
322
|
end
|
|
324
323
|
|
|
324
|
+
extension("call-to-action", surrounded_by("$CTA")) do |body|
|
|
325
|
+
doc = Kramdown::Document.new(body.strip).to_html
|
|
326
|
+
doc = %(\n<div class="call-to-action">\n#{doc}</div>\n)
|
|
327
|
+
footnotes = body.scan(/\[\^(\d+)\]/).flatten
|
|
328
|
+
|
|
329
|
+
footnotes.each do |footnote|
|
|
330
|
+
html = "<sup id=\"fnref:#{footnote}\" role=\"doc-noteref\">" \
|
|
331
|
+
"<a href=\"#fn:#{footnote}\" class=\"footnote\" rel=\"footnote\">" \
|
|
332
|
+
"[footnote #{footnote}]</a></sup>"
|
|
333
|
+
|
|
334
|
+
doc.sub!(/(\[\^#{footnote}\])/, html)
|
|
335
|
+
end
|
|
336
|
+
|
|
337
|
+
add_acronym_alt_text(doc) if @acronyms.size.positive?
|
|
338
|
+
doc
|
|
339
|
+
end
|
|
340
|
+
|
|
325
341
|
# More specific tags must be defined first. Those defined earlier have a
|
|
326
342
|
# higher precedence for being matched. For example $CTA must be defined
|
|
327
343
|
# before $C otherwise the first ($C)TA fill be matched to a contact tag.
|
|
328
|
-
wrap_with_div("call-to-action", "$CTA", Govspeak::Document)
|
|
329
344
|
wrap_with_div("summary", "$!")
|
|
330
345
|
wrap_with_div("form-download", "$D")
|
|
331
346
|
wrap_with_div("contact", "$C")
|
|
@@ -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
|
@@ -473,6 +473,101 @@ Teston
|
|
|
473
473
|
</div>)
|
|
474
474
|
end
|
|
475
475
|
|
|
476
|
+
test_given_govspeak "
|
|
477
|
+
$CTA
|
|
478
|
+
Click here to start the tool[^1]
|
|
479
|
+
$CTA
|
|
480
|
+
[^1]: Footnote definition one
|
|
481
|
+
" do
|
|
482
|
+
assert_html_output %(
|
|
483
|
+
<div class="call-to-action">
|
|
484
|
+
<p>Click here to start the tool<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">[footnote 1]</a></sup></p>
|
|
485
|
+
</div>
|
|
486
|
+
<div class="footnotes" role="doc-endnotes">
|
|
487
|
+
<ol>
|
|
488
|
+
<li id="fn:1" role="doc-endnote">
|
|
489
|
+
<p>
|
|
490
|
+
Footnote definition one<a href="#fnref:1" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
|
491
|
+
</p>
|
|
492
|
+
</li>
|
|
493
|
+
</ol>
|
|
494
|
+
</div>
|
|
495
|
+
)
|
|
496
|
+
end
|
|
497
|
+
|
|
498
|
+
test_given_govspeak "
|
|
499
|
+
$CTA
|
|
500
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
501
|
+
Fusce felis ante[^1], lobortis non quam sit amet, tempus interdum justo.
|
|
502
|
+
$CTA
|
|
503
|
+
$CTA
|
|
504
|
+
Pellentesque quam enim, egestas sit amet congue sit amet[^2], ultrices vitae arcu.
|
|
505
|
+
Fringilla, metus dui scelerisque est.
|
|
506
|
+
$CTA
|
|
507
|
+
[^1]: Footnote definition one
|
|
508
|
+
[^2]: Footnote definition two
|
|
509
|
+
" do
|
|
510
|
+
assert_html_output %(
|
|
511
|
+
<div class="call-to-action">
|
|
512
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
513
|
+
Fusce felis ante<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">[footnote 1]</a></sup>, lobortis non quam sit amet, tempus interdum justo.</p>
|
|
514
|
+
</div>
|
|
515
|
+
|
|
516
|
+
<div class="call-to-action">
|
|
517
|
+
<p>Pellentesque quam enim, egestas sit amet congue sit amet<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">[footnote 2]</a></sup>, ultrices vitae arcu.
|
|
518
|
+
Fringilla, metus dui scelerisque est.</p>
|
|
519
|
+
</div>
|
|
520
|
+
<div class="footnotes" role="doc-endnotes">
|
|
521
|
+
<ol>
|
|
522
|
+
<li id="fn:1" role="doc-endnote">
|
|
523
|
+
<p>
|
|
524
|
+
Footnote definition one<a href="#fnref:1" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
|
525
|
+
</p>
|
|
526
|
+
</li>
|
|
527
|
+
<li id="fn:2" role="doc-endnote">
|
|
528
|
+
<p>
|
|
529
|
+
Footnote definition two<a href="#fnref:2" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
|
530
|
+
</p>
|
|
531
|
+
</li>
|
|
532
|
+
</ol>
|
|
533
|
+
</div>
|
|
534
|
+
)
|
|
535
|
+
end
|
|
536
|
+
|
|
537
|
+
test_given_govspeak "
|
|
538
|
+
$CTA
|
|
539
|
+
Click here to start the tool[^1]
|
|
540
|
+
$CTA
|
|
541
|
+
|
|
542
|
+
Lorem ipsum dolor sit amet[^2]
|
|
543
|
+
|
|
544
|
+
[^1]: Footnote definition 1
|
|
545
|
+
[^2]: Footnote definition 2
|
|
546
|
+
" do
|
|
547
|
+
assert_html_output %(
|
|
548
|
+
<div class="call-to-action">
|
|
549
|
+
<p>Click here to start the tool<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">[footnote 1]</a></sup></p>
|
|
550
|
+
</div>
|
|
551
|
+
|
|
552
|
+
<p>Lorem ipsum dolor sit amet<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">[footnote 2]</a></sup></p>
|
|
553
|
+
|
|
554
|
+
<div class="footnotes" role="doc-endnotes">
|
|
555
|
+
<ol>
|
|
556
|
+
<li id="fn:1" role="doc-endnote">
|
|
557
|
+
<p>
|
|
558
|
+
Footnote definition 1<a href="#fnref:1" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
|
559
|
+
</p>
|
|
560
|
+
</li>
|
|
561
|
+
<li id="fn:2" role="doc-endnote">
|
|
562
|
+
<p>
|
|
563
|
+
Footnote definition 2<a href="#fnref:2" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
|
564
|
+
</p>
|
|
565
|
+
</li>
|
|
566
|
+
</ol>
|
|
567
|
+
</div>
|
|
568
|
+
)
|
|
569
|
+
end
|
|
570
|
+
|
|
476
571
|
test_given_govspeak "
|
|
477
572
|
1. rod
|
|
478
573
|
2. jane
|
|
@@ -685,6 +780,145 @@ Teston
|
|
|
685
780
|
)
|
|
686
781
|
end
|
|
687
782
|
|
|
783
|
+
test_given_govspeak "
|
|
784
|
+
$LegislativeList
|
|
785
|
+
* 1. Item 1[^1]
|
|
786
|
+
* 2. Item 2[^2]
|
|
787
|
+
* 3. Item 3[^3]
|
|
788
|
+
$EndLegislativeList
|
|
789
|
+
|
|
790
|
+
This is a paragraph with a footnote[^4].
|
|
791
|
+
|
|
792
|
+
$LegislativeList
|
|
793
|
+
* 1. Item 1[^5]
|
|
794
|
+
* 2. Item 2[^6]
|
|
795
|
+
* 3. Item 3[^7]
|
|
796
|
+
$EndLegislativeList
|
|
797
|
+
|
|
798
|
+
This is a paragraph with a footnote[^8].
|
|
799
|
+
|
|
800
|
+
$LegislativeList
|
|
801
|
+
* 1. Item 1[^9]
|
|
802
|
+
* 2. Item 2[^10]
|
|
803
|
+
* 3. Item 3[^11]
|
|
804
|
+
$EndLegislativeList
|
|
805
|
+
|
|
806
|
+
This is a paragraph with a footnote[^12].
|
|
807
|
+
|
|
808
|
+
[^1]: Footnote definition 1
|
|
809
|
+
[^2]: Footnote definition 2
|
|
810
|
+
[^3]: Footnote definition 3
|
|
811
|
+
[^4]: Footnote definition 4
|
|
812
|
+
[^5]: Footnote definition 5
|
|
813
|
+
[^6]: Footnote definition 6
|
|
814
|
+
[^7]: Footnote definition 7
|
|
815
|
+
[^8]: Footnote definition 8
|
|
816
|
+
[^9]: Footnote definition 9
|
|
817
|
+
[^10]: Footnote definition 10
|
|
818
|
+
[^11]: Footnote definition 11
|
|
819
|
+
[^12]: Footnote definition 12
|
|
820
|
+
" do
|
|
821
|
+
assert_html_output %(
|
|
822
|
+
<ol class="legislative-list">
|
|
823
|
+
<li>1. Item 1<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">[footnote 1]</a></sup>
|
|
824
|
+
</li>
|
|
825
|
+
<li>2. Item 2<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">[footnote 2]</a></sup>
|
|
826
|
+
</li>
|
|
827
|
+
<li>3. Item 3<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">[footnote 3]</a></sup>
|
|
828
|
+
</li>
|
|
829
|
+
</ol>
|
|
830
|
+
|
|
831
|
+
<p>This is a paragraph with a footnote<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">[footnote 4]</a></sup>.</p>
|
|
832
|
+
|
|
833
|
+
<ol class="legislative-list">
|
|
834
|
+
<li>1. Item 1<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">[footnote 5]</a></sup>
|
|
835
|
+
</li>
|
|
836
|
+
<li>2. Item 2<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">[footnote 6]</a></sup>
|
|
837
|
+
</li>
|
|
838
|
+
<li>3. Item 3<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">[footnote 7]</a></sup>
|
|
839
|
+
</li>
|
|
840
|
+
</ol>
|
|
841
|
+
|
|
842
|
+
<p>This is a paragraph with a footnote<sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">[footnote 8]</a></sup>.</p>
|
|
843
|
+
|
|
844
|
+
<ol class="legislative-list">
|
|
845
|
+
<li>1. Item 1<sup id="fnref:9" role="doc-noteref"><a href="#fn:9" class="footnote" rel="footnote">[footnote 9]</a></sup>
|
|
846
|
+
</li>
|
|
847
|
+
<li>2. Item 2<sup id="fnref:10" role="doc-noteref"><a href="#fn:10" class="footnote" rel="footnote">[footnote 10]</a></sup>
|
|
848
|
+
</li>
|
|
849
|
+
<li>3. Item 3<sup id="fnref:11" role="doc-noteref"><a href="#fn:11" class="footnote" rel="footnote">[footnote 11]</a></sup>
|
|
850
|
+
</li>
|
|
851
|
+
</ol>
|
|
852
|
+
|
|
853
|
+
<p>This is a paragraph with a footnote<sup id="fnref:12" role="doc-noteref"><a href="#fn:12" class="footnote" rel="footnote">[footnote 12]</a></sup>.</p>
|
|
854
|
+
|
|
855
|
+
<div class="footnotes" role="doc-endnotes">
|
|
856
|
+
<ol>
|
|
857
|
+
<li id="fn:1" role="doc-endnote">
|
|
858
|
+
<p>
|
|
859
|
+
Footnote definition 1<a href="#fnref:1" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
|
860
|
+
</p>
|
|
861
|
+
</li>
|
|
862
|
+
<li id="fn:2" role="doc-endnote">
|
|
863
|
+
<p>
|
|
864
|
+
Footnote definition 2<a href="#fnref:2" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
|
865
|
+
</p>
|
|
866
|
+
</li>
|
|
867
|
+
<li id="fn:3" role="doc-endnote">
|
|
868
|
+
<p>
|
|
869
|
+
Footnote definition 3<a href="#fnref:3" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
|
870
|
+
</p>
|
|
871
|
+
</li>
|
|
872
|
+
<li id="fn:4" role="doc-endnote">
|
|
873
|
+
<p>
|
|
874
|
+
Footnote definition 4<a href="#fnref:4" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
|
875
|
+
</p>
|
|
876
|
+
</li>
|
|
877
|
+
<li id="fn:5" role="doc-endnote">
|
|
878
|
+
<p>
|
|
879
|
+
Footnote definition 5<a href="#fnref:5" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
|
880
|
+
</p>
|
|
881
|
+
</li>
|
|
882
|
+
<li id="fn:6" role="doc-endnote">
|
|
883
|
+
<p>
|
|
884
|
+
Footnote definition 6<a href="#fnref:6" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
|
885
|
+
</p>
|
|
886
|
+
</li>
|
|
887
|
+
<li id="fn:7" role="doc-endnote">
|
|
888
|
+
<p>
|
|
889
|
+
Footnote definition 7<a href="#fnref:7" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
|
890
|
+
</p>
|
|
891
|
+
</li>
|
|
892
|
+
<li id="fn:8" role="doc-endnote">
|
|
893
|
+
<p>
|
|
894
|
+
Footnote definition 8<a href="#fnref:8" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
|
895
|
+
</p>
|
|
896
|
+
</li>
|
|
897
|
+
<li id="fn:9" role="doc-endnote">
|
|
898
|
+
<p>
|
|
899
|
+
Footnote definition 9<a href="#fnref:9" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
|
900
|
+
</p>
|
|
901
|
+
</li>
|
|
902
|
+
<li id="fn:10" role="doc-endnote">
|
|
903
|
+
<p>
|
|
904
|
+
Footnote definition 10<a href="#fnref:10" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
|
905
|
+
</p>
|
|
906
|
+
</li>
|
|
907
|
+
<li id="fn:11" role="doc-endnote">
|
|
908
|
+
<p>
|
|
909
|
+
Footnote definition 11<a href="#fnref:11" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
|
910
|
+
</p>
|
|
911
|
+
</li>
|
|
912
|
+
<li id="fn:12" role="doc-endnote">
|
|
913
|
+
<p>
|
|
914
|
+
Footnote definition 12<a href="#fnref:12" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
|
|
915
|
+
</p>
|
|
916
|
+
</li>
|
|
917
|
+
</ol>
|
|
918
|
+
</div>
|
|
919
|
+
)
|
|
920
|
+
end
|
|
921
|
+
|
|
688
922
|
test_given_govspeak "
|
|
689
923
|
$LegislativeList
|
|
690
924
|
* 1. Item 1[^1] with a [link](http://www.gov.uk)
|
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.7.
|
|
4
|
+
version: 6.7.6
|
|
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: 2021-
|
|
11
|
+
date: 2021-11-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: actionview
|
|
@@ -112,28 +112,14 @@ dependencies:
|
|
|
112
112
|
requirements:
|
|
113
113
|
- - "~>"
|
|
114
114
|
- !ruby/object:Gem::Version
|
|
115
|
-
version: '1.
|
|
115
|
+
version: '1.12'
|
|
116
116
|
type: :runtime
|
|
117
117
|
prerelease: false
|
|
118
118
|
version_requirements: !ruby/object:Gem::Requirement
|
|
119
119
|
requirements:
|
|
120
120
|
- - "~>"
|
|
121
121
|
- !ruby/object:Gem::Version
|
|
122
|
-
version: '1.
|
|
123
|
-
- !ruby/object:Gem::Dependency
|
|
124
|
-
name: nokogumbo
|
|
125
|
-
requirement: !ruby/object:Gem::Requirement
|
|
126
|
-
requirements:
|
|
127
|
-
- - "~>"
|
|
128
|
-
- !ruby/object:Gem::Version
|
|
129
|
-
version: '2'
|
|
130
|
-
type: :runtime
|
|
131
|
-
prerelease: false
|
|
132
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
133
|
-
requirements:
|
|
134
|
-
- - "~>"
|
|
135
|
-
- !ruby/object:Gem::Version
|
|
136
|
-
version: '2'
|
|
122
|
+
version: '1.12'
|
|
137
123
|
- !ruby/object:Gem::Dependency
|
|
138
124
|
name: rinku
|
|
139
125
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -152,20 +138,14 @@ dependencies:
|
|
|
152
138
|
name: sanitize
|
|
153
139
|
requirement: !ruby/object:Gem::Requirement
|
|
154
140
|
requirements:
|
|
155
|
-
- - "
|
|
156
|
-
- !ruby/object:Gem::Version
|
|
157
|
-
version: 5.2.1
|
|
158
|
-
- - "<"
|
|
141
|
+
- - "~>"
|
|
159
142
|
- !ruby/object:Gem::Version
|
|
160
143
|
version: '6'
|
|
161
144
|
type: :runtime
|
|
162
145
|
prerelease: false
|
|
163
146
|
version_requirements: !ruby/object:Gem::Requirement
|
|
164
147
|
requirements:
|
|
165
|
-
- - "
|
|
166
|
-
- !ruby/object:Gem::Version
|
|
167
|
-
version: 5.2.1
|
|
168
|
-
- - "<"
|
|
148
|
+
- - "~>"
|
|
169
149
|
- !ruby/object:Gem::Version
|
|
170
150
|
version: '6'
|
|
171
151
|
- !ruby/object:Gem::Dependency
|
|
@@ -216,14 +196,14 @@ dependencies:
|
|
|
216
196
|
requirements:
|
|
217
197
|
- - "~>"
|
|
218
198
|
- !ruby/object:Gem::Version
|
|
219
|
-
version: 4.
|
|
199
|
+
version: 4.2.0
|
|
220
200
|
type: :development
|
|
221
201
|
prerelease: false
|
|
222
202
|
version_requirements: !ruby/object:Gem::Requirement
|
|
223
203
|
requirements:
|
|
224
204
|
- - "~>"
|
|
225
205
|
- !ruby/object:Gem::Version
|
|
226
|
-
version: 4.
|
|
206
|
+
version: 4.2.0
|
|
227
207
|
- !ruby/object:Gem::Dependency
|
|
228
208
|
name: simplecov
|
|
229
209
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -372,24 +352,24 @@ signing_key:
|
|
|
372
352
|
specification_version: 4
|
|
373
353
|
summary: Markup language for single domain
|
|
374
354
|
test_files:
|
|
375
|
-
- test/
|
|
376
|
-
- test/
|
|
355
|
+
- test/test_helper.rb
|
|
356
|
+
- test/blockquote_extra_quote_remover_test.rb
|
|
377
357
|
- test/govspeak_images_bang_test.rb
|
|
378
|
-
- test/
|
|
358
|
+
- test/govspeak_contacts_test.rb
|
|
359
|
+
- test/govspeak_table_with_headers_test.rb
|
|
360
|
+
- test/govspeak_link_extractor_test.rb
|
|
361
|
+
- test/govspeak_attachments_image_test.rb
|
|
362
|
+
- test/html_validator_test.rb
|
|
363
|
+
- test/govspeak_button_test.rb
|
|
379
364
|
- test/govspeak_extract_contact_content_ids_test.rb
|
|
380
365
|
- test/govspeak_test_helper.rb
|
|
381
|
-
- test/blockquote_extra_quote_remover_test.rb
|
|
382
|
-
- test/govspeak_attachments_inline_test.rb
|
|
383
|
-
- test/govspeak_attachment_test.rb
|
|
384
|
-
- test/test_helper.rb
|
|
385
|
-
- test/govspeak_test.rb
|
|
386
|
-
- test/presenters/h_card_presenter_test.rb
|
|
387
366
|
- test/govspeak_footnote_test.rb
|
|
388
|
-
- test/
|
|
389
|
-
- test/
|
|
390
|
-
- test/govspeak_button_test.rb
|
|
391
|
-
- test/govspeak_images_test.rb
|
|
392
|
-
- test/html_validator_test.rb
|
|
367
|
+
- test/govspeak_link_test.rb
|
|
368
|
+
- test/govspeak_structured_headers_test.rb
|
|
393
369
|
- test/html_sanitizer_test.rb
|
|
394
|
-
- test/
|
|
395
|
-
- test/
|
|
370
|
+
- test/govspeak_images_test.rb
|
|
371
|
+
- test/govspeak_test.rb
|
|
372
|
+
- 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
|