mulberry_preview 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8f81c1197f78c15c5163f70a7f784b1da6c263d2
4
- data.tar.gz: 50af7446e84566cd10f3e6fd8573e9f96e40e9f7
3
+ metadata.gz: 239c91800098369fc5efeee588fd61e7d177a197
4
+ data.tar.gz: 4ed021cf156ee8bdacb82e2ca694d454e40d781d
5
5
  SHA512:
6
- metadata.gz: 3ab2d89c3de59c7e13bedc42d4821c2c72f09168a5049031f9ef92a0c0c8e4d23e22d289420333fbdb5f274c984e6789dfc8f7be8db4372c999d8965ef105ba6
7
- data.tar.gz: 045881ed80ecfac365b5e764a9778caf24eec96531784ad70e980f733039dd040c0c11e9215ad1c79859df81bc46fb2d33611ce4e910bc5b55875d2555b80e1a
6
+ metadata.gz: ef6f3b39ec84bcc73f031380dc53669d075ebf84e5c3d7cff89dccded2e925a48039a455622edd0c32f1e342fb26702944f795ecbbef8fa179a703adce1e172a
7
+ data.tar.gz: 3e4fa5963f8ea911c147f603ae51cec44848ff7b1406269774476f7230b5c82fb93d695e082142bd7ca2293b67489978095ec7bfaf026fb2f270ad313c691fa3
@@ -1,6 +1,6 @@
1
1
  class PreviewController < ActionController::Base
2
2
 
3
- Languages = [:ruby, :python, :java, :js, :scss, :sass, :haml, :json,
3
+ LANGUAGES = [:ruby, :python, :java, :js, :scss, :sass, :haml, :json,
4
4
  :go, :sql, :yaml, :c, :coffee, :properties, :clojure]
5
5
 
6
6
  def index
@@ -9,9 +9,11 @@ class PreviewController < ActionController::Base
9
9
  if r
10
10
  mime = r.content_type
11
11
  type, ext = mime[/^[^\/]+/].to_sym, mime[/(?<=\/)(x-)?(.+)/, 2].to_sym
12
- if Languages.include?(ext)
12
+ if LANGUAGES.include?(ext)
13
13
  @code = CodeRay.scan(r.content, ext).div(:line_numbers => :table, :css => :class)
14
14
  render 'code', layout: 'coderay'
15
+ elsif :markdown == ext
16
+ render text: markdown(r.content), content_type: 'text/html'
15
17
  elsif [:pdf, :html].include?(ext)
16
18
  render_native(r.content, mime)
17
19
  else
@@ -55,6 +57,19 @@ class PreviewController < ActionController::Base
55
57
  end
56
58
 
57
59
  private
60
+ def markdown(content)
61
+ renderer = Markdown::Render::HTML.new(hard_wrap: true, filter_html: true)
62
+ options = {
63
+ autolink: true,
64
+ no_intra_emphasis: true,
65
+ fenced_code_blocks: true,
66
+ lax_html_blocks: true,
67
+ strikethrough: true,
68
+ superscript: true
69
+ }
70
+ Redcarpet::Markdown.new(renderer, options).render(content).html_safe
71
+ end
72
+
58
73
  def open_osx_file
59
74
  path = params[:path]
60
75
  app = 'Preview'
@@ -3,5 +3,6 @@ end
3
3
 
4
4
  if defined? Rails
5
5
  require 'mulberry_preview/engine'
6
+ require 'mulberry_preview/markdown/render'
6
7
  # require 'mulberry_preview/railtie'
7
8
  end
@@ -1,9 +1,9 @@
1
1
  module MulberryPreview
2
2
  class Engine < ::Rails::Engine
3
- initializer "mimes" do |app|
3
+ initializer 'mimes' do |_app|
4
4
  MIMES = YAML.load_file("#{self.class.root}/config/mimes.yml")
5
5
  MIMES.each do|ext, mime|
6
- Mime.fetch(ext) do|fallback|
6
+ Mime.fetch(ext) do|_fallback|
7
7
  Mime::Type.register mime, ext
8
8
  end
9
9
  end
@@ -1,5 +1,5 @@
1
1
  module MulberryPreview
2
- Languages = [:ruby, :python, :java, :js, :scss, :sass, :haml, :html, :json, :go, :sql, :yaml, :c, :coffee, :properties]
2
+ LANGUAGES = [:ruby, :python, :java, :js, :scss, :sass, :haml, :html, :json, :go, :sql, :yaml, :c, :coffee, :properties, :clojure]
3
3
 
4
4
  module ActionViewExtension
5
5
  def preview(r)
@@ -7,16 +7,20 @@ module MulberryPreview
7
7
  ext = r.content_type[/(?<=\/)(x-)?(.+)/, 2].to_sym
8
8
  case type
9
9
  when :text
10
- if Languages.include?(ext)
10
+ if LANGUAGES.include?(ext)
11
11
  raw CodeRay.scan(r.content, ext).div(:line_numbers => :table, :css => :class)
12
12
  else
13
- raw "<div class=\"code\">#{r.content}</div>"
14
- end
13
+ raw %{<div class="code">#{r.content}</div>}
14
+ end
15
+ when :audio
16
+ raw %{<audio src="#{preview_path(r.class, r.id)}" />}
17
+ when :video
18
+ raw %{<video src="#{preview_path(r.class, r.id)}" />}
15
19
  when :image
16
- raw "<img src=\"#{preview_path(r.class, r.id)}\" class=\"img-thumbnail\" />"
20
+ raw %{<img src="#{preview_path(r.class, r.id)}" class="img-thumbnail" />}
17
21
  when :application
18
22
  if :pdf == ext
19
- raw "<iframe src=\"#{preview_path(r.class, r.id)}\" width='860' height='800' border='0' style='border:none'></iframe>"
23
+ raw %{<iframe src="#{preview_path(r.class, r.id)}" width='860' height='800' border='0' style='border:none'></iframe>}
20
24
  else
21
25
  "#{r.content_type} => #{r}"
22
26
  end
@@ -0,0 +1,13 @@
1
+ # encoding: UTF-8
2
+ module Markdown
3
+ module Render
4
+ class HTML < Redcarpet::Render::HTML #MdEmoji::Render
5
+ def block_code(code, language)
6
+ sha = Digest::SHA1.hexdigest(code)
7
+ Rails.cache.fetch ['code', language, sha].join('-') do
8
+ CodeRay.scan(code, language).div#(:line_numbers => :table)
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,6 +1,6 @@
1
1
  module MulberryPreview
2
2
  class Railtie < ::Rails::Railtie #:nodoc:
3
- initializer 'preview' do |app|
3
+ initializer 'preview' do |_app|
4
4
  require 'mulberry_preview/helper/action_view_extension'
5
5
  ActiveSupport.on_load(:action_view) do
6
6
  ::ActionView::Base.send :include, MulberryPreview::ActionViewExtension
@@ -1,3 +1,3 @@
1
1
  module MulberryPreview
2
- VERSION = '0.0.8'
2
+ VERSION = '0.0.9'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mulberry_preview
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Zhan
@@ -44,6 +44,40 @@ dependencies:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '3'
47
+ - !ruby/object:Gem::Dependency
48
+ name: coderay
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '1'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '1'
61
+ - !ruby/object:Gem::Dependency
62
+ name: redcarpet
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '3'
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '3'
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: '3'
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '3'
47
81
  - !ruby/object:Gem::Dependency
48
82
  name: sqlite3
49
83
  requirement: !ruby/object:Gem::Requirement
@@ -78,12 +112,13 @@ files:
78
112
  - lib/mulberry_preview.rb
79
113
  - lib/mulberry_preview/engine.rb
80
114
  - lib/mulberry_preview/helper/action_view_extension.rb
115
+ - lib/mulberry_preview/markdown/render.rb
81
116
  - lib/mulberry_preview/railtie.rb
82
117
  - lib/mulberry_preview/version.rb
83
118
  - lib/tasks/mulberry_preview_tasks.rake
84
119
  homepage: https://github.com/jameszhan/mulberry_preview
85
120
  licenses:
86
- - MIT
121
+ - MIT,
87
122
  - GPL-2
88
123
  metadata: {}
89
124
  post_install_message: