Skip to content

Commit 3f56ec5

Browse files
authored
Merge pull request #159 from alphagov/whitehall-govspeak-upgrade
Whitehall Govspeak upgrade
2 parents 0b04beb + 50dcaa1 commit 3f56ec5

6 files changed

+12
-4
lines changed

.ruby-version

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.6.1
1+
2.6.3

govspeak.gemspec

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ library for use in the UK Government Single Domain project'
3737
s.add_dependency 'i18n', '~> 0.7'
3838
s.add_dependency 'kramdown', '~> 1.15.0'
3939
s.add_dependency 'nokogiri', '~> 1.5'
40+
s.add_dependency 'nokogumbo', '~> 2'
4041
s.add_dependency 'rinku', '~> 2.0'
4142
s.add_dependency "sanitize", "~> 5"
4243

lib/govspeak.rb

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
require 'htmlentities'
55
require 'kramdown'
66
require 'kramdown/parser/govuk'
7+
require 'nokogiri'
8+
require 'nokogumbo'
79
require 'rinku'
810
require 'govuk_publishing_components'
911
require 'govspeak/header_extractor'

lib/govspeak/html_validator.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def valid?
1818

1919
# Make whitespace in html tags consistent
2020
def normalise_html(html)
21-
Nokogiri::HTML.parse(html).to_s
21+
Nokogiri::HTML5.fragment(html).to_s
2222
end
2323

2424
def govspeak_to_html

lib/govspeak/post_processor.rb

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
require 'nokogiri'
2-
31
module Govspeak
42
class PostProcessor
53
@extensions = []

test/html_validator_test.rb

+7
Original file line numberDiff line numberDiff line change
@@ -101,4 +101,11 @@ class HtmlValidatorTest < Minitest::Test
101101
assert Govspeak::HtmlValidator.new("{button start}[Start now](https://gov.uk){/button}").valid?
102102
assert Govspeak::HtmlValidator.new("{button start cross-domain-tracking:UA-XXXXXX-Y}[Start now](https://gov.uk){/button}").valid?
103103
end
104+
105+
test "allow HTML tables with and without tbody elements" do
106+
# An upgrade of govspeak broke HTML table entries as tbody elements were inserted.
107+
# An example of one of these is: https://www.gov.uk/government/publications/what-works-network-membership-requirements/what-works-network
108+
assert Govspeak::HtmlValidator.new("<table><tr><td>Hello</td></tr></table>").valid?, "No <tbody> is valid"
109+
assert Govspeak::HtmlValidator.new("<table><tbody><tr><td>Hello</td></tr></tbody></table>").valid?, "<tbody> is valid"
110+
end
104111
end

0 commit comments

Comments
 (0)