mark_it_zero 0.1.1 → 0.2.0

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: abfae5f2aacd0a7400742211c51dd468e73abf08
4
- data.tar.gz: d8298ceeb0b159151a31de9fafa0bf1dfa30565a
3
+ metadata.gz: 99943d71e88e2ca914ba0c060a2b57205b214859
4
+ data.tar.gz: c0dbc1d4d3eaa210f77f6a38a7309ab1c5bbc9cd
5
5
  SHA512:
6
- metadata.gz: 88ae8926b300a4225cffe6a13f292ce96419f0490e4e5ca9306c51f8a8b26337f15b07a016fbaee9ba7329bf99204187b57985b2b50378dffec9019b4e182972
7
- data.tar.gz: 85716b70bd5ef1786189c05f7fc27cc0016244cb5b8a0feb0647392fc1d61a0e7a69e5a9205ba0936ac2dafd2c9ab3aa744557e7beb5daed9369300ea70b4815
6
+ metadata.gz: ab301074f156d54e1ff2535bed0fa4c18e6e132eaf1c8d821cf5ae90db9bf0d96aa1a7cf779418e7ba5dbc97c3b6d8202e5e537a07b2c7f7155ec61f267cbe87
7
+ data.tar.gz: 6f81879b6c07990cd8eac9ce2da524047b4ffa37f1e068854bdb5cd4e6a6c7badb5cc98c2560efd75a24dbc169cec722349b0811388746b7bc10e86c94785568
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mark_it_zero (0.1.1)
4
+ mark_it_zero (0.2.0)
5
5
  jquery-rails
6
6
  pygments.rb
7
7
  rails (~> 4.1.0)
data/README.md CHANGED
@@ -104,6 +104,16 @@ We use Pygments.rb to add classes for syntax highlighting to code blocks. Most
104
104
  of what I'm doing is contained within [this
105
105
  Railscast](http://railscasts.com/episodes/207-syntax-highlighting-revised).
106
106
 
107
+ ### Without Active Record
108
+
109
+ You can use Mark It Zero! without ActiveRecord. Just use the `Markdown` class'
110
+ `to_html` method.
111
+
112
+ ```ruby
113
+ MarkItZero::Markdown.to_html("# Heading 1\n\n> A really cool quote ...")
114
+ # => "<h1 id=\"heading-1\">Heading 1</h1>\n\n<blockquote>\n<p>A really cool quote ...</p>\n</blockquote>\n"
115
+ ```
116
+
107
117
  Special Thanks!
108
118
  ----------
109
119
 
data/lib/mark_it_zero.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require "mark_it_zero/engine"
2
+ require "mark_it_zero/markdown"
2
3
  require "mark_it_zero/converts_markdown"
3
4
 
4
5
  # In case required gems are missing from project Gemfile
@@ -1,6 +1,3 @@
1
- require 'redcarpet'
2
- require 'pygments.rb'
3
-
4
1
  class << ActiveRecord::Base
5
2
 
6
3
  def converts_markdown(markdown = :markdown, html = :html)
@@ -10,44 +7,10 @@ class << ActiveRecord::Base
10
7
  after_save :"convert_#{markdown}_to_#{html}"
11
8
 
12
9
  define_method "convert_#{markdown}_to_#{html}" do
13
- renderer = Redcarpet::Markdown.new(
14
- HTMLwithPygments.new(:hard_wrap => false, :with_toc_data => true),
15
- {
16
- :autolink => true,
17
- :fenced_code_blocks => true,
18
- :highlight => true,
19
- :space_after_headers => true,
20
- :strikethrough => true,
21
- :tables => true,
22
- :underline => true,
23
- }
24
- )
25
-
26
10
  update_columns(
27
- html.to_sym => renderer.render(self.send("clean_#{markdown}"))
11
+ html.to_sym => MarkItZero::Markdown.to_html(self.send(markdown))
28
12
  )
29
13
  end
30
-
31
- define_method "clean_#{markdown}" do
32
- md = self.send(markdown)
33
- return "" if md.blank?
34
- md.gsub(
35
- /(?:http[s]?:\/\/)?(?:www\.)?(?:youtu\.be)\/(?:watch\?v=)?(.+)/,
36
- '<iframe width="420" height="345" src="http://www.youtube.com/embed/\1" frameborder="0" allowfullscreen></iframe>'
37
- ).gsub(
38
- /[”“]/,
39
- '"'
40
- ).gsub(
41
- /\[file\:(.*)\]/,
42
- '<p class="file"><code>\1</code></p>'
43
- )
44
- end
45
- end
46
-
47
- class HTMLwithPygments < Redcarpet::Render::HTML
48
- def block_code(code, language)
49
- Pygments.highlight(code, lexer: language)
50
- end
51
14
  end
52
15
 
53
16
  end
@@ -0,0 +1,46 @@
1
+ require 'redcarpet'
2
+ require 'pygments.rb'
3
+
4
+ module MarkItZero
5
+
6
+ class HTMLwithPygments < Redcarpet::Render::HTML
7
+ def block_code(code, language)
8
+ Pygments.highlight(code, lexer: language)
9
+ end
10
+ end
11
+
12
+ class Markdown
13
+
14
+ @@renderer = Redcarpet::Markdown.new(
15
+ HTMLwithPygments.new(:hard_wrap => false, :with_toc_data => true),
16
+ {
17
+ :autolink => true,
18
+ :fenced_code_blocks => true,
19
+ :highlight => true,
20
+ :space_after_headers => true,
21
+ :strikethrough => true,
22
+ :tables => true,
23
+ :underline => true,
24
+ }
25
+ )
26
+
27
+ def self.cleanse(text)
28
+ return "" if text.blank?
29
+ text.gsub(
30
+ /(?:http[s]?:\/\/)?(?:www\.)?(?:youtu\.be)\/(?:watch\?v=)?(.+)/,
31
+ '<iframe width="420" height="345" src="http://www.youtube.com/embed/\1" frameborder="0" allowfullscreen></iframe>'
32
+ ).gsub(
33
+ /[”“]/,
34
+ '"'
35
+ ).gsub(
36
+ /\[file\:(.*)\]/,
37
+ '<p class="file"><code>\1</code></p>'
38
+ )
39
+ end
40
+
41
+ def self.to_html(text)
42
+ @@renderer.render(cleanse(text))
43
+ end
44
+
45
+ end
46
+ end
@@ -1,3 +1,3 @@
1
1
  module MarkItZero
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mark_it_zero
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean C Davis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-24 00:00:00.000000000 Z
11
+ date: 2015-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -139,6 +139,7 @@ files:
139
139
  - lib/mark_it_zero.rb
140
140
  - lib/mark_it_zero/converts_markdown.rb
141
141
  - lib/mark_it_zero/engine.rb
142
+ - lib/mark_it_zero/markdown.rb
142
143
  - lib/mark_it_zero/version.rb
143
144
  - mark_it_zero.gemspec
144
145
  - test/dummy/README.rdoc
@@ -220,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
220
221
  version: '0'
221
222
  requirements: []
222
223
  rubyforge_project:
223
- rubygems_version: 2.2.0
224
+ rubygems_version: 2.4.6
224
225
  signing_key:
225
226
  specification_version: 4
226
227
  summary: Syntax highlighted markdown editor for rails