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

Version Path
bridgetown-core-0.21.0.beta1 lib/bridgetown-core/converters/smartypants.rb
bridgetown-core-0.20.0 lib/bridgetown-core/converters/smartypants.rb
bridgetown-core-0.19.3 lib/bridgetown-core/converters/smartypants.rb
bridgetown-core-0.19.2 lib/bridgetown-core/converters/smartypants.rb
bridgetown-core-0.19.1 lib/bridgetown-core/converters/smartypants.rb
bridgetown-core-0.19.0 lib/bridgetown-core/converters/smartypants.rb
bridgetown-core-0.18.6 lib/bridgetown-core/converters/smartypants.rb
bridgetown-core-0.18.5 lib/bridgetown-core/converters/smartypants.rb
bridgetown-core-0.18.4 lib/bridgetown-core/converters/smartypants.rb
bridgetown-core-0.18.3 lib/bridgetown-core/converters/smartypants.rb
bridgetown-core-0.18.2 lib/bridgetown-core/converters/smartypants.rb
bridgetown-core-0.18.1 lib/bridgetown-core/converters/smartypants.rb
bridgetown-core-0.18.0 lib/bridgetown-core/converters/smartypants.rb
bridgetown-core-0.17.1 lib/bridgetown-core/converters/smartypants.rb
bridgetown-core-0.17.0 lib/bridgetown-core/converters/smartypants.rb
bridgetown-core-0.16.0 lib/bridgetown-core/converters/smartypants.rb
bridgetown-core-0.16.0.beta2 lib/bridgetown-core/converters/smartypants.rb
bridgetown-core-0.16.0.beta1 lib/bridgetown-core/converters/smartypants.rb