Sha256: f26c7d52d5d90cff06e2f8daaf3424270d5cf1f698b11f2c4484771800d6c0e9
Contents?: true
Size: 1.7 KB
Versions: 3
Compression:
Stored size: 1.7 KB
Contents
class Blogit::Parsers::MarkdownParser require "nokogiri" require "albino" require "blogit/renderers" # A String containing the content to be parsed attr_reader :content def initialize(content) @content = content end # The parsed content # # Returns an HTML safe String def parsed ensure_pygments_is_installed if Blogit::configuration.highlight_code_syntax markdown.render(content).html_safe end private # The Redcarpet renderer to use def renderer if Blogit::configuration.highlight_code_syntax Redcarpet::Render::HTMLWithAlbino else Redcarpet::Render::HTML end end # The Redcarpet Markdown handler def markdown @markdown ||= Redcarpet::Markdown.new(renderer, Blogit.configuration.redcarpet_options) end # Ensures pygments is installed # # Raises StandardError if pygments is not available on this machine def ensure_pygments_is_installed warning = <<-WARNING [blogit] The pygmentize command could not be found in your load path! Please either do one of the following: $ sudo easy_install Pygments # to install it or set config.highlight_code_syntax to false in your blogit.rb config file. WARNING raise warning unless which(:pygmentize) end # Check if an executable exists in the load path # # Returns nil if no executable is found def which(cmd) exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : [''] ENV['PATH'].split(File::PATH_SEPARATOR).each do |path| exts.each do |ext| exe = File.join(path, "#{cmd}#{ext}") return exe if File.executable? exe end end return nil end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
blogit-1.1.1 | lib/blogit/parsers/markdown_parser.rb |
blogit-1.1.0 | lib/blogit/parsers/markdown_parser.rb |
blogit-1.0.0 | lib/blogit/parsers/markdown_parser.rb |