mulberry_preview 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: