Sha256: d40175c9195d46e3dbc70127e7da9553a6acc9a45ae5d3ac293541b8186dffb7
Contents?: true
Size: 1.24 KB
Versions: 2
Compression:
Stored size: 1.24 KB
Contents
require 'rouge' class FrenchPress class Post class Code < Generic def lang case @file_type when 'rb' 'ruby' when 'c' 'c' when 'css' 'css' when 'py' 'python' when 'yml' 'yaml' when 'swift' 'swift' when 'rs' 'rust' when 'go' 'go' when 'cpp' 'cpp' else '' end end def lexer case lang when 'ruby' Rouge::Lexers::Ruby.new when 'c' Rouge::Lexers::C.new when 'css' Rouge::Lexers::Css.new when 'python' Rouge::Lexers::Python.new when 'yaml' Rouge::Lexers::Yaml.new when 'swift' Rouge::Lexers::Swift.new when 'rust' Rouge::Lexers::Rust.new when 'go' Rouge::Lexers::Go.new when 'cpp' Rouge::Lexers::Cpp.new end end def render return "<code class=\"code\">#{@content}</code>" unless lexer renderer = Rouge::Formatters::HTML.new(css_class: 'highlight') "<div class=\"code\">#{renderer.format(lexer.lex(@content))}</div>" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
frenchpress-0.2.1 | lib/frenchpress/post/code.rb |
frenchpress-0.2 | lib/frenchpress/post/code.rb |