html-pipeline 3.0.3 → 3.2.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: 22c3391b770c24cbed1ea42f396fabfa399935416c8d01a8ce8727094c456fe4
4
- data.tar.gz: 6936f1943d251689b0bef19f43348ac46e2027d658ec7544dc4799ab98600602
3
+ metadata.gz: e8252d2015129b2ee071b6c094a773afecd796a75d0ab3d24aaa18b997be8f1f
4
+ data.tar.gz: 3ace3231f84d7f5a82b4921d2ee600a4ae069440adb15e4ee527eda290b00637
5
5
  SHA512:
6
- metadata.gz: dce1a303621b079f2e482007ad77761d745ca0bdec98bf405cedeb5d4f1b6a097b7c28bf96e919ae2b2b5129cc1bf0f528dd6d4e617eafb2767f760a24079a6e
7
- data.tar.gz: 821a0b306d7cc440069ae38ca857f7ed157d1ec5c3decbbbcfc3a4fd05b5c17e975e493e9017ac1eaed5a216de0b00dfc3bed405e64e40b2d1e03a04b44b14cb
6
+ metadata.gz: be71b5590d6599b2a2c8d6dfdb98b27e61701a07bbc1a0aa14982459bfd65d8aec69228318834c939a6357dff03c982e739d2a39a83853e12016049e2ddd13e2
7
+ data.tar.gz: b90b25b60016557c21eef5ee431c21890f5580589fabfafbe36e530ff3dc63cd3e3a83cf835c757cf8b7398e58c2f290096cf7ef8173177a27457b15871fe5e9
data/CHANGELOG.md CHANGED
@@ -1,51 +1,94 @@
1
+ ## [v3.1.1] - 09-04-2024
2
+ ## What's Changed
3
+ * Correct missing method implementation by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/401
4
+
5
+
6
+ **Full Changelog**: https://github.com/gjtorikian/html-pipeline/compare/v3.1.0...v3.1.1
7
+ ## [v3.1.0] - 28-02-2024
8
+ ## What's Changed
9
+ * UPGRADING: not removed by @dentarg in https://github.com/gjtorikian/html-pipeline/pull/397
10
+ * [BREAKING] now requires instantiation by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/398
11
+
12
+ ## New Contributors
13
+ * @dentarg made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/397
14
+
15
+ **Full Changelog**: https://github.com/gjtorikian/html-pipeline/compare/v3.0.3...v3.1.0
16
+ ## [v3.0.3] - 02-02-2024
17
+
18
+ ## What's Changed
19
+
20
+ - Fix typo in README by @ppworks in https://github.com/gjtorikian/html-pipeline/pull/394
21
+ - Prevent exception by @ppworks in https://github.com/gjtorikian/html-pipeline/pull/395
22
+ - Cut 3.0.3 by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/396
23
+
24
+ ## New Contributors
25
+
26
+ - @ppworks made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/394
27
+
28
+ **Full Changelog**: https://github.com/gjtorikian/html-pipeline/compare/v3.0.2...v3.0.3
29
+
1
30
  ## [v3.0.2] - 08-01-2024
31
+
2
32
  ## 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
33
+
34
+ - README.md: Fix example code by @grekko in https://github.com/gjtorikian/html-pipeline/pull/390
35
+ - Allow pipeline to run without node filters by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/392
5
36
 
6
37
  ## New Contributors
7
- * @grekko made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/390
38
+
39
+ - @grekko made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/390
8
40
 
9
41
  **Full Changelog**: https://github.com/gjtorikian/html-pipeline/compare/v3.0.1...v3.0.2
42
+
10
43
  ## [v3.0.1] - 28-12-2023
44
+
11
45
  ## What's Changed
12
- * Handle odd numbers of NodeFilters to be configured by @stevehill1981 in https://github.com/gjtorikian/html-pipeline/pull/389
46
+
47
+ - Handle odd numbers of NodeFilters to be configured by @stevehill1981 in https://github.com/gjtorikian/html-pipeline/pull/389
13
48
 
14
49
  ## New Contributors
15
- * @stevehill1981 made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/389
50
+
51
+ - @stevehill1981 made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/389
16
52
 
17
53
  **Full Changelog**: https://github.com/gjtorikian/html-pipeline/compare/v3.0.0...v3.0.1
54
+
18
55
  ## [v3.0.0] - 24-12-2023
56
+
19
57
  ## 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
58
+
59
+ - Switch to GitHub Actions by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/346
60
+ - add truffleruby-head by @gogainda in https://github.com/gjtorikian/html-pipeline/pull/348
61
+ - Add Rubocop by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/349
62
+ - Support multiple dependencies per filter by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/351
63
+ - Split filters up by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/360
64
+ - Migrate from Nokogiri to Selma by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/368
65
+ - You shall pass by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/369
66
+ - Update Selma signatures by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/370
67
+ - Close sanitization-related issues by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/371
68
+ - Drop SyntaxHighlightFilter by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/372
69
+ - V3 Release by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/347
70
+ - Use emoji from commonmarker by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/373
71
+ - req convert_filter if filter present by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/375
72
+ - 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
73
+ - Add the AssetProxyFilter by @digitalmoksha in https://github.com/gjtorikian/html-pipeline/pull/379
74
+ - Update rouge requirement from ~> 3.1 to ~> 4.1 by @dependabot in https://github.com/gjtorikian/html-pipeline/pull/381
75
+ - Update gemoji requirement from ~> 3.0 to ~> 4.1 by @dependabot in https://github.com/gjtorikian/html-pipeline/pull/382
76
+ - Have Zeitwerk not automatically load filters by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/383
77
+ - Bump the github-actions group with 1 update by @dependabot in https://github.com/gjtorikian/html-pipeline/pull/384
78
+ - :gem: 3.0.0 by @gjtorikian in https://github.com/gjtorikian/html-pipeline/pull/386
40
79
 
41
80
  ## 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
81
+
82
+ - @gogainda made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/348
83
+ - @dependabot made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/377
84
+ - @digitalmoksha made their first contribution in https://github.com/gjtorikian/html-pipeline/pull/379
45
85
 
46
86
  **Full Changelog**: https://github.com/gjtorikian/html-pipeline/compare/v2.14.3...v3.0.0
87
+
47
88
  ## [v3.0.0.pre6] - 16-08-2023
89
+
48
90
  null
91
+
49
92
  # Changelog
50
93
 
51
94
  ## [v3.0.0.pre5](https://github.com/gjtorikian/html-pipeline/tree/v3.0.0.pre5) (2023-06-05)
@@ -76,7 +119,7 @@ null
76
119
 
77
120
  **Merged pull requests:**
78
121
 
79
- - req convert\_filter if `text/node`filter present [\#375](https://github.com/gjtorikian/html-pipeline/pull/375) ([gjtorikian](https://github.com/gjtorikian))
122
+ - req convert_filter if `text/node`filter present [\#375](https://github.com/gjtorikian/html-pipeline/pull/375) ([gjtorikian](https://github.com/gjtorikian))
80
123
 
81
124
  ## [v3.0.0.pre2](https://github.com/gjtorikian/html-pipeline/tree/v3.0.0.pre2) (2023-01-26)
82
125
 
@@ -137,7 +180,7 @@ null
137
180
 
138
181
  **Merged pull requests:**
139
182
 
140
- - Replace EscapeUtils.escape\_html with CGI.escape\_html [\#365](https://github.com/gjtorikian/html-pipeline/pull/365) ([ramhoj](https://github.com/ramhoj))
183
+ - Replace EscapeUtils.escape_html with CGI.escape_html [\#365](https://github.com/gjtorikian/html-pipeline/pull/365) ([ramhoj](https://github.com/ramhoj))
141
184
 
142
185
  ## [v2.14.2](https://github.com/gjtorikian/html-pipeline/tree/v2.14.2) (2022-06-12)
143
186
 
@@ -309,7 +352,7 @@ null
309
352
 
310
353
  **Closed issues:**
311
354
 
312
- - New feature request for hashtags \# filter [\#301](https://github.com/gjtorikian/html-pipeline/issues/301)
355
+ - New feature request for hashtags \# filter [\#301](https://github.com/gjtorikian/html-pipeline/issues/301)
313
356
  - Whitelist srcset for responsive images [\#233](https://github.com/gjtorikian/html-pipeline/issues/233)
314
357
 
315
358
  **Merged pull requests:**
@@ -412,7 +455,7 @@ null
412
455
 
413
456
  - Set instrumentation name [\#275](https://github.com/gjtorikian/html-pipeline/pull/275) ([gjtorikian](https://github.com/gjtorikian))
414
457
  - 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))
458
+ - add korgi to 3rd party extensions \[ci skip\] [\#271](https://github.com/gjtorikian/html-pipeline/pull/271) ([jodeci](https://github.com/jodeci))
416
459
 
417
460
  ## [v2.5.0](https://github.com/gjtorikian/html-pipeline/tree/v2.5.0) (2017-01-13)
418
461
 
@@ -421,7 +464,7 @@ null
421
464
  **Closed issues:**
422
465
 
423
466
  - 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)
467
+ - Missing context keys for HTML::Pipeline::EmojiFilter: :asset_root [\#262](https://github.com/gjtorikian/html-pipeline/issues/262)
425
468
  - Emoji \<img\> tags does not pass W3C validationg [\#234](https://github.com/gjtorikian/html-pipeline/issues/234)
426
469
  - Incompatible character encodings: ASCII-8BIT and UTF-8 in EmailReplyFilter [\#229](https://github.com/gjtorikian/html-pipeline/issues/229)
427
470
 
@@ -504,8 +547,8 @@ null
504
547
  **Merged pull requests:**
505
548
 
506
549
  - 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))
550
+ - Fix for calling mention_link_filter with only one argument [\#230](https://github.com/gjtorikian/html-pipeline/pull/230) ([benbalter](https://github.com/benbalter))
551
+ - 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
552
 
510
553
  ## [v2.2.1](https://github.com/gjtorikian/html-pipeline/tree/v2.2.1) (2015-10-01)
511
554
 
@@ -561,7 +604,7 @@ null
561
604
  - Question - Can this work with Rouge? [\#166](https://github.com/gjtorikian/html-pipeline/issues/166)
562
605
  - Question about github markdown filter \(low priority!\) [\#165](https://github.com/gjtorikian/html-pipeline/issues/165)
563
606
  - 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)
607
+ - MentionFilter base_url config question [\#161](https://github.com/gjtorikian/html-pipeline/issues/161)
565
608
  - Feature Request: Add "details" tag to whitelist [\#138](https://github.com/gjtorikian/html-pipeline/issues/138)
566
609
 
567
610
  **Merged pull requests:**
@@ -573,10 +616,10 @@ null
573
616
  - \[ci skip\] Fix CHANGELOG.md rendering. [\#177](https://github.com/gjtorikian/html-pipeline/pull/177) ([JuanitoFatas](https://github.com/JuanitoFatas))
574
617
  - Restrict nokogiri to specific versions [\#176](https://github.com/gjtorikian/html-pipeline/pull/176) ([simeonwillbanks](https://github.com/simeonwillbanks))
575
618
  - 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))
619
+ - Add 3rd party gem: html-pipeline-rouge_filter. [\#174](https://github.com/gjtorikian/html-pipeline/pull/174) ([JuanitoFatas](https://github.com/JuanitoFatas))
620
+ - 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
621
  - 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))
622
+ - 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
623
  - Support ~login for MentionFilter. [\#167](https://github.com/gjtorikian/html-pipeline/pull/167) ([JuanitoFatas](https://github.com/JuanitoFatas))
581
624
  - Add GitHub flavor Markdown Task List extension [\#162](https://github.com/gjtorikian/html-pipeline/pull/162) ([simeonwillbanks](https://github.com/simeonwillbanks))
582
625
  - Drop support for gemoji ~\> 1.0 [\#159](https://github.com/gjtorikian/html-pipeline/pull/159) ([jch](https://github.com/jch))
@@ -593,14 +636,14 @@ null
593
636
 
594
637
  **Closed issues:**
595
638
 
596
- - @mention\_filter should not replace mentions in style blocks. [\#143](https://github.com/gjtorikian/html-pipeline/issues/143)
639
+ - @mention_filter should not replace mentions in style blocks. [\#143](https://github.com/gjtorikian/html-pipeline/issues/143)
597
640
  - EmojiFilter doesn't work on strings that don't contain HTML [\#133](https://github.com/gjtorikian/html-pipeline/issues/133)
598
641
 
599
642
  **Merged pull requests:**
600
643
 
601
644
  - Search for text nodes on DocumentFragments without root tags [\#146](https://github.com/gjtorikian/html-pipeline/pull/146) ([Razer6](https://github.com/Razer6))
602
645
  - 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))
646
+ - Prefer http_url in HttpsFilter [\#142](https://github.com/gjtorikian/html-pipeline/pull/142) ([bkeepers](https://github.com/bkeepers))
604
647
  - 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
648
 
606
649
  ## [v1.10.0](https://github.com/gjtorikian/html-pipeline/tree/v1.10.0) (2014-09-05)
@@ -632,7 +675,7 @@ null
632
675
  **Merged pull requests:**
633
676
 
634
677
  - 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))
678
+ - Remove RUBY_VERSION conditionals from gemspec [\#130](https://github.com/gjtorikian/html-pipeline/pull/130) ([mislav](https://github.com/mislav))
636
679
  - Add compatibility with gemoji v2 [\#129](https://github.com/gjtorikian/html-pipeline/pull/129) ([mislav](https://github.com/mislav))
637
680
 
638
681
  ## [v1.8.0](https://github.com/gjtorikian/html-pipeline/tree/v1.8.0) (2014-04-04)
@@ -659,7 +702,7 @@ null
659
702
  **Closed issues:**
660
703
 
661
704
  - 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)
705
+ - AutolinkFilter link_attr doesn't seem to work [\#114](https://github.com/gjtorikian/html-pipeline/issues/114)
663
706
  - Spaces inserted into code [\#109](https://github.com/gjtorikian/html-pipeline/issues/109)
664
707
 
665
708
  **Merged pull requests:**
@@ -747,9 +790,9 @@ null
747
790
 
748
791
  **Merged pull requests:**
749
792
 
750
- - Add link\_attr option to Autolink filter [\#89](https://github.com/gjtorikian/html-pipeline/pull/89) ([excid3](https://github.com/excid3))
793
+ - Add link_attr option to Autolink filter [\#89](https://github.com/gjtorikian/html-pipeline/pull/89) ([excid3](https://github.com/excid3))
751
794
  - 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))
795
+ - use xml_mini extracted from activesupport [\#85](https://github.com/gjtorikian/html-pipeline/pull/85) ([mojavelinux](https://github.com/mojavelinux))
753
796
  - Filters Manage Dependencies [\#80](https://github.com/gjtorikian/html-pipeline/pull/80) ([simeonwillbanks](https://github.com/simeonwillbanks))
754
797
 
755
798
  ## [v0.3.1](https://github.com/gjtorikian/html-pipeline/tree/v0.3.1) (2013-09-16)
@@ -817,7 +860,7 @@ null
817
860
  - Improve to describe gem 'github-linguist' [\#69](https://github.com/gjtorikian/html-pipeline/pull/69) ([tricknotes](https://github.com/tricknotes))
818
861
  - Bump version to 0.1.0. Follow semver. [\#68](https://github.com/gjtorikian/html-pipeline/pull/68) ([jch](https://github.com/jch))
819
862
  - 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))
863
+ - Allow passing skip_tags in autolink filter context [\#65](https://github.com/gjtorikian/html-pipeline/pull/65) ([pengwynn](https://github.com/pengwynn))
821
864
  - Support non-English characters in anchor names [\#64](https://github.com/gjtorikian/html-pipeline/pull/64) ([jakedouglas](https://github.com/jakedouglas))
822
865
  - Fix the `AutolinkFilter` constant name. [\#57](https://github.com/gjtorikian/html-pipeline/pull/57) ([envygeeks](https://github.com/envygeeks))
823
866
  - 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 +913,7 @@ null
870
913
  **Merged pull requests:**
871
914
 
872
915
  - 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))
916
+ - add result\[:mentioned_usernames\] for MentionFilter [\#42](https://github.com/gjtorikian/html-pipeline/pull/42) ([fahchen](https://github.com/fahchen))
874
917
 
875
918
  ## [v0.0.8.1](https://github.com/gjtorikian/html-pipeline/tree/v0.0.8.1) (2013-03-03)
876
919
 
@@ -886,7 +929,7 @@ null
886
929
 
887
930
  **Merged pull requests:**
888
931
 
889
- - Bump escape\_utils [\#41](https://github.com/gjtorikian/html-pipeline/pull/41) ([brianmario](https://github.com/brianmario))
932
+ - Bump escape_utils [\#41](https://github.com/gjtorikian/html-pipeline/pull/41) ([brianmario](https://github.com/brianmario))
890
933
  - Don't monkeypatch Nokogiri in 1.9 [\#40](https://github.com/gjtorikian/html-pipeline/pull/40) ([defunkt](https://github.com/defunkt))
891
934
 
892
935
  ## [v0.0.8](https://github.com/gjtorikian/html-pipeline/tree/v0.0.8) (2013-02-07)
@@ -978,7 +1021,3 @@ null
978
1021
  - Ensure required context values are present [\#9](https://github.com/gjtorikian/html-pipeline/pull/9) ([juliamae](https://github.com/juliamae))
979
1022
  - emoji filter requires the emoji gem [\#8](https://github.com/gjtorikian/html-pipeline/pull/8) ([atmos](https://github.com/atmos))
980
1023
  - 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
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:
64
61
 
65
- - change every instance of `$NAME` to "`Johnny"
62
+ ```
63
+ Hey there, @gjtorikian
64
+ ```
65
+
66
+ With the content, we also want to:
67
+
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
@@ -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
@@ -375,7 +388,7 @@ you to add additional elements. You can either modify the constant's value, or
375
388
  re-define your own config and pass that in, such as:
376
389
 
377
390
  ```ruby
378
- config = HTMLPipeline::SanitizationFilter::DEFAULT_CONFIG.dup
391
+ config = HTMLPipeline::SanitizationFilter::DEFAULT_CONFIG.deep_dup
379
392
  config[:elements] << "iframe" # sure, whatever you want
380
393
  ```
381
394
 
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
 
@@ -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:
@@ -16,8 +16,8 @@ class HTMLPipeline
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
@@ -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
@@ -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
7
+ def initialize(context: {}, result: {})
12
8
  super(context: context, result: result)
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.0"
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,12 +171,13 @@ 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
  unless @node_filters.empty?
179
179
  instrument("call_node_filters.html_pipeline", payload) do
180
+ @node_filters.each { |filter| filter.context = (filter.context || {}).merge(context) }
180
181
  result[:output] = Selma::Rewriter.new(sanitizer: @sanitization_config, handlers: @node_filters).rewrite(html)
181
182
  html = result[:output]
182
183
  payload = default_payload({
@@ -187,7 +188,7 @@ class HTMLPipeline
187
188
  end
188
189
  end
189
190
 
190
- instrument("html_pipeline.sanitization", payload) do
191
+ instrument("sanitization.html_pipeline", payload) do
191
192
  result[:output] = Selma::Rewriter.new(sanitizer: @sanitization_config, handlers: @node_filters).rewrite(html)
192
193
  end
193
194
 
@@ -204,7 +205,7 @@ class HTMLPipeline
204
205
  # Returns the result of the filter.
205
206
  def perform_filter(filter, doc, context: {}, result: {})
206
207
  payload = default_payload({
207
- filter: filter.name,
208
+ filter: filter.class.name,
208
209
  context: context,
209
210
  result: result,
210
211
  })
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.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Garen J. Torikian
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-02 00:00:00.000000000 Z
11
+ date: 2024-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selma
@@ -111,7 +111,7 @@ 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
114
+ rubygems_version: 3.4.6
115
115
  signing_key:
116
116
  specification_version: 4
117
117
  summary: Helpers for processing content through a chain of filters