govspeak 6.7.4 → 6.7.5
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 +4 -0
- data/lib/govspeak/version.rb +1 -1
- data/lib/govspeak.rb +21 -5
- data/test/govspeak_test.rb +95 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fb4fa452bfd1c6f1cdff6b638f91dfbc9961ea2bd7568f4feadd12fe73772532
|
|
4
|
+
data.tar.gz: 925ff3efcbb3b3a9a1aa6e0319e9f5a3ec1540febd0168b8517c5aa884e6e69c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 574ea02a4f90e336a7c2a3b6642a7c1fe91924e8d71f4c55eb71053875c607c19de73aefbb34218d0cbe563c8e95982baf18ce42860a1002e58008efab20a93e
|
|
7
|
+
data.tar.gz: db21f5a85823c27024ff78970ec8d8dab64584910f90fdbed5649516abfbf5110fca8c52c99b978c54db3e060e1c654ac46e0995b87f5b8ab400c9dfa971b756
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
## 6.7.5
|
|
2
|
+
|
|
3
|
+
* Fix footnotes in call-to-action boxes [222](https://github.com/alphagov/govspeak/pull/222)
|
|
4
|
+
|
|
1
5
|
## 6.7.4
|
|
2
6
|
|
|
3
7
|
* Remove Nokogumbo dependency to [resolve warning](https://github.com/sparklemotion/nokogiri/issues/2205) [220](https://github.com/alphagov/govspeak/pull/220)
|
data/lib/govspeak/version.rb
CHANGED
data/lib/govspeak.rb
CHANGED
|
@@ -122,7 +122,7 @@ module Govspeak
|
|
|
122
122
|
source = Govspeak::BlockquoteExtraQuoteRemover.remove(source)
|
|
123
123
|
source = remove_forbidden_characters(source)
|
|
124
124
|
|
|
125
|
-
|
|
125
|
+
footnote_definitions(source)
|
|
126
126
|
|
|
127
127
|
self.class.extensions.each do |_, regexp, block|
|
|
128
128
|
source.gsub!(regexp) do
|
|
@@ -132,12 +132,12 @@ module Govspeak
|
|
|
132
132
|
source
|
|
133
133
|
end
|
|
134
134
|
|
|
135
|
-
def
|
|
135
|
+
def footnote_definitions(source)
|
|
136
136
|
is_legislative_list = source.scan(/\$LegislativeList.*?\[\^\d\]*.*?\$EndLegislativeList/m).size.positive?
|
|
137
|
+
is_cta = source.scan(/\$CTA.*?\[\^\d\]*.*?\$CTA/m).size.positive?
|
|
137
138
|
footnotes = source.scan(/\[\^(\d+)\]:(.*)/)
|
|
138
139
|
@acronyms = source.scan(/(?<=\*)\[(.*)\]:(.*)/)
|
|
139
|
-
|
|
140
|
-
if is_legislative_list && footnotes.size.positive?
|
|
140
|
+
if (is_legislative_list || is_cta) && footnotes.size.positive?
|
|
141
141
|
list_items = footnotes.map do |footnote|
|
|
142
142
|
number = footnote[0]
|
|
143
143
|
text = footnote[1].strip
|
|
@@ -321,10 +321,26 @@ module Govspeak
|
|
|
321
321
|
lines.join
|
|
322
322
|
end
|
|
323
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
|
+
|
|
324
341
|
# More specific tags must be defined first. Those defined earlier have a
|
|
325
342
|
# higher precedence for being matched. For example $CTA must be defined
|
|
326
343
|
# before $C otherwise the first ($C)TA fill be matched to a contact tag.
|
|
327
|
-
wrap_with_div("call-to-action", "$CTA", Govspeak::Document)
|
|
328
344
|
wrap_with_div("summary", "$!")
|
|
329
345
|
wrap_with_div("form-download", "$D")
|
|
330
346
|
wrap_with_div("contact", "$C")
|
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
|
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.5
|
|
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-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: actionview
|