govspeak 6.1.0 → 6.1.1
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b48fa791c90052e6ee6f2c235d3baba095c5de501f32b7e2748f05396a799899
|
4
|
+
data.tar.gz: c5e325373b8c6d20e2d59db3b38b5345ccce22a83edba93a9ec41ba03156e1cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ddd06fa6841ce2efcbfbf660ae09eeff3114b6f4e5de067ed7b09457f6be14e29caa5803b281e24dad159e7c2a49594ef9e98a7d68f54e01930a4a31932ce32
|
7
|
+
data.tar.gz: e4811322275d4f221e198bf8112040340e922d3713ab82bac32395ad386243259e4f4fca1973cb050af9df12e4c1b10b8c17a62febb7f06c2ddbbbacc857d16d
|
data/CHANGELOG.md
CHANGED
data/lib/govspeak.rb
CHANGED
@@ -3,7 +3,7 @@ require 'active_support/core_ext/array'
|
|
3
3
|
require 'erb'
|
4
4
|
require 'htmlentities'
|
5
5
|
require 'kramdown'
|
6
|
-
require 'kramdown/parser/
|
6
|
+
require 'kramdown/parser/govuk'
|
7
7
|
require 'rinku'
|
8
8
|
require 'govuk_publishing_components'
|
9
9
|
require 'govspeak/header_extractor'
|
@@ -21,14 +21,13 @@ require 'govspeak/presenters/h_card_presenter'
|
|
21
21
|
require 'govspeak/presenters/image_presenter'
|
22
22
|
require 'govspeak/presenters/attachment_image_presenter'
|
23
23
|
|
24
|
-
|
25
24
|
module Govspeak
|
26
25
|
def self.root
|
27
26
|
File.expand_path('..', File.dirname(__FILE__))
|
28
27
|
end
|
29
28
|
|
30
29
|
class Document
|
31
|
-
Parser = Kramdown::Parser::
|
30
|
+
Parser = Kramdown::Parser::Govuk
|
32
31
|
PARSER_CLASS_NAME = Parser.name.split("::").last
|
33
32
|
UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.freeze
|
34
33
|
NEW_PARAGRAPH_LOOKBEHIND = %q{(?<=\A|\n\n|\r\n\r\n)}.freeze
|
@@ -354,6 +353,8 @@ module Govspeak
|
|
354
353
|
# Content Publisher and should be considered experimental as it is likely
|
355
354
|
# to be iterated in the short term.
|
356
355
|
extension('Attachment', /#{NEW_PARAGRAPH_LOOKBEHIND}\[Attachment:\s*(.*?)\s*\]/) do |attachment_id|
|
356
|
+
next "" if attachments.none? { |a| a[:id] == attachment_id }
|
357
|
+
|
357
358
|
%{<govspeak-embed-attachment id="#{attachment_id}"></govspeak-embed-attachment>}
|
358
359
|
end
|
359
360
|
|
@@ -361,6 +362,8 @@ module Govspeak
|
|
361
362
|
# syntax is being used by Content Publisher and should be considered
|
362
363
|
# experimental
|
363
364
|
extension('AttachmentLink', /\[AttachmentLink:\s*(.*?)\s*\]/) do |attachment_id|
|
365
|
+
next "" if attachments.none? { |a| a[:id] == attachment_id }
|
366
|
+
|
364
367
|
%{<govspeak-embed-attachment-link id="#{attachment_id}"></govspeak-embed-attachment-link>}
|
365
368
|
end
|
366
369
|
|
data/lib/govspeak/version.rb
CHANGED
@@ -20,7 +20,9 @@ module Kramdown
|
|
20
20
|
end
|
21
21
|
|
22
22
|
module Parser
|
23
|
-
class
|
23
|
+
class Govuk < Kramdown::Parser::Kramdown
|
24
|
+
CUSTOM_INLINE_ELEMENTS = %w(govspeak-embed-attachment-link).freeze
|
25
|
+
|
24
26
|
def initialize(source, options)
|
25
27
|
@document_domains = options[:document_domains] || %w(www.gov.uk)
|
26
28
|
super
|
@@ -41,6 +43,12 @@ module Kramdown
|
|
41
43
|
end
|
42
44
|
super
|
43
45
|
end
|
46
|
+
|
47
|
+
def parse_block_html
|
48
|
+
return false if CUSTOM_INLINE_ELEMENTS.include?(@src[1].downcase)
|
49
|
+
|
50
|
+
super
|
51
|
+
end
|
44
52
|
end
|
45
53
|
end
|
46
54
|
end
|
@@ -22,4 +22,19 @@ class GovspeakAttachmentLinkTest < Minitest::Test
|
|
22
22
|
assert_match(/<span class="gem-c-attachment-link">/, rendered)
|
23
23
|
assert_match(%r{href="http://example.com/attachment.pdf"}, rendered)
|
24
24
|
end
|
25
|
+
|
26
|
+
test "renders an attachment link inside a paragraph" do
|
27
|
+
attachment = {
|
28
|
+
id: "attachment.pdf",
|
29
|
+
url: "http://example.com/attachment.pdf",
|
30
|
+
title: "Attachment Title",
|
31
|
+
}
|
32
|
+
|
33
|
+
rendered = render_govspeak("[AttachmentLink:attachment.pdf] test", [attachment])
|
34
|
+
root = Nokogiri::HTML.fragment(rendered).css(":root").first
|
35
|
+
|
36
|
+
assert(root.name, "p")
|
37
|
+
assert(root.css("p").size, 0)
|
38
|
+
assert_match(/Attachment Title\s*test/, root.text)
|
39
|
+
end
|
25
40
|
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.1.
|
4
|
+
version: 6.1.1
|
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: 2019-05-
|
11
|
+
date: 2019-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionview
|
@@ -260,7 +260,7 @@ files:
|
|
260
260
|
- lib/govspeak/structured_header_extractor.rb
|
261
261
|
- lib/govspeak/template_renderer.rb
|
262
262
|
- lib/govspeak/version.rb
|
263
|
-
- lib/kramdown/parser/
|
263
|
+
- lib/kramdown/parser/govuk.rb
|
264
264
|
- lib/templates/contact.html.erb
|
265
265
|
- locales/ar.yml
|
266
266
|
- locales/be.yml
|
@@ -344,22 +344,22 @@ signing_key:
|
|
344
344
|
specification_version: 4
|
345
345
|
summary: Markup language for single domain
|
346
346
|
test_files:
|
347
|
+
- test/govspeak_attachments_inline_test.rb
|
348
|
+
- test/govspeak_attachment_test.rb
|
347
349
|
- test/govspeak_attachment_link_test.rb
|
350
|
+
- test/govspeak_images_test.rb
|
351
|
+
- test/govspeak_link_test.rb
|
352
|
+
- test/govspeak_images_bang_test.rb
|
353
|
+
- test/govspeak_link_extractor_test.rb
|
354
|
+
- test/govspeak_contacts_test.rb
|
348
355
|
- test/test_helper.rb
|
349
|
-
- test/govspeak_button_test.rb
|
350
356
|
- test/govspeak_test.rb
|
351
|
-
- test/html_validator_test.rb
|
352
|
-
- test/govspeak_attachment_test.rb
|
353
|
-
- test/govspeak_contacts_test.rb
|
354
|
-
- test/govspeak_test_helper.rb
|
355
|
-
- test/blockquote_extra_quote_remover_test.rb
|
356
357
|
- test/govspeak_attachments_image_test.rb
|
357
|
-
- test/
|
358
|
-
- test/govspeak_link_test.rb
|
359
|
-
- test/govspeak_extract_contact_content_ids_test.rb
|
358
|
+
- test/html_validator_test.rb
|
360
359
|
- test/govspeak_structured_headers_test.rb
|
361
|
-
- test/
|
360
|
+
- test/govspeak_extract_contact_content_ids_test.rb
|
361
|
+
- test/blockquote_extra_quote_remover_test.rb
|
362
362
|
- test/presenters/h_card_presenter_test.rb
|
363
|
-
- test/
|
364
|
-
- test/
|
365
|
-
- test/
|
363
|
+
- test/govspeak_button_test.rb
|
364
|
+
- test/govspeak_test_helper.rb
|
365
|
+
- test/html_sanitizer_test.rb
|