parade 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. data/LICENSE +21 -0
  2. data/README.md +542 -0
  3. data/Rakefile +15 -0
  4. data/bin/parade +138 -0
  5. data/lib/parade.rb +43 -0
  6. data/lib/parade/commands/commands.rb +84 -0
  7. data/lib/parade/commands/generate_outline.rb +34 -0
  8. data/lib/parade/commands/generate_presentation.rb +34 -0
  9. data/lib/parade/commands/generate_rackup.rb +32 -0
  10. data/lib/parade/commands/html_output.rb +47 -0
  11. data/lib/parade/commands/render_from_template.rb +50 -0
  12. data/lib/parade/commands/static_html.rb +38 -0
  13. data/lib/parade/commands/static_pdf.rb +39 -0
  14. data/lib/parade/commands/unknown.rb +23 -0
  15. data/lib/parade/features/live_ruby.rb +18 -0
  16. data/lib/parade/features/pdf_presentation.rb +24 -0
  17. data/lib/parade/features/preshow.rb +11 -0
  18. data/lib/parade/helpers/encode_image.rb +24 -0
  19. data/lib/parade/helpers/template_generator.rb +130 -0
  20. data/lib/parade/metadata.rb +73 -0
  21. data/lib/parade/metadata/assignment.rb +38 -0
  22. data/lib/parade/metadata/css_classes.rb +22 -0
  23. data/lib/parade/metadata/html_id.rb +35 -0
  24. data/lib/parade/metadata/template.rb +31 -0
  25. data/lib/parade/parsers/dsl.rb +138 -0
  26. data/lib/parade/parsers/dsl_file_parser.rb +17 -0
  27. data/lib/parade/parsers/json_file_parser.rb +67 -0
  28. data/lib/parade/parsers/markdown_image_paths.rb +44 -0
  29. data/lib/parade/parsers/markdown_slide_splitter.rb +63 -0
  30. data/lib/parade/parsers/presentation_directory_parser.rb +36 -0
  31. data/lib/parade/parsers/presentation_file_parser.rb +27 -0
  32. data/lib/parade/parsers/presentation_filepath_parser.rb +35 -0
  33. data/lib/parade/parsers/slides_file_content_parser.rb +27 -0
  34. data/lib/parade/renderers/columns_renderer.rb +68 -0
  35. data/lib/parade/renderers/command_line_renderer.rb +142 -0
  36. data/lib/parade/renderers/html_with_pygments.rb +42 -0
  37. data/lib/parade/renderers/inline_images.rb +31 -0
  38. data/lib/parade/renderers/special_paragraph_renderer.rb +23 -0
  39. data/lib/parade/renderers/update_image_paths.rb +75 -0
  40. data/lib/parade/section.rb +183 -0
  41. data/lib/parade/server.rb +139 -0
  42. data/lib/parade/slide.rb +128 -0
  43. data/lib/parade/version.rb +3 -0
  44. data/lib/public/css/960.css +653 -0
  45. data/lib/public/css/fg.menu.css +114 -0
  46. data/lib/public/css/ghf_marked.css +180 -0
  47. data/lib/public/css/jquery-terminal.css +73 -0
  48. data/lib/public/css/onepage.css +62 -0
  49. data/lib/public/css/parade.css +450 -0
  50. data/lib/public/css/pdf.css +13 -0
  51. data/lib/public/css/reset.css +53 -0
  52. data/lib/public/css/spinner_bar.gif +0 -0
  53. data/lib/public/css/theme/images/ui-bg_diagonals-small_100_f0efea_40x40.png +0 -0
  54. data/lib/public/css/theme/images/ui-bg_flat_35_f0f0f0_40x100.png +0 -0
  55. data/lib/public/css/theme/images/ui-bg_glass_55_fcf0ba_1x400.png +0 -0
  56. data/lib/public/css/theme/images/ui-bg_glow-ball_25_2e2e28_600x600.png +0 -0
  57. data/lib/public/css/theme/images/ui-bg_highlight-soft_100_f0efea_1x100.png +0 -0
  58. data/lib/public/css/theme/images/ui-bg_highlight-soft_25_327E04_1x100.png +0 -0
  59. data/lib/public/css/theme/images/ui-bg_highlight-soft_25_5A9D1A_1x100.png +0 -0
  60. data/lib/public/css/theme/images/ui-bg_highlight-soft_95_ffedad_1x100.png +0 -0
  61. data/lib/public/css/theme/images/ui-bg_inset-soft_22_3b3b35_1x100.png +0 -0
  62. data/lib/public/css/theme/images/ui-icons_808080_256x240.png +0 -0
  63. data/lib/public/css/theme/images/ui-icons_8DC262_256x240.png +0 -0
  64. data/lib/public/css/theme/images/ui-icons_cd0a0a_256x240.png +0 -0
  65. data/lib/public/css/theme/images/ui-icons_e7e6e4_256x240.png +0 -0
  66. data/lib/public/css/theme/images/ui-icons_eeeeee_256x240.png +0 -0
  67. data/lib/public/css/theme/images/ui-icons_ffffff_256x240.png +0 -0
  68. data/lib/public/css/theme/ui.accordion.css +9 -0
  69. data/lib/public/css/theme/ui.all.css +2 -0
  70. data/lib/public/css/theme/ui.base.css +9 -0
  71. data/lib/public/css/theme/ui.core.css +37 -0
  72. data/lib/public/css/theme/ui.datepicker.css +62 -0
  73. data/lib/public/css/theme/ui.dialog.css +13 -0
  74. data/lib/public/css/theme/ui.progressbar.css +4 -0
  75. data/lib/public/css/theme/ui.resizable.css +13 -0
  76. data/lib/public/css/theme/ui.slider.css +17 -0
  77. data/lib/public/css/theme/ui.tabs.css +9 -0
  78. data/lib/public/css/theme/ui.theme.css +245 -0
  79. data/lib/public/favicon.ico +0 -0
  80. data/lib/public/js/coffee-script.js +8 -0
  81. data/lib/public/js/fg.menu.js +645 -0
  82. data/lib/public/js/jTypeWriter.js +26 -0
  83. data/lib/public/js/jquery-1.4.2.js +6240 -0
  84. data/lib/public/js/jquery-print.js +109 -0
  85. data/lib/public/js/jquery-pubsub.js +27 -0
  86. data/lib/public/js/jquery-terminal.js +2712 -0
  87. data/lib/public/js/jquery.batchImageLoad.js +56 -0
  88. data/lib/public/js/jquery.cycle.all.js +1284 -0
  89. data/lib/public/js/keyboard.js +733 -0
  90. data/lib/public/js/parade-code-execution.js +122 -0
  91. data/lib/public/js/parade-command-input.js +16 -0
  92. data/lib/public/js/parade-command-visor.js +92 -0
  93. data/lib/public/js/parade-keyboard-input.js +54 -0
  94. data/lib/public/js/parade.js +675 -0
  95. data/lib/public/js/spine.js +904 -0
  96. data/lib/templates/config.ru.erb +4 -0
  97. data/lib/templates/showoff.erb +27 -0
  98. data/lib/templates/slides.md.erb +25 -0
  99. data/lib/views/header.erb +73 -0
  100. data/lib/views/index.erb +53 -0
  101. data/lib/views/inline_css.erb +3 -0
  102. data/lib/views/inline_js.erb +3 -0
  103. data/lib/views/onepage.erb +17 -0
  104. data/lib/views/pdf.erb +17 -0
  105. data/lib/views/slide.erb +5 -0
  106. metadata +317 -0
@@ -0,0 +1,114 @@
1
+ /* Styles for jQuery menu widget
2
+ Author: Maggie Wachs, maggie@filamentgroup.com
3
+ Date: September 2008
4
+ */
5
+
6
+
7
+ /* REQUIRED STYLES - the menus will only render correctly with these rules */
8
+
9
+ .fg-menu-container { position: absolute; top:0; left:-999px; padding: .4em; overflow: hidden; }
10
+ .fg-menu-container.fg-menu-flyout { overflow: visible; }
11
+
12
+ .fg-menu, .fg-menu ul { list-style-type:none; padding: 0; margin:0; }
13
+
14
+ .fg-menu { position:relative; }
15
+ .fg-menu-flyout .fg-menu { position:static; }
16
+
17
+ .fg-menu ul { position:absolute; top:0; }
18
+ .fg-menu ul ul { top:-1px; }
19
+
20
+ .fg-menu-container.fg-menu-ipod .fg-menu-content,
21
+ .fg-menu-container.fg-menu-ipod .fg-menu-content ul { background: none !important; }
22
+
23
+ .fg-menu.fg-menu-scroll,
24
+ .fg-menu ul.fg-menu-scroll { overflow: scroll; overflow-x: hidden; }
25
+
26
+ .fg-menu li { clear:both; float:left; width:100%; margin: 0; padding:0; border: 0; }
27
+ .fg-menu li li { font-size:1em; } /* inner li font size must be reset so that they don't blow up */
28
+
29
+ .fg-menu-flyout ul ul { padding: .4em; }
30
+ .fg-menu-flyout li { position:relative; }
31
+
32
+ .fg-menu-scroll { overflow: scroll; overflow-x: hidden; }
33
+
34
+ .fg-menu-breadcrumb { margin: 0; padding: 0; }
35
+
36
+ .fg-menu-footer { margin-top: .4em; padding: .4em; }
37
+ .fg-menu-header { margin-bottom: .4em; padding: .4em; }
38
+
39
+ .fg-menu-breadcrumb li { float: left; list-style: none; margin: 0; padding: 0 .2em; font-size: .9em; opacity: .7; }
40
+ .fg-menu-breadcrumb li.fg-menu-prev-list,
41
+ .fg-menu-breadcrumb li.fg-menu-current-crumb { clear: left; float: none; opacity: 1; }
42
+ .fg-menu-breadcrumb li.fg-menu-current-crumb { padding-top: .2em; }
43
+
44
+ .fg-menu-breadcrumb a,
45
+ .fg-menu-breadcrumb span { float: left; }
46
+
47
+ .fg-menu-footer a:link,
48
+ .fg-menu-footer a:visited { float:left; width:100%; text-decoration: none; }
49
+ .fg-menu-footer a:hover,
50
+ .fg-menu-footer a:active { }
51
+
52
+ .fg-menu-footer a span { float:left; cursor: pointer; }
53
+
54
+ .fg-menu-breadcrumb .fg-menu-prev-list a:link,
55
+ .fg-menu-breadcrumb .fg-menu-prev-list a:visited,
56
+ .fg-menu-breadcrumb .fg-menu-prev-list a:hover,
57
+ .fg-menu-breadcrumb .fg-menu-prev-list a:active { background-image: none; text-decoration:none; }
58
+
59
+ .fg-menu-breadcrumb .fg-menu-prev-list a { float: left; padding-right: .4em; }
60
+ .fg-menu-breadcrumb .fg-menu-prev-list a .ui-icon { float: left; }
61
+
62
+ .fg-menu-breadcrumb .fg-menu-current-crumb a:link,
63
+ .fg-menu-breadcrumb .fg-menu-current-crumb a:visited,
64
+ .fg-menu-breadcrumb .fg-menu-current-crumb a:hover,
65
+ .fg-menu-breadcrumb .fg-menu-current-crumb a:active { display:block; background-image:none; font-size:1.3em; text-decoration:none; }
66
+
67
+
68
+
69
+ /* REQUIRED LINK STYLES: links are "display:block" by default; if the menu options are split into
70
+ selectable node links and 'next' links, the script floats the node links left and floats the 'next' links to the right */
71
+
72
+ .fg-menu a:link,
73
+ .fg-menu a:visited,
74
+ .fg-menu a:hover,
75
+ .fg-menu a:active { float:left; width:92%; padding:.3em 3%; text-decoration:none; outline: 0 !important; }
76
+
77
+ .fg-menu a { border: 1px dashed transparent; }
78
+
79
+ .fg-menu a.ui-state-default:link,
80
+ .fg-menu a.ui-state-default:visited,
81
+ .fg-menu a.ui-state-default:hover,
82
+ .fg-menu a.ui-state-default:active,
83
+ .fg-menu a.ui-state-hover:link,
84
+ .fg-menu a.ui-state-hover:visited,
85
+ .fg-menu a.ui-state-hover:hover,
86
+ .fg-menu a.ui-state-hover:active,
87
+ .fg-menu a.ui-state-active:link,
88
+ .fg-menu a.ui-state-active:visited,
89
+ .fg-menu a.ui-state-active:hover,
90
+ .fg-menu a.ui-state-active:active { border-style: solid; font-weight: normal; }
91
+
92
+ .fg-menu a span { display:block; cursor:pointer; }
93
+
94
+
95
+ /* SUGGESTED STYLES - for use with jQuery UI Themeroller CSS */
96
+
97
+ .fg-menu-indicator span { float:left; }
98
+ .fg-menu-indicator span.ui-icon { float:right; }
99
+
100
+ .fg-menu-content.ui-widget-content,
101
+ .fg-menu-content ul.ui-widget-content { border:0; }
102
+
103
+
104
+ /* ICONS AND DIVIDERS */
105
+
106
+ .fg-menu.fg-menu-has-icons a:link,
107
+ .fg-menu.fg-menu-has-icons a:visited,
108
+ .fg-menu.fg-menu-has-icons a:hover,
109
+ .fg-menu.fg-menu-has-icons a:active { padding-left:20px; }
110
+
111
+ .fg-menu .horizontal-divider hr, .fg-menu .horizontal-divider span { padding:0; margin:5px .6em; }
112
+ .fg-menu .horizontal-divider hr { border:0; height:1px; }
113
+ .fg-menu .horizontal-divider span { font-size:.9em; text-transform: uppercase; padding-left:.2em; }
114
+
@@ -0,0 +1,180 @@
1
+ pre, code {
2
+ font-size: 40px;
3
+ font: 'Bitstream Vera Sans Mono','Courier',monospace;
4
+ color: black;
5
+ }
6
+
7
+ .highlight pre, pre {
8
+ background-color:#f8f8f8;
9
+ /* border:1px solid #ccc;*/
10
+ font-size:20px;
11
+ line-height:26px;
12
+ overflow:auto;
13
+ border-radius:3px;
14
+ -moz-border-radius:3px;
15
+ -webkit-border-radius:3px;
16
+ padding:6px 10px;
17
+ }
18
+
19
+ .highlight pre pre.command, .highlight pre pre.result {
20
+ margin: 0px;
21
+ border-radius:0px;
22
+ -moz-border-radius:0px;
23
+ -webkit-border-radius:0px;
24
+ padding:0px 0px;
25
+ border:0px solid #ccc;
26
+ }
27
+
28
+ .highlight pre pre.result {
29
+ color: #444;
30
+ }
31
+
32
+
33
+ code {
34
+ white-space:nowrap;
35
+ border:1px solid #eaeaea;
36
+ background-color:#f8f8f8;
37
+ border-radius:3px;
38
+ -moz-border-radius:3px;
39
+ -webkit-border-radius:3px;
40
+ margin:0 2px;
41
+ padding:0 5px;
42
+ }
43
+
44
+ pre>code
45
+ {
46
+ white-space:pre;
47
+ border:none;
48
+ background:transparent;
49
+ margin:0;
50
+ padding:0;
51
+ }
52
+
53
+ a, a code {
54
+ color: #4183C4;
55
+ text-decoration:none;
56
+ }
57
+
58
+
59
+ blockquote
60
+ {
61
+ border-left:4px solid #ddd;
62
+ padding-left:11px;
63
+ color:#555;
64
+ margin:14px 0;
65
+ }
66
+
67
+ table
68
+ {
69
+ font-size: 14px;
70
+ border-collapse:collapse;
71
+ margin:20px 0 0;
72
+ padding:0;
73
+ }
74
+
75
+ table tr
76
+ {
77
+ border-top:1px solid #ccc;
78
+ background-color:#fff;
79
+ margin:0;
80
+ padding:0;
81
+ }
82
+
83
+ table tr:nth-child(2n)
84
+ {
85
+ background-color:#f8f8f8;
86
+ }
87
+ table tr th[align="center"], table tr td[align="center"] {
88
+ text-align:center;
89
+ }
90
+ table tr th, table tr td
91
+ {
92
+ border:1px solid #ccc;
93
+ text-align:left;
94
+ margin:0;
95
+ padding:6px 13px;
96
+ }
97
+
98
+ ul, ol
99
+ {
100
+ margin:15px 0;
101
+ }
102
+
103
+ ul li, ol li
104
+ {
105
+ margin-top:7px;
106
+ margin-bottom:7px;
107
+ }
108
+
109
+
110
+
111
+ .shadow {
112
+ -webkit-box-shadow:0 5px 15px #000;
113
+ -moz-box-shadow:0 5px 15px #000;
114
+ box-shadow:0 5px 15px #000;
115
+ }
116
+
117
+
118
+
119
+ /* Pygments coloring */
120
+ .highlight .c{color:#998;font-style:italic;}
121
+ .highlight .err{color:#a61717;background-color:#e3d2d2;}
122
+ .highlight .k{font-weight:bold;}
123
+ .highlight .o{font-weight:bold;}
124
+ .highlight .cm{color:#998;font-style:italic;}
125
+ .highlight .cp{color:#999;font-weight:bold;}
126
+ .highlight .c1{color:#998;font-style:italic;}
127
+ .highlight .cs{color:#999;font-weight:bold;font-style:italic;}
128
+ .highlight .gd{color:#000;background-color:#fdd;}
129
+ .highlight .gd .x{color:#000;background-color:#faa;}
130
+ .highlight .ge{font-style:italic;}
131
+ .highlight .gr{color:#a00;}
132
+ .highlight .gh{color:#999;}
133
+ .highlight .gi{color:#000;background-color:#dfd;}
134
+ .highlight .gi .x{color:#000;background-color:#afa;}
135
+ .highlight .go{color:#888;}
136
+ .highlight .gp{color:#555;}
137
+ .highlight .gs{font-weight:bold;}
138
+ .highlight .gu{color:#800080;font-weight:bold;}
139
+ .highlight .gt{color:#a00;}
140
+ .highlight .kc{font-weight:bold;}
141
+ .highlight .kd{font-weight:bold;}
142
+ .highlight .kn{font-weight:bold;}
143
+ .highlight .kp{font-weight:bold;}
144
+ .highlight .kr{font-weight:bold;}
145
+ .highlight .kt{color:#458;font-weight:bold;}
146
+ .highlight .m{color:#099;}
147
+ .highlight .s{color:#d14;}
148
+ .highlight .na{color:#008080;}
149
+ .highlight .nb{color:#0086B3;}
150
+ .highlight .nc{color:#458;font-weight:bold;}
151
+ .highlight .no{color:#008080;}
152
+ .highlight .ni{color:#800080;}
153
+ .highlight .ne{color:#900;font-weight:bold;}
154
+ .highlight .nf{color:#900;font-weight:bold;}
155
+ .highlight .nn{color:#555;}
156
+ .highlight .nt{color:#000080;}
157
+ .highlight .nv{color:#008080;}
158
+ .highlight .ow{font-weight:bold;}
159
+ .highlight .w{color:#bbb;}
160
+ .highlight .mf{color:#099;}
161
+ .highlight .mh{color:#099;}
162
+ .highlight .mi{color:#099;}
163
+ .highlight .mo{color:#099;}
164
+ .highlight .sb{color:#d14;}
165
+ .highlight .sc{color:#d14;}
166
+ .highlight .sd{color:#d14;}
167
+ .highlight .s2{color:#d14;}
168
+ .highlight .se{color:#d14;}
169
+ .highlight .sh{color:#d14;}
170
+ .highlight .si{color:#d14;}
171
+ .highlight .sx{color:#d14;}
172
+ .highlight .sr{color:#009926;}
173
+ .highlight .s1{color:#d14;}
174
+ .highlight .ss{color:#990073;}
175
+ .highlight .bp{color:#999;}
176
+ .highlight .vc{color:#008080;}
177
+ .highlight .vg{color:#008080;}
178
+ .highlight .vi{color:#008080;}
179
+ .highlight .il{color:#099;}
180
+
@@ -0,0 +1,73 @@
1
+ .terminal .clipboard {
2
+ position: absolute;
3
+ bottom: 0;
4
+ left: 0;
5
+ opacity: 0.01;
6
+ filter: alpha(opacity = 0.01);
7
+ filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0.01);
8
+ width: 2px;
9
+ }
10
+ .cmd > .clipboard {
11
+ position: fixed;
12
+ }
13
+ .terminal {
14
+ padding: 10px;
15
+ position: relative;
16
+ overflow: hidden;
17
+ }
18
+ .cmd {
19
+ padding: 0;
20
+ margin: 0;
21
+ height: 1.3em;
22
+ }
23
+ .terminal .terminal-output div div, .terminal .prompt {
24
+ display: block;
25
+ line-height: 9px;
26
+ height: 14px;
27
+ }
28
+ .terminal {
29
+ font-family: FreeMono, monospace;
30
+ color: #aaa;
31
+ background-color: #000;
32
+ font-size: 16px;
33
+ line-height: 24px;
34
+ letter-spacing: 1px;
35
+ }
36
+ .terminal .terminal-output div span {
37
+ display: inline-block;
38
+ }
39
+ .terminal .cmd span {
40
+ display: inline-block;
41
+ }
42
+ .terminal .cmd span.inverted {
43
+ background-color: #aaa;
44
+ color: #000;
45
+ }
46
+ .terminal .terminal-output div div::-moz-selection, .terminal .terminal-output div span::-moz-selection {
47
+ background-color: #aaa;
48
+ color: #000;
49
+ }
50
+ .terminal .terminal-output div div::selection, .terminal .terminal-output div span::selection,
51
+ .terminal .cmd > span::selection, .terminal .prompt span::selection {
52
+ background-color: #aaa;
53
+ color: #000;
54
+ }
55
+ .terminal .terminal-output div.error, .terminal .terminal-output div.error div {
56
+ color: red;
57
+ }
58
+ .tilda {
59
+ position: fixed;
60
+ top: 0;
61
+ left: 0;
62
+ width: 100%;
63
+ z-index: 1100;
64
+ }
65
+ .clear {
66
+ clear: both;
67
+ }
68
+ .terminal a {
69
+ color: #0F60FF;
70
+ }
71
+ .terminal a:hover {
72
+ color: red;
73
+ }
@@ -0,0 +1,62 @@
1
+ /* Screen */
2
+ @media screen {
3
+ body {
4
+ overflow:scroll;
5
+ }
6
+ .slide {
7
+ margin: 10px;
8
+ padding: 0;
9
+ width: 1020px;
10
+ height: 740px;
11
+ max-height: 740px !important;
12
+ margin-left:auto;
13
+ margin-right:auto;
14
+ overflow:hidden;
15
+ border: 1px solid #333;
16
+ page-break-after: always;
17
+ }
18
+ }
19
+
20
+ /* Print */
21
+ @media print {
22
+ .slide, .preso {
23
+ margin: 10px;
24
+ padding: 0;
25
+ width: 800px;
26
+ height: 600px;
27
+ overflow:hidden;
28
+ border: none;
29
+ page-break-before: always;
30
+ page-break-after: always;
31
+ }
32
+ }
33
+
34
+ /* iPhone */
35
+ /* Portrait */
36
+ @media screen and (max-width: 320px)
37
+ {
38
+ .preso {
39
+ margin: 10px;
40
+ padding: 0;
41
+ width: 320px;
42
+ min-height: 480px;
43
+ margin-left:auto;
44
+ margin-right:auto;
45
+ border: 1px solid #333;
46
+ page-break-after: always;
47
+ }
48
+ }
49
+ /* Landscape */
50
+ @media screen and (min-width: 321px)
51
+ {
52
+ .preso {
53
+ margin: 10px;
54
+ padding: 0;
55
+ width: 480px;
56
+ min-height: 320px;
57
+ margin-left:auto;
58
+ margin-right:auto;
59
+ border: 1px solid #333;
60
+ page-break-after: always;
61
+ }
62
+ }
@@ -0,0 +1,450 @@
1
+ @media screen {
2
+ body {
3
+ font-size: 100%;
4
+ font-family: "Gill Sans", Helvetica, Arial, sans-serif;
5
+ background:#333;
6
+ overflow:hidden;
7
+ margin:0;
8
+ padding:0;
9
+ }
10
+
11
+ #preso, .slide {
12
+ background: #fff;
13
+ width: 1024px;
14
+ height: 768px;
15
+ margin-left:auto;
16
+ margin-right:auto;
17
+ overflow:hidden;
18
+ -webkit-box-shadow:0 0 25px rgba(0,0,0,0.35);
19
+ -moz-box-shadow:0 0 25px rgba(0,0,0,0.35);
20
+ box-shadow:0 0 25px rgba(0,0,0,0.35);
21
+ }
22
+
23
+ #footer {
24
+ background: rgba(221,221,221,0.75);
25
+ color:#333;
26
+ padding: 2px 5px;
27
+ width: 1005px;
28
+ height: 20px;
29
+ line-height:20px;
30
+ font-size:14px;
31
+ position:relative;
32
+ top:-24px;
33
+ margin:0 auto;
34
+ -webkit-border-top-left-radius: 3px;
35
+ -webkit-border-top-right-radius: 3px;
36
+ -moz-border-radius-topleft: 3px;
37
+ -moz-border-radius-topright: 3px;
38
+ border-top-left-radius: 3px;
39
+ border-top-right-radius: 3px;
40
+ z-index: 2147483647; /* max, see http://www.puidokas.com/max-z-index/ */
41
+ }
42
+
43
+ #pauseScreen {
44
+ background: rgba(0, 0, 0, 0.85);
45
+ width: 100%;
46
+ height: 100%;
47
+ position: absolute;
48
+ top: 0px;
49
+ left: 0px;
50
+ display: none;
51
+ margin: auto;
52
+ color: white;
53
+ font-size: 2em;
54
+ padding: 1em;
55
+ z-index: 2147483647; /* max, see http://www.puidokas.com/max-z-index/ */
56
+ text-align: center;
57
+ }
58
+ }
59
+
60
+ /* iPhone */
61
+ /* Portrait */
62
+ @media screen and (max-width: 320px)
63
+ {
64
+ #preso {
65
+ margin: 0;
66
+ padding: 0;
67
+ width: 320px;
68
+ max-height: 356px;
69
+ margin-left:auto;
70
+ margin-right:auto;
71
+ /* overflow:hidden;*/
72
+ }
73
+ #footer {
74
+ background: #eee;
75
+ margin: 0;
76
+ padding: 2px;
77
+ width: 320px;
78
+ height: 20px;
79
+ margin-left:auto;
80
+ margin-right:auto;
81
+ }
82
+ }
83
+ /* Landscape */
84
+ @media screen and (max-width: 480px)
85
+ {
86
+ #preso {
87
+ margin: 0;
88
+ padding: 0;
89
+ /* min-height: 320px;*/
90
+ width: 480px;
91
+ margin-left:auto;
92
+ margin-right:auto;
93
+ }
94
+ #footer {
95
+ background: #eee;
96
+ margin: 0;
97
+ padding: 2px;
98
+ width: 480px;
99
+ height: 20px;
100
+ margin-left:auto;
101
+ margin-right:auto;
102
+ }
103
+ }
104
+
105
+ /* plain (non-bullet) text */
106
+ .content > p {
107
+ font-size: 2em;
108
+ margin: 1em;
109
+ text-align: center;
110
+ }
111
+
112
+ .content > pre {
113
+ font-size: 300%;
114
+ }
115
+ .content > blockquote {
116
+ font-size: 250%;
117
+ margin: 2em;
118
+ }
119
+
120
+ .center img {
121
+ display:block;
122
+ margin-left:auto;
123
+ margin-right:auto;
124
+ }
125
+
126
+ .slide .center {
127
+ height: 740px;
128
+ width: 1020px;
129
+ display: table-cell;
130
+ text-align: center;
131
+ vertical-align: middle;
132
+ }
133
+
134
+ /* Column Layout */
135
+
136
+ /* Center the images when they are within a column */
137
+ .content.columns img {
138
+ margin: 0 auto;
139
+ display: block;
140
+ }
141
+
142
+
143
+ .content.columns .grid_6 p {
144
+ font-size: 150%;
145
+ }
146
+
147
+ .content.columns .grid_4 p {
148
+ font-size: 125%;
149
+ }
150
+
151
+ .content.columns pre {
152
+ margin-left: 0px;
153
+ margin-right: 0px;
154
+ }
155
+
156
+ .content.columns .grid_3 p {
157
+ font-size: 100%;
158
+ }
159
+
160
+ .content.columns h2 {
161
+ padding-bottom: 10px;
162
+ border-bottom: 1px dotted black;
163
+ }
164
+
165
+ /* numbered lists are numbered */
166
+ .content ol {
167
+ margin-left: 40px;
168
+ font-size: 3em;
169
+ text-align: left;
170
+ padding-left: 40px;
171
+ }
172
+ .content ol > li {
173
+ list-style: decimal;
174
+ display: list-item;
175
+ }
176
+
177
+
178
+ /* ironically, normal lists have bullets and 'bullets' lists don't */
179
+ .content > ul {
180
+ list-style: disc;
181
+ }
182
+ .content > ul {
183
+ font-size: 3em;
184
+ text-align: left;
185
+ padding-left: 40px;
186
+ }
187
+ .content > ul > li {
188
+ padding: .5em;
189
+ margin-left: 40px;
190
+ }
191
+
192
+ /* ironically, normal lists have bullets and 'bullets' lists don't */
193
+ .bullets > ul {
194
+ list-style: none;
195
+ font-size: 3em;
196
+ padding-left: 0px;
197
+ }
198
+ .bullets > ul > li {
199
+ text-align: center;
200
+ padding: 25px;
201
+ }
202
+ .smbullets > ul {
203
+ font-size: 2.5em;
204
+ }
205
+ .smbullets > ul > li {
206
+ text-align: center;
207
+ padding: 10px;
208
+ }
209
+
210
+ /* nested lists get their bullets back */
211
+ .content ul ul {
212
+ list-style: disc;
213
+ margin: 10px 10px;
214
+ padding-left: 40px;
215
+ text-align: left;
216
+ }
217
+
218
+ .bullets ul ul > li { font-size: 80%; }
219
+
220
+ .commandline pre {
221
+ font-size: 2em;
222
+ }
223
+
224
+ .commandline code.command {
225
+ color: #000;
226
+ }
227
+
228
+ .commandline code.result {
229
+ color: #444;
230
+ }
231
+
232
+ .command h1 {
233
+ white-space: pre;
234
+ font-family: monospace;
235
+ font-size: 3em;
236
+ }
237
+
238
+ .code {
239
+ white-space: pre;
240
+ font-family: monospace;
241
+ }
242
+
243
+ .subsection h1 {
244
+ background: #008;
245
+ color: #fff;
246
+ padding: .25em;
247
+ }
248
+
249
+ .small {
250
+ font-size: 80%;
251
+ }
252
+
253
+ .smaller {
254
+ font-size: 70%;
255
+ }
256
+
257
+ h1,h2,h3 { font-weight: normal; text-align: center; margin: 0.5em 0; }
258
+ h1 { font-size: 5em; }
259
+ h2 { font-size: 3em; }
260
+ h3 { font-size: 2em; }
261
+
262
+ pre { margin: 1em 40px; padding: .25em; }
263
+
264
+ .notes { display: none }
265
+ .hidden { position:absolute; top:0; left:-9999px; width:1px; height:1px; overflow:hidden; }
266
+ .buttonNav { display: none }
267
+ .offscreen { position:absolute; top:0; left:-9999px; overflow:hidden; }
268
+ #debugInfo { margin-left: 30px; }
269
+ #notesInfo { margin-left: 30px; display: none }
270
+ #preshow { display: none; }
271
+
272
+ #help {
273
+ background: #9f9;
274
+ position: absolute;
275
+ right: 80px;
276
+ display: none;
277
+ z-index: 2147483647; /* max, see http://www.puidokas.com/max-z-index/ */
278
+ }
279
+ #help table tr td.key {
280
+ text-align: right;
281
+ border-right: 2px solid #8b8;
282
+ padding-right: 4px;
283
+ font-weight: bold;
284
+ }
285
+
286
+ .fg-menu-container {
287
+ z-index: 2147483647; /* max, see http://www.puidokas.com/max-z-index/ */
288
+ }
289
+
290
+ .fg-button { clear:left; margin:0 4px 40px 20px; padding: .4em 1em; text-decoration:none !important; cursor:pointer; position: relative; text-align: center; zoom: 1; }
291
+ .fg-button .ui-icon { position: absolute; top: 50%; margin-top: -8px; left: 50%; margin-left: -8px; }
292
+ a.fg-button { float:left; }
293
+ .fg-button-icon-right { padding-right: 2.1em; }
294
+ .fg-button-icon-right .ui-icon { left: auto; right: .2em; margin-left: 0; }
295
+
296
+ .fg-button.ui-state-loading .ui-icon { background: url(spinner_bar.gif) no-repeat 0 0; }
297
+
298
+ #navmenu {
299
+ position: absolute;
300
+ top: 10px;
301
+ left: 10px;
302
+ width: 50px;
303
+ z-index: 2147483647; /* max, see http://www.puidokas.com/max-z-index/ */
304
+ }
305
+
306
+ .code .c { color: #999988; font-style: italic } /* Comment */
307
+ .code .err { color: #a61717; background-color: #e3d2d2 } /* Error */
308
+ .code .k { font-weight: bold } /* Keyword */
309
+ .code .o { font-weight: bold } /* Operator */
310
+ .code .cm { color: #999988; font-style: italic } /* Comment.Multiline */
311
+ .code .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
312
+ .code .c1 { color: #999988; font-style: italic } /* Comment.Single */
313
+ .code .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
314
+ .code .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
315
+ .code .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
316
+ .code .ge { font-style: italic } /* Generic.Emph */
317
+ .code .gr { color: #aa0000 } /* Generic.Error */
318
+ .code .gh { color: #999999 } /* Generic.Heading */
319
+ .code .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
320
+ .code .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
321
+ .code .go { color: #888888 } /* Generic.Output */
322
+ .code .gp { color: #555555 } /* Generic.Prompt */
323
+ .code .gs { font-weight: bold } /* Generic.Strong */
324
+ .code .gu { color: #aaaaaa } /* Generic.Subheading */
325
+ .code .gt { color: #aa0000 } /* Generic.Traceback */
326
+ .code .kc { font-weight: bold } /* Keyword.Constant */
327
+ .code .kd { font-weight: bold } /* Keyword.Declaration */
328
+ .code .kp { font-weight: bold } /* Keyword.Pseudo */
329
+ .code .kr { font-weight: bold } /* Keyword.Reserved */
330
+ .code .kt { color: #445588; font-weight: bold } /* Keyword.Type */
331
+ .code .m { color: #009999 } /* Literal.Number */
332
+ .code .s { color: #d14 } /* Literal.String */
333
+ .code .na { color: #008080 } /* Name.Attribute */
334
+ .code .nb { color: #0086B3 } /* Name.Builtin */
335
+ .code .nc { color: #445588; font-weight: bold } /* Name.Class */
336
+ .code .no { color: #008080 } /* Name.Constant */
337
+ .code .ni { color: #800080 } /* Name.Entity */
338
+ .code .ne { color: #990000; font-weight: bold } /* Name.Exception */
339
+ .code .nf { color: #990000; font-weight: bold } /* Name.Function */
340
+ .code .nn { color: #555555 } /* Name.Namespace */
341
+ .code .nt { color: #000080 } /* Name.Tag */
342
+ .code .nv { color: #008080 } /* Name.Variable */
343
+ .code .ow { font-weight: bold } /* Operator.Word */
344
+ .code .w { color: #bbbbbb } /* Text.Whitespace */
345
+ .code .mf { color: #009999 } /* Literal.Number.Float */
346
+ .code .mh { color: #009999 } /* Literal.Number.Hex */
347
+ .code .mi { color: #009999 } /* Literal.Number.Integer */
348
+ .code .mo { color: #009999 } /* Literal.Number.Oct */
349
+ .code .sb { color: #d14 } /* Literal.String.Backtick */
350
+ .code .sc { color: #d14 } /* Literal.String.Char */
351
+ .code .sd { color: #d14 } /* Literal.String.Doc */
352
+ .code .s2 { color: #d14 } /* Literal.String.Double */
353
+ .code .se { color: #d14 } /* Literal.String.Escape */
354
+ .code .sh { color: #d14 } /* Literal.String.Heredoc */
355
+ .code .si { color: #d14 } /* Literal.String.Interpol */
356
+ .code .sx { color: #d14 } /* Literal.String.Other */
357
+ .code .sr { color: #009926 } /* Literal.String.Regex */
358
+ .code .s1 { color: #d14 } /* Literal.String.Single */
359
+ .code .ss { color: #990073 } /* Literal.String.Symbol */
360
+ .code .bp { color: #999999 } /* Name.Builtin.Pseudo */
361
+ .code .vc { color: #008080 } /* Name.Variable.Class */
362
+ .code .vg { color: #008080 } /* Name.Variable.Global */
363
+ .code .vi { color: #008080 } /* Name.Variable.Instance */
364
+ .code .il { color: #009999 } /* Literal.Number.Integer.Long */
365
+
366
+ .results {
367
+ background-color:#002200;
368
+ color:#00AA00;
369
+ font-size:2em;
370
+ border:2px solid black;
371
+ position: fixed;
372
+ top:0px;
373
+ width:100%;
374
+ padding:15px;
375
+ margin:0px;
376
+ font-family: monospace;
377
+ z-index: 2147483647; /* max, see http://www.puidokas.com/max-z-index/ */
378
+ }
379
+
380
+ .executing {
381
+ color:#0000FF !important;
382
+ background-color: yellow;
383
+ }
384
+
385
+ .executing:hover {
386
+ cursor: pointer;
387
+ }
388
+
389
+ #tips, #preshow_timer {
390
+ display:inline;
391
+ background-color:#000;
392
+ color:#fff;
393
+ font-size:3em;
394
+ border:2px solid black;
395
+ position: fixed;
396
+ padding:25px;
397
+ margin:0px;
398
+ z-index: 2147483647; /* max, see http://www.puidokas.com/max-z-index/ */
399
+ }
400
+
401
+ #tips {
402
+ top: 0px;
403
+ right: 0px;
404
+ text-align:right;
405
+ }
406
+
407
+ #preshow_timer {
408
+ bottom: 0px;
409
+ }
410
+
411
+ /** Print **/
412
+ @media print {
413
+ body {
414
+ font-size: 70%;
415
+ }
416
+
417
+ #preso, .slide {
418
+ border: 1px solid #999;
419
+ }
420
+
421
+ .slide .center {
422
+ width: 600px;
423
+ height: 600px;
424
+ display: table-cell;
425
+ text-align: center;
426
+ vertical-align: middle;
427
+ }
428
+
429
+ #preso, .slide {
430
+ background: #fff;
431
+ width: 600px;
432
+ height: 600px;
433
+ margin-left:auto;
434
+ margin-right:auto;
435
+ overflow:hidden;
436
+ }
437
+
438
+ #footer {
439
+ background: #eee;
440
+ padding: 2px;
441
+ width: 590px;
442
+ height: 20 px;
443
+ margin-left:auto;
444
+ margin-right:auto;
445
+ }
446
+
447
+ pre, code {
448
+ font-family: Monaco, monospace;
449
+ }
450
+ }