class Qiita::Markdown::Transformers::StripInvalidNode

Wraps a node env to transform invalid node.

Public Class Methods

call(**args) click to toggle source
# File lib/qiita/markdown/transformers/strip_invalid_node.rb, line 6
def self.call(**args)
  new(**args).transform
end
new(env) click to toggle source
# File lib/qiita/markdown/transformers/strip_invalid_node.rb, line 10
def initialize(env)
  @env = env
end

Public Instance Methods

transform() click to toggle source
# File lib/qiita/markdown/transformers/strip_invalid_node.rb, line 14
def transform
  node.replace(node.children) if has_invalid_list_node? || has_invalid_table_node?
end

Private Instance Methods

has_invalid_list_node?() click to toggle source
# File lib/qiita/markdown/transformers/strip_invalid_node.rb, line 20
def has_invalid_list_node?
  name == "li" && node.ancestors.none? do |ancestor|
    %w[ol ul].include?(ancestor.name)
  end
end
has_invalid_table_node?() click to toggle source
# File lib/qiita/markdown/transformers/strip_invalid_node.rb, line 26
def has_invalid_table_node?
  %w[thead tbody tfoot tr td th].include?(name) && node.ancestors.none? do |ancestor|
    ancestor.name == "table"
  end
end
name() click to toggle source
# File lib/qiita/markdown/transformers/strip_invalid_node.rb, line 32
def name
  @env[:node_name]
end
node() click to toggle source
# File lib/qiita/markdown/transformers/strip_invalid_node.rb, line 36
def node
  @env[:node]
end