govspeak 5.2.1 → 5.2.2
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 +3 -0
- data/lib/govspeak.rb +2 -2
- data/lib/govspeak/version.rb +1 -1
- data/test/govspeak_button_test.rb +49 -0
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b89deebe8f9edfbab700411aad9fe2a35920ea1
|
4
|
+
data.tar.gz: 0c2bdf232a565f530966c9cf5799e6d856690e35
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e70fdccd35a61cc375508ae191b2264ed294ad5d9c578d1776fdae7be705be5c21ed2dd8dc05fb28e97e2599faf655aaf164d24baab3cd986e8557fe1954e19a
|
7
|
+
data.tar.gz: 4d3bbd83d9a8b487bac5fc59bc1bb9ad55c6f93ea1fd489f9b44d41a68efd803a326da21ecfb3a2b16915b62031e381359440c2fab751144ade636c137dc53bb
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
## 5.2.2
|
2
|
+
* Fix rendering buttons with inconsistent linebreaks seen in publishing [#118](https://github.com/alphagov/govspeak/pull/118)
|
3
|
+
|
1
4
|
## 5.2.1
|
2
5
|
* Fix validation to make sure buttons are considered valid
|
3
6
|
* Only allow buttons to be used on new lines, not when indented or inline within text (useful for guides) [#116](https://github.com/alphagov/govspeak/pull/116)
|
data/lib/govspeak.rb
CHANGED
@@ -136,7 +136,7 @@ module Govspeak
|
|
136
136
|
end
|
137
137
|
|
138
138
|
extension('button', %r{
|
139
|
-
|
139
|
+
(?:\r|\n|^) # non-capturing match to make sure start of line and linebreak
|
140
140
|
{button(.*?)} # match opening bracket and capture attributes
|
141
141
|
\s* # any whitespace between opening bracket and link
|
142
142
|
\[ # match start of link markdown
|
@@ -147,7 +147,7 @@ module Govspeak
|
|
147
147
|
\) # match end of link text markdown
|
148
148
|
\s* # any whitespace between opening bracket and link
|
149
149
|
{\/button} # match ending bracket
|
150
|
-
|
150
|
+
(?:\r|\n|$) # non-capturing match to make sure end of line and linebreak
|
151
151
|
}x) { |attributes, text, href|
|
152
152
|
button_classes = "button"
|
153
153
|
button_classes << " button-start" if attributes =~ /start/
|
data/lib/govspeak/version.rb
CHANGED
@@ -79,4 +79,53 @@ class GovspeakTest < Minitest::Test
|
|
79
79
|
</code></pre>
|
80
80
|
}
|
81
81
|
end
|
82
|
+
|
83
|
+
# Make sure button renders when typical linebreaks are before it, seen in publishing applications
|
84
|
+
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
|
85
|
+
assert_html_output %{
|
86
|
+
<p><a role="button" class="button" href="https://gov.uk/random">Line breaks</a></p>
|
87
|
+
|
88
|
+
<p><a role="button" class="button" href="https://gov.uk/random">Continue</a></p>
|
89
|
+
|
90
|
+
<p><a role="button" class="button" href="https://gov.uk/random">Continue</a></p>
|
91
|
+
}
|
92
|
+
end
|
93
|
+
|
94
|
+
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
|
95
|
+
assert_html_output %{
|
96
|
+
<p><a role="button" class="button" href="https://gov.uk/random">More line breaks</a></p>
|
97
|
+
|
98
|
+
<p><a role="button" class="button" href="https://gov.uk/random">Continue</a></p>
|
99
|
+
|
100
|
+
<p><a role="button" class="button" href="https://gov.uk/random">Continue</a></p>
|
101
|
+
}
|
102
|
+
end
|
103
|
+
|
104
|
+
test_given_govspeak %{
|
105
|
+
## Register to vote
|
106
|
+
|
107
|
+
Introduction text about the service.
|
108
|
+
|
109
|
+
lorem lorem lorem
|
110
|
+
lorem lorem lorem
|
111
|
+
|
112
|
+
{button start}[Start Now](https://gov.uk/random){/button}
|
113
|
+
|
114
|
+
lorem lorem lorem
|
115
|
+
lorem lorem lorem
|
116
|
+
} do
|
117
|
+
assert_html_output %{
|
118
|
+
<h2 id="register-to-vote">Register to vote</h2>
|
119
|
+
|
120
|
+
<p>Introduction text about the service.</p>
|
121
|
+
|
122
|
+
<p>lorem lorem lorem
|
123
|
+
lorem lorem lorem</p>
|
124
|
+
|
125
|
+
<p><a role="button" class="button button-start" href="https://gov.uk/random">Start Now</a></p>
|
126
|
+
|
127
|
+
<p>lorem lorem lorem
|
128
|
+
lorem lorem lorem</p>
|
129
|
+
}
|
130
|
+
end
|
82
131
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: govspeak
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.2.
|
4
|
+
version: 5.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Griffiths
|
@@ -320,18 +320,18 @@ signing_key:
|
|
320
320
|
specification_version: 4
|
321
321
|
summary: Markup language for single domain
|
322
322
|
test_files:
|
323
|
+
- test/blockquote_extra_quote_remover_test.rb
|
323
324
|
- test/govspeak_test_helper.rb
|
324
|
-
- test/
|
325
|
+
- test/govspeak_structured_headers_test.rb
|
325
326
|
- test/govspeak_attachments_image_test.rb
|
326
|
-
- test/
|
327
|
-
- test/govspeak_link_test.rb
|
327
|
+
- test/govspeak_attachments_test.rb
|
328
328
|
- test/test_helper.rb
|
329
|
-
- test/
|
330
|
-
- test/blockquote_extra_quote_remover_test.rb
|
329
|
+
- test/govspeak_attachments_inline_test.rb
|
331
330
|
- test/html_sanitizer_test.rb
|
332
|
-
- test/govspeak_attachments_test.rb
|
333
331
|
- test/govspeak_button_test.rb
|
334
|
-
- test/
|
335
|
-
- test/
|
332
|
+
- test/with_deep_merge_test.rb
|
333
|
+
- test/html_validator_test.rb
|
334
|
+
- test/govspeak_test.rb
|
335
|
+
- test/govspeak_link_test.rb
|
336
336
|
- test/govspeak_contacts_test.rb
|
337
|
-
- test/
|
337
|
+
- test/presenters/h_card_presenter_test.rb
|