monologue-markdown 0.2.0 → 0.3.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 +7 -0
- data/README.md +7 -3
- data/app/assets/javascripts/monologue-markdown/epiceditor_load.coffee.erb +28 -18
- data/app/assets/stylesheets/monologue-markdown/code-highlighting.css +79 -0
- data/app/models/monologue/post_decorator.rb +26 -0
- data/app/views/monologue-markdown/overrides/_is_markdown.html.erb +1 -1
- data/db/migrate/20130913004609_merge_markdown_revisions_into_posts.rb +33 -0
- data/lib/monologue-markdown/engine.rb +2 -1
- data/lib/monologue-markdown/version.rb +1 -1
- metadata +195 -162
- data/app/models/monologue/posts_revision_decorator.rb +0 -28
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e53e97358288c48efcebed3722d71bd7c456f572
|
4
|
+
data.tar.gz: 26d13e69f66658abed137f80bf404d60c1aa6e65
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 61045826a9579a516d167e3eaed373d2b8b2665d234ee8b6b6afc154bd8cae4f4d1ae92d9141b225669590f11f48b6e50517a01dc867609b7afbc737daf7de19
|
7
|
+
data.tar.gz: 2e6da97d49a11ef4e298d9f74a3b80a3d23633f76314b924b91305870f35d00d813c755c4206237b0475ed1ecb824cfaa3d83702b7eb5f3e99c9ee217d6505f9
|
data/README.md
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
-
#
|
1
|
+
# monologue-markdown
|
2
2
|
|
3
3
|
This is a simple extension that will change [Monologue](https://github.com/jipiboily/monologue)'s default editor to EpicEditor which will let you use Markdown instead of a WYSIWYG edit.
|
4
4
|
|
5
|
+
IMPORTANT: this README is for Monologue 0.3.X.
|
6
|
+
|
5
7
|
## Install on a brand new Monologue installation
|
6
8
|
|
7
9
|
This is simple, you just have to add this file to your `Gemfile` after Monologue:
|
@@ -13,14 +15,16 @@ Then run this:
|
|
13
15
|
bundle exec rake monologue_markdown:install:migrations
|
14
16
|
bundle exec rake db:migrate
|
15
17
|
|
16
|
-
|
17
18
|
## Install on an already existing Monologue installation
|
18
19
|
|
19
20
|
You do the same as for a new Monologue installation, but, keep in mind that only new posts will have EpicEditor enabled. All the posts that existed before will still be using the WYSIWYG editor.
|
20
21
|
|
22
|
+
## For Code Highlighting
|
23
|
+
|
24
|
+
sudo easy_install Pygments
|
21
25
|
|
22
26
|
## Notes
|
23
27
|
|
24
28
|
There are [Deface](https://github.com/railsdog/deface/) overrides with this project. You might want to (read: "should") turn it off on production. If you do, you can add a Capistrano task to precompile them or precompile them locally.
|
25
29
|
|
26
|
-
[Read more about this here.](https://github.com/railsdog/deface/#production--precompiling)
|
30
|
+
[Read more about this here.](https://github.com/railsdog/deface/#production--precompiling)
|
@@ -1,11 +1,11 @@
|
|
1
1
|
class MonologueMarkdown
|
2
2
|
constructor: ->
|
3
|
-
@textarea = $("#
|
3
|
+
@textarea = $("#post_content")
|
4
4
|
@opts =
|
5
5
|
container: "epiceditor"
|
6
6
|
basePath: ""
|
7
|
+
clientSideStorage: false
|
7
8
|
clientSideStorage: true
|
8
|
-
localStorageName: "epiceditor"
|
9
9
|
parser: marked
|
10
10
|
file:
|
11
11
|
name: "epiceditor"
|
@@ -23,34 +23,44 @@ class MonologueMarkdown
|
|
23
23
|
fullscreen: 70
|
24
24
|
preview: 80
|
25
25
|
edit: 79
|
26
|
+
|
27
|
+
@initEpicEditor()
|
28
|
+
@bindEvents()
|
29
|
+
@removeDefaultEditor() # remove CKEDITOR right now if it is already loaded
|
30
|
+
|
31
|
+
initEpicEditor: ->
|
26
32
|
$(@textarea).after("<div id='epiceditor'></div>")
|
27
33
|
$(@textarea).hide()
|
28
|
-
|
34
|
+
@editor = new EpicEditor(@opts)
|
35
|
+
@bindEpicEvents()
|
36
|
+
@editor.load()
|
29
37
|
|
30
|
-
|
38
|
+
bindEpicEvents: ->
|
39
|
+
@editor.on "load", (data) =>
|
40
|
+
@editor.importFile('epiceditor',$(@textarea).val())
|
31
41
|
|
32
|
-
editor.on "
|
33
|
-
|
42
|
+
@editor.on "update", (data) =>
|
43
|
+
@update_content(data)
|
34
44
|
|
35
|
-
|
36
|
-
|
45
|
+
bindEvents: ->
|
46
|
+
$("form").submit (e) =>
|
47
|
+
@editor.emit("update")
|
37
48
|
|
38
|
-
|
49
|
+
# removing CKEDITOR when loaded
|
50
|
+
CKEDITOR.on 'instanceReady', =>
|
51
|
+
@removeDefaultEditor()
|
39
52
|
|
40
|
-
$("form").submit (e) ->
|
41
|
-
editor.emit("update")
|
42
53
|
update_content: (data) =>
|
43
|
-
# forcing unload of tinymce to make sure it doesn't add stuff in our neat content
|
44
|
-
@force_unload_tiny_mce()
|
45
54
|
# update content with our awesome markdown
|
46
55
|
@textarea.val data.content
|
47
56
|
|
48
|
-
|
57
|
+
removeDefaultEditor: =>
|
49
58
|
try
|
50
|
-
|
51
|
-
$(
|
52
|
-
catch
|
53
|
-
#
|
59
|
+
CKEDITOR.instances["post_content"].destroy(true)
|
60
|
+
$(@textarea).hide()
|
61
|
+
catch
|
62
|
+
#
|
63
|
+
$('#cke_post_content').remove()
|
54
64
|
|
55
65
|
|
56
66
|
$(document).ready ->
|
@@ -0,0 +1,79 @@
|
|
1
|
+
|
2
|
+
code .hll { background-color: #ffffcc }
|
3
|
+
code .c { color: #408080; font-style: italic } /* Comment */
|
4
|
+
code .err { border: 1px solid #FF0000 } /* Error */
|
5
|
+
code .k { color: #008000; font-weight: bold } /* Keyword */
|
6
|
+
code .o { color: #666666 } /* Operator */
|
7
|
+
code .cm { color: #408080; font-style: italic } /* Comment.Multiline */
|
8
|
+
code .cp { color: #BC7A00 } /* Comment.Preproc */
|
9
|
+
code .c1 { color: #408080; font-style: italic } /* Comment.Single */
|
10
|
+
code .cs { color: #408080; font-style: italic } /* Comment.Special */
|
11
|
+
code .gd { color: #A00000 } /* Generic.Deleted */
|
12
|
+
code .ge { font-style: italic } /* Generic.Emph */
|
13
|
+
code .gr { color: #FF0000 } /* Generic.Error */
|
14
|
+
code .gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
15
|
+
code .gi { color: #00A000 } /* Generic.Inserted */
|
16
|
+
code .go { color: #888888 } /* Generic.Output */
|
17
|
+
code .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
|
18
|
+
code .gs { font-weight: bold } /* Generic.Strong */
|
19
|
+
code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
20
|
+
code .gt { color: #0044DD } /* Generic.Traceback */
|
21
|
+
code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
|
22
|
+
code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
|
23
|
+
code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
|
24
|
+
code .kp { color: #008000 } /* Keyword.Pseudo */
|
25
|
+
code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
|
26
|
+
code .kt { color: #B00040 } /* Keyword.Type */
|
27
|
+
code .m { color: #666666 } /* Literal.Number */
|
28
|
+
code .s { color: #BA2121 } /* Literal.String */
|
29
|
+
code .na { color: #7D9029 } /* Name.Attribute */
|
30
|
+
code .nb { color: #008000 } /* Name.Builtin */
|
31
|
+
code .nc { color: #0000FF; font-weight: bold } /* Name.Class */
|
32
|
+
code .no { color: #880000 } /* Name.Constant */
|
33
|
+
code .nd { color: #AA22FF } /* Name.Decorator */
|
34
|
+
code .ni { color: #999999; font-weight: bold } /* Name.Entity */
|
35
|
+
code .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
|
36
|
+
code .nf { color: #0000FF } /* Name.Function */
|
37
|
+
code .nl { color: #A0A000 } /* Name.Label */
|
38
|
+
code .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
|
39
|
+
code .nt { color: #008000; font-weight: bold } /* Name.Tag */
|
40
|
+
code .nv { color: #19177C } /* Name.Variable */
|
41
|
+
code .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
|
42
|
+
code .w { color: #bbbbbb } /* Text.Whitespace */
|
43
|
+
code .mf { color: #666666 } /* Literal.Number.Float */
|
44
|
+
code .mh { color: #666666 } /* Literal.Number.Hex */
|
45
|
+
code .mi { color: #666666 } /* Literal.Number.Integer */
|
46
|
+
code .mo { color: #666666 } /* Literal.Number.Oct */
|
47
|
+
code .sb { color: #BA2121 } /* Literal.String.Backtick */
|
48
|
+
code .sc { color: #BA2121 } /* Literal.String.Char */
|
49
|
+
code .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
|
50
|
+
code .s2 { color: #BA2121 } /* Literal.String.Double */
|
51
|
+
code .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
|
52
|
+
code .sh { color: #BA2121 } /* Literal.String.Heredoc */
|
53
|
+
code .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
|
54
|
+
code .sx { color: #008000 } /* Literal.String.Other */
|
55
|
+
code .sr { color: #BB6688 } /* Literal.String.Regex */
|
56
|
+
code .s1 { color: #BA2121 } /* Literal.String.Single */
|
57
|
+
code .ss { color: #19177C } /* Literal.String.Symbol */
|
58
|
+
code .bp { color: #008000 } /* Name.Builtin.Pseudo */
|
59
|
+
code .vc { color: #19177C } /* Name.Variable.Class */
|
60
|
+
code .vg { color: #19177C } /* Name.Variable.Global */
|
61
|
+
code .vi { color: #19177C } /* Name.Variable.Instance */
|
62
|
+
code .il { color: #666666 } /* Literal.Number.Integer.Long */
|
63
|
+
|
64
|
+
figure.code .gutter pre {
|
65
|
+
margin-right: 10px;
|
66
|
+
padding-right: 10px;
|
67
|
+
border-right: 1px solid #e5e5e5;
|
68
|
+
text-align: right;
|
69
|
+
}
|
70
|
+
|
71
|
+
figure.code {
|
72
|
+
margin: 5px;
|
73
|
+
padding: 5px;
|
74
|
+
white-space:nowrap;
|
75
|
+
border:1px solid #eaeaea;
|
76
|
+
background-color:#f8f8f8;
|
77
|
+
border-radius:3px;
|
78
|
+
overflow-x: scroll;
|
79
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
Monologue::Post.class_eval do
|
2
|
+
before_validation do
|
3
|
+
if self.new_record?
|
4
|
+
self.is_markdown = true
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
def is_markdown?
|
9
|
+
self.is_markdown == true
|
10
|
+
end
|
11
|
+
|
12
|
+
def content
|
13
|
+
if self.is_markdown? && !in_admin?(caller)
|
14
|
+
pipeline = Content::Pipeline.new
|
15
|
+
return pipeline.filter(read_attribute(:content), markdown: { type: :gfm, safe: false })
|
16
|
+
end
|
17
|
+
read_attribute(:content)
|
18
|
+
end
|
19
|
+
|
20
|
+
def in_admin? caller
|
21
|
+
caller.each do |c|
|
22
|
+
return true if c.include? "app/controllers/monologue/admin/posts_controller.rb"
|
23
|
+
end
|
24
|
+
return false
|
25
|
+
end
|
26
|
+
end
|
@@ -1 +1 @@
|
|
1
|
-
<div id="is_markdown" style="display:none"><%= @post.
|
1
|
+
<div id="is_markdown" style="display:none"><%= @post.is_markdown?%></div>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
class MergeMarkdownRevisionsIntoPosts < ActiveRecord::Migration
|
2
|
+
class Monologue::PostsRevision < ActiveRecord::Base
|
3
|
+
attr_accessible :title, :content, :url, :published_at, :post_id
|
4
|
+
end
|
5
|
+
|
6
|
+
class Monologue::Post < ActiveRecord::Base
|
7
|
+
end
|
8
|
+
|
9
|
+
def up
|
10
|
+
Monologue::PostsRevision.reset_column_information
|
11
|
+
Monologue::Post.reset_column_information
|
12
|
+
add_column :monologue_posts, :is_markdown, :boolean
|
13
|
+
|
14
|
+
Monologue::Post.reset_column_information
|
15
|
+
|
16
|
+
Monologue::Post.all.each do |post|
|
17
|
+
latest_revision = latest_revision_for(post)
|
18
|
+
post.is_markdown = latest_revision.is_markdown
|
19
|
+
post.save(validate: false)
|
20
|
+
end
|
21
|
+
|
22
|
+
remove_column :monologue_posts_revisions, :is_markdown
|
23
|
+
end
|
24
|
+
|
25
|
+
def down
|
26
|
+
raise ActiveRecord::IrreversibleMigration
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
def latest_revision_for(post)
|
31
|
+
Monologue::PostsRevision.where("post_id = ?", post.id).order("monologue_posts_revisions.updated_at DESC").limit(1).first
|
32
|
+
end
|
33
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require "deface"
|
2
|
-
require
|
2
|
+
require 'content/pipeline'
|
3
3
|
|
4
4
|
module MonologueMarkdown
|
5
5
|
class Engine < ::Rails::Engine
|
@@ -12,6 +12,7 @@ module MonologueMarkdown
|
|
12
12
|
|
13
13
|
initializer :assets do |config|
|
14
14
|
Rails.application.config.assets.precompile += %w( monologue-markdown/epiceditor/themes/base/epiceditor.css monologue-markdown/epiceditor/themes/editor/epic-dark.css monologue-markdown/epiceditor/themes/preview/github.css )
|
15
|
+
Rails.application.config.assets.precompile += %w( monologue-markdown/code-highlighting.css)
|
15
16
|
end
|
16
17
|
|
17
18
|
def self.activate
|
metadata
CHANGED
@@ -1,181 +1,219 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: monologue-markdown
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
segments:
|
6
|
-
- 0
|
7
|
-
- 2
|
8
|
-
- 0
|
9
|
-
version: 0.2.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.0
|
10
5
|
platform: ruby
|
11
|
-
authors:
|
6
|
+
authors:
|
12
7
|
- Jean-Philippe Boily
|
13
8
|
autorequire:
|
14
9
|
bindir: bin
|
15
10
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2013-09-22 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
21
14
|
name: rails
|
22
|
-
|
23
|
-
|
24
|
-
requirements:
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
25
17
|
- - ~>
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
segments:
|
28
|
-
- 3
|
29
|
-
- 2
|
30
|
-
- 8
|
18
|
+
- !ruby/object:Gem::Version
|
31
19
|
version: 3.2.8
|
32
20
|
type: :runtime
|
33
|
-
version_requirements: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: monologue
|
36
21
|
prerelease: false
|
37
|
-
|
38
|
-
requirements:
|
39
|
-
- -
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
|
42
|
-
|
43
|
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 3.2.8
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: monologue
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
44
34
|
type: :runtime
|
45
|
-
|
46
|
-
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
47
42
|
name: deface
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.0.0.rc3
|
48
|
+
type: :runtime
|
48
49
|
prerelease: false
|
49
|
-
|
50
|
-
requirements:
|
51
|
-
- -
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
|
54
|
-
|
55
|
-
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.0.0.rc3
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: github-markdown
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.5.3
|
56
62
|
type: :runtime
|
57
|
-
version_requirements: *id003
|
58
|
-
- !ruby/object:Gem::Dependency
|
59
|
-
name: redcarpet
|
60
63
|
prerelease: false
|
61
|
-
|
62
|
-
requirements:
|
63
|
-
- -
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
|
66
|
-
|
67
|
-
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.5.3
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: content-pipeline
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.2.0
|
68
76
|
type: :runtime
|
69
|
-
version_requirements: *id004
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: jquery-rails
|
72
77
|
prerelease: false
|
73
|
-
|
74
|
-
requirements:
|
75
|
-
- -
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
|
78
|
-
|
79
|
-
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.2.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pygments.rb
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.5.2
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.5.2
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: jquery-rails
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
80
104
|
type: :runtime
|
81
|
-
version_requirements: *id005
|
82
|
-
- !ruby/object:Gem::Dependency
|
83
|
-
name: rspec-rails
|
84
105
|
prerelease: false
|
85
|
-
|
86
|
-
requirements:
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rspec-rails
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
87
115
|
- - ~>
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
|
90
|
-
- 2
|
91
|
-
- 11
|
92
|
-
version: "2.11"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '2.11'
|
93
118
|
type: :development
|
94
|
-
version_requirements: *id006
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
|
-
name: factory_girl_rails
|
97
119
|
prerelease: false
|
98
|
-
|
99
|
-
requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ~>
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '2.11'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: factory_girl_rails
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
100
129
|
- - ~>
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
segments:
|
103
|
-
- 4
|
104
|
-
- 1
|
105
|
-
- 0
|
130
|
+
- !ruby/object:Gem::Version
|
106
131
|
version: 4.1.0
|
107
132
|
type: :development
|
108
|
-
version_requirements: *id007
|
109
|
-
- !ruby/object:Gem::Dependency
|
110
|
-
name: capybara
|
111
133
|
prerelease: false
|
112
|
-
|
113
|
-
requirements:
|
114
|
-
- -
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
|
117
|
-
|
118
|
-
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ~>
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 4.1.0
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: capybara
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
119
146
|
type: :development
|
120
|
-
version_requirements: *id008
|
121
|
-
- !ruby/object:Gem::Dependency
|
122
|
-
name: shoulda
|
123
147
|
prerelease: false
|
124
|
-
|
125
|
-
requirements:
|
126
|
-
- -
|
127
|
-
- !ruby/object:Gem::Version
|
128
|
-
|
129
|
-
|
130
|
-
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - '>='
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: shoulda
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - '>='
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
131
160
|
type: :development
|
132
|
-
version_requirements: *id009
|
133
|
-
- !ruby/object:Gem::Dependency
|
134
|
-
name: guard-rspec
|
135
161
|
prerelease: false
|
136
|
-
|
137
|
-
requirements:
|
138
|
-
- -
|
139
|
-
- !ruby/object:Gem::Version
|
140
|
-
|
141
|
-
|
142
|
-
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - '>='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: guard-rspec
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
143
174
|
type: :development
|
144
|
-
version_requirements: *id010
|
145
|
-
- !ruby/object:Gem::Dependency
|
146
|
-
name: database_cleaner
|
147
175
|
prerelease: false
|
148
|
-
|
149
|
-
requirements:
|
150
|
-
- -
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
|
153
|
-
|
154
|
-
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - '>='
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: database_cleaner
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - '>='
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
155
188
|
type: :development
|
156
|
-
version_requirements: *id011
|
157
|
-
- !ruby/object:Gem::Dependency
|
158
|
-
name: mysql2
|
159
189
|
prerelease: false
|
160
|
-
|
161
|
-
requirements:
|
162
|
-
- -
|
163
|
-
- !ruby/object:Gem::Version
|
164
|
-
|
165
|
-
|
166
|
-
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - '>='
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: mysql2
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - '>='
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
167
202
|
type: :development
|
168
|
-
|
169
|
-
|
170
|
-
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - '>='
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
description: A small and simple efficient extension to Monologue that replace the
|
210
|
+
default WYSIWYG editor with a Markdown editor.
|
211
|
+
email:
|
171
212
|
- j@jipi.ca
|
172
213
|
executables: []
|
173
|
-
|
174
214
|
extensions: []
|
175
|
-
|
176
215
|
extra_rdoc_files: []
|
177
|
-
|
178
|
-
files:
|
216
|
+
files:
|
179
217
|
- app/assets/images/monologue-markdown/epiceditor/edit.png
|
180
218
|
- app/assets/images/monologue-markdown/epiceditor/fullscreen.png
|
181
219
|
- app/assets/images/monologue-markdown/epiceditor/preview.png
|
@@ -183,18 +221,20 @@ files:
|
|
183
221
|
- app/assets/javascripts/monologue-markdown/epiceditor/epiceditor.min.js.erb
|
184
222
|
- app/assets/javascripts/monologue-markdown/epiceditor_load.coffee.erb
|
185
223
|
- app/assets/stylesheets/monologue-markdown/application.css
|
224
|
+
- app/assets/stylesheets/monologue-markdown/code-highlighting.css
|
186
225
|
- app/assets/stylesheets/monologue-markdown/epiceditor/themes/base/epiceditor.css
|
187
226
|
- app/assets/stylesheets/monologue-markdown/epiceditor/themes/editor/epic-dark.css
|
188
227
|
- app/assets/stylesheets/monologue-markdown/epiceditor/themes/editor/epic-light.css
|
189
228
|
- app/assets/stylesheets/monologue-markdown/epiceditor/themes/preview/github.css
|
190
229
|
- app/assets/stylesheets/monologue-markdown/epiceditor/themes/preview/preview-dark.css
|
191
|
-
- app/models/monologue/
|
230
|
+
- app/models/monologue/post_decorator.rb
|
192
231
|
- app/overrides/insert_epiceditor_in_admin.rb
|
193
232
|
- app/overrides/insert_is_markdown_in_post_edit.rb
|
194
233
|
- app/views/monologue-markdown/overrides/_epiceditor.html.erb
|
195
234
|
- app/views/monologue-markdown/overrides/_is_markdown.html.erb
|
196
235
|
- config/routes.rb
|
197
236
|
- db/migrate/20120924111013_add_is_markown_to_posts_revision.rb
|
237
|
+
- db/migrate/20130913004609_merge_markdown_revisions_into_posts.rb
|
198
238
|
- lib/monologue-markdown/engine.rb
|
199
239
|
- lib/monologue-markdown/version.rb
|
200
240
|
- lib/monologue-markdown.rb
|
@@ -202,35 +242,28 @@ files:
|
|
202
242
|
- MIT-LICENSE
|
203
243
|
- Rakefile
|
204
244
|
- README.md
|
205
|
-
has_rdoc: true
|
206
245
|
homepage: https://github.com/jipiboily/monologue-markdown
|
207
246
|
licenses: []
|
208
|
-
|
247
|
+
metadata: {}
|
209
248
|
post_install_message:
|
210
249
|
rdoc_options: []
|
211
|
-
|
212
|
-
require_paths:
|
250
|
+
require_paths:
|
213
251
|
- lib
|
214
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
215
|
-
requirements:
|
216
|
-
- -
|
217
|
-
- !ruby/object:Gem::Version
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
- !ruby/object:Gem::Version
|
225
|
-
segments:
|
226
|
-
- 0
|
227
|
-
version: "0"
|
252
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
253
|
+
requirements:
|
254
|
+
- - '>='
|
255
|
+
- !ruby/object:Gem::Version
|
256
|
+
version: '0'
|
257
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
258
|
+
requirements:
|
259
|
+
- - '>='
|
260
|
+
- !ruby/object:Gem::Version
|
261
|
+
version: '0'
|
228
262
|
requirements: []
|
229
|
-
|
230
263
|
rubyforge_project:
|
231
|
-
rubygems_version:
|
264
|
+
rubygems_version: 2.0.2
|
232
265
|
signing_key:
|
233
|
-
specification_version:
|
234
|
-
summary: A small and simple efficient extension to Monologue that replace the default
|
266
|
+
specification_version: 4
|
267
|
+
summary: A small and simple efficient extension to Monologue that replace the default
|
268
|
+
WYSIWYG editor with a Markdown editor.
|
235
269
|
test_files: []
|
236
|
-
|
@@ -1,28 +0,0 @@
|
|
1
|
-
Monologue::PostsRevision.class_eval do
|
2
|
-
before_validation do
|
3
|
-
if self.post.nil? || self.post.posts_revision_id.nil?
|
4
|
-
self.is_markdown = true
|
5
|
-
else
|
6
|
-
self.is_markdown = self.post.active_revision.is_markdown
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
def is_markdown?
|
11
|
-
self.is_markdown != false
|
12
|
-
end
|
13
|
-
|
14
|
-
def content
|
15
|
-
if self.is_markdown? && !in_admin?(caller)
|
16
|
-
markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, :autolink => true, :space_after_headers => true)
|
17
|
-
return markdown.render(read_attribute(:content))
|
18
|
-
end
|
19
|
-
read_attribute(:content)
|
20
|
-
end
|
21
|
-
|
22
|
-
def in_admin? caller
|
23
|
-
caller.each do |c|
|
24
|
-
return true if c.include? "app/controllers/monologue/admin/posts_controller.rb"
|
25
|
-
end
|
26
|
-
return false
|
27
|
-
end
|
28
|
-
end
|