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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 22c3391b770c24cbed1ea42f396fabfa399935416c8d01a8ce8727094c456fe4
4
- data.tar.gz: 6936f1943d251689b0bef19f43348ac46e2027d658ec7544dc4799ab98600602
3
+ metadata.gz: 6e66a69a9e35bc5703f036d091740bdc654f98cfaf38870761797699ed28199b
4
+ data.tar.gz: 7624bb08357fa9f358cb4947dbf5742916a3e620fa7db2d5296e9aba414e40f5
5
5
  SHA512:
6
- metadata.gz: dce1a303621b079f2e482007ad77761d745ca0bdec98bf405cedeb5d4f1b6a097b7c28bf96e919ae2b2b5129cc1bf0f528dd6d4e617eafb2767f760a24079a6e
7
- data.tar.gz: 821a0b306d7cc440069ae38ca857f7ed157d1ec5c3decbbbcfc3a4fd05b5c17e975e493e9017ac1eaed5a216de0b00dfc3bed405e64e40b2d1e03a04b44b14cb
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.PUBLIC_PUSH_TO_PROTECTED_BRANCH }}
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
@@ -17,4 +17,4 @@ test/tmp
17
17
  test/version_tmp
18
18
  tmp
19
19
  exec/*
20
- vendor/gems
20
+ vendor/cache/
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
- * README.md: Fix example code by @grekko in https://github.com/gjtorikian/html-pipeline/pull/390
4
- * Allow pipeline to run without node filters by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/392
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
- * @grekko made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/390
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
- * Handle odd numbers of NodeFilters to be configured by @stevehill1981 in https://github.com/gjtorikian/html-pipeline/pull/389
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
- * @stevehill1981 made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/389
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
- * Switch to GitHub Actions by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/346
21
- * add truffleruby-head by @gogainda in https://github.com/gjtorikian/html-pipeline/pull/348
22
- * Add Rubocop by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/349
23
- * Support multiple dependencies per filter by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/351
24
- * Split filters up by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/360
25
- * Migrate from Nokogiri to Selma by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/368
26
- * You shall pass by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/369
27
- * Update Selma signatures by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/370
28
- * Close sanitization-related issues by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/371
29
- * Drop SyntaxHighlightFilter by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/372
30
- * V3 Release by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/347
31
- * Use emoji from commonmarker by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/373
32
- * req convert_filter if filter present by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/375
33
- * 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
34
- * Add the AssetProxyFilter by @digitalmoksha in https://github.com/gjtorikian/html-pipeline/pull/379
35
- * Update rouge requirement from ~> 3.1 to ~> 4.1 by @dependabot in https://github.com/gjtorikian/html-pipeline/pull/381
36
- * Update gemoji requirement from ~> 3.0 to ~> 4.1 by @dependabot in https://github.com/gjtorikian/html-pipeline/pull/382
37
- * Have Zeitwerk not automatically load filters by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/383
38
- * Bump the github-actions group with 1 update by @dependabot in https://github.com/gjtorikian/html-pipeline/pull/384
39
- * :gem: 3.0.0 by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/386
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
- * @gogainda made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/348
43
- * @dependabot made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/377
44
- * @digitalmoksha made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/379
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 convert\_filter if `text/node`filter present [\#375](https://github.com/gjtorikian/html-pipeline/pull/375) ([gjtorikian](https://github.com/gjtorikian))
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.escape\_html with CGI.escape\_html [\#365](https://github.com/gjtorikian/html-pipeline/pull/365) ([ramhoj](https://github.com/ramhoj))
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 [\#301](https://github.com/gjtorikian/html-pipeline/issues/301)
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
- - add korgi to 3rd party extensions \[ci skip\] [\#271](https://github.com/gjtorikian/html-pipeline/pull/271) ([jodeci](https://github.com/jodeci))
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: :asset\_root [\#262](https://github.com/gjtorikian/html-pipeline/issues/262)
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 mention\_link\_filter with only one argument [\#230](https://github.com/gjtorikian/html-pipeline/pull/230) ([benbalter](https://github.com/benbalter))
508
- - 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))
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 base\_url config question [\#161](https://github.com/gjtorikian/html-pipeline/issues/161)
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-rouge\_filter. [\#174](https://github.com/gjtorikian/html-pipeline/pull/174) ([JuanitoFatas](https://github.com/JuanitoFatas))
577
- - 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))
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: ignored\_ancestor\_tags to accept more ignored tags. [\#170](https://github.com/gjtorikian/html-pipeline/pull/170) ([JuanitoFatas](https://github.com/JuanitoFatas))
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
- - @mention\_filter should not replace mentions in style blocks. [\#143](https://github.com/gjtorikian/html-pipeline/issues/143)
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 http\_url in HttpsFilter [\#142](https://github.com/gjtorikian/html-pipeline/pull/142) ([bkeepers](https://github.com/bkeepers))
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 RUBY\_VERSION conditionals from gemspec [\#130](https://github.com/gjtorikian/html-pipeline/pull/130) ([mislav](https://github.com/mislav))
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 link\_attr doesn't seem to work [\#114](https://github.com/gjtorikian/html-pipeline/issues/114)
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 link\_attr option to Autolink filter [\#89](https://github.com/gjtorikian/html-pipeline/pull/89) ([excid3](https://github.com/excid3))
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 xml\_mini extracted from activesupport [\#85](https://github.com/gjtorikian/html-pipeline/pull/85) ([mojavelinux](https://github.com/mojavelinux))
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 skip\_tags in autolink filter context [\#65](https://github.com/gjtorikian/html-pipeline/pull/65) ([pengwynn](https://github.com/pengwynn))
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\[:mentioned\_usernames\] for MentionFilter [\#42](https://github.com/gjtorikian/html-pipeline/pull/42) ([fahchen](https://github.com/fahchen))
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 escape\_utils [\#41](https://github.com/gjtorikian/html-pipeline/pull/41) ([brianmario](https://github.com/brianmario))
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", "~> 1.0.0.pre7", require: false
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. With the content, we also want to:
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 `$NAME` to "`Johnny"
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("$NAME", "Johnny")
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 = { markdown: { extensions: { footnotes: false } } }
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::MarkdownFilter,
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::MarkdownFilter,
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 take advantage of.
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.dup
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
 
@@ -25,7 +25,7 @@ Gem::Specification.new do |gem|
25
25
  "rubygems_mfa_required" => "true",
26
26
  }
27
27
 
28
- gem.add_dependency("selma", "~> 0.1")
28
+ gem.add_dependency("selma", "~> 0.4")
29
29
  gem.add_dependency("zeitwerk", "~> 2.5")
30
30
 
31
31
  gem.post_install_message = <<~MSG
@@ -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(context: context, result: result)
15
+ super
16
16
  end
17
17
 
18
18
  # Convert Commonmark to HTML using the best available implementation.
19
- def call(text)
20
- options = @context.fetch(:markdown, {})
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
@@ -5,7 +5,7 @@ class HTMLPipeline
5
5
  attr_reader :text, :html
6
6
 
7
7
  def initialize(context: {}, result: {})
8
- super(context: context, result: result)
8
+ super
9
9
  end
10
10
 
11
11
  class << self
@@ -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
- attr_reader :context
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
- url << "/" unless %r{[/~]\z}.match?(url)
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(context: context, result: result)
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
- url << "/" unless %r{[/~]\z}.match?(url)
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}" \
@@ -4,6 +4,8 @@ require "selma"
4
4
 
5
5
  class HTMLPipeline
6
6
  class NodeFilter < Filter
7
+ attr_accessor :context
8
+
7
9
  def initialize(context: {}, result: {})
8
10
  super(context: context, result: {})
9
11
  send(:after_initialize) if respond_to?(:after_initialize)
@@ -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
- @text.gsub(%r{(https|http)?://.+\.(jpg|jpeg|bmp|gif|png)(\?\S+)?}i) do |match|
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(@text)}</div>"
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(text, context: {}, result: {})
8
- raise TypeError, "text must be a String" unless text.is_a?(String)
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(input, context: {}, result: {})
17
- new(input, context: context, result: result).call
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class HTMLPipeline
4
- VERSION = "3.0.3"
4
+ VERSION = "3.2.2"
5
5
  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(&:name),
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
- unless @node_filters.empty?
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
- result[:output] = Selma::Rewriter.new(sanitizer: @sanitization_config, handlers: @node_filters).rewrite(html)
181
- html = result[:output]
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.0.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-02-02 00:00:00.000000000 Z
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.1'
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.1'
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.5.5
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: []