devcenter-parser 2.2.12 → 2.4.0

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: 314bc0f7c0a35baf4f4a977db4845da2a0b0053c983eac60be6b821343e0c8fc
4
- data.tar.gz: 6bc98b80c05477dff020857b3a25ec8d443b05194aff77ae5510e4514a8499b9
3
+ metadata.gz: a6be89b82bc3dd6e4a40c3b7f1e3871fca55e301c4ff09f934457d84f01dc00b
4
+ data.tar.gz: 686278e2a9a08bacd5f17124adaaa0d6a3e728a5701814dc9ef15cedecd8a430
5
5
  SHA512:
6
- metadata.gz: 88441e6a45d829b5f0c5daf30cc2d04a129d1c8deee1b40915a385f5b5c95f026a3aba4a1af91af3bab321ab49237f32eb584a7a7c2a8b8b6b6bf07ef209e03b
7
- data.tar.gz: 8fd552eefa810faba6180f8754e70da91b0f0bb96dc56b138e01baa7739c5b2ce01ffc0e865a636fdc33b0c79aa836b10ac23553cd7cd96cfa27eafa8e1a70f8
6
+ metadata.gz: 1d2cb1e536549ba20c82e76cee60a42d5394872232a815d4ecb0b10fcb29b3d726ec19cc76862e68df78fbd5763173ed6feaa7a3dc4804883f67d78c486b3e32
7
+ data.tar.gz: c3d69be0dedf80b7db4d70c5a0a188e82717207f65d2bd799ba1264a009b2d9c0e25c3ba73d993331927f43b7f64fb35decc85ab33ea65fbb6bb1f46f0108841
@@ -0,0 +1,11 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "bundler"
9
+ directory: "/"
10
+ schedule:
11
+ interval: "weekly"
@@ -0,0 +1,25 @@
1
+ name: "Send data to Components Inventory"
2
+ on:
3
+ workflow_dispatch:
4
+ push:
5
+ branches:
6
+ - "main"
7
+ paths:
8
+ - ".heroku/components-inventory/*.json"
9
+ pull_request:
10
+ types:
11
+ - opened
12
+ - synchronize
13
+ paths:
14
+ - ".heroku/components-inventory/*.json"
15
+ jobs:
16
+ action:
17
+ runs-on: sfdc-hk-ubuntu-latest
18
+ steps:
19
+ - uses: actions/checkout@v3
20
+ - name: Send data to Components Inventory
21
+ uses: heroku/components-action@main
22
+ with:
23
+ COMPONENTS_GHA_APP_ID: ${{ secrets.COMPONENTS_GHA_APP_ID}}
24
+ COMPONENTS_GHA_APP_PRIVATE_KEY: ${{ secrets.COMPONENTS_GHA_APP_PRIVATE_KEY}}
25
+ COMPONENTS_GHA_JSON_TOKEN: ${{ secrets.COMPONENTS_GHA_JSON_TOKEN}}
@@ -0,0 +1,32 @@
1
+ {
2
+ "slug": "devcenter-parser",
3
+ "name": "DevCenter Parser",
4
+ "description": "Markdown parser used on Heroku Dev Center",
5
+ "language": "Ruby",
6
+ "lifecycle_status": "Production",
7
+ "pipeline_uuid": null,
8
+ "repository_url": "https://github.com/heroku/devcenter-parser",
9
+ "stack": "Platform",
10
+ "stack_type": "Service",
11
+ "documentation_url": "https://github.com/heroku/devcenter-parser",
12
+ "metrics_url": null,
13
+ "sox": false,
14
+ "soc2": false,
15
+ "customer_facing": false,
16
+ "pager_duty_service_code": null,
17
+ "component_tier": "4",
18
+ "github_actions": true,
19
+ "github_release": false,
20
+ "github_actions_ci_workflow": null,
21
+ "authentication": null,
22
+ "platform": null,
23
+ "team_name": "Marketing Web Ops",
24
+ "planned_maintenance_severity": null,
25
+ "gus_team": "https://gus.lightning.force.com/lightning/r/ADM_Scrum_Team__c/a00B000000Bbl1zIAB/view",
26
+ "pci_tier": "TBD",
27
+ "consumer_type": "N/A",
28
+ "content_cacheable": "N/A",
29
+ "blast_radius": "Internal",
30
+ "audit_findings_url": null,
31
+ "last_audit": null
32
+ }
data/CODEOWNERS ADDED
@@ -0,0 +1,6 @@
1
+ # Lines starting with '#' are comments.
2
+ # Each line is a file pattern followed by one or more owners.
3
+
4
+ # These owners will be the default owners for everything in the repo.
5
+ * @heroku/marketing-web-ops
6
+ * @heroku/front-end
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
- source "http://rubygems.org"
1
+ source 'http://rubygems.org'
2
2
 
3
- gemspec
3
+ gemspec
data/Gemfile.lock CHANGED
@@ -1,22 +1,24 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- devcenter-parser (2.2.12)
5
- nokogiri (>= 1.13.9)
6
- redcarpet (= 3.5.0)
7
- sanitize (~> 6.0.0)
4
+ devcenter-parser (2.4.0)
5
+ nokogiri (>= 1.13.10)
6
+ redcarpet (= 3.6.0)
7
+ sanitize (~> 6.0.2)
8
8
 
9
9
  GEM
10
10
  remote: http://rubygems.org/
11
11
  specs:
12
12
  crass (1.0.6)
13
- minitest (5.16.3)
14
- nokogiri (1.13.9-arm64-darwin)
13
+ mini_portile2 (2.8.5)
14
+ minitest (5.19.0)
15
+ nokogiri (1.15.5)
16
+ mini_portile2 (~> 2.8.2)
15
17
  racc (~> 1.4)
16
- racc (1.6.0)
18
+ racc (1.7.3)
17
19
  rake (13.0.6)
18
- redcarpet (3.5.0)
19
- sanitize (6.0.0)
20
+ redcarpet (3.6.0)
21
+ sanitize (6.0.2)
20
22
  crass (~> 1.0.2)
21
23
  nokogiri (>= 1.12.0)
22
24
 
@@ -25,8 +27,8 @@ PLATFORMS
25
27
 
26
28
  DEPENDENCIES
27
29
  devcenter-parser!
28
- minitest (> 2.0)
30
+ minitest (~> 5.19.0)
29
31
  rake
30
32
 
31
33
  BUNDLED WITH
32
- 2.1.4
34
+ 2.2.33
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # devcenter-parser
1
+ # DevCenter Parser
2
2
 
3
3
  Markdown parser used by [Heroku Dev Center](https://devcenter.heroku.com).
4
4
 
@@ -1,23 +1,25 @@
1
1
  $:.unshift Dir.pwd
2
- require File.expand_path("./lib/devcenter-parser/version")
2
+ require File.expand_path('./lib/devcenter-parser/version')
3
3
 
4
4
  Gem::Specification.new do |gem|
5
- gem.name = "devcenter-parser"
5
+ gem.name = 'devcenter-parser'
6
6
  gem.version = DevcenterParser::VERSION
7
- gem.authors = ["Heroku"]
8
- gem.email = ["raul@heroku.com"]
9
- gem.homepage = "https://devcenter.heroku.com"
7
+ gem.authors = ['Heroku']
8
+ gem.email = ['heroku-front-end@salesforce.com']
9
+ gem.homepage = 'https://devcenter.heroku.com'
10
10
  gem.summary = "Parser for Heroku Dev Center's content"
11
11
  gem.description = "Parser for Heroku Dev Center's content"
12
12
 
13
13
  gem.files = `git ls-files`.split($/)
14
14
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
15
- gem.require_paths = %w{ lib }
15
+ gem.require_paths = %w[lib]
16
16
 
17
- gem.add_runtime_dependency 'nokogiri', '>= 1.13.9'
18
- gem.add_runtime_dependency 'redcarpet', '3.5.0'
19
- gem.add_runtime_dependency 'sanitize', '~>6.0.0'
17
+ gem.required_ruby_version = '>= 3.0.0'
20
18
 
21
- gem.add_development_dependency 'minitest', '>2.0'
19
+ gem.add_runtime_dependency 'nokogiri', '>= 1.13.10'
20
+ gem.add_runtime_dependency 'redcarpet', '3.6.0'
21
+ gem.add_runtime_dependency 'sanitize', '~> 6.0.2'
22
+
23
+ gem.add_development_dependency 'minitest', '~> 5.19.0'
22
24
  gem.add_development_dependency 'rake'
23
25
  end
@@ -47,11 +47,13 @@ module GitHubParser
47
47
 
48
48
  def self.special_blocks(doc)
49
49
  doc.css('blockquote>p:first').each do |node|
50
- if match = node.inner_html.match(/\A\W*(callout|warning|note)\W/)
50
+ if match = node.inner_html.match(/\A\W*(callout|warning|note)\W|\[\!(callout|warning|note)\]\W/i)
51
51
  node.parent.name = 'div'
52
- node.parent['class'] = match[1]
52
+ node.parent['class'] = match[1].downcase
53
53
 
54
- new_html = node.inner_html.gsub(/\A\W*(callout|warning|note)\W/, '')
54
+ # This expression is slightly different because we want to remove the newline (\n) in this swap, compared to the
55
+ # match above that doesn't care about the newline.
56
+ new_html = node.inner_html.gsub(/\A\s*(callout|warning|note)\s*|\[\!(callout|warning|note)\]\s*/i, '')
55
57
 
56
58
  # Assigning inner_html directly causes encoding issues in old libxml versions,
57
59
  # workaround from https://github.com/sparklemotion/nokogiri/issues/458#issuecomment-3136620
@@ -1,3 +1,3 @@
1
1
  module DevcenterParser
2
- VERSION = '2.2.12'.freeze
2
+ VERSION = '2.4.0'.freeze
3
3
  end
@@ -408,6 +408,35 @@ HTML
408
408
  assert_parsing_result md, html
409
409
  end
410
410
 
411
+ it 'generates blockquotes for GitHub-style callouts in uppercase format' do
412
+ md = <<-MARKDOWN
413
+ > [!WARNING]
414
+ > This is a warning
415
+ MARKDOWN
416
+
417
+ expected = <<-HTML
418
+ <div class="warning">
419
+ <p>This is a warning</p>
420
+ </div>
421
+ HTML
422
+
423
+ assert_parsing_result md, expected
424
+ end
425
+
426
+ it 'generates blockquotes for GitHub-style callouts in lowercase format' do
427
+ md = <<-MARKDOWN
428
+ > [!warning]
429
+ > This is a warning
430
+ MARKDOWN
431
+
432
+ expected = <<-HTML
433
+ <div class="warning">
434
+ <p>This is a warning</p>
435
+ </div>
436
+ HTML
437
+
438
+ assert_parsing_result md, expected
439
+ end
411
440
 
412
441
  it 'generates separate blockquotes from blockquotes separated by empty lines' do
413
442
  md = <<-MARKDOWN
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devcenter-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.12
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Heroku
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-16 00:00:00.000000000 Z
11
+ date: 2024-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -16,56 +16,56 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.13.9
19
+ version: 1.13.10
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 1.13.9
26
+ version: 1.13.10
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: redcarpet
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 3.5.0
33
+ version: 3.6.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 3.5.0
40
+ version: 3.6.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: sanitize
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 6.0.0
47
+ version: 6.0.2
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 6.0.0
54
+ version: 6.0.2
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: minitest
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">"
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.0'
61
+ version: 5.19.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">"
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.0'
68
+ version: 5.19.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -82,12 +82,16 @@ dependencies:
82
82
  version: '0'
83
83
  description: Parser for Heroku Dev Center's content
84
84
  email:
85
- - raul@heroku.com
85
+ - heroku-front-end@salesforce.com
86
86
  executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
+ - ".github/dependabot.yml"
91
+ - ".github/workflows/sync_component_metadata.yml"
90
92
  - ".gitignore"
93
+ - ".heroku/components-inventory/devcenter-parser.json"
94
+ - CODEOWNERS
91
95
  - Gemfile
92
96
  - Gemfile.lock
93
97
  - LICENSE
@@ -111,14 +115,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
111
115
  requirements:
112
116
  - - ">="
113
117
  - !ruby/object:Gem::Version
114
- version: '0'
118
+ version: 3.0.0
115
119
  required_rubygems_version: !ruby/object:Gem::Requirement
116
120
  requirements:
117
121
  - - ">="
118
122
  - !ruby/object:Gem::Version
119
123
  version: '0'
120
124
  requirements: []
121
- rubygems_version: 3.1.4
125
+ rubygems_version: 3.4.10
122
126
  signing_key:
123
127
  specification_version: 4
124
128
  summary: Parser for Heroku Dev Center's content