diff --git a/lib/qiita/markdown.rb b/lib/qiita/markdown.rb index 8b1f362..ae84706 100644 --- a/lib/qiita/markdown.rb +++ b/lib/qiita/markdown.rb @@ -1,5 +1,5 @@ require "cgi" -require "html/pipeline" +require "html_pipeline" require "linguist" require "mem" require "nokogiri" diff --git a/lib/qiita/markdown/base_processor.rb b/lib/qiita/markdown/base_processor.rb index 1d83ced..d6f22cb 100644 --- a/lib/qiita/markdown/base_processor.rb +++ b/lib/qiita/markdown/base_processor.rb @@ -33,7 +33,7 @@ def call(input, context = {}) end # @note Modify filters if you want. - # @return [Array] + # @return [Array] def filters @filters ||= self.class.default_filters end diff --git a/lib/qiita/markdown/filters/checkbox.rb b/lib/qiita/markdown/filters/checkbox.rb index c014afc..d3b01f5 100644 --- a/lib/qiita/markdown/filters/checkbox.rb +++ b/lib/qiita/markdown/filters/checkbox.rb @@ -7,7 +7,7 @@ module Filters # * [ ] Bar # * [ ] Baz # - class Checkbox < HTML::Pipeline::Filter + class Checkbox < ::HTMLPipelineFilter def call doc.search("li").each do |li| list = List.new(li) diff --git a/lib/qiita/markdown/filters/code_block.rb b/lib/qiita/markdown/filters/code_block.rb index d10eed3..e8444f2 100644 --- a/lib/qiita/markdown/filters/code_block.rb +++ b/lib/qiita/markdown/filters/code_block.rb @@ -12,7 +12,7 @@ module Filters # 3. Adds detected code data into `result[:codes]`. # # You can pass language aliases table via context[:language_aliases]. - class CodeBlock < HTML::Pipeline::Filter + class CodeBlock < ::HTMLPipelineFilter def call result[:codes] ||= [] doc.search("pre").each do |pre| diff --git a/lib/qiita/markdown/filters/custom_block.rb b/lib/qiita/markdown/filters/custom_block.rb index b883aac..63a9675 100644 --- a/lib/qiita/markdown/filters/custom_block.rb +++ b/lib/qiita/markdown/filters/custom_block.rb @@ -3,7 +3,7 @@ module Qiita module Markdown module Filters - class CustomBlock < HTML::Pipeline::Filter + class CustomBlock < ::HTMLPipelineFilter ALLOWED_TYPES = %w[note].freeze def call diff --git a/lib/qiita/markdown/filters/external_link.rb b/lib/qiita/markdown/filters/external_link.rb index cbeb082..0bfe271 100644 --- a/lib/qiita/markdown/filters/external_link.rb +++ b/lib/qiita/markdown/filters/external_link.rb @@ -3,7 +3,7 @@ module Qiita module Markdown module Filters - class ExternalLink < HTML::Pipeline::Filter + class ExternalLink < ::HTMLPipelineFilter def call doc.search("a").each do |anchor| next unless anchor["href"] diff --git a/lib/qiita/markdown/filters/final_sanitizer.rb b/lib/qiita/markdown/filters/final_sanitizer.rb index 878508f..56253f9 100644 --- a/lib/qiita/markdown/filters/final_sanitizer.rb +++ b/lib/qiita/markdown/filters/final_sanitizer.rb @@ -11,7 +11,7 @@ module Filters # generated by other filters. # # @see Qiita::Markdown::Filters::UserInputSanitizerr - class FinalSanitizer < ::HTML::Pipeline::Filter + class FinalSanitizer < ::HTMLPipelineFilter RULE = { attributes: { "a" => %w[ diff --git a/lib/qiita/markdown/filters/footnote.rb b/lib/qiita/markdown/filters/footnote.rb index 351e698..0debbb2 100644 --- a/lib/qiita/markdown/filters/footnote.rb +++ b/lib/qiita/markdown/filters/footnote.rb @@ -1,7 +1,7 @@ module Qiita module Markdown module Filters - class Footnote < HTML::Pipeline::Filter + class Footnote < ::HTMLPipelineFilter def call doc.search("sup > a").each do |a| footnote = find_footnote(a) diff --git a/lib/qiita/markdown/filters/group_mention.rb b/lib/qiita/markdown/filters/group_mention.rb index 7389d25..e550961 100644 --- a/lib/qiita/markdown/filters/group_mention.rb +++ b/lib/qiita/markdown/filters/group_mention.rb @@ -1,7 +1,7 @@ module Qiita module Markdown module Filters - class GroupMention < HTML::Pipeline::Filter + class GroupMention < ::HTMLPipelineFilter # @note Override def call if context[:group_mention_url_generator] diff --git a/lib/qiita/markdown/filters/heading_anchor.rb b/lib/qiita/markdown/filters/heading_anchor.rb index 01891aa..64cc96d 100644 --- a/lib/qiita/markdown/filters/heading_anchor.rb +++ b/lib/qiita/markdown/filters/heading_anchor.rb @@ -3,7 +3,7 @@ module Qiita module Markdown module Filters - class HeadingAnchor < ::HTML::Pipeline::Filter + class HeadingAnchor < ::HTMLPipelineFilter def call doc.search("h1, h2, h3, h4, h5, h6").each do |heading| heading["id"] = suffixed_id(heading) diff --git a/lib/qiita/markdown/filters/html_toc.rb b/lib/qiita/markdown/filters/html_toc.rb index 346f7ba..b366f6c 100644 --- a/lib/qiita/markdown/filters/html_toc.rb +++ b/lib/qiita/markdown/filters/html_toc.rb @@ -3,7 +3,7 @@ module Qiita module Markdown module Filters - class HtmlToc < ::HTML::Pipeline::Filter + class HtmlToc < ::HTMLPipelineFilter # @return [Nokogiri::HTML::DocumentFragment] def call headings = doc.search("h1, h2, h3, h4, h5, h6") diff --git a/lib/qiita/markdown/filters/image_link.rb b/lib/qiita/markdown/filters/image_link.rb index f8bdba9..3ebe170 100644 --- a/lib/qiita/markdown/filters/image_link.rb +++ b/lib/qiita/markdown/filters/image_link.rb @@ -1,7 +1,7 @@ module Qiita module Markdown module Filters - class ImageLink < HTML::Pipeline::Filter + class ImageLink < ::HTMLPipelineFilter def call doc.search("img").each do |img| next if img.ancestors.any? { |ancestor| ancestor.name == "a" } diff --git a/lib/qiita/markdown/filters/inline_code_color.rb b/lib/qiita/markdown/filters/inline_code_color.rb index 1505363..2854ac3 100644 --- a/lib/qiita/markdown/filters/inline_code_color.rb +++ b/lib/qiita/markdown/filters/inline_code_color.rb @@ -1,7 +1,7 @@ module Qiita module Markdown module Filters - class InlineCodeColor < HTML::Pipeline::Filter + class InlineCodeColor < ::HTMLPipelineFilter DEFAULT_CLASS_NAME = "inline-code-color".freeze REGEXPS = Regexp.union( diff --git a/lib/qiita/markdown/filters/simplify.rb b/lib/qiita/markdown/filters/simplify.rb index 1d66b40..4625827 100644 --- a/lib/qiita/markdown/filters/simplify.rb +++ b/lib/qiita/markdown/filters/simplify.rb @@ -14,7 +14,7 @@ module Filters # want to clean up only some elements, and they would be run in the # `FinalSanitizer` filter later. # https://github.com/rgrove/sanitize/blob/v3.1.2/lib/sanitize.rb#L77-L100 - class Simplify < HTML::Pipeline::Filter + class Simplify < ::HTMLPipelineFilter SIMPLE_ELEMENTS = %w[a b code em i ins q s samp span strike strong sub sup var] COMPLEX_CONTENT_ELEMENTS = %w[table] diff --git a/lib/qiita/markdown/filters/syntax_highlight.rb b/lib/qiita/markdown/filters/syntax_highlight.rb index 5c50a5e..9059251 100644 --- a/lib/qiita/markdown/filters/syntax_highlight.rb +++ b/lib/qiita/markdown/filters/syntax_highlight.rb @@ -1,7 +1,7 @@ module Qiita module Markdown module Filters - class SyntaxHighlight < HTML::Pipeline::Filter + class SyntaxHighlight < ::HTMLPipelineFilter DEFAULT_LANGUAGE = "text" DEFAULT_TIMEOUT = Float::INFINITY DEFAULT_OPTION = "html_legacy" diff --git a/lib/qiita/markdown/filters/toc.rb b/lib/qiita/markdown/filters/toc.rb index 7d2230d..1ab9d61 100644 --- a/lib/qiita/markdown/filters/toc.rb +++ b/lib/qiita/markdown/filters/toc.rb @@ -1,7 +1,7 @@ module Qiita module Markdown module Filters - class Toc < HTML::Pipeline::Filter + class Toc < ::HTMLPipelineFilter def call doc.css("h1[id], h2[id], h3[id], h4[id], h5[id], h6[id]").each do |node| Heading.new(node).decorate diff --git a/lib/qiita/markdown/filters/truncate.rb b/lib/qiita/markdown/filters/truncate.rb index 9906c60..7eb425f 100644 --- a/lib/qiita/markdown/filters/truncate.rb +++ b/lib/qiita/markdown/filters/truncate.rb @@ -8,7 +8,7 @@ module Filters # # @example # Truncate.new(doc, truncate: { length: 50, omission: '... (continued)' }) - class Truncate < HTML::Pipeline::Filter + class Truncate < ::HTMLPipelineFilter DEFAULT_OPTIONS = { length: 100, omission: "…".freeze, diff --git a/lib/qiita/markdown/filters/user_input_sanitizer.rb b/lib/qiita/markdown/filters/user_input_sanitizer.rb index ca94082..4815a06 100644 --- a/lib/qiita/markdown/filters/user_input_sanitizer.rb +++ b/lib/qiita/markdown/filters/user_input_sanitizer.rb @@ -4,7 +4,7 @@ module Qiita module Markdown module Filters # Sanitizes user input if :strict context is given. - class UserInputSanitizer < ::HTML::Pipeline::Filter + class UserInputSanitizer < ::HTMLPipelineFilter RULE = { elements: %w[ a b blockquote br caption code dd del details div dl dt em font h1 h2 h3 h4 h5 h6 diff --git a/qiita-markdown.gemspec b/qiita-markdown.gemspec index 47e4920..b265aa4 100644 --- a/qiita-markdown.gemspec +++ b/qiita-markdown.gemspec @@ -20,7 +20,7 @@ Gem::Specification.new do |spec| spec.add_dependency "addressable" spec.add_dependency "gemoji" spec.add_dependency "github-linguist", "~> 7.0" - spec.add_dependency "html-pipeline", "~> 2.0" + spec.add_dependency "html-pipeline", ">= 2", "< 4" spec.add_dependency "mem" spec.add_dependency "qiita_marker", "~> 0.23.9" spec.add_dependency "rouge", "~> 4.2"