govuk_markdown 2.0.0b1 → 2.0.1

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: cf2eeb05a74d3e6dac921b756a58192707d5c4edbb0d706b8d79dbf735dd3279
4
- data.tar.gz: 319c0f2a286dd65829c3b08c93f6a6492748445b82c223b60e8120f4285855f7
3
+ metadata.gz: 975a784ccde8bc595764bf9bbff9dc0377b00d43e3114a0870f75fb9a74dc828
4
+ data.tar.gz: a648e648e2a72505e45f9100a3f4c7599287cca3c0bdd78fb34d5110cfcac62d
5
5
  SHA512:
6
- metadata.gz: 4ba28fd33999e3201ce352baabd21c5a9f3f9959133401cacf39902b8c97259e3dd7ff4aac71db4de31154546f06b61599705e74cab88555f9c357d4cf760345
7
- data.tar.gz: 90e4c6e7edea3656159d6532452d4bef11f292a0a9682a661ffcb0ea4e31d88c62efc87b22db3135b54852c02bdb0aff223ddec8119934a5f346a8278aa9ef63
6
+ metadata.gz: a2309375dd6555cc7ca361513a9147844611519ad5c19a765e24a018cab5725faa2d91e50ca7698080d2efa7dc526876096f0ff97f7c7984945ab8da517e7a48
7
+ data.tar.gz: 8ad79ffc90dae8461e019b18ad5371e94943df3e39d58697089a4a8510d856a1d0859b5b8792f0e4118f99715af106043db4e7ed1b96085794fa58b95f8da7c9
data/.gitignore CHANGED
@@ -6,3 +6,4 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ *.gem
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## 2.0.0
2
+
3
+ * Add test matrix for Ruby versions 2.7.6, 3.0.4 and 3.1.2
4
+ * Update Publish Gem workflow to run manually
5
+ * Add support for configurable start heading size
6
+ * Add preprocessor for markdown files
7
+ * Add support for inset text component
8
+ * Add support for details component
9
+ * Add pry as developer dependency
10
+
1
11
  ## 1.0.0
2
12
 
3
13
  * Increase minimum supported Ruby version to >= 2.7.0
data/Gemfile.lock CHANGED
@@ -1,14 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- govuk_markdown (2.0.0b1)
4
+ govuk_markdown (2.0.1)
5
5
  activesupport
6
6
  redcarpet
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- activesupport (6.1.4)
11
+ activesupport (6.1.7.3)
12
12
  concurrent-ruby (~> 1.0, >= 1.0.2)
13
13
  i18n (>= 1.6, < 2)
14
14
  minitest (>= 5.1)
@@ -16,22 +16,22 @@ GEM
16
16
  zeitwerk (~> 2.3)
17
17
  ast (2.4.2)
18
18
  coderay (1.1.3)
19
- concurrent-ruby (1.1.9)
19
+ concurrent-ruby (1.2.2)
20
20
  diff-lcs (1.4.4)
21
- i18n (1.8.10)
21
+ i18n (1.12.0)
22
22
  concurrent-ruby (~> 1.0)
23
23
  method_source (1.0.0)
24
- minitest (5.14.4)
24
+ minitest (5.18.0)
25
25
  parallel (1.20.1)
26
26
  parser (3.0.2.0)
27
27
  ast (~> 2.4.1)
28
28
  pry (0.14.1)
29
29
  coderay (~> 1.1)
30
30
  method_source (~> 1.0)
31
- rack (3.0.0)
31
+ rack (3.0.7)
32
32
  rainbow (3.0.0)
33
33
  rake (13.0.6)
34
- redcarpet (3.5.1)
34
+ redcarpet (3.6.0)
35
35
  regexp_parser (2.1.1)
36
36
  rexml (3.2.5)
37
37
  rspec (3.10.0)
@@ -74,10 +74,10 @@ GEM
74
74
  rubocop (~> 1.0)
75
75
  rubocop-ast (>= 1.1.0)
76
76
  ruby-progressbar (1.11.0)
77
- tzinfo (2.0.4)
77
+ tzinfo (2.0.6)
78
78
  concurrent-ruby (~> 1.0)
79
79
  unicode-display_width (2.0.0)
80
- zeitwerk (2.4.2)
80
+ zeitwerk (2.6.7)
81
81
 
82
82
  PLATFORMS
83
83
  ruby
data/README.md CHANGED
@@ -4,6 +4,8 @@ This Ruby gem converts Markdown into [GOV.UK Frontend](https://github.com/alphag
4
4
 
5
5
  Don't confuse this gem with [govspeak](https://github.com/alphagov/govspeak), which is a Markdown dialect specifically built for the GOV.UK publishing system (www.gov.uk).
6
6
 
7
+ Note that this gem supports [GOV.UK Components](https://github.com/DFE-Digital/govuk-components) version 4.0.0
8
+
7
9
  ## Installation
8
10
 
9
11
  Add this line to your application's Gemfile:
@@ -14,6 +16,8 @@ gem 'govuk_markdown'
14
16
 
15
17
  ## Usage
16
18
 
19
+ ### Basic usage
20
+
17
21
  ```rb
18
22
  GovukMarkdown.render(markdown)
19
23
  ```
@@ -32,6 +36,48 @@ Will output:
32
36
  </p>
33
37
  ```
34
38
 
39
+ ### Editing the start heading size of headings
40
+
41
+ By default, H1 headings will be set to XL. You can override the start heading size, for example if you want to start with size L instead.
42
+
43
+ All subsequent headings i.e. H2, H3, will be sized correctly according to the start heading size.
44
+
45
+ Values can be "xl", "l", "m" and "s".
46
+
47
+ To specify the start heading size for your markdown content, add the below option into your GovukMarkdown.render() method:
48
+
49
+ ```ruby
50
+ GovukMarkdown.render(markdown, headings_start_with: "l")
51
+ ```
52
+
53
+ ### Adding inset text to your markdown
54
+
55
+ To add [inset text](https://govuk-components.netlify.app/components/inset-text/) to your markdown document, use the following tags:
56
+
57
+ ```markdown
58
+ {inset-text}Text to be inset goes here{/inset-text}
59
+ ```
60
+
61
+ The renderer also handles multi-line text as well as multiple paragraphs inside the tags:
62
+
63
+ ```markdown
64
+ {inset-text}
65
+ Text to be
66
+ inset goes
67
+ here
68
+ {/inset-text}
69
+ ```
70
+
71
+ ### Adding details sections to your markdown
72
+
73
+ To add the [details component](https://govuk-components.netlify.app/components/details/) to your markdown, use the following tags:
74
+
75
+ ```markdown
76
+ {details} Find out about the fox and the dog. Whilst the fox is quick and brown, the dog is lazy. {/details}
77
+ ```
78
+
79
+ The first sentence is rendered as the details summary text. The remaining text is rendered as the details text. The renderer handles multiple paragraphs for the details text.
80
+
35
81
  ## Development
36
82
 
37
83
  After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -40,15 +86,6 @@ To install this gem onto your local machine, run `bundle exec rake install`.
40
86
 
41
87
  You can regenerate the example HTML file from Markdown using `bundle exec rake generate_example`.
42
88
 
43
- ## Release a new version
44
-
45
- 1. Update the version in [lib/govuk_markdown/version.rb](lib/govuk_markdown/version.rb)
46
- 2. Run `bundle install`
47
- 3. Update [CHANGELOG.md](CHANGELOG.md)
48
- 4. Create a pull request
49
-
50
- When changes are merged into the `main` branch, a new version will be released using a GitHub action.
51
-
52
89
  ## Contributing
53
90
 
54
- Bug reports and pull requests are welcome on GitHub at https://github.com/DfE-digital/govuk_markdown.
91
+ Bug reports and pull requests are welcome on GitHub at https://github.com/DfE-digital/govuk-markdown.
@@ -7,10 +7,10 @@ module GovukMarkdown
7
7
  end
8
8
 
9
9
  def inject_inset_text
10
- output.gsub!(build_regexp("inset-text")) do
10
+ @output = output.gsub(build_regexp("inset-text")) do
11
11
  <<~HTML
12
12
  <div class="govuk-inset-text">
13
- #{Regexp.last_match(1)}
13
+ #{nested_markdown(Regexp.last_match(1))}
14
14
  </div>
15
15
  HTML
16
16
  end
@@ -18,7 +18,7 @@ module GovukMarkdown
18
18
  end
19
19
 
20
20
  def inject_details
21
- output.gsub!(build_regexp("details")) do
21
+ @output = output.gsub(build_regexp("details")) do
22
22
  summary, details = *construct_details_from(Regexp.last_match(1))
23
23
 
24
24
  <<~HTML
@@ -29,7 +29,7 @@ module GovukMarkdown
29
29
  </span>
30
30
  </summary>
31
31
  <div class="govuk-details__text">
32
- #{details}
32
+ #{nested_markdown(details)}
33
33
  </div>
34
34
  </details>
35
35
  HTML
@@ -39,6 +39,13 @@ module GovukMarkdown
39
39
 
40
40
  private
41
41
 
42
+ # parse as markdown if there are multiple lines of content
43
+ def nested_markdown(content)
44
+ return content unless content =~ /\n/
45
+
46
+ GovukMarkdown.render(content)
47
+ end
48
+
42
49
  def build_regexp(tag_name, pre_tag: "{", post_tag: "}", closing: "/")
43
50
  start_tag = pre_tag + tag_name + post_tag
44
51
  end_tag = pre_tag + closing + tag_name + post_tag
@@ -1,3 +1,3 @@
1
1
  module GovukMarkdown
2
- VERSION = "2.0.0b1".freeze
2
+ VERSION = "2.0.1".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_markdown
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0b1
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tijmen Brommet
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-07 00:00:00.000000000 Z
11
+ date: 2023-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -141,9 +141,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
141
141
  version: 2.7.0
142
142
  required_rubygems_version: !ruby/object:Gem::Requirement
143
143
  requirements:
144
- - - ">"
144
+ - - ">="
145
145
  - !ruby/object:Gem::Version
146
- version: 1.3.1
146
+ version: '0'
147
147
  requirements: []
148
148
  rubygems_version: 3.1.4
149
149
  signing_key: