showoff 0.9.11.1 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. checksums.yaml +4 -4
  2. data/bin/showoff +4 -0
  3. data/lib/keymap.rb +30 -0
  4. data/lib/showoff/version.rb +1 -1
  5. data/lib/showoff.rb +91 -29
  6. data/public/css/highlight/agate.css +137 -0
  7. data/public/css/highlight/androidstudio.css +53 -0
  8. data/public/css/highlight/arta.css +138 -0
  9. data/public/css/highlight/ascetic.css +52 -0
  10. data/public/css/highlight/atelier-cave.dark.css +113 -0
  11. data/public/css/highlight/atelier-cave.light.css +113 -0
  12. data/public/css/highlight/atelier-dune.dark.css +94 -0
  13. data/public/css/highlight/atelier-dune.light.css +94 -0
  14. data/public/css/highlight/atelier-estuary.dark.css +113 -0
  15. data/public/css/highlight/atelier-estuary.light.css +113 -0
  16. data/public/css/highlight/atelier-forest.dark.css +94 -0
  17. data/public/css/highlight/atelier-forest.light.css +94 -0
  18. data/public/css/highlight/atelier-heath.dark.css +94 -0
  19. data/public/css/highlight/atelier-heath.light.css +94 -0
  20. data/public/css/highlight/atelier-lakeside.dark.css +94 -0
  21. data/public/css/highlight/atelier-lakeside.light.css +94 -0
  22. data/public/css/highlight/atelier-plateau.dark.css +113 -0
  23. data/public/css/highlight/atelier-plateau.light.css +113 -0
  24. data/public/css/highlight/atelier-savanna.dark.css +113 -0
  25. data/public/css/highlight/atelier-savanna.light.css +113 -0
  26. data/public/css/highlight/atelier-seaside.dark.css +94 -0
  27. data/public/css/highlight/atelier-seaside.light.css +94 -0
  28. data/public/css/highlight/atelier-sulphurpool.dark.css +94 -0
  29. data/public/css/highlight/atelier-sulphurpool.light.css +94 -0
  30. data/public/css/highlight/brown_paper.css +103 -0
  31. data/public/css/highlight/brown_papersq.png +0 -0
  32. data/public/css/highlight/codepen-embed.css +97 -0
  33. data/public/css/highlight/color-brewer.css +165 -0
  34. data/public/css/highlight/dark.css +103 -0
  35. data/public/css/highlight/darkula.css +152 -0
  36. data/public/css/highlight/default.css +155 -0
  37. data/public/css/highlight/docco.css +134 -0
  38. data/public/css/highlight/far.css +110 -0
  39. data/public/css/highlight/foundation.css +135 -0
  40. data/public/css/highlight/github-gist.css +211 -0
  41. data/public/css/highlight/github.css +123 -0
  42. data/public/css/highlight/googlecode.css +144 -0
  43. data/public/css/highlight/hybrid.css +164 -0
  44. data/public/css/highlight/idea.css +122 -0
  45. data/public/css/highlight/ir_black.css +106 -0
  46. data/public/css/highlight/kimbie.dark.css +97 -0
  47. data/public/css/highlight/kimbie.light.css +97 -0
  48. data/public/css/highlight/magula.css +120 -0
  49. data/public/css/highlight/mono-blue.css +68 -0
  50. data/public/css/highlight/monokai.css +126 -0
  51. data/public/css/highlight/monokai_sublime.css +154 -0
  52. data/public/css/highlight/obsidian.css +152 -0
  53. data/public/css/highlight/paraiso.dark.css +96 -0
  54. data/public/css/highlight/paraiso.light.css +96 -0
  55. data/public/css/highlight/pojoaque.css +106 -0
  56. data/public/css/highlight/pojoaque.jpg +0 -0
  57. data/public/css/highlight/railscasts.css +184 -0
  58. data/public/css/highlight/rainbow.css +107 -0
  59. data/public/css/highlight/school_book.css +111 -0
  60. data/public/css/highlight/school_book.png +0 -0
  61. data/public/css/highlight/solarized_dark.css +107 -0
  62. data/public/css/highlight/solarized_light.css +107 -0
  63. data/public/css/highlight/sunburst.css +161 -0
  64. data/public/css/highlight/tomorrow-night-blue.css +96 -0
  65. data/public/css/highlight/tomorrow-night-bright.css +95 -0
  66. data/public/css/highlight/tomorrow-night-eighties.css +95 -0
  67. data/public/css/highlight/tomorrow-night.css +96 -0
  68. data/public/css/highlight/tomorrow.css +93 -0
  69. data/public/css/highlight/vs.css +92 -0
  70. data/public/css/highlight/xcode.css +154 -0
  71. data/public/css/highlight/zenburn.css +118 -0
  72. data/public/css/ie8.css +4 -0
  73. data/public/css/presenter.css +5 -17
  74. data/public/css/run_code-dim.png +0 -0
  75. data/public/css/run_code.png +0 -0
  76. data/public/css/showoff.css +154 -127
  77. data/public/js/highlight.pack.js +10816 -0
  78. data/public/js/keyDictionary.json +139 -0
  79. data/public/js/presenter.js +111 -144
  80. data/public/js/showoff.js +333 -387
  81. data/views/header.erb +15 -17
  82. data/views/header_mini.erb +4 -0
  83. data/views/help.erb +79 -0
  84. data/views/index.erb +3 -22
  85. data/views/onepage.erb +27 -14
  86. data/views/presenter.erb +3 -17
  87. data/views/stats.erb +4 -4
  88. metadata +75 -62
  89. data/public/css/sh_style.css +0 -81
  90. data/public/css/tipsy.css +0 -26
  91. data/public/js/core.js +0 -79
  92. data/public/js/jquery.tipsy.js +0 -260
  93. data/public/js/onepage.js +0 -4
  94. data/public/js/sh_lang/sh_bison.min.js +0 -1
  95. data/public/js/sh_lang/sh_c.min.js +0 -1
  96. data/public/js/sh_lang/sh_caml.min.js +0 -1
  97. data/public/js/sh_lang/sh_changelog.min.js +0 -1
  98. data/public/js/sh_lang/sh_coffeescript.min.js +0 -1
  99. data/public/js/sh_lang/sh_cpp.min.js +0 -1
  100. data/public/js/sh_lang/sh_csharp.min.js +0 -1
  101. data/public/js/sh_lang/sh_css.min.js +0 -1
  102. data/public/js/sh_lang/sh_cucumber.min.js +0 -2
  103. data/public/js/sh_lang/sh_desktop.min.js +0 -1
  104. data/public/js/sh_lang/sh_diff.min.js +0 -1
  105. data/public/js/sh_lang/sh_docker.js +0 -137
  106. data/public/js/sh_lang/sh_docker.min.js +0 -1
  107. data/public/js/sh_lang/sh_erlang.min.js +0 -1
  108. data/public/js/sh_lang/sh_flex.min.js +0 -1
  109. data/public/js/sh_lang/sh_gherkin.js +0 -112
  110. data/public/js/sh_lang/sh_gherkin.min.js +0 -1
  111. data/public/js/sh_lang/sh_glsl.min.js +0 -1
  112. data/public/js/sh_lang/sh_haxe.min.js +0 -1
  113. data/public/js/sh_lang/sh_html.min.js +0 -1
  114. data/public/js/sh_lang/sh_ini.js +0 -87
  115. data/public/js/sh_lang/sh_ini.min.js +0 -87
  116. data/public/js/sh_lang/sh_java.min.js +0 -1
  117. data/public/js/sh_lang/sh_javascript.min.js +0 -1
  118. data/public/js/sh_lang/sh_javascript_dom.min.js +0 -1
  119. data/public/js/sh_lang/sh_latex.min.js +0 -1
  120. data/public/js/sh_lang/sh_ldap.min.js +0 -1
  121. data/public/js/sh_lang/sh_log.min.js +0 -1
  122. data/public/js/sh_lang/sh_lsm.min.js +0 -1
  123. data/public/js/sh_lang/sh_m4.min.js +0 -1
  124. data/public/js/sh_lang/sh_makefile.min.js +0 -1
  125. data/public/js/sh_lang/sh_oracle.min.js +0 -1
  126. data/public/js/sh_lang/sh_pascal.min.js +0 -1
  127. data/public/js/sh_lang/sh_perl.min.js +0 -1
  128. data/public/js/sh_lang/sh_php.min.js +0 -1
  129. data/public/js/sh_lang/sh_prolog.min.js +0 -1
  130. data/public/js/sh_lang/sh_properties.min.js +0 -1
  131. data/public/js/sh_lang/sh_puppet.js +0 -182
  132. data/public/js/sh_lang/sh_puppet.min.js +0 -182
  133. data/public/js/sh_lang/sh_puppet_output.js +0 -22
  134. data/public/js/sh_lang/sh_puppet_output.min.js +0 -22
  135. data/public/js/sh_lang/sh_python.min.js +0 -1
  136. data/public/js/sh_lang/sh_ruby.min.js +0 -1
  137. data/public/js/sh_lang/sh_scala.min.js +0 -1
  138. data/public/js/sh_lang/sh_sh.min.js +0 -1
  139. data/public/js/sh_lang/sh_shell.min.js +0 -1
  140. data/public/js/sh_lang/sh_slang.min.js +0 -1
  141. data/public/js/sh_lang/sh_sml.min.js +0 -1
  142. data/public/js/sh_lang/sh_spec.min.js +0 -1
  143. data/public/js/sh_lang/sh_sql.min.js +0 -1
  144. data/public/js/sh_lang/sh_tcl.min.js +0 -1
  145. data/public/js/sh_lang/sh_xml.min.js +0 -1
  146. data/public/js/sh_lang/sh_xorg.min.js +0 -1
  147. data/public/js/sh_main.min.js +0 -4
  148. data/public/js/showoffcore.js +0 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 990f271a37037bd5e09efb8c4a3bd53b9f8ffaeb
4
- data.tar.gz: c22c8d8658cd69d1a3c63647f5c24ae9865ff02b
3
+ metadata.gz: b86b769faaf0f2bf83c369521ebe23d39dcff438
4
+ data.tar.gz: 721f97d05ded288194ae3d7bedb0d0dfe5fc900d
5
5
  SHA512:
6
- metadata.gz: 8f7d574f59622d367d5faed0c588ffaf914e06268ad410a3339a3ef4169570717522f4b50607429e27391929b63bba616034ee0af219c50527c804ef3a5870ed
7
- data.tar.gz: 6cd69aab79af8adf782fc2a257cb973850bd71edec506db3cf10cbc1015f189bada20d3267f61635632354c7c5751e4056c61f173e82adf7b8498d8434b35a3f
6
+ metadata.gz: 547eca4f0044dd9a209884011b932d79d223e5b9bb14771cf0ac2f5e0b794d000010868922ac3d7bbb0705228b6995cd13448bc0d95b13a5f1b020172fb471e4
7
+ data.tar.gz: 5c8b9f6d938a534a3dd2d711c44284a9ee678709153db6406c2bec10dc70ff885c7ff8b1d9127fb9c79cf8b4e99ee01503fa62fdb9cf085a4d493e4f4825ab0c
data/bin/showoff CHANGED
@@ -122,6 +122,9 @@ command :serve do |c|
122
122
  c.desc 'Enable code review'
123
123
  c.switch :review
124
124
 
125
+ c.desc 'Enable remote code execution'
126
+ c.switch [:x,:executecode]
127
+
125
128
  c.desc 'Port on which to run'
126
129
  c.default_value "9090"
127
130
  c.flag [:p,:port]
@@ -163,6 +166,7 @@ To run it from presenter view, go to: [ #{url}/presenter ]
163
166
  :pres_dir => args[0],
164
167
  :verbose => options[:verbose],
165
168
  :review => options[:review],
169
+ :execute => options[:x],
166
170
  :bind => options[:h]
167
171
  end
168
172
  end
data/lib/keymap.rb ADDED
@@ -0,0 +1,30 @@
1
+ module Keymap
2
+ def self.default()
3
+ {
4
+ 'space' => 'NEXT',
5
+ 'd' => 'DEBUG',
6
+ 'up' => 'PREV',
7
+ 'left' => 'PREV',
8
+ 'pageup' => 'PREV',
9
+ 'down' => 'NEXT',
10
+ 'right' => 'NEXT',
11
+ 'pagedown' => 'NEXT',
12
+ 'r' => 'RELOAD',
13
+ 'c' => 'CONTENTS',
14
+ 't' => 'CONTENTS',
15
+ 'h' => 'HELP',
16
+ '/' => 'HELP',
17
+ '?' => 'HELP',
18
+ 'b' => 'BLANK',
19
+ '.' => 'BLANK',
20
+ 'F' => 'FOOTER',
21
+ 'f' => 'FOLLOW',
22
+ 'n' => 'NOTES',
23
+ 'esc' => 'CLEAR',
24
+ 'p' => 'PAUSE',
25
+ 'P' => 'PRESHOW',
26
+ 'x' => 'EXECUTE',
27
+ 'f5' => 'EXECUTE',
28
+ }
29
+ end
30
+ end
@@ -1,3 +1,3 @@
1
1
  # No namespace here since ShowOff is a class and I'd have to inherit from
2
2
  # Sinatra::Application (which we don't want to load here)
3
- SHOWOFF_VERSION = '0.9.11.1'
3
+ SHOWOFF_VERSION = '0.10.0'
data/lib/showoff.rb CHANGED
@@ -10,6 +10,7 @@ require 'sinatra-websocket'
10
10
  here = File.expand_path(File.dirname(__FILE__))
11
11
  require "#{here}/showoff_utils"
12
12
  require "#{here}/commandline_parser"
13
+ require "#{here}/keymap"
13
14
 
14
15
  begin
15
16
  require 'RMagick'
@@ -44,7 +45,8 @@ class ShowOff < Sinatra::Application
44
45
  set :presenters, []
45
46
 
46
47
  set :verbose, false
47
- set :review, false
48
+ set :review, false
49
+ set :execute, false
48
50
 
49
51
  set :pres_dir, '.'
50
52
  set :pres_file, 'showoff.json'
@@ -59,7 +61,8 @@ class ShowOff < Sinatra::Application
59
61
  @logger.formatter = proc { |severity,datetime,progname,msg| "#{progname} #{msg}\n" }
60
62
  @logger.level = settings.verbose ? Logger::DEBUG : Logger::WARN
61
63
 
62
- @review = settings.review
64
+ @review = settings.review
65
+ @execute = settings.execute
63
66
 
64
67
  dir = File.expand_path(File.join(File.dirname(__FILE__), '..'))
65
68
  @logger.debug(dir)
@@ -68,6 +71,11 @@ class ShowOff < Sinatra::Application
68
71
  settings.pres_dir ||= Dir.pwd
69
72
  @root_path = "."
70
73
 
74
+ # Load up the default keymap, then merge in any customizations
75
+ keymapfile = File.expand_path(File.join('~', '.showoff', 'keymap.json'))
76
+ @keymap = Keymap.default
77
+ @keymap.merge! JSON.parse(File.read(keymapfile)) rescue {}
78
+
71
79
  settings.pres_dir = File.expand_path(settings.pres_dir)
72
80
  if (settings.pres_file)
73
81
  ShowOffUtils.presentation_config_file = settings.pres_file
@@ -85,6 +93,18 @@ class ShowOff < Sinatra::Application
85
93
  settings.pres_template = showoff_json["templates"]
86
94
  end
87
95
 
96
+ # code execution timeout
97
+ settings.showoff_config['timeout'] ||= 15
98
+
99
+ # highlightjs syntax style
100
+ @highlightStyle = settings.showoff_config['highlight'] || 'default'
101
+
102
+ # variables used for building section numbering and title
103
+ @slide_count = 0
104
+ @section_major = 0
105
+ @section_minor = 0
106
+ @section_title = settings.showoff_config['name'] rescue 'Showoff Presentation'
107
+
88
108
  @logger.debug settings.pres_template
89
109
 
90
110
  @cached_image_size = {}
@@ -180,11 +200,21 @@ class ShowOff < Sinatra::Application
180
200
  Dir.glob("#{settings.pres_dir}/*.js").map { |path| File.basename(path) }
181
201
  end
182
202
 
183
-
184
203
  def preshow_files
185
204
  Dir.glob("#{settings.pres_dir}/_preshow/*").map { |path| File.basename(path) }.to_json
186
205
  end
187
206
 
207
+ # return a list of keys associated with a given action in the keymap
208
+ def mapped_keys(action, klass='key')
209
+ list = @keymap.select { |key,value| value == action }.keys
210
+
211
+ if klass
212
+ list.map { |val| "<span class=\"#{klass}\">#{val}</span>" }.join
213
+ else
214
+ list.join ', '
215
+ end
216
+ end
217
+
188
218
  # todo: move more behavior into this class
189
219
  class Slide
190
220
  attr_reader :classes, :text, :tpl, :bg
@@ -376,13 +406,16 @@ class ShowOff < Sinatra::Application
376
406
 
377
407
  # Load and replace any file tags
378
408
  content.scan(/(~~~FILE:([^:]*):?(.*)?~~~)/).each do |match|
379
- # get the file content and parse out html entities
380
- file = HTMLEntities.new.encode(File.read(File.join(settings.pres_dir, '_files', match[1])))
409
+ # make a list of code highlighting classes to include
410
+ css = match[2].split.collect {|i| "language-#{i.downcase}" }.join(' ')
381
411
 
382
- # make a list of sh_highlight classes to include
383
- css = match[2].split.collect {|i| "sh_#{i.downcase}" }.join(' ')
412
+ # get the file content and parse out html entities
413
+ name = match[1]
414
+ file = File.read(File.join(settings.pres_dir, '_files', name)) rescue "Nonexistent file: #{name}"
415
+ file = "Empty file: #{name}" if file.empty?
416
+ file = HTMLEntities.new.encode(file) rescue "HTML parsing of #{name} failed"
384
417
 
385
- result.gsub!(match[0], "<pre class=\"#{css}\"><code>#{file}</code></pre>")
418
+ result.gsub!(match[0], "<pre class=\"highlight\"><code class=\"#{css}\">#{file}</code></pre>")
386
419
  end
387
420
 
388
421
  result
@@ -712,10 +745,15 @@ class ShowOff < Sinatra::Application
712
745
  html.css('pre').each do |pre|
713
746
  pre.css('code').each do |code|
714
747
  out = code.text
748
+
749
+ # Skip this if we've got an empty code block
750
+ next if out.empty?
751
+
715
752
  lines = out.split("\n")
716
753
  if lines.first.strip[0, 3] == '@@@'
717
754
  lang = lines.shift.gsub('@@@', '').strip
718
- pre.set_attribute('class', 'sh_' + lang.downcase) if !lang.empty?
755
+ pre.set_attribute('class', 'highlight')
756
+ code.set_attribute('class', 'language-' + lang.downcase) if !lang.empty?
719
757
  code.content = lines.join("\n")
720
758
  end
721
759
  end
@@ -752,10 +790,6 @@ class ShowOff < Sinatra::Application
752
790
  end
753
791
 
754
792
  def get_slides_html(opts={:static=>false, :pdf=>false, :toc=>false, :supplemental=>nil})
755
- @slide_count = 0
756
- @section_major = 0
757
- @section_minor = 0
758
- @section_title = settings.showoff_config['name']
759
793
 
760
794
  sections = ShowOffUtils.showoff_sections(settings.pres_dir, @logger)
761
795
  files = []
@@ -829,9 +863,6 @@ class ShowOff < Sinatra::Application
829
863
  @slides = get_slides_html(:static=>static)
830
864
  @pause_msg = ShowOffUtils.pause_msg
831
865
 
832
- # Identify which languages to bundle for highlighting
833
- @languages = @slides.scan(/<pre class=".*(?!sh_sourceCode)(sh_[\w-]+).*"/).uniq.map{ |w| "sh_lang/#{w[0]}.min.js"}
834
-
835
866
  @asset_path = "./"
836
867
  end
837
868
 
@@ -899,7 +930,7 @@ class ShowOff < Sinatra::Application
899
930
  def onepage(static=false)
900
931
  @slides = get_slides_html(:static=>static, :toc=>true)
901
932
  @favicon = settings.showoff_config['favicon']
902
- #@languages = @slides.scan(/<pre class=".*(?!sh_sourceCode)(sh_[\w-]+).*"/).uniq.map{ |w| "/sh_lang/#{w[0]}.min.js"}
933
+
903
934
  erb :onepage
904
935
  end
905
936
 
@@ -955,9 +986,6 @@ class ShowOff < Sinatra::Application
955
986
  @slides = get_slides_html(:static=>static, :pdf=>true)
956
987
  @inline = true
957
988
 
958
- # Identify which languages to bundle for highlighting
959
- @languages = @slides.scan(/<pre class=".*(?!sh_sourceCode)(sh_[\w-]+).*"/).uniq.map{ |w| "/sh_lang/#{w[0]}.min.js"}
960
-
961
989
  html = erb :onepage
962
990
  # TODO make a random filename
963
991
 
@@ -1065,11 +1093,16 @@ class ShowOff < Sinatra::Application
1065
1093
  end
1066
1094
  end
1067
1095
 
1068
- def eval_ruby code
1069
- eval(code).to_s
1070
- rescue => e
1071
- e.message
1072
- end
1096
+ # Load a slide file from disk, parse it and return the text of a code block by index
1097
+ def get_code_from_slide(path, index)
1098
+ slide = "#{path}.md"
1099
+ return unless File.exists? slide
1100
+
1101
+ html = process_markdown(slide, File.read(slide), {})
1102
+ doc = Nokogiri::HTML::DocumentFragment.parse(html)
1103
+
1104
+ return doc.css('code.execute')[index.to_i].text rescue 'Invalid code block index'
1105
+ end
1073
1106
 
1074
1107
  # Basic auth boilerplate
1075
1108
  def protected!
@@ -1133,10 +1166,39 @@ class ShowOff < Sinatra::Application
1133
1166
  end.to_json
1134
1167
  end
1135
1168
 
1136
- get '/eval_ruby' do
1137
- return eval_ruby(params[:code]) if ENV['SHOWOFF_EVAL_RUBY']
1169
+ # Evaluate known good code from a slide file on disk.
1170
+ get '/execute/:lang' do |lang|
1171
+ return 'Run showoff with -x or --executecode to enable code execution' unless @execute
1172
+
1173
+ code = get_code_from_slide(params[:path], params[:index])
1138
1174
 
1139
- return "Ruby Evaluation is off. To turn it on set ENV['SHOWOFF_EVAL_RUBY']"
1175
+ require 'timeout'
1176
+ require 'open3' # for 1.8 compatibility :/
1177
+ begin
1178
+ Timeout::timeout(settings.showoff_config['timeout']) do
1179
+ case lang
1180
+ when 'ruby'
1181
+ eval(code).to_s
1182
+ when 'shell'
1183
+ %x(#{code})
1184
+ when 'puppet'
1185
+ stdout, err = Open3.capture2('puppet', 'apply', '--color=false', '-e', code)
1186
+ stdout
1187
+ when 'python'
1188
+ stdout, err = Open3.capture2('python', '-c', code)
1189
+ stdout
1190
+ when 'perl'
1191
+ stdout, err = Open3.capture2('perl', '-e', code)
1192
+ stdout
1193
+ when 'null'
1194
+ code
1195
+ else
1196
+ "No exec handler for #{lang}"
1197
+ end
1198
+ end
1199
+ rescue => e
1200
+ e.message
1201
+ end.gsub(/\n/, '<br />')
1140
1202
  end
1141
1203
 
1142
1204
  # provide a callback to trigger a local file editor, but only when called when viewing from localhost.
@@ -1316,7 +1378,7 @@ class ShowOff < Sinatra::Application
1316
1378
 
1317
1379
  not_found do
1318
1380
  # Why does the asset path start from cwd??
1319
- @asset_path.slice!(/^./)
1381
+ @asset_path.slice!(/^./) rescue nil
1320
1382
  @env = request.env
1321
1383
  erb :'404'
1322
1384
  end
@@ -0,0 +1,137 @@
1
+ /*!
2
+ * Agate by Taufik Nurrohman <https://github.com/tovic>
3
+ * ----------------------------------------------------
4
+ *
5
+ * #ade5fc
6
+ * #a2fca2
7
+ * #c6b4f0
8
+ * #d36363
9
+ * #fcc28c
10
+ * #fc9b9b
11
+ * #ffa
12
+ * #fff
13
+ * #333
14
+ * #62c8f3
15
+ * #888
16
+ *
17
+ */
18
+
19
+ .hljs {
20
+ display: block;
21
+ overflow-x: auto;
22
+ padding: .5em;
23
+ background: #333;
24
+ color: white;
25
+ -webkit-text-size-adjust: none;
26
+ }
27
+
28
+ .asciidoc .hljs-title,
29
+ .hljs-label,
30
+ .hljs-tag .hljs-title,
31
+ .hljs-prompt,
32
+ .http .hljs-request {
33
+ font-weight: bold;
34
+ }
35
+
36
+ .hljs-change,
37
+ .hljs-code {
38
+ font-style: italic;
39
+ }
40
+
41
+ .hljs-tag,
42
+ .ini .hljs-title {
43
+ color: #62c8f3;
44
+ }
45
+
46
+ .hljs-id,
47
+ .hljs-cbracket,
48
+ .hljs-tag .hljs-value {
49
+ color: #ade5fc;
50
+ }
51
+
52
+ .hljs-string,
53
+ .hljs-bullet {
54
+ color: #a2fca2;
55
+ }
56
+
57
+ .hljs-type,
58
+ .hljs-variable,
59
+ .hljs-name,
60
+ .actionscript .hljs-title,
61
+ .aspectj .hljs-annotation,
62
+ .aspectj .hljs-title,
63
+ .hljs-attribute,
64
+ .hljs-change,
65
+ .hljs-blockquote,
66
+ .hljs-built_in {
67
+ color: #ffa;
68
+ }
69
+
70
+ .hljs-number,
71
+ .hljs-hexcolor,
72
+ .hljs-link_label,
73
+ .hljs-link_reference {
74
+ color: #d36363;
75
+ }
76
+
77
+ .hljs-keyword,
78
+ .hljs-literal,
79
+ .hljs-constant,
80
+ .css .hljs-tag,
81
+ .hljs-typename,
82
+ .hljs-winutils {
83
+ color: #fcc28c;
84
+ }
85
+
86
+ .hljs-comment,
87
+ .hljs-cdata,
88
+ .hljs-preprocessor,
89
+ .hljs-annotation,
90
+ .hljs-decorator,
91
+ .hljs-doctype,
92
+ .hljs-deletion,
93
+ .hljs-shebang,
94
+ .apache .hljs-sqbracket,
95
+ .tex .hljs-formula,
96
+ .hljs-header,
97
+ .hljs-horizontal_rule,
98
+ .hljs-code {
99
+ color: #888;
100
+ }
101
+
102
+ .hljs-regexp,
103
+ .hljs-attr_selector {
104
+ color: #c6b4f0;
105
+ }
106
+
107
+ .hljs-important,
108
+ .hljs-doctype,
109
+ .hljs-pi,
110
+ .hljs-chunk,
111
+ .actionscript .hljs-type,
112
+ .hljs-shebang,
113
+ .hljs-pragma,
114
+ .http .hljs-attribute {
115
+ color: #fc9b9b;
116
+ }
117
+
118
+ .hljs-deletion {
119
+ background-color: #fc9b9b;
120
+ color: #333;
121
+ }
122
+
123
+ .hljs-addition {
124
+ background-color: #a2fca2;
125
+ color: #333;
126
+ }
127
+
128
+ .hljs a,
129
+ .hljs-tag .hljs-attribute {
130
+ color: inherit;
131
+ }
132
+
133
+ .hljs a:focus,
134
+ .hljs a:hover {
135
+ color: inherit;
136
+ text-decoration: underline;
137
+ }
@@ -0,0 +1,53 @@
1
+ /*
2
+ Date: 24 Fev 2015
3
+ Author: Pedro Oliveira <kanytu@gmail . com>
4
+ */
5
+
6
+ .hljs {
7
+ color: #a9b7c6;
8
+ background: #282b2e;
9
+ display: block;
10
+ overflow-x: auto;
11
+ padding: 0.5em;
12
+ -webkit-text-size-adjust: none;
13
+ }
14
+
15
+ .hljs-number {
16
+ color: #6897BB;
17
+ }
18
+
19
+ .hljs-keyword,
20
+ .hljs-deletion {
21
+ color: #cc7832;
22
+ }
23
+
24
+ .hljs-comment {
25
+ color: #808080;
26
+ }
27
+
28
+ .hljs-annotation {
29
+ color: #bbb529;
30
+ }
31
+
32
+ .hljs-string,
33
+ .hljs-addition {
34
+ color: #6A8759;
35
+ }
36
+
37
+ .hljs-function .hljs-title,
38
+ .hljs-change {
39
+ color: #ffc66d;
40
+ }
41
+
42
+ .hljs-tag .hljs-title,
43
+ .hljs-doctype {
44
+ color: #e8bf6a;
45
+ }
46
+
47
+ .hljs-tag .hljs-attribute {
48
+ color: #bababa;
49
+ }
50
+
51
+ .hljs-tag .hljs-value {
52
+ color: #a5c261;
53
+ }
@@ -0,0 +1,138 @@
1
+ /*
2
+ Date: 17.V.2011
3
+ Author: pumbur <pumbur@pumbur.net>
4
+ */
5
+
6
+ .hljs {
7
+ display: block;
8
+ overflow-x: auto;
9
+ padding: 0.5em;
10
+ background: #222;
11
+ -webkit-text-size-adjust: none;
12
+ }
13
+
14
+ .profile .hljs-header *,
15
+ .ini .hljs-title,
16
+ .nginx .hljs-title {
17
+ color: #fff;
18
+ }
19
+
20
+ .hljs-comment,
21
+ .hljs-preprocessor,
22
+ .hljs-preprocessor .hljs-title,
23
+ .hljs-pragma,
24
+ .hljs-shebang,
25
+ .profile .hljs-summary,
26
+ .diff,
27
+ .hljs-pi,
28
+ .hljs-doctype,
29
+ .hljs-tag,
30
+ .css .hljs-rule,
31
+ .tex .hljs-special {
32
+ color: #444;
33
+ }
34
+
35
+ .hljs-string,
36
+ .hljs-symbol,
37
+ .diff .hljs-change,
38
+ .hljs-regexp,
39
+ .xml .hljs-attribute,
40
+ .smalltalk .hljs-char,
41
+ .xml .hljs-value,
42
+ .ini .hljs-value,
43
+ .clojure .hljs-attribute,
44
+ .coffeescript .hljs-attribute {
45
+ color: #ffcc33;
46
+ }
47
+
48
+ .hljs-number,
49
+ .hljs-addition {
50
+ color: #00cc66;
51
+ }
52
+
53
+ .hljs-built_in,
54
+ .hljs-literal,
55
+ .hljs-type,
56
+ .hljs-typename,
57
+ .go .hljs-constant,
58
+ .ini .hljs-keyword,
59
+ .lua .hljs-title,
60
+ .perl .hljs-variable,
61
+ .php .hljs-variable,
62
+ .mel .hljs-variable,
63
+ .django .hljs-variable,
64
+ .css .funtion,
65
+ .smalltalk .method,
66
+ .hljs-hexcolor,
67
+ .hljs-important,
68
+ .hljs-flow,
69
+ .hljs-inheritance,
70
+ .hljs-name,
71
+ .parser3 .hljs-variable {
72
+ color: #32aaee;
73
+ }
74
+
75
+ .hljs-keyword,
76
+ .hljs-tag .hljs-title,
77
+ .css .hljs-tag,
78
+ .css .hljs-class,
79
+ .css .hljs-id,
80
+ .css .hljs-pseudo,
81
+ .css .hljs-attr_selector,
82
+ .hljs-winutils,
83
+ .tex .hljs-command,
84
+ .hljs-request,
85
+ .hljs-status {
86
+ color: #6644aa;
87
+ }
88
+
89
+ .hljs-title,
90
+ .ruby .hljs-constant,
91
+ .vala .hljs-constant,
92
+ .hljs-parent,
93
+ .hljs-deletion,
94
+ .hljs-template_tag,
95
+ .css .hljs-keyword,
96
+ .objectivec .hljs-class .hljs-id,
97
+ .smalltalk .hljs-class,
98
+ .lisp .hljs-keyword,
99
+ .apache .hljs-tag,
100
+ .nginx .hljs-variable,
101
+ .hljs-envvar,
102
+ .bash .hljs-variable,
103
+ .go .hljs-built_in,
104
+ .vbscript .hljs-built_in,
105
+ .lua .hljs-built_in,
106
+ .rsl .hljs-built_in,
107
+ .tail,
108
+ .avrasm .hljs-label,
109
+ .tex .hljs-formula,
110
+ .tex .hljs-formula * {
111
+ color: #bb1166;
112
+ }
113
+
114
+ .hljs-doctag,
115
+ .profile .hljs-header,
116
+ .ini .hljs-title,
117
+ .apache .hljs-tag,
118
+ .parser3 .hljs-title {
119
+ font-weight: bold;
120
+ }
121
+
122
+ .coffeescript .javascript,
123
+ .javascript .xml,
124
+ .tex .hljs-formula,
125
+ .xml .javascript,
126
+ .xml .vbscript,
127
+ .xml .css,
128
+ .xml .hljs-cdata {
129
+ opacity: 0.6;
130
+ }
131
+
132
+ .hljs,
133
+ .hljs-subst,
134
+ .diff .hljs-chunk,
135
+ .css .hljs-value,
136
+ .css .hljs-attribute {
137
+ color: #aaa;
138
+ }
@@ -0,0 +1,52 @@
1
+ /*
2
+
3
+ Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
4
+
5
+ */
6
+
7
+ .hljs {
8
+ display: block;
9
+ overflow-x: auto;
10
+ padding: 0.5em;
11
+ background: white;
12
+ color: black;
13
+ -webkit-text-size-adjust: none;
14
+ }
15
+
16
+ .hljs-string,
17
+ .hljs-tag .hljs-value,
18
+ .hljs-filter .hljs-argument,
19
+ .hljs-addition,
20
+ .hljs-change,
21
+ .hljs-name,
22
+ .apache .hljs-tag,
23
+ .apache .hljs-cbracket,
24
+ .nginx .hljs-built_in,
25
+ .tex .hljs-formula {
26
+ color: #888;
27
+ }
28
+
29
+ .hljs-comment,
30
+ .hljs-shebang,
31
+ .hljs-doctype,
32
+ .hljs-pi,
33
+ .hljs-deletion,
34
+ .apache .hljs-sqbracket {
35
+ color: #ccc;
36
+ }
37
+
38
+ .hljs-keyword,
39
+ .hljs-tag .hljs-title,
40
+ .ini .hljs-title,
41
+ .lisp .hljs-title,
42
+ .http .hljs-title,
43
+ .nginx .hljs-title,
44
+ .css .hljs-tag,
45
+ .hljs-winutils,
46
+ .hljs-flow,
47
+ .apache .hljs-tag,
48
+ .tex .hljs-command,
49
+ .hljs-request,
50
+ .hljs-status {
51
+ font-weight: bold;
52
+ }