Sha256: 3ca559ef6a23cdc788ea8ec9b058ddb66b2d874ea387cd6bf8ef708af1b7ee51

Contents?: true

Size: 1.04 KB

Versions: 3

Compression:

Stored size: 1.04 KB

Contents

require "redcarpet"
require "pygments"

module Blogr
  module PostsHelper

    def check_category post_object, category_object
      attr = {}
      if post_object.categories.pluck(:id).include?(category_object.id)
        attr[:checked] = 'checked'
      end

      return attr
    end

    def markdown(text)
      redcarpet = Redcarpet::Markdown.new(HTMLwithPygments, :fenced_code_blocks => true, :autolink => true, :space_after_headers => true, :underline => true, :highlight => true)
      redcarpet.render(text)
    end

    class HTMLwithPygments < Redcarpet::Render::HTML
      def header(text, header_level)
        "<h#{header_level + 1}>#{text}</h#{header_level + 1}>"
      end

      def block_code(code, language)
        title = nil
        code.gsub!(/\A\:\:(.*)$/) { title = $1 ; nil }
        String.new.tap do |s|
          s << "<p class='codeTitle'>#{title}</p>" if title
          s << Pygments.highlight(code, :lexer => language)
        end
      rescue 
        "<div class='highlight'><pre>#{code}</pre></div>"
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
blogr-0.0.8 app/helpers/blogr/posts_helper.rb
blogr-0.0.7 app/helpers/blogr/posts_helper.rb
blogr-0.0.6 app/helpers/blogr/posts_helper.rb