mad_chatter 0.2.7 → 0.2.8
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +5 -1
- data/lib/mad_chatter/message_history.rb +19 -0
- data/lib/mad_chatter/server.rb +4 -0
- data/lib/mad_chatter/version.rb +1 -1
- data/lib/mad_chatter.rb +1 -0
- data/mad_chatter.gemspec +4 -2
- data/spec/message_history_spec.rb +30 -0
- data/templates/web/index.html +8 -7
- data/templates/web/mad_chatter.js +27 -10
- data/templates/web/mad_chatter_config.js +1 -0
- data/templates/web/markitup/sets/markdown/style.css +0 -55
- data/templates/web/styles.css +5 -9
- metadata +49 -24
- data/templates/web/markitup/sets/markdown/set.js +0 -52
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
mad_chatter (0.2.
|
4
|
+
mad_chatter (0.2.7)
|
5
5
|
daemons (= 1.1.4)
|
6
6
|
em-websocket
|
7
7
|
eventmachine
|
@@ -23,6 +23,7 @@ GEM
|
|
23
23
|
guard-rspec (0.5.10)
|
24
24
|
guard (>= 0.8.4)
|
25
25
|
multi_json (1.0.4)
|
26
|
+
rb-fsevent (0.4.3.1)
|
26
27
|
redcarpet (2.0.1)
|
27
28
|
rspec (2.7.0)
|
28
29
|
rspec-core (~> 2.7.0)
|
@@ -32,6 +33,7 @@ GEM
|
|
32
33
|
rspec-expectations (2.7.0)
|
33
34
|
diff-lcs (~> 1.1.2)
|
34
35
|
rspec-mocks (2.7.0)
|
36
|
+
ruby-growl (3.0)
|
35
37
|
shoulda (2.11.3)
|
36
38
|
simplecov (0.5.4)
|
37
39
|
multi_json (~> 1.0.3)
|
@@ -46,6 +48,8 @@ DEPENDENCIES
|
|
46
48
|
guard
|
47
49
|
guard-rspec
|
48
50
|
mad_chatter!
|
51
|
+
rb-fsevent
|
49
52
|
rspec
|
53
|
+
ruby-growl
|
50
54
|
shoulda
|
51
55
|
simplecov
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module MadChatter
|
2
|
+
class MessageHistory
|
3
|
+
|
4
|
+
def self.add(message)
|
5
|
+
@stack ||= []
|
6
|
+
@stack << message
|
7
|
+
@stack = @stack.pop(10) if @stack.length > 10
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.all
|
11
|
+
@stack ||= []
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.clear
|
15
|
+
@stack = []
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
data/lib/mad_chatter/server.rb
CHANGED
@@ -33,6 +33,9 @@ module MadChatter
|
|
33
33
|
token = generate_token
|
34
34
|
send_message.call(MadChatter::Message.new('token', token).to_json)
|
35
35
|
@subscribers[subscriber_id] = token
|
36
|
+
MadChatter::MessageHistory.all.each do |json|
|
37
|
+
send_message.call(json)
|
38
|
+
end
|
36
39
|
subscriber_id
|
37
40
|
end
|
38
41
|
|
@@ -72,6 +75,7 @@ module MadChatter
|
|
72
75
|
|
73
76
|
def self.send_json(json)
|
74
77
|
MadChatter::Server.main_channel.push(json)
|
78
|
+
MadChatter::MessageHistory.add(json)
|
75
79
|
end
|
76
80
|
|
77
81
|
end
|
data/lib/mad_chatter/version.rb
CHANGED
data/lib/mad_chatter.rb
CHANGED
data/mad_chatter.gemspec
CHANGED
@@ -25,8 +25,10 @@ Gem::Specification.new do |s|
|
|
25
25
|
s.add_runtime_dependency "daemons", "1.1.4"
|
26
26
|
|
27
27
|
s.add_development_dependency "rspec"
|
28
|
-
s.add_development_dependency "shoulda"
|
28
|
+
s.add_development_dependency "shoulda" # do we need this?
|
29
|
+
s.add_development_dependency 'simplecov'
|
29
30
|
s.add_development_dependency 'guard'
|
30
31
|
s.add_development_dependency 'guard-rspec'
|
31
|
-
s.add_development_dependency '
|
32
|
+
s.add_development_dependency 'rb-fsevent'
|
33
|
+
s.add_development_dependency 'ruby-growl'
|
32
34
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MadChatter::MessageHistory do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
MadChatter::MessageHistory.clear
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should only keep 10 recent messages' do
|
10
|
+
15.times do
|
11
|
+
MadChatter::MessageHistory.add MadChatter::Message.new('message', 'Here is a dummy chat message')
|
12
|
+
end
|
13
|
+
MadChatter::MessageHistory.all.length.should == 10
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should allow you to clear the history' do
|
17
|
+
MadChatter::MessageHistory.add MadChatter::Message.new('message', 'Here is a dummy chat message')
|
18
|
+
MadChatter::MessageHistory.all.length.should == 1
|
19
|
+
MadChatter::MessageHistory.clear
|
20
|
+
MadChatter::MessageHistory.all.length.should == 0
|
21
|
+
end
|
22
|
+
|
23
|
+
context '#all' do
|
24
|
+
it 'should still return an empty array if there is message chat history' do
|
25
|
+
history = MadChatter::MessageHistory.all
|
26
|
+
history.should == []
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
data/templates/web/index.html
CHANGED
@@ -2,22 +2,23 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>Mad Chatter</title>
|
5
|
-
<link rel="stylesheet" href="styles.css">
|
6
5
|
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js'></script>
|
7
6
|
<script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js'></script>
|
8
|
-
<script src='mad_chatter.js'></script>
|
9
|
-
<script src='mad_chatter_actions.js'></script>
|
10
7
|
|
11
|
-
<!--
|
8
|
+
<!-- markdown editor -->
|
12
9
|
<script type="text/javascript" src="markitup/jquery.markitup.js"></script>
|
13
|
-
<script type="text/javascript" src="markitup/sets/markdown/set.js"></script>
|
14
10
|
<link rel="stylesheet" type="text/css" href="markitup/skins/mad_chatter/style.css" />
|
15
11
|
<link rel="stylesheet" type="text/css" href="markitup/sets/markdown/style.css" />
|
16
12
|
|
13
|
+
<!-- Mad Chatter -->
|
14
|
+
<script src='mad_chatter.js'></script>
|
15
|
+
<script src='mad_chatter_actions.js'></script>
|
16
|
+
<script src='mad_chatter_config.js'></script>
|
17
|
+
<link rel="stylesheet" href="styles.css">
|
18
|
+
|
17
19
|
<script>
|
18
20
|
$(document).ready(function(){
|
19
|
-
MadChatter.init(
|
20
|
-
$('#keyboard textarea').markItUp(mySettings);
|
21
|
+
MadChatter.init(mad_chatter_config);
|
21
22
|
});
|
22
23
|
</script>
|
23
24
|
</head>
|
@@ -8,7 +8,7 @@ var MadChatter = {
|
|
8
8
|
MadChatter.init_websocket(ws_host);
|
9
9
|
$('#chatroom').hide();
|
10
10
|
MadChatter.wait_for_join();
|
11
|
-
MadChatter.
|
11
|
+
MadChatter.add_markdown_editor();
|
12
12
|
},
|
13
13
|
|
14
14
|
init_websocket: function(ws_host){
|
@@ -36,14 +36,23 @@ var MadChatter = {
|
|
36
36
|
});
|
37
37
|
},
|
38
38
|
|
39
|
-
|
40
|
-
var
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
39
|
+
add_markdown_editor: function(){
|
40
|
+
var config = {
|
41
|
+
previewParserPath: '',
|
42
|
+
onEnter: {keepDefault:false, afterInsert: MadChatter.submit_chat },
|
43
|
+
onShiftEnter: {keepDefault:false, openWith:'\n\n'},
|
44
|
+
markupSet: [
|
45
|
+
{name:'Bold', key:'B', openWith:'**', closeWith:'**'},
|
46
|
+
{name:'Italic', key:'I', openWith:'_', closeWith:'_'},
|
47
|
+
{separator:'---------------' },
|
48
|
+
{name:'Picture', key:'P', replaceWith:'![[![Alternative text]!]]([![Url:!:http://]!])'},
|
49
|
+
{name:'Link', key:'L', openWith:'[', closeWith:']([![Url:!:http://]!])', placeHolder:'Your text to link here...' },
|
50
|
+
{separator:'---------------'},
|
51
|
+
{name:'Quotes', openWith:'> '},
|
52
|
+
{name:'Code Block / Code', openWith:'(!(\t|!|`)!)', closeWith:'(!(`)!)'}
|
53
|
+
]
|
54
|
+
};
|
55
|
+
$('#keyboard textarea').markItUp(config);
|
47
56
|
},
|
48
57
|
|
49
58
|
join_chat: function(){
|
@@ -57,6 +66,14 @@ var MadChatter = {
|
|
57
66
|
$('#chatroom').show();
|
58
67
|
},
|
59
68
|
|
69
|
+
submit_chat: function(){
|
70
|
+
var keyboard = $("#keyboard textarea"), message = keyboard.val();
|
71
|
+
if ($.trim(message) != '') {
|
72
|
+
MadChatter.send_message(message);
|
73
|
+
keyboard.val('');
|
74
|
+
}
|
75
|
+
},
|
76
|
+
|
60
77
|
message_received: function(type, username, message){
|
61
78
|
if (type == 'error') {
|
62
79
|
console.log('Client error: ' + message)
|
@@ -101,7 +118,7 @@ var MadChatter = {
|
|
101
118
|
},
|
102
119
|
|
103
120
|
display_message: function(username, message){
|
104
|
-
$("#messages").append("<p class='message'><span class='username'>" + username + ":</span> " + message + "
|
121
|
+
$("#messages").append("<p class='message'><time>" + MadChatter.get_current_time() + "</time><span class='username'>" + username + ":</span> " + message + "</p>");
|
105
122
|
},
|
106
123
|
|
107
124
|
scroll_to_bottom_of_chat: function(){
|
@@ -0,0 +1 @@
|
|
1
|
+
var mad_chatter_config = 'ws://localhost:8100';
|
@@ -1,58 +1,3 @@
|
|
1
|
-
/* -------------------------------------------------------------------
|
2
|
-
// markItUp!
|
3
|
-
// By Jay Salvat - http://markitup.jaysalvat.com/
|
4
|
-
// ------------------------------------------------------------------*/
|
5
|
-
/*.markItUp .markItUpButton1 a {
|
6
|
-
background-image:url(images/h1.png);
|
7
|
-
}
|
8
|
-
.markItUp .markItUpButton2 a {
|
9
|
-
background-image:url(images/h2.png);
|
10
|
-
}
|
11
|
-
.markItUp .markItUpButton3 a {
|
12
|
-
background-image:url(images/h3.png);
|
13
|
-
}
|
14
|
-
.markItUp .markItUpButton4 a {
|
15
|
-
background-image:url(images/h4.png);
|
16
|
-
}
|
17
|
-
.markItUp .markItUpButton5 a {
|
18
|
-
background-image:url(images/h5.png);
|
19
|
-
}
|
20
|
-
.markItUp .markItUpButton6 a {
|
21
|
-
background-image:url(images/h6.png);
|
22
|
-
}
|
23
|
-
|
24
|
-
.markItUp .markItUpButton7 a {
|
25
|
-
background-image:url(images/bold.png);
|
26
|
-
}
|
27
|
-
.markItUp .markItUpButton8 a {
|
28
|
-
background-image:url(images/italic.png);
|
29
|
-
}
|
30
|
-
|
31
|
-
.markItUp .markItUpButton9 a {
|
32
|
-
background-image:url(images/list-bullet.png);
|
33
|
-
}
|
34
|
-
.markItUp .markItUpButton10 a {
|
35
|
-
background-image:url(images/list-numeric.png);
|
36
|
-
}
|
37
|
-
|
38
|
-
.markItUp .markItUpButton11 a {
|
39
|
-
background-image:url(images/picture.png);
|
40
|
-
}
|
41
|
-
.markItUp .markItUpButton12 a {
|
42
|
-
background-image:url(images/link.png);
|
43
|
-
}
|
44
|
-
|
45
|
-
.markItUp .markItUpButton13 a {
|
46
|
-
background-image:url(images/quotes.png);
|
47
|
-
}
|
48
|
-
.markItUp .markItUpButton14 a {
|
49
|
-
background-image:url(images/code.png);
|
50
|
-
}
|
51
|
-
|
52
|
-
.markItUp .preview a {
|
53
|
-
background-image:url(images/preview.png);
|
54
|
-
}*/
|
55
|
-
|
56
1
|
.markItUp .markItUpButton1 a { background-image:url(images/bold.png); }
|
57
2
|
.markItUp .markItUpButton2 a { background-image:url(images/italic.png); }
|
58
3
|
.markItUp .markItUpButton3 a { background-image:url(images/picture.png); }
|
data/templates/web/styles.css
CHANGED
@@ -48,9 +48,8 @@ table {
|
|
48
48
|
border-spacing: 0;
|
49
49
|
}
|
50
50
|
|
51
|
-
|
52
|
-
|
53
|
-
*/
|
51
|
+
|
52
|
+
/***************** Mad Chatter Styles *****************/
|
54
53
|
|
55
54
|
#login_screen header {
|
56
55
|
padding: 150px 0 20px;
|
@@ -131,7 +130,6 @@ table {
|
|
131
130
|
bottom: 0;
|
132
131
|
left: 220px;
|
133
132
|
width: 100%;
|
134
|
-
/* height:50px;*/
|
135
133
|
background-color: #eee;
|
136
134
|
padding: 0 10px;
|
137
135
|
}
|
@@ -155,10 +153,8 @@ table {
|
|
155
153
|
overflow:auto;
|
156
154
|
}
|
157
155
|
|
158
|
-
|
159
|
-
.message pre, .message code {
|
156
|
+
pre, code {
|
160
157
|
font: 12px 'Bitstream Vera Sans Mono','Courier',monospace;
|
161
|
-
padding:
|
162
|
-
background-color: #EEE!important;
|
163
|
-
border: 1px solid #DDD;
|
158
|
+
padding: 2px !important;
|
159
|
+
background-color: #EEE !important;
|
164
160
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mad_chatter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
12
|
+
date: 2012-01-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
16
|
-
requirement: &
|
16
|
+
requirement: &2168902960 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2168902960
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: eventmachine
|
27
|
-
requirement: &
|
27
|
+
requirement: &2168902340 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2168902340
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: em-websocket
|
38
|
-
requirement: &
|
38
|
+
requirement: &2168901700 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2168901700
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: redcarpet
|
49
|
-
requirement: &
|
49
|
+
requirement: &2168901060 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2168901060
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: daemons
|
60
|
-
requirement: &
|
60
|
+
requirement: &2168900260 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - =
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.1.4
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2168900260
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
|
-
requirement: &
|
71
|
+
requirement: &2168899840 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2168899840
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: shoulda
|
82
|
-
requirement: &
|
82
|
+
requirement: &2168899380 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,21 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *2168899380
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: simplecov
|
93
|
+
requirement: &2168898960 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
type: :development
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *2168898960
|
91
102
|
- !ruby/object:Gem::Dependency
|
92
103
|
name: guard
|
93
|
-
requirement: &
|
104
|
+
requirement: &2168898540 !ruby/object:Gem::Requirement
|
94
105
|
none: false
|
95
106
|
requirements:
|
96
107
|
- - ! '>='
|
@@ -98,10 +109,10 @@ dependencies:
|
|
98
109
|
version: '0'
|
99
110
|
type: :development
|
100
111
|
prerelease: false
|
101
|
-
version_requirements: *
|
112
|
+
version_requirements: *2168898540
|
102
113
|
- !ruby/object:Gem::Dependency
|
103
114
|
name: guard-rspec
|
104
|
-
requirement: &
|
115
|
+
requirement: &2168898100 !ruby/object:Gem::Requirement
|
105
116
|
none: false
|
106
117
|
requirements:
|
107
118
|
- - ! '>='
|
@@ -109,10 +120,21 @@ dependencies:
|
|
109
120
|
version: '0'
|
110
121
|
type: :development
|
111
122
|
prerelease: false
|
112
|
-
version_requirements: *
|
123
|
+
version_requirements: *2168898100
|
113
124
|
- !ruby/object:Gem::Dependency
|
114
|
-
name:
|
115
|
-
requirement: &
|
125
|
+
name: rb-fsevent
|
126
|
+
requirement: &2168897680 !ruby/object:Gem::Requirement
|
127
|
+
none: false
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: *2168897680
|
135
|
+
- !ruby/object:Gem::Dependency
|
136
|
+
name: ruby-growl
|
137
|
+
requirement: &2168897260 !ruby/object:Gem::Requirement
|
116
138
|
none: false
|
117
139
|
requirements:
|
118
140
|
- - ! '>='
|
@@ -120,7 +142,7 @@ dependencies:
|
|
120
142
|
version: '0'
|
121
143
|
type: :development
|
122
144
|
prerelease: false
|
123
|
-
version_requirements: *
|
145
|
+
version_requirements: *2168897260
|
124
146
|
description: Mad Chatter is a fun, easy to customize chat server, utilizing HTML 5
|
125
147
|
Web Sockets
|
126
148
|
email:
|
@@ -148,6 +170,7 @@ files:
|
|
148
170
|
- lib/mad_chatter/config.rb
|
149
171
|
- lib/mad_chatter/daemon.rb
|
150
172
|
- lib/mad_chatter/message.rb
|
173
|
+
- lib/mad_chatter/message_history.rb
|
151
174
|
- lib/mad_chatter/server.rb
|
152
175
|
- lib/mad_chatter/servers/em_websocket.rb
|
153
176
|
- lib/mad_chatter/servers/juggernaut.rb
|
@@ -156,6 +179,7 @@ files:
|
|
156
179
|
- lib/mad_chatter/version.rb
|
157
180
|
- lib/mad_chatter/web_server.rb
|
158
181
|
- mad_chatter.gemspec
|
182
|
+
- spec/message_history_spec.rb
|
159
183
|
- spec/message_spec.rb
|
160
184
|
- spec/spec_helper.rb
|
161
185
|
- templates/config.yml
|
@@ -164,6 +188,7 @@ files:
|
|
164
188
|
- templates/web/index.html
|
165
189
|
- templates/web/mad_chatter.js
|
166
190
|
- templates/web/mad_chatter_actions.js
|
191
|
+
- templates/web/mad_chatter_config.js
|
167
192
|
- templates/web/markitup/jquery.markitup.js
|
168
193
|
- templates/web/markitup/sets/markdown/images/bold.png
|
169
194
|
- templates/web/markitup/sets/markdown/images/code.png
|
@@ -181,7 +206,6 @@ files:
|
|
181
206
|
- templates/web/markitup/sets/markdown/images/preview.png
|
182
207
|
- templates/web/markitup/sets/markdown/images/quotes.png
|
183
208
|
- templates/web/markitup/sets/markdown/readme.txt
|
184
|
-
- templates/web/markitup/sets/markdown/set.js
|
185
209
|
- templates/web/markitup/sets/markdown/style.css
|
186
210
|
- templates/web/markitup/skins/mad_chatter/images/handle.png
|
187
211
|
- templates/web/markitup/skins/mad_chatter/images/menu.png
|
@@ -214,5 +238,6 @@ specification_version: 3
|
|
214
238
|
summary: Mad Chatter is a fun, easy to customize chat server, utilizing HTML 5 Web
|
215
239
|
Sockets
|
216
240
|
test_files:
|
241
|
+
- spec/message_history_spec.rb
|
217
242
|
- spec/message_spec.rb
|
218
243
|
- spec/spec_helper.rb
|
@@ -1,52 +0,0 @@
|
|
1
|
-
// -------------------------------------------------------------------
|
2
|
-
// markItUp!
|
3
|
-
// -------------------------------------------------------------------
|
4
|
-
// Copyright (C) 2008 Jay Salvat
|
5
|
-
// http://markitup.jaysalvat.com/
|
6
|
-
// -------------------------------------------------------------------
|
7
|
-
// MarkDown tags example
|
8
|
-
// http://en.wikipedia.org/wiki/Markdown
|
9
|
-
// http://daringfireball.net/projects/markdown/
|
10
|
-
// -------------------------------------------------------------------
|
11
|
-
// Feel free to add more tags
|
12
|
-
// -------------------------------------------------------------------
|
13
|
-
mySettings = {
|
14
|
-
previewParserPath: '',
|
15
|
-
onShiftEnter: {keepDefault:false, openWith:'\n\n'},
|
16
|
-
markupSet: [
|
17
|
-
// {name:'First Level Heading', key:'1', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '=') } },
|
18
|
-
// {name:'Second Level Heading', key:'2', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '-') } },
|
19
|
-
// {name:'Heading 3', key:'3', openWith:'### ', placeHolder:'Your title here...' },
|
20
|
-
// {name:'Heading 4', key:'4', openWith:'#### ', placeHolder:'Your title here...' },
|
21
|
-
// {name:'Heading 5', key:'5', openWith:'##### ', placeHolder:'Your title here...' },
|
22
|
-
// {name:'Heading 6', key:'6', openWith:'###### ', placeHolder:'Your title here...' },
|
23
|
-
// {separator:'---------------' },
|
24
|
-
{name:'Bold', key:'B', openWith:'**', closeWith:'**'},
|
25
|
-
{name:'Italic', key:'I', openWith:'_', closeWith:'_'},
|
26
|
-
{separator:'---------------' },
|
27
|
-
// {name:'Bulleted List', openWith:'- ' },
|
28
|
-
// {name:'Numeric List', openWith:function(markItUp) {
|
29
|
-
// return markItUp.line+'. ';
|
30
|
-
// }},
|
31
|
-
// {separator:'---------------' },
|
32
|
-
{name:'Picture', key:'P', replaceWith:'![[![Alternative text]!]]([![Url:!:http://]!] "[![Title]!]")'},
|
33
|
-
{name:'Link', key:'L', openWith:'[', closeWith:']([![Url:!:http://]!] "[![Title]!]")', placeHolder:'Your text to link here...' },
|
34
|
-
{separator:'---------------'},
|
35
|
-
{name:'Quotes', openWith:'> '},
|
36
|
-
{name:'Code Block / Code', openWith:'(!(\t|!|`)!)', closeWith:'(!(`)!)'}
|
37
|
-
// {separator:'---------------'},
|
38
|
-
// {name:'Preview', call:'preview', className:"preview"}
|
39
|
-
]
|
40
|
-
}
|
41
|
-
|
42
|
-
// mIu nameSpace to avoid conflict.
|
43
|
-
miu = {
|
44
|
-
markdownTitle: function(markItUp, char) {
|
45
|
-
heading = '';
|
46
|
-
n = $.trim(markItUp.selection||markItUp.placeHolder).length;
|
47
|
-
for(i = 0; i < n; i++) {
|
48
|
-
heading += char;
|
49
|
-
}
|
50
|
-
return '\n'+heading;
|
51
|
-
}
|
52
|
-
}
|