Sha256: b44751831fa51bd6f3865d86fa25559c82239738789a97afbe6c0e06ff6247f5

Contents?: true

Size: 523 Bytes

Versions: 3

Compression:

Stored size: 523 Bytes

Contents

module Himekami
  module Markdown
    module Filters
      class Outline < HTML::Pipeline::Filter
        HEADING_LEVELS = %w(h1).freeze

        def call
          doc.children.each do |node|
            next if node.is_a?(Nokogiri::XML::Element) && HEADING_LEVELS.include?(node.name)
            node.remove
          end

          doc.children.each do |node|
            br = Nokogiri::XML::Text.new "\n", @doc
            node.add_next_sibling(br)
          end

          doc
        end

      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
himekami-markdown-0.1.8 lib/himekami/markdown/filters/outline.rb
himekami-markdown-0.1.7 lib/himekami/markdown/filters/outline.rb
himekami-markdown-0.1.6 lib/himekami/markdown/filters/outline.rb