kevorkian 1.0.1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/kevorkian/version.rb +1 -1
- data/vendor/assets/javascripts/button.js.coffee +3 -3
- data/vendor/assets/javascripts/editor.js.coffee +37 -13
- data/vendor/assets/javascripts/kevorkian.js.coffee +0 -1
- data/vendor/assets/javascripts/utils/carat.js.coffee +4 -4
- data/vendor/assets/javascripts/utils/manipulation.js.coffee +1 -2
- metadata +9 -4
- data/vendor/assets/javascripts/default_row.js.coffee +0 -17
data/lib/kevorkian/version.rb
CHANGED
@@ -16,7 +16,7 @@ class MD.Button
|
|
16
16
|
onClick: (e) =>
|
17
17
|
e?.preventDefault()
|
18
18
|
if @attributes.onClick
|
19
|
-
@attributes.onClick(@, MD.Utils.Carat.getRange(@editor.
|
19
|
+
@attributes.onClick(@, MD.Utils.Carat.getRange(@editor.target))
|
20
20
|
|
21
21
|
render: =>
|
22
22
|
button = $("<button class='btn'></button>").append(@attributes.html())
|
@@ -28,7 +28,7 @@ class MD.Button
|
|
28
28
|
|
29
29
|
perform: (range, callback) =>
|
30
30
|
@editor.trigger("before.perform", range, @)
|
31
|
-
results = MD.Utils.Manipulation.replaceRange(@editor.
|
31
|
+
results = MD.Utils.Manipulation.replaceRange(@editor.target, range, callback)
|
32
32
|
@editor.trigger("after.perform", range, @, results)
|
33
33
|
@editor.trigger("change", results.finalText)
|
34
34
|
return results
|
@@ -40,5 +40,5 @@ class MD.Button
|
|
40
40
|
|
41
41
|
setCaratRange: (range) =>
|
42
42
|
@editor.trigger("before.setCarat", range, @)
|
43
|
-
MD.Utils.Carat.setRange(@editor.
|
43
|
+
MD.Utils.Carat.setRange(@editor.target, range.start, range.end)
|
44
44
|
@editor.trigger("after.setCarat", range, @)
|
@@ -1,8 +1,24 @@
|
|
1
1
|
class @MD.Editor
|
2
2
|
|
3
|
-
constructor: (@
|
3
|
+
constructor: (@target) ->
|
4
4
|
@clearRows()
|
5
|
-
@addRow(MD.Row
|
5
|
+
@addRow(new MD.Row([
|
6
|
+
new MD.Button.H1(),
|
7
|
+
new MD.Button.H2(),
|
8
|
+
new MD.Button.H3(),
|
9
|
+
new MD.Button.Seperator(),
|
10
|
+
new MD.Button.Bold(),
|
11
|
+
new MD.Button.Italics(),
|
12
|
+
new MD.Button.Seperator(),
|
13
|
+
new MD.Button.BlockQuotes(),
|
14
|
+
new MD.Button.OrderedList(),
|
15
|
+
new MD.Button.UnorderedList(),
|
16
|
+
new MD.Button.CodeBlock(),
|
17
|
+
new MD.Button.CodeLine(),
|
18
|
+
new MD.Button.Seperator(),
|
19
|
+
new MD.Button.Href(),
|
20
|
+
new MD.Button.Hr()
|
21
|
+
]))
|
6
22
|
@events = {}
|
7
23
|
|
8
24
|
on: (event, callback) ->
|
@@ -21,21 +37,29 @@ class @MD.Editor
|
|
21
37
|
@rows.push(row)
|
22
38
|
|
23
39
|
render: =>
|
24
|
-
el =
|
25
|
-
inner = el.clone()
|
40
|
+
el = @target
|
41
|
+
# inner = el.clone()
|
42
|
+
|
26
43
|
html = $("""
|
27
|
-
<div
|
28
|
-
<div class='markdown_editor_toolbar'
|
44
|
+
<div class='markdown_editor'>
|
45
|
+
<div class='markdown_editor_toolbar'">
|
29
46
|
</div>
|
30
47
|
</div>
|
31
48
|
""")
|
49
|
+
|
50
|
+
toolbar = $(".markdown_editor_toolbar", html)
|
51
|
+
outer = el.outerWidth(true)
|
52
|
+
if outer is 100
|
53
|
+
toolbar.addClass("span10")
|
54
|
+
else
|
55
|
+
toolbar.css("width", "#{outer}px")
|
56
|
+
|
32
57
|
for row in @rows
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
58
|
+
toolbar.append(row.render())
|
59
|
+
|
60
|
+
html.insertBefore(el)
|
61
|
+
el.keyup (e) =>
|
37
62
|
@trigger("change", $(e.target).val())
|
38
|
-
|
63
|
+
el.change (e) =>
|
39
64
|
@trigger("change", $(e.target).val())
|
40
|
-
return @
|
41
|
-
|
65
|
+
return @
|
@@ -1,15 +1,15 @@
|
|
1
1
|
class MD.Utils.Carat
|
2
2
|
|
3
|
-
@getRange: (
|
3
|
+
@getRange: (target) ->
|
4
4
|
pos = [0,0]
|
5
|
-
ctrl =
|
5
|
+
ctrl = target[0]
|
6
6
|
if ctrl.selectionStart or ctrl.selectionStart is '0'
|
7
7
|
pos[0] = ctrl.selectionStart
|
8
8
|
if ctrl.selectionEnd or ctrl.selectionEnd is '0'
|
9
9
|
pos[1] = ctrl.selectionEnd
|
10
10
|
return {start: pos[0], end: pos[1]}
|
11
11
|
|
12
|
-
@setRange: (
|
13
|
-
ctrl =
|
12
|
+
@setRange: (target, start, end = start) =>
|
13
|
+
ctrl = target[0]
|
14
14
|
ctrl.focus()
|
15
15
|
ctrl.setSelectionRange(start, end)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kevorkian
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-03-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -76,7 +76,6 @@ files:
|
|
76
76
|
- vendor/assets/javascripts/buttons/italics.js.coffee
|
77
77
|
- vendor/assets/javascripts/buttons/ordered_list.js.coffee
|
78
78
|
- vendor/assets/javascripts/buttons/unordered_list.js.coffee
|
79
|
-
- vendor/assets/javascripts/default_row.js.coffee
|
80
79
|
- vendor/assets/javascripts/editor.js.coffee
|
81
80
|
- vendor/assets/javascripts/kevorkian.js.coffee
|
82
81
|
- vendor/assets/javascripts/row.js.coffee
|
@@ -98,15 +97,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
98
97
|
- - ! '>='
|
99
98
|
- !ruby/object:Gem::Version
|
100
99
|
version: '0'
|
100
|
+
segments:
|
101
|
+
- 0
|
102
|
+
hash: -2868621236420658150
|
101
103
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
104
|
none: false
|
103
105
|
requirements:
|
104
106
|
- - ! '>='
|
105
107
|
- !ruby/object:Gem::Version
|
106
108
|
version: '0'
|
109
|
+
segments:
|
110
|
+
- 0
|
111
|
+
hash: -2868621236420658150
|
107
112
|
requirements: []
|
108
113
|
rubyforge_project:
|
109
|
-
rubygems_version: 1.8.
|
114
|
+
rubygems_version: 1.8.25
|
110
115
|
signing_key:
|
111
116
|
specification_version: 3
|
112
117
|
summary: Easy, extensible MarkDown editor.
|
@@ -1,17 +0,0 @@
|
|
1
|
-
MD.Row.defaultRow = new MD.Row([
|
2
|
-
new MD.Button.H1(),
|
3
|
-
new MD.Button.H2(),
|
4
|
-
new MD.Button.H3(),
|
5
|
-
new MD.Button.Seperator(),
|
6
|
-
new MD.Button.Bold(),
|
7
|
-
new MD.Button.Italics(),
|
8
|
-
new MD.Button.Seperator(),
|
9
|
-
new MD.Button.BlockQuotes(),
|
10
|
-
new MD.Button.OrderedList(),
|
11
|
-
new MD.Button.UnorderedList(),
|
12
|
-
new MD.Button.CodeBlock(),
|
13
|
-
new MD.Button.CodeLine(),
|
14
|
-
new MD.Button.Seperator(),
|
15
|
-
new MD.Button.Href(),
|
16
|
-
new MD.Button.Hr()
|
17
|
-
])
|