html-pipeline 3.0.3 → 3.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/publish.yml +7 -2
- data/.gitignore +1 -1
- data/CHANGELOG.md +113 -52
- data/Gemfile +1 -3
- data/README.md +26 -41
- data/UPGRADING.md +0 -2
- data/html-pipeline.gemspec +1 -1
- data/lib/html_pipeline/convert_filter/markdown_filter.rb +4 -4
- data/lib/html_pipeline/convert_filter.rb +1 -1
- data/lib/html_pipeline/filter.rb +1 -1
- data/lib/html_pipeline/node_filter/mention_filter.rb +2 -1
- data/lib/html_pipeline/node_filter/syntax_highlight_filter.rb +1 -1
- data/lib/html_pipeline/node_filter/team_mention_filter.rb +2 -1
- data/lib/html_pipeline/node_filter.rb +2 -0
- data/lib/html_pipeline/text_filter/image_filter.rb +2 -2
- data/lib/html_pipeline/text_filter/plain_text_input_filter.rb +2 -2
- data/lib/html_pipeline/text_filter.rb +8 -8
- data/lib/html_pipeline/version.rb +1 -1
- data/lib/html_pipeline.rb +17 -11
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6e66a69a9e35bc5703f036d091740bdc654f98cfaf38870761797699ed28199b
|
4
|
+
data.tar.gz: 7624bb08357fa9f358cb4947dbf5742916a3e620fa7db2d5296e9aba414e40f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 19083c1093cf8908028e8ea5233c97005a25072b5d77e9c28368570d477ff09cba5f6ae78e93e3633b766b9dcaeccc7bd746aacecbfdf480cd467306b230c1af
|
7
|
+
data.tar.gz: 74e3afc29616225353448945af5a3ee516a8cea67924e865edf89a65b92cf77d56196b2be50ccd6fce6d5d343ed4cc7181b3b6b7d2a146dbb281a1165ba66ef3
|
@@ -1,4 +1,4 @@
|
|
1
|
-
name: Release
|
1
|
+
name: Tag and Release
|
2
2
|
|
3
3
|
on:
|
4
4
|
workflow_dispatch:
|
@@ -7,13 +7,18 @@ on:
|
|
7
7
|
- main
|
8
8
|
paths:
|
9
9
|
- "lib/html_pipeline/version.rb"
|
10
|
+
pull_request_target:
|
11
|
+
types:
|
12
|
+
- closed
|
10
13
|
|
11
14
|
jobs:
|
12
15
|
ruby:
|
13
16
|
uses: yettoapp/actions/.github/workflows/ruby_gem_release.yml@main
|
14
17
|
secrets:
|
15
18
|
rubygems_api_key: ${{ secrets.RUBYGEMS_API_BOT_KEY }}
|
16
|
-
gh_token: ${{ secrets.
|
19
|
+
gh_token: ${{ secrets.GITHUB_TOKEN }}
|
17
20
|
with:
|
18
21
|
gem_name: html-pipeline
|
19
22
|
version_filepath: lib/html_pipeline/version.rb
|
23
|
+
prepare: ${{ github.event_name == 'push' }}
|
24
|
+
release: ${{ github.event_name == 'workflow_dispatch' || ((github.event.pull_request.merged == true) && (contains(github.event.pull_request.labels.*.name, 'release'))) }}
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,51 +1,116 @@
|
|
1
|
+
# [v3.2.2] - 09-08-2024
|
2
|
+
## What's Changed
|
3
|
+
* Add support for @ prefix on MentionFilter base_url by @jeremysmithco in https://github.com/gjtorikian/html-pipeline/pull/411
|
4
|
+
* Bugfix: sanitization-only filters should still work by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/414
|
5
|
+
|
6
|
+
## New Contributors
|
7
|
+
* @jeremysmithco made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/411
|
8
|
+
|
9
|
+
**Full Changelog**: https://github.com/gjtorikian/html-pipeline/compare/v3.2.1...v3.2.2
|
10
|
+
# [v3.2.1] - 16-07-2024
|
11
|
+
## What's Changed
|
12
|
+
* Update commonmarker requirement from ~> 1.0.0.pre7 to ~> 1.1.2 in the bundler-dependencies group by @dependabot in https://github.com/gjtorikian/html-pipeline/pull/404
|
13
|
+
* Remove superfluous sanitization by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/408
|
14
|
+
|
15
|
+
|
16
|
+
**Full Changelog**: https://github.com/gjtorikian/html-pipeline/compare/v3.2.0...v3.2.1
|
17
|
+
## [v3.2.0] - 30-04-2024
|
18
|
+
## What's Changed
|
19
|
+
* Pass context along to every part of the pipeline by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/403
|
20
|
+
|
21
|
+
|
22
|
+
**Full Changelog**: https://github.com/gjtorikian/html-pipeline/compare/v3.1.1...v3.2.0
|
23
|
+
## [v3.1.1] - 09-04-2024
|
24
|
+
## What's Changed
|
25
|
+
* Correct missing method implementation by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/401
|
26
|
+
|
27
|
+
|
28
|
+
**Full Changelog**: https://github.com/gjtorikian/html-pipeline/compare/v3.1.0...v3.1.1
|
29
|
+
## [v3.1.0] - 28-02-2024
|
30
|
+
## What's Changed
|
31
|
+
* UPGRADING: not removed by @dentarg in https://github.com/gjtorikian/html-pipeline/pull/397
|
32
|
+
* [BREAKING] now requires instantiation by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/398
|
33
|
+
|
34
|
+
## New Contributors
|
35
|
+
* @dentarg made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/397
|
36
|
+
|
37
|
+
**Full Changelog**: https://github.com/gjtorikian/html-pipeline/compare/v3.0.3...v3.1.0
|
38
|
+
## [v3.0.3] - 02-02-2024
|
39
|
+
|
40
|
+
## What's Changed
|
41
|
+
|
42
|
+
- Fix typo in README by @ppworks in https://github.com/gjtorikian/html-pipeline/pull/394
|
43
|
+
- Prevent exception by @ppworks in https://github.com/gjtorikian/html-pipeline/pull/395
|
44
|
+
- Cut 3.0.3 by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/396
|
45
|
+
|
46
|
+
## New Contributors
|
47
|
+
|
48
|
+
- @ppworks made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/394
|
49
|
+
|
50
|
+
**Full Changelog**: https://github.com/gjtorikian/html-pipeline/compare/v3.0.2...v3.0.3
|
51
|
+
|
1
52
|
## [v3.0.2] - 08-01-2024
|
53
|
+
|
2
54
|
## What's Changed
|
3
|
-
|
4
|
-
|
55
|
+
|
56
|
+
- README.md: Fix example code by @grekko in https://github.com/gjtorikian/html-pipeline/pull/390
|
57
|
+
- Allow pipeline to run without node filters by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/392
|
5
58
|
|
6
59
|
## New Contributors
|
7
|
-
|
60
|
+
|
61
|
+
- @grekko made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/390
|
8
62
|
|
9
63
|
**Full Changelog**: https://github.com/gjtorikian/html-pipeline/compare/v3.0.1...v3.0.2
|
64
|
+
|
10
65
|
## [v3.0.1] - 28-12-2023
|
66
|
+
|
11
67
|
## What's Changed
|
12
|
-
|
68
|
+
|
69
|
+
- Handle odd numbers of NodeFilters to be configured by @stevehill1981 in https://github.com/gjtorikian/html-pipeline/pull/389
|
13
70
|
|
14
71
|
## New Contributors
|
15
|
-
|
72
|
+
|
73
|
+
- @stevehill1981 made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/389
|
16
74
|
|
17
75
|
**Full Changelog**: https://github.com/gjtorikian/html-pipeline/compare/v3.0.0...v3.0.1
|
76
|
+
|
18
77
|
## [v3.0.0] - 24-12-2023
|
78
|
+
|
19
79
|
## What's Changed
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
80
|
+
|
81
|
+
- Switch to GitHub Actions by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/346
|
82
|
+
- add truffleruby-head by @gogainda in https://github.com/gjtorikian/html-pipeline/pull/348
|
83
|
+
- Add Rubocop by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/349
|
84
|
+
- Support multiple dependencies per filter by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/351
|
85
|
+
- Split filters up by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/360
|
86
|
+
- Migrate from Nokogiri to Selma by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/368
|
87
|
+
- You shall pass by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/369
|
88
|
+
- Update Selma signatures by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/370
|
89
|
+
- Close sanitization-related issues by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/371
|
90
|
+
- Drop SyntaxHighlightFilter by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/372
|
91
|
+
- V3 Release by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/347
|
92
|
+
- Use emoji from commonmarker by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/373
|
93
|
+
- req convert_filter if filter present by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/375
|
94
|
+
- Update selma requirement from ~> 0.0.1 to >= 0.0.1, < 0.2.0 by @dependabot in https://github.com/gjtorikian/html-pipeline/pull/377
|
95
|
+
- Add the AssetProxyFilter by @digitalmoksha in https://github.com/gjtorikian/html-pipeline/pull/379
|
96
|
+
- Update rouge requirement from ~> 3.1 to ~> 4.1 by @dependabot in https://github.com/gjtorikian/html-pipeline/pull/381
|
97
|
+
- Update gemoji requirement from ~> 3.0 to ~> 4.1 by @dependabot in https://github.com/gjtorikian/html-pipeline/pull/382
|
98
|
+
- Have Zeitwerk not automatically load filters by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/383
|
99
|
+
- Bump the github-actions group with 1 update by @dependabot in https://github.com/gjtorikian/html-pipeline/pull/384
|
100
|
+
- :gem: 3.0.0 by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/386
|
40
101
|
|
41
102
|
## New Contributors
|
42
|
-
|
43
|
-
|
44
|
-
|
103
|
+
|
104
|
+
- @gogainda made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/348
|
105
|
+
- @dependabot made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/377
|
106
|
+
- @digitalmoksha made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/379
|
45
107
|
|
46
108
|
**Full Changelog**: https://github.com/gjtorikian/html-pipeline/compare/v2.14.3...v3.0.0
|
109
|
+
|
47
110
|
## [v3.0.0.pre6] - 16-08-2023
|
111
|
+
|
48
112
|
null
|
113
|
+
|
49
114
|
# Changelog
|
50
115
|
|
51
116
|
## [v3.0.0.pre5](https://github.com/gjtorikian/html-pipeline/tree/v3.0.0.pre5) (2023-06-05)
|
@@ -76,7 +141,7 @@ null
|
|
76
141
|
|
77
142
|
**Merged pull requests:**
|
78
143
|
|
79
|
-
- req
|
144
|
+
- req convert_filter if `text/node`filter present [\#375](https://github.com/gjtorikian/html-pipeline/pull/375) ([gjtorikian](https://github.com/gjtorikian))
|
80
145
|
|
81
146
|
## [v3.0.0.pre2](https://github.com/gjtorikian/html-pipeline/tree/v3.0.0.pre2) (2023-01-26)
|
82
147
|
|
@@ -137,7 +202,7 @@ null
|
|
137
202
|
|
138
203
|
**Merged pull requests:**
|
139
204
|
|
140
|
-
- Replace EscapeUtils.
|
205
|
+
- Replace EscapeUtils.escape_html with CGI.escape_html [\#365](https://github.com/gjtorikian/html-pipeline/pull/365) ([ramhoj](https://github.com/ramhoj))
|
141
206
|
|
142
207
|
## [v2.14.2](https://github.com/gjtorikian/html-pipeline/tree/v2.14.2) (2022-06-12)
|
143
208
|
|
@@ -309,7 +374,7 @@ null
|
|
309
374
|
|
310
375
|
**Closed issues:**
|
311
376
|
|
312
|
-
- New feature request for hashtags \# filter
|
377
|
+
- New feature request for hashtags \# filter [\#301](https://github.com/gjtorikian/html-pipeline/issues/301)
|
313
378
|
- Whitelist srcset for responsive images [\#233](https://github.com/gjtorikian/html-pipeline/issues/233)
|
314
379
|
|
315
380
|
**Merged pull requests:**
|
@@ -412,7 +477,7 @@ null
|
|
412
477
|
|
413
478
|
- Set instrumentation name [\#275](https://github.com/gjtorikian/html-pipeline/pull/275) ([gjtorikian](https://github.com/gjtorikian))
|
414
479
|
- Switch to CommonMark [\#274](https://github.com/gjtorikian/html-pipeline/pull/274) ([kivikakk](https://github.com/kivikakk))
|
415
|
-
-
|
480
|
+
- add korgi to 3rd party extensions \[ci skip\] [\#271](https://github.com/gjtorikian/html-pipeline/pull/271) ([jodeci](https://github.com/jodeci))
|
416
481
|
|
417
482
|
## [v2.5.0](https://github.com/gjtorikian/html-pipeline/tree/v2.5.0) (2017-01-13)
|
418
483
|
|
@@ -421,7 +486,7 @@ null
|
|
421
486
|
**Closed issues:**
|
422
487
|
|
423
488
|
- Add `<wbr>` to whitelist [\#265](https://github.com/gjtorikian/html-pipeline/issues/265)
|
424
|
-
- Missing context keys for HTML::Pipeline::EmojiFilter: :
|
489
|
+
- Missing context keys for HTML::Pipeline::EmojiFilter: :asset_root [\#262](https://github.com/gjtorikian/html-pipeline/issues/262)
|
425
490
|
- Emoji \<img\> tags does not pass W3C validationg [\#234](https://github.com/gjtorikian/html-pipeline/issues/234)
|
426
491
|
- Incompatible character encodings: ASCII-8BIT and UTF-8 in EmailReplyFilter [\#229](https://github.com/gjtorikian/html-pipeline/issues/229)
|
427
492
|
|
@@ -504,8 +569,8 @@ null
|
|
504
569
|
**Merged pull requests:**
|
505
570
|
|
506
571
|
- Release 2.2.2 [\#231](https://github.com/gjtorikian/html-pipeline/pull/231) ([jch](https://github.com/jch))
|
507
|
-
- Fix for calling
|
508
|
-
- Add html-pipeline-
|
572
|
+
- Fix for calling mention_link_filter with only one argument [\#230](https://github.com/gjtorikian/html-pipeline/pull/230) ([benbalter](https://github.com/benbalter))
|
573
|
+
- Add html-pipeline-linkify_github to 3rd Party Extensions \[ci skip\] [\#228](https://github.com/gjtorikian/html-pipeline/pull/228) ([JuanitoFatas](https://github.com/JuanitoFatas))
|
509
574
|
|
510
575
|
## [v2.2.1](https://github.com/gjtorikian/html-pipeline/tree/v2.2.1) (2015-10-01)
|
511
576
|
|
@@ -561,7 +626,7 @@ null
|
|
561
626
|
- Question - Can this work with Rouge? [\#166](https://github.com/gjtorikian/html-pipeline/issues/166)
|
562
627
|
- Question about github markdown filter \(low priority!\) [\#165](https://github.com/gjtorikian/html-pipeline/issues/165)
|
563
628
|
- Do not mention or emojify in a codeblock [\#163](https://github.com/gjtorikian/html-pipeline/issues/163)
|
564
|
-
- MentionFilter
|
629
|
+
- MentionFilter base_url config question [\#161](https://github.com/gjtorikian/html-pipeline/issues/161)
|
565
630
|
- Feature Request: Add "details" tag to whitelist [\#138](https://github.com/gjtorikian/html-pipeline/issues/138)
|
566
631
|
|
567
632
|
**Merged pull requests:**
|
@@ -573,10 +638,10 @@ null
|
|
573
638
|
- \[ci skip\] Fix CHANGELOG.md rendering. [\#177](https://github.com/gjtorikian/html-pipeline/pull/177) ([JuanitoFatas](https://github.com/JuanitoFatas))
|
574
639
|
- Restrict nokogiri to specific versions [\#176](https://github.com/gjtorikian/html-pipeline/pull/176) ([simeonwillbanks](https://github.com/simeonwillbanks))
|
575
640
|
- Use svg build badge. \[ci skip\] [\#175](https://github.com/gjtorikian/html-pipeline/pull/175) ([JuanitoFatas](https://github.com/JuanitoFatas))
|
576
|
-
- Add 3rd party gem: html-pipeline-
|
577
|
-
- MentionFilter\#
|
641
|
+
- Add 3rd party gem: html-pipeline-rouge_filter. [\#174](https://github.com/gjtorikian/html-pipeline/pull/174) ([JuanitoFatas](https://github.com/JuanitoFatas))
|
642
|
+
- MentionFilter\#link_to_mentioned_user: Replace String introspection with Regexp match [\#172](https://github.com/gjtorikian/html-pipeline/pull/172) ([simeonwillbanks](https://github.com/simeonwillbanks))
|
578
643
|
- Whitelist summary and details element. [\#171](https://github.com/gjtorikian/html-pipeline/pull/171) ([JuanitoFatas](https://github.com/JuanitoFatas))
|
579
|
-
- Implement new context option:
|
644
|
+
- Implement new context option: ignored_ancestor_tags to accept more ignored tags. [\#170](https://github.com/gjtorikian/html-pipeline/pull/170) ([JuanitoFatas](https://github.com/JuanitoFatas))
|
580
645
|
- Support ~login for MentionFilter. [\#167](https://github.com/gjtorikian/html-pipeline/pull/167) ([JuanitoFatas](https://github.com/JuanitoFatas))
|
581
646
|
- Add GitHub flavor Markdown Task List extension [\#162](https://github.com/gjtorikian/html-pipeline/pull/162) ([simeonwillbanks](https://github.com/simeonwillbanks))
|
582
647
|
- Drop support for gemoji ~\> 1.0 [\#159](https://github.com/gjtorikian/html-pipeline/pull/159) ([jch](https://github.com/jch))
|
@@ -593,14 +658,14 @@ null
|
|
593
658
|
|
594
659
|
**Closed issues:**
|
595
660
|
|
596
|
-
- @
|
661
|
+
- @mention_filter should not replace mentions in style blocks. [\#143](https://github.com/gjtorikian/html-pipeline/issues/143)
|
597
662
|
- EmojiFilter doesn't work on strings that don't contain HTML [\#133](https://github.com/gjtorikian/html-pipeline/issues/133)
|
598
663
|
|
599
664
|
**Merged pull requests:**
|
600
665
|
|
601
666
|
- Search for text nodes on DocumentFragments without root tags [\#146](https://github.com/gjtorikian/html-pipeline/pull/146) ([Razer6](https://github.com/Razer6))
|
602
667
|
- Don't filter @mentions in \<style\> tags [\#145](https://github.com/gjtorikian/html-pipeline/pull/145) ([jch](https://github.com/jch))
|
603
|
-
- Prefer
|
668
|
+
- Prefer http_url in HttpsFilter [\#142](https://github.com/gjtorikian/html-pipeline/pull/142) ([bkeepers](https://github.com/bkeepers))
|
604
669
|
- Don't check twice if there is a ':' in content \(EmojiFilter\) [\#141](https://github.com/gjtorikian/html-pipeline/pull/141) ([Razer6](https://github.com/Razer6))
|
605
670
|
|
606
671
|
## [v1.10.0](https://github.com/gjtorikian/html-pipeline/tree/v1.10.0) (2014-09-05)
|
@@ -632,7 +697,7 @@ null
|
|
632
697
|
**Merged pull requests:**
|
633
698
|
|
634
699
|
- Generalize https filter take 2 [\#131](https://github.com/gjtorikian/html-pipeline/pull/131) ([simeonwillbanks](https://github.com/simeonwillbanks))
|
635
|
-
- Remove
|
700
|
+
- Remove RUBY_VERSION conditionals from gemspec [\#130](https://github.com/gjtorikian/html-pipeline/pull/130) ([mislav](https://github.com/mislav))
|
636
701
|
- Add compatibility with gemoji v2 [\#129](https://github.com/gjtorikian/html-pipeline/pull/129) ([mislav](https://github.com/mislav))
|
637
702
|
|
638
703
|
## [v1.8.0](https://github.com/gjtorikian/html-pipeline/tree/v1.8.0) (2014-04-04)
|
@@ -659,7 +724,7 @@ null
|
|
659
724
|
**Closed issues:**
|
660
725
|
|
661
726
|
- cut a 1.6.0 release [\#116](https://github.com/gjtorikian/html-pipeline/issues/116)
|
662
|
-
- AutolinkFilter
|
727
|
+
- AutolinkFilter link_attr doesn't seem to work [\#114](https://github.com/gjtorikian/html-pipeline/issues/114)
|
663
728
|
- Spaces inserted into code [\#109](https://github.com/gjtorikian/html-pipeline/issues/109)
|
664
729
|
|
665
730
|
**Merged pull requests:**
|
@@ -747,9 +812,9 @@ null
|
|
747
812
|
|
748
813
|
**Merged pull requests:**
|
749
814
|
|
750
|
-
- Add
|
815
|
+
- Add link_attr option to Autolink filter [\#89](https://github.com/gjtorikian/html-pipeline/pull/89) ([excid3](https://github.com/excid3))
|
751
816
|
- Update readme with link to asciidoc filter [\#87](https://github.com/gjtorikian/html-pipeline/pull/87) ([jch](https://github.com/jch))
|
752
|
-
- use
|
817
|
+
- use xml_mini extracted from activesupport [\#85](https://github.com/gjtorikian/html-pipeline/pull/85) ([mojavelinux](https://github.com/mojavelinux))
|
753
818
|
- Filters Manage Dependencies [\#80](https://github.com/gjtorikian/html-pipeline/pull/80) ([simeonwillbanks](https://github.com/simeonwillbanks))
|
754
819
|
|
755
820
|
## [v0.3.1](https://github.com/gjtorikian/html-pipeline/tree/v0.3.1) (2013-09-16)
|
@@ -817,7 +882,7 @@ null
|
|
817
882
|
- Improve to describe gem 'github-linguist' [\#69](https://github.com/gjtorikian/html-pipeline/pull/69) ([tricknotes](https://github.com/tricknotes))
|
818
883
|
- Bump version to 0.1.0. Follow semver. [\#68](https://github.com/gjtorikian/html-pipeline/pull/68) ([jch](https://github.com/jch))
|
819
884
|
- Scope gem versions for Travis CI [\#67](https://github.com/gjtorikian/html-pipeline/pull/67) ([jch](https://github.com/jch))
|
820
|
-
- Allow passing
|
885
|
+
- Allow passing skip_tags in autolink filter context [\#65](https://github.com/gjtorikian/html-pipeline/pull/65) ([pengwynn](https://github.com/pengwynn))
|
821
886
|
- Support non-English characters in anchor names [\#64](https://github.com/gjtorikian/html-pipeline/pull/64) ([jakedouglas](https://github.com/jakedouglas))
|
822
887
|
- Fix the `AutolinkFilter` constant name. [\#57](https://github.com/gjtorikian/html-pipeline/pull/57) ([envygeeks](https://github.com/envygeeks))
|
823
888
|
- resolves \#54 allow table section elements \(thead, tfoot, tbody\) [\#55](https://github.com/gjtorikian/html-pipeline/pull/55) ([mojavelinux](https://github.com/mojavelinux))
|
@@ -870,7 +935,7 @@ null
|
|
870
935
|
**Merged pull requests:**
|
871
936
|
|
872
937
|
- Add an html-pipeline executable to the gem [\#44](https://github.com/gjtorikian/html-pipeline/pull/44) ([indirect](https://github.com/indirect))
|
873
|
-
- add result\[:
|
938
|
+
- add result\[:mentioned_usernames\] for MentionFilter [\#42](https://github.com/gjtorikian/html-pipeline/pull/42) ([fahchen](https://github.com/fahchen))
|
874
939
|
|
875
940
|
## [v0.0.8.1](https://github.com/gjtorikian/html-pipeline/tree/v0.0.8.1) (2013-03-03)
|
876
941
|
|
@@ -886,7 +951,7 @@ null
|
|
886
951
|
|
887
952
|
**Merged pull requests:**
|
888
953
|
|
889
|
-
- Bump
|
954
|
+
- Bump escape_utils [\#41](https://github.com/gjtorikian/html-pipeline/pull/41) ([brianmario](https://github.com/brianmario))
|
890
955
|
- Don't monkeypatch Nokogiri in 1.9 [\#40](https://github.com/gjtorikian/html-pipeline/pull/40) ([defunkt](https://github.com/defunkt))
|
891
956
|
|
892
957
|
## [v0.0.8](https://github.com/gjtorikian/html-pipeline/tree/v0.0.8) (2013-02-07)
|
@@ -978,7 +1043,3 @@ null
|
|
978
1043
|
- Ensure required context values are present [\#9](https://github.com/gjtorikian/html-pipeline/pull/9) ([juliamae](https://github.com/juliamae))
|
979
1044
|
- emoji filter requires the emoji gem [\#8](https://github.com/gjtorikian/html-pipeline/pull/8) ([atmos](https://github.com/atmos))
|
980
1045
|
- De-Github and opensource [\#6](https://github.com/gjtorikian/html-pipeline/pull/6) ([jch](https://github.com/jch))
|
981
|
-
|
982
|
-
|
983
|
-
|
984
|
-
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
|
data/Gemfile
CHANGED
@@ -10,8 +10,6 @@ gem "awesome_print"
|
|
10
10
|
gem "rubocop"
|
11
11
|
gem "rubocop-standard"
|
12
12
|
|
13
|
-
gem "github_changelog_generator", "~> 1.16"
|
14
|
-
|
15
13
|
gem "sorbet-runtime"
|
16
14
|
|
17
15
|
group :development, :test do
|
@@ -27,7 +25,7 @@ group :development do
|
|
27
25
|
end
|
28
26
|
|
29
27
|
group :test do
|
30
|
-
gem "commonmarker", "~>
|
28
|
+
gem "commonmarker", "~> 2.0.1", require: false
|
31
29
|
gem "gemoji", "~> 4.1", require: false
|
32
30
|
gem "gemojione", "~> 4.3", require: false
|
33
31
|
|
data/README.md
CHANGED
@@ -1,8 +1,5 @@
|
|
1
1
|
# HTML-Pipeline
|
2
2
|
|
3
|
-
> **Note**
|
4
|
-
> This README refers to the behavior in the new 3.0.0.pre gem.
|
5
|
-
|
6
3
|
HTML processing filters and utilities. This module is a small
|
7
4
|
framework for defining CSS-based content filters and applying them to user
|
8
5
|
provided content.
|
@@ -60,9 +57,15 @@ results tothe next filter. A pipeline has several kinds of filters available to
|
|
60
57
|
|
61
58
|
You can assemble each sequence into a single pipeline, or choose to call each filter individually.
|
62
59
|
|
63
|
-
As an example, suppose we want to transform Commonmark source text into Markdown HTML
|
60
|
+
As an example, suppose we want to transform Commonmark source text into Markdown HTML:
|
61
|
+
|
62
|
+
```
|
63
|
+
Hey there, @gjtorikian
|
64
|
+
```
|
65
|
+
|
66
|
+
With the content, we also want to:
|
64
67
|
|
65
|
-
- change every instance of
|
68
|
+
- change every instance of `Hey` to `Hello`
|
66
69
|
- strip undesired HTML
|
67
70
|
- linkify @mention
|
68
71
|
|
@@ -73,7 +76,7 @@ require 'html_pipeline'
|
|
73
76
|
|
74
77
|
class HelloJohnnyFilter < HTMLPipelineFilter
|
75
78
|
def call
|
76
|
-
text.gsub("
|
79
|
+
text.gsub("Hey", "Hello")
|
77
80
|
end
|
78
81
|
end
|
79
82
|
|
@@ -104,11 +107,21 @@ used to pass around arguments and metadata between filters in a pipeline. For
|
|
104
107
|
example, if you want to disable footnotes in the `MarkdownFilter`, you can pass an option in the context hash:
|
105
108
|
|
106
109
|
```ruby
|
107
|
-
context =
|
110
|
+
context = { markdown: { extensions: { footnotes: false } } }
|
108
111
|
filter = HTMLPipeline::ConvertFilter::MarkdownFilter.new(context: context)
|
109
112
|
filter.call("Hi **world**!")
|
110
113
|
```
|
111
114
|
|
115
|
+
Alternatively, you can construct a pipeline, and pass in a context during the call:
|
116
|
+
|
117
|
+
```ruby
|
118
|
+
pipeline = HTMLPipeline.new(
|
119
|
+
convert_filter: HTMLPipeline::ConvertFilter::MarkdownFilter.new,
|
120
|
+
node_filters: [HTMLPipeline::NodeFilter::MentionFilter.new]
|
121
|
+
)
|
122
|
+
pipeline.call(user_supplied_text, context: { markdown: { extensions: { footnotes: false } } })
|
123
|
+
```
|
124
|
+
|
112
125
|
Please refer to the documentation for each filter to understand what configuration options are available.
|
113
126
|
|
114
127
|
### More Examples
|
@@ -158,9 +171,9 @@ The `ConvertFilter` takes text and turns it into HTML. `@text`, `@config`, and `
|
|
158
171
|
|
159
172
|
### Sanitization
|
160
173
|
|
161
|
-
Because the web can be a scary place, HTML is automatically sanitized after the `ConvertFilter` runs and before the `NodeFilter`s are processed. This is to prevent malicious or unexpected input from entering the pipeline.
|
174
|
+
Because the web can be a scary place, **HTML is automatically sanitized** after the `ConvertFilter` runs and before the `NodeFilter`s are processed. This is to prevent malicious or unexpected input from entering the pipeline.
|
162
175
|
|
163
|
-
The sanitization process takes a hash configuration of settings. See the [Selma](https://www.github.com/gjtorikian/selma) documentation for more information on how to configure these settings.
|
176
|
+
The sanitization process takes a hash configuration of settings. See the [Selma](https://www.github.com/gjtorikian/selma) documentation for more information on how to configure these settings. Note that users must correctly configure the sanitization configuration if they expect to use it correctly in conjunction with handlers which manipulate HTML.
|
164
177
|
|
165
178
|
A default sanitization config is provided by this library (`HTMLPipeline::SanitizationFilter::DEFAULT_CONFIG`). A sample custom sanitization allowlist might look like this:
|
166
179
|
|
@@ -171,7 +184,7 @@ ALLOWLIST = {
|
|
171
184
|
|
172
185
|
pipeline = HTMLPipeline.new \
|
173
186
|
text_filters: [
|
174
|
-
HTMLPipeline::
|
187
|
+
HTMLPipeline::TextFilter::ImageFilter.new,
|
175
188
|
],
|
176
189
|
convert_filter: HTMLPipeline::ConvertFilter::MarkdownFilter.new,
|
177
190
|
sanitization_config: ALLOWLIST
|
@@ -199,7 +212,7 @@ the config:
|
|
199
212
|
```ruby
|
200
213
|
pipeline = HTMLPipeline.new \
|
201
214
|
text_filters: [
|
202
|
-
HTMLPipeline::
|
215
|
+
HTMLPipeline::TextFilter::ImageFilter.new,
|
203
216
|
],
|
204
217
|
convert_filter: HTMLPipeline::ConvertFilter::MarkdownFilter.new,
|
205
218
|
sanitization_config: nil
|
@@ -211,7 +224,7 @@ For more examples of customizing the sanitization process to include the tags yo
|
|
211
224
|
|
212
225
|
`NodeFilters`s can operate either on HTML elements or text nodes using CSS selectors. Each `NodeFilter` must define a method named `selector` which provides an instance of `Selma::Selector`. If elements are being manipulated, `handle_element` must be defined, taking one argument, `element`; if text nodes are being manipulated, `handle_text_chunk` must be defined, taking one argument, `text_chunk`. `@config`, and `@result` are available to use, and any changes made to these ivars are passed on to the next filter.
|
213
226
|
|
214
|
-
`NodeFilter` also has an optional method, `after_initialize`, which is run after the filter initializes. This can be useful in setting up a custom state for `result` to
|
227
|
+
`NodeFilter` also has an optional method, `after_initialize`, which is run after the filter initializes. This can be useful in setting up a fresh custom state for `result` to start from each time the pipeline is called.
|
215
228
|
|
216
229
|
Here's an example `NodeFilter` that adds a base url to images that are root relative:
|
217
230
|
|
@@ -330,34 +343,6 @@ service.subscribe "call_text_filters.html_pipeline" do |event, start, ending, tr
|
|
330
343
|
end
|
331
344
|
```
|
332
345
|
|
333
|
-
## Third Party Extensions
|
334
|
-
|
335
|
-
If you have an idea for a filter, propose it as
|
336
|
-
[an issue](https://github.com/gjtorikian/html-pipeline/issues) first. This allows us to discuss
|
337
|
-
whether the filter is a common enough use case to belong in this gem, or should be
|
338
|
-
built as an external gem.
|
339
|
-
|
340
|
-
Here are some extensions people have built:
|
341
|
-
|
342
|
-
- [html-pipeline-asciidoc_filter](https://github.com/asciidoctor/html-pipeline-asciidoc_filter)
|
343
|
-
- [jekyll-html-pipeline](https://github.com/gjtorikian/jekyll-html-pipeline)
|
344
|
-
- [nanoc-html-pipeline](https://github.com/burnto/nanoc-html-pipeline)
|
345
|
-
- [html-pipeline-bitly](https://github.com/dewski/html-pipeline-bitly)
|
346
|
-
- [html-pipeline-cite](https://github.com/lifted-studios/html-pipeline-cite)
|
347
|
-
- [tilt-html-pipeline](https://github.com/bradgessler/tilt-html-pipeline)
|
348
|
-
- [html-pipeline-wiki-link'](https://github.com/lifted-studios/html-pipeline-wiki-link) - WikiMedia-style wiki links
|
349
|
-
- [task_list](https://github.com/github/task_list) - GitHub flavor Markdown Task List
|
350
|
-
- [html-pipeline-nico_link](https://github.com/rutan/html-pipeline-nico_link) - An HTMLPipeline filter for [niconico](http://www.nicovideo.jp) description links
|
351
|
-
- [html-pipeline-gitlab](https://gitlab.com/gitlab-org/html-pipeline-gitlab) - This gem implements various filters for html-pipeline used by GitLab
|
352
|
-
- [html-pipeline-youtube](https://github.com/st0012/html-pipeline-youtube) - An HTMLPipeline filter for YouTube links
|
353
|
-
- [html-pipeline-flickr](https://github.com/st0012/html-pipeline-flickr) - An HTMLPipeline filter for Flickr links
|
354
|
-
- [html-pipeline-vimeo](https://github.com/dlackty/html-pipeline-vimeo) - An HTMLPipeline filter for Vimeo links
|
355
|
-
- [html-pipeline-hashtag](https://github.com/mr-dxdy/html-pipeline-hashtag) - An HTMLPipeline filter for hashtags
|
356
|
-
- [html-pipeline-linkify_github](https://github.com/jollygoodcode/html-pipeline-linkify_github) - An HTMLPipeline filter to autolink GitHub urls
|
357
|
-
- [html-pipeline-redcarpet_filter](https://github.com/bmikol/html-pipeline-redcarpet_filter) - Render Markdown source text into Markdown HTML using Redcarpet
|
358
|
-
- [html-pipeline-typogruby_filter](https://github.com/bmikol/html-pipeline-typogruby_filter) - Add Typogruby text filters to your HTMLPipeline
|
359
|
-
- [korgi](https://github.com/jodeci/korgi) - HTMLPipeline filters for links to Rails resources
|
360
|
-
|
361
346
|
## FAQ
|
362
347
|
|
363
348
|
### 1. Why doesn't my pipeline work when there's no root element in the document?
|
@@ -375,7 +360,7 @@ you to add additional elements. You can either modify the constant's value, or
|
|
375
360
|
re-define your own config and pass that in, such as:
|
376
361
|
|
377
362
|
```ruby
|
378
|
-
config = HTMLPipeline::SanitizationFilter::DEFAULT_CONFIG.
|
363
|
+
config = HTMLPipeline::SanitizationFilter::DEFAULT_CONFIG.deep_dup
|
379
364
|
config[:elements] << "iframe" # sure, whatever you want
|
380
365
|
```
|
381
366
|
|
data/UPGRADING.md
CHANGED
@@ -14,10 +14,8 @@ The following filters were removed:
|
|
14
14
|
|
15
15
|
- `AutolinkFilter`: this is handled by [Commonmarker](https://www.github.com/gjtorikian/commonmarker) and can be disabled/enabled through the `MarkdownFilter`'s `context` hash
|
16
16
|
- `SanitizationFilter`: this is handled by [Selma](https://www.github.com/gjtorikian/selma); configuration can be done through the `sanitization_config` hash
|
17
|
-
|
18
17
|
- `EmailReplyFilter`
|
19
18
|
- `CamoFilter`
|
20
|
-
- `TextFilter`
|
21
19
|
|
22
20
|
### Changed API
|
23
21
|
|
data/html-pipeline.gemspec
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
HTMLPipeline.require_dependency("commonmarker", "MarkdownFilter")
|
4
4
|
|
5
5
|
class HTMLPipeline
|
6
|
-
class ConvertFilter
|
6
|
+
class ConvertFilter < Filter
|
7
7
|
# HTML Filter that converts Markdown text into HTML.
|
8
8
|
#
|
9
9
|
# Context options:
|
@@ -12,12 +12,12 @@ class HTMLPipeline
|
|
12
12
|
# :markdown[:extensions] => Commonmarker extensions options
|
13
13
|
class MarkdownFilter < ConvertFilter
|
14
14
|
def initialize(context: {}, result: {})
|
15
|
-
super
|
15
|
+
super
|
16
16
|
end
|
17
17
|
|
18
18
|
# Convert Commonmark to HTML using the best available implementation.
|
19
|
-
def call(text)
|
20
|
-
options =
|
19
|
+
def call(text, context: @context)
|
20
|
+
options = context.fetch(:markdown, {})
|
21
21
|
plugins = options.fetch(:plugins, {})
|
22
22
|
Commonmarker.to_html(text, options: options, plugins: plugins).rstrip!
|
23
23
|
end
|
data/lib/html_pipeline/filter.rb
CHANGED
@@ -27,7 +27,7 @@ class HTMLPipeline
|
|
27
27
|
# Public: Returns a simple Hash used to pass extra information into filters
|
28
28
|
# and also to allow filters to make extracted information available to the
|
29
29
|
# caller.
|
30
|
-
|
30
|
+
attr_accessor :context
|
31
31
|
|
32
32
|
# Public: Returns a Hash used to allow filters to pass back information
|
33
33
|
# to callers of the various Pipelines. This can be used for
|
@@ -115,7 +115,8 @@ class HTMLPipeline
|
|
115
115
|
result[:mentioned_usernames] |= [login]
|
116
116
|
|
117
117
|
url = base_url.dup
|
118
|
-
|
118
|
+
excluded_prefixes = %r{[/(?:~|@]\z}
|
119
|
+
url << "/" unless excluded_prefixes.match?(url)
|
119
120
|
|
120
121
|
"<a href=\"#{url << login}\" class=\"user-mention\">" \
|
121
122
|
"@#{login}" \
|
@@ -15,7 +15,7 @@ class HTMLPipeline
|
|
15
15
|
# This filter does not write any additional information to the context hash.
|
16
16
|
class SyntaxHighlightFilter < NodeFilter
|
17
17
|
def initialize(context: {}, result: {})
|
18
|
-
super
|
18
|
+
super
|
19
19
|
# TODO: test the optionality of this
|
20
20
|
@formatter = context[:formatter] || Rouge::Formatters::HTML.new
|
21
21
|
end
|
@@ -94,7 +94,8 @@ class HTMLPipeline
|
|
94
94
|
result[:mentioned_teams] |= [team]
|
95
95
|
|
96
96
|
url = base_url.dup
|
97
|
-
|
97
|
+
excluded_prefixes = %r{[/(?:~|@]\z}
|
98
|
+
url << "/" unless excluded_prefixes.match?(url)
|
98
99
|
|
99
100
|
"<a href=\"#{url << org}/#{team}\" class=\"team-mention\">" \
|
100
101
|
"@#{org}/#{team}" \
|
@@ -9,8 +9,8 @@ class HTMLPipeline
|
|
9
9
|
# <img src="http://example.com/test.jpg" alt=""/>.
|
10
10
|
|
11
11
|
class ImageFilter < TextFilter
|
12
|
-
def call
|
13
|
-
|
12
|
+
def call(text, context: {}, result: {})
|
13
|
+
text.gsub(%r{(https|http)?://.+\.(jpg|jpeg|bmp|gif|png)(\?\S+)?}i) do |match|
|
14
14
|
%(<img src="#{match}" alt=""/>)
|
15
15
|
end
|
16
16
|
end
|
@@ -5,8 +5,8 @@ class HTMLPipeline
|
|
5
5
|
# Simple filter for plain text input. HTML escapes the text input and wraps it
|
6
6
|
# in a div.
|
7
7
|
class PlainTextInputFilter < TextFilter
|
8
|
-
def call
|
9
|
-
"<div>#{CGI.escapeHTML(
|
8
|
+
def call(text, context: {}, result: {})
|
9
|
+
"<div>#{CGI.escapeHTML(text)}</div>"
|
10
10
|
end
|
11
11
|
end
|
12
12
|
end
|
@@ -4,17 +4,17 @@ class HTMLPipeline
|
|
4
4
|
class TextFilter < Filter
|
5
5
|
attr_reader :text
|
6
6
|
|
7
|
-
def initialize(
|
8
|
-
|
9
|
-
|
10
|
-
# Ensure that this is always a string
|
11
|
-
@text = text.respond_to?(:to_str) ? text.to_str : text.to_s
|
12
|
-
super(context: context, result: result)
|
7
|
+
def initialize(context: {}, result: {})
|
8
|
+
super
|
13
9
|
end
|
14
10
|
|
15
11
|
class << self
|
16
|
-
def call(
|
17
|
-
|
12
|
+
def call(text, context: {}, result: {})
|
13
|
+
raise TypeError, "text must be a String" unless text.is_a?(String)
|
14
|
+
|
15
|
+
# Ensure that this is always a string
|
16
|
+
text = text.respond_to?(:to_str) ? text.to_str : text.to_s
|
17
|
+
new(context: context, result: result).call(text)
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
data/lib/html_pipeline.rb
CHANGED
@@ -153,14 +153,14 @@ class HTMLPipeline
|
|
153
153
|
|
154
154
|
if @text_filters.any?
|
155
155
|
payload = default_payload({
|
156
|
-
text_filters: @text_filters.map
|
156
|
+
text_filters: @text_filters.map { |f| f.class.name },
|
157
157
|
context: context,
|
158
158
|
result: result,
|
159
159
|
})
|
160
160
|
instrument("call_text_filters.html_pipeline", payload) do
|
161
161
|
result[:output] =
|
162
162
|
@text_filters.inject(text) do |doc, filter|
|
163
|
-
perform_filter(filter, doc, context: context, result: result)
|
163
|
+
perform_filter(filter, doc, context: (filter.context || {}).merge(context), result: result)
|
164
164
|
end
|
165
165
|
end
|
166
166
|
end
|
@@ -171,14 +171,24 @@ class HTMLPipeline
|
|
171
171
|
text
|
172
172
|
else
|
173
173
|
instrument("call_convert_filter.html_pipeline", payload) do
|
174
|
-
html = @convert_filter.call(text)
|
174
|
+
html = @convert_filter.call(text, context: (@convert_filter.context || {}).merge(context))
|
175
175
|
end
|
176
176
|
end
|
177
177
|
|
178
|
-
|
178
|
+
rewriter_options = {
|
179
|
+
memory: {
|
180
|
+
max_allowed_memory_usage: 5242880, # arbitrary limit of 5MB
|
181
|
+
},
|
182
|
+
}
|
183
|
+
|
184
|
+
if @node_filters.empty?
|
185
|
+
instrument("sanitization.html_pipeline", payload) do
|
186
|
+
result[:output] = Selma::Rewriter.new(sanitizer: @sanitization_config, options: rewriter_options).rewrite(html)
|
187
|
+
end
|
188
|
+
else
|
179
189
|
instrument("call_node_filters.html_pipeline", payload) do
|
180
|
-
|
181
|
-
|
190
|
+
@node_filters.each { |filter| filter.context = (filter.context || {}).merge(context) }
|
191
|
+
result[:output] = Selma::Rewriter.new(sanitizer: @sanitization_config, handlers: @node_filters, options: rewriter_options).rewrite(html)
|
182
192
|
payload = default_payload({
|
183
193
|
node_filters: @node_filters.map { |f| f.class.name },
|
184
194
|
context: context,
|
@@ -187,10 +197,6 @@ class HTMLPipeline
|
|
187
197
|
end
|
188
198
|
end
|
189
199
|
|
190
|
-
instrument("html_pipeline.sanitization", payload) do
|
191
|
-
result[:output] = Selma::Rewriter.new(sanitizer: @sanitization_config, handlers: @node_filters).rewrite(html)
|
192
|
-
end
|
193
|
-
|
194
200
|
result = result.merge(@node_filters.collect(&:result).reduce({}, :merge))
|
195
201
|
@node_filters.each(&:reset!)
|
196
202
|
|
@@ -204,7 +210,7 @@ class HTMLPipeline
|
|
204
210
|
# Returns the result of the filter.
|
205
211
|
def perform_filter(filter, doc, context: {}, result: {})
|
206
212
|
payload = default_payload({
|
207
|
-
filter: filter.name,
|
213
|
+
filter: filter.class.name,
|
208
214
|
context: context,
|
209
215
|
result: result,
|
210
216
|
})
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: html-pipeline
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Garen J. Torikian
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-12-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: selma
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.4'
|
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: '0.
|
26
|
+
version: '0.4'
|
27
27
|
force_ruby_platform: false
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: zeitwerk
|
@@ -111,8 +111,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
111
|
- !ruby/object:Gem::Version
|
112
112
|
version: 3.3.22
|
113
113
|
requirements: []
|
114
|
-
rubygems_version: 3.
|
115
|
-
signing_key:
|
114
|
+
rubygems_version: 3.4.6
|
115
|
+
signing_key:
|
116
116
|
specification_version: 4
|
117
117
|
summary: Helpers for processing content through a chain of filters
|
118
118
|
test_files: []
|