keydown 0.5.2 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.rvmrc +1 -1
- data/keydown.gemspec +1 -1
- data/lib/keydown/lib/slide.rb +10 -7
- data/lib/version.rb +1 -1
- data/spec/lib/slide_spec.rb +4 -4
- data/spec/tasks/generate_spec.rb +1 -1
- data/templates/generate/css/syntax_highlighting.css +135 -0
- data/templates/generate/{%presentation_name%.md.tt → slides.md.tt} +0 -0
- data/templates/keydown.css.erb +0 -62
- data/templates/rocks/index.rhtml +1 -1
- metadata +13 -10
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm use default@keydown
|
1
|
+
rvm use default@keydown --create
|
data/keydown.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
|
|
14
14
|
|
15
15
|
s.add_dependency 'thor', '>= 0.14.0'
|
16
16
|
s.add_dependency 'rdiscount', '>= 1.6.8'
|
17
|
-
s.add_dependency '
|
17
|
+
s.add_dependency 'coderay', '~> 0.9.8'
|
18
18
|
|
19
19
|
s.add_development_dependency "rspec", ">= 2.5.0"
|
20
20
|
s.add_development_dependency "fuubar"
|
data/lib/keydown/lib/slide.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'digest/sha1'
|
2
|
-
require 'albino'
|
3
2
|
|
4
3
|
module Keydown
|
5
4
|
class Slide
|
@@ -24,7 +23,7 @@ module Keydown
|
|
24
23
|
extract_content!
|
25
24
|
extract_code!
|
26
25
|
extract_background_image!
|
27
|
-
|
26
|
+
highlight_code!
|
28
27
|
end
|
29
28
|
|
30
29
|
def classnames
|
@@ -109,15 +108,19 @@ module Keydown
|
|
109
108
|
end
|
110
109
|
end
|
111
110
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
111
|
+
require "coderay"
|
112
|
+
|
113
|
+
def highlight_code!
|
114
|
+
@codemap.each do |id, code_block|
|
115
|
+
lang = code_block[:lang]
|
116
|
+
code = code_block[:code]
|
116
117
|
if code.all? { |line| line =~ /\A\r?\n\Z/ || line =~ /^( |\t)/ }
|
117
118
|
code.gsub!(/^( |\t)/m, '')
|
118
119
|
end
|
119
120
|
|
120
|
-
|
121
|
+
tokens = CodeRay.scan code, lang.to_sym
|
122
|
+
|
123
|
+
@content.gsub!(id, tokens.html.div)
|
121
124
|
end
|
122
125
|
end
|
123
126
|
|
data/lib/version.rb
CHANGED
data/spec/lib/slide_spec.rb
CHANGED
@@ -47,9 +47,9 @@ describe Keydown::Slide do
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
shared_examples_for "
|
50
|
+
shared_examples_for "syntax highlighting" do
|
51
51
|
it "should colorize the code fragments" do
|
52
|
-
@doc.css('.
|
52
|
+
@doc.css('.CodeRay').length.should == 1
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
@@ -204,7 +204,7 @@ a simple note
|
|
204
204
|
|
205
205
|
it_should_behave_like "generating HTML"
|
206
206
|
|
207
|
-
it_should_behave_like "
|
207
|
+
it_should_behave_like "syntax highlighting"
|
208
208
|
end
|
209
209
|
end
|
210
210
|
|
@@ -239,7 +239,7 @@ a simple note
|
|
239
239
|
end
|
240
240
|
|
241
241
|
it_should_behave_like "generating HTML"
|
242
|
-
it_should_behave_like "
|
242
|
+
it_should_behave_like "syntax highlighting"
|
243
243
|
end
|
244
244
|
end
|
245
245
|
end
|
data/spec/tasks/generate_spec.rb
CHANGED
@@ -0,0 +1,135 @@
|
|
1
|
+
/*
|
2
|
+
CSS extraction & comments via http://thoughtsincomputation.com/posts/coderay-stylesheet-classes
|
3
|
+
*/
|
4
|
+
|
5
|
+
.CodeRay {
|
6
|
+
background-color: #f8f8f8;
|
7
|
+
border: 1px solid silver;
|
8
|
+
font-family: 'Courier New', 'Terminal', monospace;
|
9
|
+
color: #000;
|
10
|
+
}
|
11
|
+
.CodeRay pre { margin: 0px }
|
12
|
+
|
13
|
+
div.CodeRay { }
|
14
|
+
|
15
|
+
span.CodeRay { white-space: pre; border: 0px; padding: 2px }
|
16
|
+
|
17
|
+
table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px }
|
18
|
+
table.CodeRay td { padding: 2px 4px; vertical-align: top }
|
19
|
+
|
20
|
+
.CodeRay .line_numbers,
|
21
|
+
.CodeRay .no {
|
22
|
+
background-color: #def;
|
23
|
+
color: gray;
|
24
|
+
text-align: right;
|
25
|
+
}
|
26
|
+
.CodeRay .line_numbers tt { font-weight: bold }
|
27
|
+
.CodeRay .line_numbers .highlighted { color: red }
|
28
|
+
.CodeRay .no { padding: 0px 4px } /* (don't know) */
|
29
|
+
.CodeRay .code { width: 100% } /* (don't know) */
|
30
|
+
|
31
|
+
ol.CodeRay { font-size: 10pt }
|
32
|
+
ol.CodeRay li { white-space: pre }
|
33
|
+
|
34
|
+
.CodeRay .code pre { overflow: auto }
|
35
|
+
|
36
|
+
.CodeRay .debug { color:white ! important; background:blue ! important; } /* (don't know) */
|
37
|
+
|
38
|
+
.CodeRay .af { color:#00C } /* attribute_name_fat */
|
39
|
+
.CodeRay .an { color:#007 } /* attribute_name */
|
40
|
+
.CodeRay .at { color:#f08 } /* annotation */
|
41
|
+
.CodeRay .av { color:#700 } /* attribute_value */
|
42
|
+
.CodeRay .aw { color:#C00 } /* attribute_value_fat */
|
43
|
+
.CodeRay .bi { color:#509; font-weight:bold } /* bin */
|
44
|
+
.CodeRay .c { color:#888; } /* comment */
|
45
|
+
|
46
|
+
.CodeRay .ch { color:#04D } /* char */
|
47
|
+
.CodeRay .ch .k { color:#04D }
|
48
|
+
.CodeRay .ch .dl { color:#039 }
|
49
|
+
|
50
|
+
.CodeRay .cl { color:#B06; font-weight:bold } /* class */
|
51
|
+
.CodeRay .cm { color:#A08; font-weight:bold } /* imaginary */
|
52
|
+
.CodeRay .co { color:#036; font-weight:bold } /* constant */
|
53
|
+
.CodeRay .cr { color:#0A0 } /* color */
|
54
|
+
.CodeRay .cv { color:#369 } /* class_variable */
|
55
|
+
.CodeRay .de { color:#B0B; } /* decorator */
|
56
|
+
.CodeRay .df { color:#099; font-weight:bold } /* definition */
|
57
|
+
.CodeRay .di { color:#088; font-weight:bold } /* directive */
|
58
|
+
.CodeRay .dl { color:black } /* close */
|
59
|
+
.CodeRay .do { color:#970 } /* doc */
|
60
|
+
.CodeRay .dt { color:#34b } /* doctype */
|
61
|
+
.CodeRay .ds { color:#D42; font-weight:bold } /* doc_string */
|
62
|
+
.CodeRay .e { color:#666; font-weight:bold } /* (don't know) */
|
63
|
+
.CodeRay .en { color:#800; font-weight:bold } /* entity */
|
64
|
+
.CodeRay .er { color:#F00; background-color:#FAA } /* error */
|
65
|
+
.CodeRay .ex { color:#C00; font-weight:bold } /* exception */
|
66
|
+
.CodeRay .fl { color:#60E; font-weight:bold } /* float */
|
67
|
+
.CodeRay .fu { color:#06B; font-weight:bold } /* method */
|
68
|
+
.CodeRay .gv { color:#d70; font-weight:bold } /* global_variable */
|
69
|
+
.CodeRay .hx { color:#058; font-weight:bold } /* hex */
|
70
|
+
.CodeRay .i { color:#00D; font-weight:bold } /* integer */
|
71
|
+
.CodeRay .ic { color:#B44; font-weight:bold } /* include */
|
72
|
+
|
73
|
+
.CodeRay .il { background: #ddd; color: black } /* inline */
|
74
|
+
.CodeRay .il .il { background: #ccc }
|
75
|
+
.CodeRay .il .il .il { background: #bbb }
|
76
|
+
.CodeRay .il .idl { background: #ddd; font-weight: bold; color: #666 }
|
77
|
+
.CodeRay .idl { background-color: #bbb; font-weight: bold; color: #666; } /* inline_delimiter */
|
78
|
+
|
79
|
+
.CodeRay .im { color:#f00; } /* important */
|
80
|
+
.CodeRay .in { color:#B2B; font-weight:bold } /* interpreted */
|
81
|
+
.CodeRay .iv { color:#33B } /* instance_variable */
|
82
|
+
.CodeRay .la { color:#970; font-weight:bold } /* label */
|
83
|
+
.CodeRay .lv { color:#963 } /* local_variable */
|
84
|
+
.CodeRay .oc { color:#40E; font-weight:bold } /* oct */
|
85
|
+
.CodeRay .of { color:#000; font-weight:bold } /* operator_fat */
|
86
|
+
.CodeRay .op { } /* (don't know) */
|
87
|
+
.CodeRay .pc { color:#038; font-weight:bold } /* pre_constant */
|
88
|
+
.CodeRay .pd { color:#369; font-weight:bold } /* predefined */
|
89
|
+
.CodeRay .pp { color:#579; } /* preprocessor */
|
90
|
+
.CodeRay .ps { color:#00C; font-weight:bold } /* pseudo_class */
|
91
|
+
.CodeRay .pt { color:#074; font-weight:bold } /* pre_type */
|
92
|
+
.CodeRay .r, .kw { color:#080; font-weight:bold }
|
93
|
+
|
94
|
+
.CodeRay .ke { color: #808; } /* key */
|
95
|
+
.CodeRay .ke .dl { color: #606; }
|
96
|
+
.CodeRay .ke .ch { color: #80f; }
|
97
|
+
.CodeRay .vl { color: #088; } /* value */
|
98
|
+
|
99
|
+
.CodeRay .rx { background-color:#fff0ff } /* regexp */
|
100
|
+
.CodeRay .rx .k { color:#808 }
|
101
|
+
.CodeRay .rx .dl { color:#404 }
|
102
|
+
.CodeRay .rx .mod { color:#C2C }
|
103
|
+
.CodeRay .rx .fu { color:#404; font-weight: bold }
|
104
|
+
|
105
|
+
.CodeRay .s { background-color:#fff0f0; color: #D20; } /* string */
|
106
|
+
.CodeRay .s .s { background-color:#ffe0e0 }
|
107
|
+
.CodeRay .s .s .s { background-color:#ffd0d0 }
|
108
|
+
.CodeRay .s .k { }
|
109
|
+
.CodeRay .s .ch { color: #b0b; }
|
110
|
+
.CodeRay .s .dl { color: #710; }
|
111
|
+
|
112
|
+
.CodeRay .sh { background-color:#f0fff0; color:#2B2 } /* shell */
|
113
|
+
.CodeRay .sh .k { }
|
114
|
+
.CodeRay .sh .dl { color:#161 }
|
115
|
+
|
116
|
+
.CodeRay .sy { color:#A60 } /* symbol */
|
117
|
+
.CodeRay .sy .k { color:#A60 }
|
118
|
+
.CodeRay .sy .dl { color:#630 }
|
119
|
+
|
120
|
+
.CodeRay .ta { color:#070 } /* tag */
|
121
|
+
.CodeRay .tf { color:#070; font-weight:bold } /* tag_fat */
|
122
|
+
.CodeRay .ts { color:#D70; font-weight:bold } /* tag_special */
|
123
|
+
.CodeRay .ty { color:#339; font-weight:bold } /* type */
|
124
|
+
.CodeRay .v { color:#036 } /* variable */
|
125
|
+
.CodeRay .xt { color:#444 } /* xml_text */
|
126
|
+
|
127
|
+
.CodeRay .ins { background: #afa; } /* insert */
|
128
|
+
.CodeRay .del { background: #faa; } /* delete */
|
129
|
+
.CodeRay .chg { color: #aaf; background: #007; } /* change */
|
130
|
+
.CodeRay .head { color: #f8f; background: #505 } /* head */
|
131
|
+
|
132
|
+
.CodeRay .ins .ins { color: #080; font-weight:bold }
|
133
|
+
.CodeRay .del .del { color: #800; font-weight:bold }
|
134
|
+
.CodeRay .chg .chg { color: #66f; }
|
135
|
+
.CodeRay .head .head { color: #f4f; }
|
File without changes
|
data/templates/keydown.css.erb
CHANGED
@@ -40,65 +40,3 @@ section.bulleted ul {
|
|
40
40
|
.hidden {
|
41
41
|
display: none;
|
42
42
|
}
|
43
|
-
|
44
|
-
/* - Pygments sytles for code fragments - */
|
45
|
-
pre { background: none; }
|
46
|
-
pre .c { color: #999988; font-style: italic } /* Comment */
|
47
|
-
pre .err { color: #a61717; background-color: #e3d2d2 } /* Error */
|
48
|
-
pre .k { font-weight: bold } /* Keyword */
|
49
|
-
pre .o { font-weight: bold } /* Operator */
|
50
|
-
pre .cm { color: #999988; font-style: italic } /* Comment.Multiline */
|
51
|
-
pre .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
|
52
|
-
pre .c1 { color: #999988; font-style: italic } /* Comment.Single */
|
53
|
-
pre .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
|
54
|
-
pre .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
|
55
|
-
pre .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
|
56
|
-
pre .ge { font-style: italic } /* Generic.Emph */
|
57
|
-
pre .gr { color: #aa0000 } /* Generic.Error */
|
58
|
-
pre .gh { color: #999999 } /* Generic.Heading */
|
59
|
-
pre .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
|
60
|
-
pre .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
|
61
|
-
pre .go { color: #888888 } /* Generic.Output */
|
62
|
-
pre .gp { color: #555555 } /* Generic.Prompt */
|
63
|
-
pre .gs { font-weight: bold } /* Generic.Strong */
|
64
|
-
pre .gu { color: #aaaaaa } /* Generic.Subheading */
|
65
|
-
pre .gt { color: #aa0000 } /* Generic.Traceback */
|
66
|
-
pre .kc { font-weight: bold } /* Keyword.Constant */
|
67
|
-
pre .kd { font-weight: bold } /* Keyword.Declaration */
|
68
|
-
pre .kp { font-weight: bold } /* Keyword.Pseudo */
|
69
|
-
pre .kr { font-weight: bold } /* Keyword.Reserved */
|
70
|
-
pre .kt { color: #445588; font-weight: bold } /* Keyword.Type */
|
71
|
-
pre .m { color: #009999 } /* Literal.Number */
|
72
|
-
pre .s { color: #d14 } /* Literal.String */
|
73
|
-
pre .na { color: #008080 } /* Name.Attribute */
|
74
|
-
pre .nb { color: #0086B3 } /* Name.Builtin */
|
75
|
-
pre .nc { color: #445588; font-weight: bold } /* Name.Class */
|
76
|
-
pre .no { color: #008080 } /* Name.Constant */
|
77
|
-
pre .ni { color: #800080 } /* Name.Entity */
|
78
|
-
pre .ne { color: #990000; font-weight: bold } /* Name.Exception */
|
79
|
-
pre .nf { color: #990000; font-weight: bold } /* Name.Function */
|
80
|
-
pre .nn { color: #555555 } /* Name.Namespace */
|
81
|
-
pre .nt { color: #000080 } /* Name.Tag */
|
82
|
-
pre .nv { color: #008080 } /* Name.Variable */
|
83
|
-
pre .ow { font-weight: bold } /* Operator.Word */
|
84
|
-
pre .w { color: #bbbbbb } /* Text.Whitespace */
|
85
|
-
pre .mf { color: #009999 } /* Literal.Number.Float */
|
86
|
-
pre .mh { color: #009999 } /* Literal.Number.Hex */
|
87
|
-
pre .mi { color: #009999 } /* Literal.Number.Integer */
|
88
|
-
pre .mo { color: #009999 } /* Literal.Number.Oct */
|
89
|
-
pre .sb { color: #d14 } /* Literal.String.Backtick */
|
90
|
-
pre .sc { color: #d14 } /* Literal.String.Char */
|
91
|
-
pre .sd { color: #d14 } /* Literal.String.Doc */
|
92
|
-
pre .s2 { color: #d14 } /* Literal.String.Double */
|
93
|
-
pre .se { color: #d14 } /* Literal.String.Escape */
|
94
|
-
pre .sh { color: #d14 } /* Literal.String.Heredoc */
|
95
|
-
pre .si { color: #d14 } /* Literal.String.Interpol */
|
96
|
-
pre .sx { color: #d14 } /* Literal.String.Other */
|
97
|
-
pre .sr { color: #009926 } /* Literal.String.Regex */
|
98
|
-
pre .s1 { color: #d14 } /* Literal.String.Single */
|
99
|
-
pre .ss { color: #990073 } /* Literal.String.Symbol */
|
100
|
-
pre .bp { color: #999999 } /* Name.Builtin.Pseudo */
|
101
|
-
pre .vc { color: #008080 } /* Name.Variable.Class */
|
102
|
-
pre .vg { color: #008080 } /* Name.Variable.Global */
|
103
|
-
pre .vi { color: #008080 } /* Name.Variable.Instance */
|
104
|
-
pre .il { color: #009999 } /* Literal.Number.Integer.Long */
|
data/templates/rocks/index.rhtml
CHANGED
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
<meta charset="utf-8"/>
|
38
38
|
<title><%= title %></title>
|
39
|
-
<link href="http://fonts.googleapis.com/css?family=Droid+Sans|Droid+Sans+Mono" rel="stylesheet" type="text/css"/>
|
39
|
+
<link href="http://fonts.googleapis.com/css?family=Droid+Sans|Droid+Sans+Mono|Permanent+Marker|Lobster|Ruslan+Display" rel="stylesheet" type="text/css"/>
|
40
40
|
|
41
41
|
<!--
|
42
42
|
Original HTML5 Rocks CSS extracted for readability
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: keydown
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 7
|
9
|
+
- 0
|
10
|
+
version: 0.7.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Davis W. Frank
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-06-28 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -51,17 +51,19 @@ dependencies:
|
|
51
51
|
type: :runtime
|
52
52
|
version_requirements: *id002
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
|
-
name:
|
54
|
+
name: coderay
|
55
55
|
prerelease: false
|
56
56
|
requirement: &id003 !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
hash:
|
61
|
+
hash: 43
|
62
62
|
segments:
|
63
63
|
- 0
|
64
|
-
|
64
|
+
- 9
|
65
|
+
- 8
|
66
|
+
version: 0.9.8
|
65
67
|
type: :runtime
|
66
68
|
version_requirements: *id003
|
67
69
|
- !ruby/object:Gem::Dependency
|
@@ -161,13 +163,14 @@ files:
|
|
161
163
|
- spec/spec_helper.rb
|
162
164
|
- spec/tasks/generate_spec.rb
|
163
165
|
- spec/tasks/slides_spec.rb
|
164
|
-
- templates/generate/%presentation_name%.md.tt
|
165
166
|
- templates/generate/css/%presentation_name%.css
|
166
167
|
- templates/generate/css/rocks.css
|
168
|
+
- templates/generate/css/syntax_highlighting.css
|
167
169
|
- templates/generate/images/cc.large.png
|
168
170
|
- templates/generate/images/flickr.png
|
169
171
|
- templates/generate/js/%presentation_name%.js
|
170
172
|
- templates/generate/js/rocks.js
|
173
|
+
- templates/generate/slides.md.tt
|
171
174
|
- templates/keydown.css.erb
|
172
175
|
- templates/rocks/index.rhtml
|
173
176
|
- templates/rocks/slide.rhtml
|