showoff 0.9.11.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ }