govspeak 6.8.1 → 6.8.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5613d3c42e9347e578dd2ed9d2164c08cc81cfc70f8ade79deb56fc77069056f
4
- data.tar.gz: 1157c2a33c97ae726af931714252eaa460216f1254a47449c4db187fff197c1d
3
+ metadata.gz: 35ed6a74578a19fb89e4c855494d27708d7809e925a6029b5b391fbe474f5d49
4
+ data.tar.gz: 74f0b44824ff948767ae8e8f1a5f95ae784f07ea3ab424f66a46ee0d07efb6af
5
5
  SHA512:
6
- metadata.gz: aa8cca4a71fd2f9b029c545714ccf032ead1fe07389ce49571aa5f14093b95bd7ae05ddc2188bea959ea60ac59c042bc0b56729b8a197782291869e7e0cf947e
7
- data.tar.gz: 12dcd4d62d0b6b16a651d001145f2aaa942991c972a00720d598464633f2eb8ead57d50dc0609ed1eb6a25a328399380dac55d97aa7101cdd52483b46b6c700c
6
+ metadata.gz: c022e6a898d40e41ea571d9f39863f6235822810d2823f99d17e58eb559ab7e0b2b35c2a60cdec627270b9fe3d31c39224f820e5e8f3378f8df811478ca6203d
7
+ data.tar.gz: facb052f32abfcdc7e54fb6799d7e052d1a951aedce6db6b582fa716654bb6cc6730ff99af65a2af511dc0039b4f07f8f9669accbadf8821b01f2280c22933c8
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## 6.8.4
2
+
3
+ * Fix bug where inconsistent linebreaks trigger validations [#250](https://github.com/alphagov/govspeak/pull/250)
4
+
5
+ ## 6.8.3
6
+
7
+ * Require Kramdown minimum version of 2.3.1 to avoid CVE-2021-28834 [#246](https://github.com/alphagov/govspeak/pull/246)
8
+
9
+ ## 6.8.2
10
+
11
+ * Fix footnote numbering [#239](https://github.com/alphagov/govspeak/pull/239)
12
+
1
13
  ## 6.8.1
2
14
 
3
15
  * Fix a bug which resulted in validation errors on 'Start Button' elements [#237](https://github.com/alphagov/govspeak/pull/237)
@@ -20,7 +20,7 @@ private
20
20
 
21
21
  # Make whitespace in html tags consistent
22
22
  def normalise_html(html)
23
- Nokogiri::HTML5.fragment(html).to_s
23
+ Nokogiri::HTML5.fragment(html).to_s.gsub("\n", "")
24
24
  end
25
25
 
26
26
  def govspeak_to_html(sanitize:)
@@ -1,3 +1,3 @@
1
1
  module Govspeak
2
- VERSION = "6.8.1".freeze
2
+ VERSION = "6.8.4".freeze
3
3
  end
data/lib/govspeak.rb CHANGED
@@ -138,7 +138,7 @@ module Govspeak
138
138
  def footnote_definitions(source)
139
139
  is_legislative_list = source.scan(/\$LegislativeList.*?\[\^\d\]*.*?\$EndLegislativeList/m).size.positive?
140
140
  is_cta = source.scan(/\$CTA.*?\[\^\d\]*.*?\$CTA/m).size.positive?
141
- footnotes = source.scan(/\[\^(\d+)\]:(.*)/)
141
+ footnotes = source.scan(/^\s*\[\^(\d+)\]:(.*)/)
142
142
  @acronyms = source.scan(/(?<=\*)\[(.*)\]:(.*)/)
143
143
  if (is_legislative_list || is_cta) && footnotes.size.positive?
144
144
  list_items = footnotes.map do |footnote|
@@ -1048,6 +1048,48 @@ Teston
1048
1048
  )
1049
1049
  end
1050
1050
 
1051
+ test_given_govspeak "
1052
+ $LegislativeList
1053
+ 1. some text[^1]:
1054
+ $EndLegislativeList
1055
+ [^1]: footnote text
1056
+ " do
1057
+ assert_html_output %(
1058
+ <p>1. some text<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">[footnote 1]</a></sup>:</p>
1059
+
1060
+ <div class="footnotes" role="doc-endnotes">
1061
+ <ol>
1062
+ <li id="fn:1" role="doc-endnote">
1063
+ <p>
1064
+ footnote text<a href="#fnref:1" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
1065
+ </p>
1066
+ </li>
1067
+ </ol>
1068
+ </div>
1069
+ )
1070
+ end
1071
+
1072
+ test_given_govspeak "
1073
+ $LegislativeList
1074
+ 1. some text[^1]: extra
1075
+ $EndLegislativeList
1076
+ [^1]: footnote text
1077
+ " do
1078
+ assert_html_output %(
1079
+ <p>1. some text<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">[footnote 1]</a></sup>: extra</p>
1080
+
1081
+ <div class="footnotes" role="doc-endnotes">
1082
+ <ol>
1083
+ <li id="fn:1" role="doc-endnote">
1084
+ <p>
1085
+ footnote text<a href="#fnref:1" class="reversefootnote" role="doc-backlink" aria-label="go to where this is referenced">↩</a>
1086
+ </p>
1087
+ </li>
1088
+ </ol>
1089
+ </div>
1090
+ )
1091
+ end
1092
+
1051
1093
  # FIXME: this code is buggy and replaces abbreviations in HTML tags - removing the functionality for now
1052
1094
  # test_given_govspeak "
1053
1095
  # $LegislativeList
@@ -108,4 +108,9 @@ class HtmlValidatorTest < Minitest::Test
108
108
  assert Govspeak::HtmlValidator.new("<table><tr><td>Hello</td></tr></table>").valid?, "No <tbody> is valid"
109
109
  assert Govspeak::HtmlValidator.new("<table><tbody><tr><td>Hello</td></tr></tbody></table>").valid?, "<tbody> is valid"
110
110
  end
111
+
112
+ test "allow HTML tables with \n" do
113
+ html = "<table>\n<thead>\n<tr>\n<th></th>\n<th></th>\n<th colspan=\"3\"></th>\n\n</tr>\n</thead>\n<tr>\n<th></th>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n</tr>\n</table>"
114
+ assert Govspeak::HtmlValidator.new(html).valid?, 'Tables with no <tbody> and \n are valid'
115
+ end
111
116
  end
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.8.1
4
+ version: 6.8.4
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: 2022-03-16 00:00:00.000000000 Z
11
+ date: 2022-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionview
@@ -92,14 +92,14 @@ dependencies:
92
92
  requirements:
93
93
  - - ">="
94
94
  - !ruby/object:Gem::Version
95
- version: 2.3.0
95
+ version: 2.3.1
96
96
  type: :runtime
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
- version: 2.3.0
102
+ version: 2.3.1
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: nokogiri
105
105
  requirement: !ruby/object:Gem::Requirement
@@ -190,14 +190,14 @@ dependencies:
190
190
  requirements:
191
191
  - - '='
192
192
  - !ruby/object:Gem::Version
193
- version: 4.3.0
193
+ version: 4.6.0
194
194
  type: :development
195
195
  prerelease: false
196
196
  version_requirements: !ruby/object:Gem::Requirement
197
197
  requirements:
198
198
  - - '='
199
199
  - !ruby/object:Gem::Version
200
- version: 4.3.0
200
+ version: 4.6.0
201
201
  - !ruby/object:Gem::Dependency
202
202
  name: simplecov
203
203
  requirement: !ruby/object:Gem::Requirement
@@ -327,29 +327,29 @@ required_rubygems_version: !ruby/object:Gem::Requirement
327
327
  - !ruby/object:Gem::Version
328
328
  version: '0'
329
329
  requirements: []
330
- rubygems_version: 3.3.9
330
+ rubygems_version: 3.3.20
331
331
  signing_key:
332
332
  specification_version: 4
333
333
  summary: Markup language for single domain
334
334
  test_files:
335
- - test/govspeak_test_helper.rb
336
- - test/blockquote_extra_quote_remover_test.rb
335
+ - test/govspeak_attachments_image_test.rb
337
336
  - test/govspeak_link_extractor_test.rb
338
- - test/govspeak_images_test.rb
339
- - test/govspeak_link_test.rb
337
+ - test/govspeak_table_with_headers_test.rb
338
+ - test/govspeak_attachment_test.rb
340
339
  - test/govspeak_extract_contact_content_ids_test.rb
341
- - test/govspeak_footnote_test.rb
342
- - test/presenters/h_card_presenter_test.rb
343
- - test/govspeak_attachments_inline_test.rb
344
- - test/govspeak_structured_headers_test.rb
345
340
  - test/test_helper.rb
346
- - test/govspeak_button_test.rb
347
- - test/govspeak_attachment_test.rb
341
+ - test/html_validator_test.rb
342
+ - test/govspeak_test_helper.rb
348
343
  - test/html_sanitizer_test.rb
349
- - test/govspeak_contacts_test.rb
350
- - test/govspeak_attachments_image_test.rb
351
- - test/govspeak_images_bang_test.rb
344
+ - test/govspeak_footnote_test.rb
345
+ - test/govspeak_images_test.rb
346
+ - test/govspeak_button_test.rb
352
347
  - test/govspeak_test.rb
353
- - test/govspeak_table_with_headers_test.rb
354
- - test/html_validator_test.rb
348
+ - test/blockquote_extra_quote_remover_test.rb
349
+ - test/govspeak_images_bang_test.rb
350
+ - test/presenters/h_card_presenter_test.rb
351
+ - test/govspeak_contacts_test.rb
355
352
  - test/govspeak_attachment_link_test.rb
353
+ - test/govspeak_attachments_inline_test.rb
354
+ - test/govspeak_link_test.rb
355
+ - test/govspeak_structured_headers_test.rb