Sha256: b653d287cc7fb51659ac32f55530e75cd3ea640702c4df409943346c428992b3
Contents?: true
Size: 1.64 KB
Versions: 18
Compression:
Stored size: 1.64 KB
Contents
# frozen_string_literal: true module Kramdown module Parser class SmartyPants < Kramdown::Parser::Kramdown def initialize(source, options) super @block_parsers = [:block_html, :content] @span_parsers = [:smart_quotes, :html_entity, :typographic_syms, :span_html] end def parse_content add_text @src.scan(%r!\A.*\n!) end define_parser(:content, %r!\A!) end end end module Bridgetown module Converters # SmartyPants converter. # For more info on converters see https://bridgetownrb.com/docs/plugins/converters/ class SmartyPants < Converter priority :low def initialize(config) Bridgetown::External.require_with_graceful_fail "kramdown" unless defined?(Kramdown) @config = config["kramdown"].dup || {} @config[:input] = :SmartyPants end # Public: The extension to be given to the output file (including the dot). # # ext - The String extension or original file. # # Returns The String output file extension. def output_ext(_ext) nil end # Logic to do the content conversion. # # content - String content of file (without front matter). # # Returns a String of the converted content. def convert(content) document = Kramdown::Document.new(content, @config) html_output = document.to_html.chomp if @config["show_warnings"] document.warnings.each do |warning| Bridgetown.logger.warn "Kramdown warning:", warning.sub(%r!^Warning:\s+!, "") end end html_output end end end end
Version data entries
18 entries across 18 versions & 1 rubygems