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.
- checksums.yaml +4 -4
- data/bin/showoff +4 -0
- data/lib/keymap.rb +30 -0
- data/lib/showoff/version.rb +1 -1
- data/lib/showoff.rb +91 -29
- data/public/css/highlight/agate.css +137 -0
- data/public/css/highlight/androidstudio.css +53 -0
- data/public/css/highlight/arta.css +138 -0
- data/public/css/highlight/ascetic.css +52 -0
- data/public/css/highlight/atelier-cave.dark.css +113 -0
- data/public/css/highlight/atelier-cave.light.css +113 -0
- data/public/css/highlight/atelier-dune.dark.css +94 -0
- data/public/css/highlight/atelier-dune.light.css +94 -0
- data/public/css/highlight/atelier-estuary.dark.css +113 -0
- data/public/css/highlight/atelier-estuary.light.css +113 -0
- data/public/css/highlight/atelier-forest.dark.css +94 -0
- data/public/css/highlight/atelier-forest.light.css +94 -0
- data/public/css/highlight/atelier-heath.dark.css +94 -0
- data/public/css/highlight/atelier-heath.light.css +94 -0
- data/public/css/highlight/atelier-lakeside.dark.css +94 -0
- data/public/css/highlight/atelier-lakeside.light.css +94 -0
- data/public/css/highlight/atelier-plateau.dark.css +113 -0
- data/public/css/highlight/atelier-plateau.light.css +113 -0
- data/public/css/highlight/atelier-savanna.dark.css +113 -0
- data/public/css/highlight/atelier-savanna.light.css +113 -0
- data/public/css/highlight/atelier-seaside.dark.css +94 -0
- data/public/css/highlight/atelier-seaside.light.css +94 -0
- data/public/css/highlight/atelier-sulphurpool.dark.css +94 -0
- data/public/css/highlight/atelier-sulphurpool.light.css +94 -0
- data/public/css/highlight/brown_paper.css +103 -0
- data/public/css/highlight/brown_papersq.png +0 -0
- data/public/css/highlight/codepen-embed.css +97 -0
- data/public/css/highlight/color-brewer.css +165 -0
- data/public/css/highlight/dark.css +103 -0
- data/public/css/highlight/darkula.css +152 -0
- data/public/css/highlight/default.css +155 -0
- data/public/css/highlight/docco.css +134 -0
- data/public/css/highlight/far.css +110 -0
- data/public/css/highlight/foundation.css +135 -0
- data/public/css/highlight/github-gist.css +211 -0
- data/public/css/highlight/github.css +123 -0
- data/public/css/highlight/googlecode.css +144 -0
- data/public/css/highlight/hybrid.css +164 -0
- data/public/css/highlight/idea.css +122 -0
- data/public/css/highlight/ir_black.css +106 -0
- data/public/css/highlight/kimbie.dark.css +97 -0
- data/public/css/highlight/kimbie.light.css +97 -0
- data/public/css/highlight/magula.css +120 -0
- data/public/css/highlight/mono-blue.css +68 -0
- data/public/css/highlight/monokai.css +126 -0
- data/public/css/highlight/monokai_sublime.css +154 -0
- data/public/css/highlight/obsidian.css +152 -0
- data/public/css/highlight/paraiso.dark.css +96 -0
- data/public/css/highlight/paraiso.light.css +96 -0
- data/public/css/highlight/pojoaque.css +106 -0
- data/public/css/highlight/pojoaque.jpg +0 -0
- data/public/css/highlight/railscasts.css +184 -0
- data/public/css/highlight/rainbow.css +107 -0
- data/public/css/highlight/school_book.css +111 -0
- data/public/css/highlight/school_book.png +0 -0
- data/public/css/highlight/solarized_dark.css +107 -0
- data/public/css/highlight/solarized_light.css +107 -0
- data/public/css/highlight/sunburst.css +161 -0
- data/public/css/highlight/tomorrow-night-blue.css +96 -0
- data/public/css/highlight/tomorrow-night-bright.css +95 -0
- data/public/css/highlight/tomorrow-night-eighties.css +95 -0
- data/public/css/highlight/tomorrow-night.css +96 -0
- data/public/css/highlight/tomorrow.css +93 -0
- data/public/css/highlight/vs.css +92 -0
- data/public/css/highlight/xcode.css +154 -0
- data/public/css/highlight/zenburn.css +118 -0
- data/public/css/ie8.css +4 -0
- data/public/css/presenter.css +5 -17
- data/public/css/run_code-dim.png +0 -0
- data/public/css/run_code.png +0 -0
- data/public/css/showoff.css +154 -127
- data/public/js/highlight.pack.js +10816 -0
- data/public/js/keyDictionary.json +139 -0
- data/public/js/presenter.js +111 -144
- data/public/js/showoff.js +333 -387
- data/views/header.erb +15 -17
- data/views/header_mini.erb +4 -0
- data/views/help.erb +79 -0
- data/views/index.erb +3 -22
- data/views/onepage.erb +27 -14
- data/views/presenter.erb +3 -17
- data/views/stats.erb +4 -4
- metadata +75 -62
- data/public/css/sh_style.css +0 -81
- data/public/css/tipsy.css +0 -26
- data/public/js/core.js +0 -79
- data/public/js/jquery.tipsy.js +0 -260
- data/public/js/onepage.js +0 -4
- data/public/js/sh_lang/sh_bison.min.js +0 -1
- data/public/js/sh_lang/sh_c.min.js +0 -1
- data/public/js/sh_lang/sh_caml.min.js +0 -1
- data/public/js/sh_lang/sh_changelog.min.js +0 -1
- data/public/js/sh_lang/sh_coffeescript.min.js +0 -1
- data/public/js/sh_lang/sh_cpp.min.js +0 -1
- data/public/js/sh_lang/sh_csharp.min.js +0 -1
- data/public/js/sh_lang/sh_css.min.js +0 -1
- data/public/js/sh_lang/sh_cucumber.min.js +0 -2
- data/public/js/sh_lang/sh_desktop.min.js +0 -1
- data/public/js/sh_lang/sh_diff.min.js +0 -1
- data/public/js/sh_lang/sh_docker.js +0 -137
- data/public/js/sh_lang/sh_docker.min.js +0 -1
- data/public/js/sh_lang/sh_erlang.min.js +0 -1
- data/public/js/sh_lang/sh_flex.min.js +0 -1
- data/public/js/sh_lang/sh_gherkin.js +0 -112
- data/public/js/sh_lang/sh_gherkin.min.js +0 -1
- data/public/js/sh_lang/sh_glsl.min.js +0 -1
- data/public/js/sh_lang/sh_haxe.min.js +0 -1
- data/public/js/sh_lang/sh_html.min.js +0 -1
- data/public/js/sh_lang/sh_ini.js +0 -87
- data/public/js/sh_lang/sh_ini.min.js +0 -87
- data/public/js/sh_lang/sh_java.min.js +0 -1
- data/public/js/sh_lang/sh_javascript.min.js +0 -1
- data/public/js/sh_lang/sh_javascript_dom.min.js +0 -1
- data/public/js/sh_lang/sh_latex.min.js +0 -1
- data/public/js/sh_lang/sh_ldap.min.js +0 -1
- data/public/js/sh_lang/sh_log.min.js +0 -1
- data/public/js/sh_lang/sh_lsm.min.js +0 -1
- data/public/js/sh_lang/sh_m4.min.js +0 -1
- data/public/js/sh_lang/sh_makefile.min.js +0 -1
- data/public/js/sh_lang/sh_oracle.min.js +0 -1
- data/public/js/sh_lang/sh_pascal.min.js +0 -1
- data/public/js/sh_lang/sh_perl.min.js +0 -1
- data/public/js/sh_lang/sh_php.min.js +0 -1
- data/public/js/sh_lang/sh_prolog.min.js +0 -1
- data/public/js/sh_lang/sh_properties.min.js +0 -1
- data/public/js/sh_lang/sh_puppet.js +0 -182
- data/public/js/sh_lang/sh_puppet.min.js +0 -182
- data/public/js/sh_lang/sh_puppet_output.js +0 -22
- data/public/js/sh_lang/sh_puppet_output.min.js +0 -22
- data/public/js/sh_lang/sh_python.min.js +0 -1
- data/public/js/sh_lang/sh_ruby.min.js +0 -1
- data/public/js/sh_lang/sh_scala.min.js +0 -1
- data/public/js/sh_lang/sh_sh.min.js +0 -1
- data/public/js/sh_lang/sh_shell.min.js +0 -1
- data/public/js/sh_lang/sh_slang.min.js +0 -1
- data/public/js/sh_lang/sh_sml.min.js +0 -1
- data/public/js/sh_lang/sh_spec.min.js +0 -1
- data/public/js/sh_lang/sh_sql.min.js +0 -1
- data/public/js/sh_lang/sh_tcl.min.js +0 -1
- data/public/js/sh_lang/sh_xml.min.js +0 -1
- data/public/js/sh_lang/sh_xorg.min.js +0 -1
- data/public/js/sh_main.min.js +0 -4
- data/public/js/showoffcore.js +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b86b769faaf0f2bf83c369521ebe23d39dcff438
|
4
|
+
data.tar.gz: 721f97d05ded288194ae3d7bedb0d0dfe5fc900d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
data/lib/showoff/version.rb
CHANGED
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,
|
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
|
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
|
-
#
|
380
|
-
|
409
|
+
# make a list of code highlighting classes to include
|
410
|
+
css = match[2].split.collect {|i| "language-#{i.downcase}" }.join(' ')
|
381
411
|
|
382
|
-
#
|
383
|
-
|
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}\"
|
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', '
|
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
|
-
|
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
|
-
|
1069
|
-
|
1070
|
-
|
1071
|
-
|
1072
|
-
|
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
|
-
|
1137
|
-
|
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
|
-
|
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
|
+
}
|