Sha256: 39c28f6c5dfa019f14e4d517589c7825ea5c3aea5417693ddfb14229da436f3c

Contents?: true

Size: 1.06 KB

Versions: 16

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

module Jekyll
  module Converters
    class Markdown
      class RDiscountParser
        def initialize(config)
          unless defined?(RDiscount)
            Jekyll::External.require_with_graceful_fail "rdiscount"
          end
          @config = config
          @rdiscount_extensions = @config["rdiscount"]["extensions"].map(&:to_sym)
        end

        def convert(content)
          rd = RDiscount.new(content, *@rdiscount_extensions)
          html = rd.to_html
          if @config["rdiscount"]["toc_token"]
            html = replace_generated_toc(rd, html, @config["rdiscount"]["toc_token"])
          end
          html
        end

        private
        def replace_generated_toc(rd_instance, html, toc_token)
          if rd_instance.generate_toc && html.include?(toc_token)
            utf8_toc = rd_instance.toc_content
            utf8_toc.force_encoding("utf-8") if utf8_toc.respond_to?(:force_encoding)
            html.gsub(toc_token, utf8_toc)
          else
            html
          end
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
jekyll-3.10.0 lib/jekyll/converters/markdown/rdiscount_parser.rb
jekyll-3.9.5 lib/jekyll/converters/markdown/rdiscount_parser.rb
jekyll-3.9.4 lib/jekyll/converters/markdown/rdiscount_parser.rb
jekyll-3.9.3 lib/jekyll/converters/markdown/rdiscount_parser.rb
jekyll-3.9.2 lib/jekyll/converters/markdown/rdiscount_parser.rb
jekyll-3.9.1 lib/jekyll/converters/markdown/rdiscount_parser.rb
jekyll-3.9.0 lib/jekyll/converters/markdown/rdiscount_parser.rb
jekyll-3.8.7 lib/jekyll/converters/markdown/rdiscount_parser.rb
jekyll-3.8.6 lib/jekyll/converters/markdown/rdiscount_parser.rb
jekyll-3.8.5 lib/jekyll/converters/markdown/rdiscount_parser.rb
jekyll-3.8.4 lib/jekyll/converters/markdown/rdiscount_parser.rb
jekyll-3.8.3 lib/jekyll/converters/markdown/rdiscount_parser.rb
jekyll-3.8.2 lib/jekyll/converters/markdown/rdiscount_parser.rb
jekyll-3.8.1 lib/jekyll/converters/markdown/rdiscount_parser.rb
jekyll-3.8.0 lib/jekyll/converters/markdown/rdiscount_parser.rb
jekyll-3.8.0.pre.rc2 lib/jekyll/converters/markdown/rdiscount_parser.rb