Major upgrades to submission reports and competitions
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Thu, 5 Sep 2019 05:24:03 +0000 (00:24 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Thu, 5 Sep 2019 05:24:03 +0000 (00:24 -0500)
141 files changed:
codebox/app/app.moon
codebox/controllers/admin/competition.moon [new file with mode: 0644]
codebox/controllers/admin/competition/Tupfile [new file with mode: 0644]
codebox/controllers/admin/competition/new.moon [new file with mode: 0644]
codebox/controllers/admin/problem.moon
codebox/controllers/admin/submission.moon [new file with mode: 0644]
codebox/controllers/admin/submission/Tupfile [new file with mode: 0644]
codebox/controllers/admin/submission/delete.moon [new file with mode: 0644]
codebox/controllers/admin/submission/edit.moon [new file with mode: 0644]
codebox/controllers/admin/user.moon [new file with mode: 0644]
codebox/controllers/admin/user/Tupfile [new file with mode: 0644]
codebox/controllers/admin/user/delete.moon [new file with mode: 0644]
codebox/controllers/admin/user/reset_password.moon [new file with mode: 0644]
codebox/controllers/executer/status_update.moon
codebox/facades/executer.moon
codebox/migrations.moon
codebox/models/competition_problems.moon [new file with mode: 0644]
codebox/models/competitions.moon [new file with mode: 0644]
codebox/models/jobs.moon
codebox/models/problems.moon
codebox/models/users.moon
codebox/static/coffee/admin_user.coffee [new file with mode: 0644]
codebox/static/css/core.css
codebox/static/css/core.css.map
codebox/static/css/highlight/a11y-dark.css [new file with mode: 0644]
codebox/static/css/highlight/a11y-light.css [new file with mode: 0644]
codebox/static/css/highlight/agate.css [new file with mode: 0644]
codebox/static/css/highlight/an-old-hope.css [new file with mode: 0644]
codebox/static/css/highlight/androidstudio.css [new file with mode: 0644]
codebox/static/css/highlight/arduino-light.css [new file with mode: 0644]
codebox/static/css/highlight/arta.css [new file with mode: 0644]
codebox/static/css/highlight/ascetic.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-cave-dark.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-cave-light.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-dune-dark.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-dune-light.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-estuary-dark.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-estuary-light.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-forest-dark.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-forest-light.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-heath-dark.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-heath-light.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-lakeside-dark.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-lakeside-light.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-plateau-dark.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-plateau-light.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-savanna-dark.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-savanna-light.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-seaside-dark.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-seaside-light.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-sulphurpool-dark.css [new file with mode: 0644]
codebox/static/css/highlight/atelier-sulphurpool-light.css [new file with mode: 0644]
codebox/static/css/highlight/atom-one-dark-reasonable.css [new file with mode: 0644]
codebox/static/css/highlight/atom-one-dark.css [new file with mode: 0644]
codebox/static/css/highlight/atom-one-light.css [new file with mode: 0644]
codebox/static/css/highlight/brown-paper.css [new file with mode: 0644]
codebox/static/css/highlight/brown-papersq.png [new file with mode: 0644]
codebox/static/css/highlight/codepen-embed.css [new file with mode: 0644]
codebox/static/css/highlight/color-brewer.css [new file with mode: 0644]
codebox/static/css/highlight/darcula.css [new file with mode: 0644]
codebox/static/css/highlight/dark.css [new file with mode: 0644]
codebox/static/css/highlight/darkula.css [new file with mode: 0644]
codebox/static/css/highlight/default.css [new file with mode: 0644]
codebox/static/css/highlight/docco.css [new file with mode: 0644]
codebox/static/css/highlight/dracula.css [new file with mode: 0644]
codebox/static/css/highlight/far.css [new file with mode: 0644]
codebox/static/css/highlight/foundation.css [new file with mode: 0644]
codebox/static/css/highlight/github-gist.css [new file with mode: 0644]
codebox/static/css/highlight/github.css [new file with mode: 0644]
codebox/static/css/highlight/gml.css [new file with mode: 0644]
codebox/static/css/highlight/googlecode.css [new file with mode: 0644]
codebox/static/css/highlight/grayscale.css [new file with mode: 0644]
codebox/static/css/highlight/gruvbox-dark.css [new file with mode: 0644]
codebox/static/css/highlight/gruvbox-light.css [new file with mode: 0644]
codebox/static/css/highlight/hopscotch.css [new file with mode: 0644]
codebox/static/css/highlight/hybrid.css [new file with mode: 0644]
codebox/static/css/highlight/idea.css [new file with mode: 0644]
codebox/static/css/highlight/ir-black.css [new file with mode: 0644]
codebox/static/css/highlight/isbl-editor-dark.css [new file with mode: 0644]
codebox/static/css/highlight/isbl-editor-light.css [new file with mode: 0644]
codebox/static/css/highlight/kimbie.dark.css [new file with mode: 0644]
codebox/static/css/highlight/kimbie.light.css [new file with mode: 0644]
codebox/static/css/highlight/lightfair.css [new file with mode: 0644]
codebox/static/css/highlight/magula.css [new file with mode: 0644]
codebox/static/css/highlight/mono-blue.css [new file with mode: 0644]
codebox/static/css/highlight/monokai-sublime.css [new file with mode: 0644]
codebox/static/css/highlight/monokai.css [new file with mode: 0644]
codebox/static/css/highlight/nord.css [new file with mode: 0644]
codebox/static/css/highlight/obsidian.css [new file with mode: 0644]
codebox/static/css/highlight/ocean.css [new file with mode: 0644]
codebox/static/css/highlight/paraiso-dark.css [new file with mode: 0644]
codebox/static/css/highlight/paraiso-light.css [new file with mode: 0644]
codebox/static/css/highlight/pojoaque.css [new file with mode: 0644]
codebox/static/css/highlight/pojoaque.jpg [new file with mode: 0644]
codebox/static/css/highlight/purebasic.css [new file with mode: 0644]
codebox/static/css/highlight/qtcreator_dark.css [new file with mode: 0644]
codebox/static/css/highlight/qtcreator_light.css [new file with mode: 0644]
codebox/static/css/highlight/railscasts.css [new file with mode: 0644]
codebox/static/css/highlight/rainbow.css [new file with mode: 0644]
codebox/static/css/highlight/routeros.css [new file with mode: 0644]
codebox/static/css/highlight/school-book.css [new file with mode: 0644]
codebox/static/css/highlight/school-book.png [new file with mode: 0644]
codebox/static/css/highlight/shades-of-purple.css [new file with mode: 0644]
codebox/static/css/highlight/solarized-dark.css [new file with mode: 0644]
codebox/static/css/highlight/solarized-light.css [new file with mode: 0644]
codebox/static/css/highlight/sunburst.css [new file with mode: 0644]
codebox/static/css/highlight/tomorrow-night-blue.css [new file with mode: 0644]
codebox/static/css/highlight/tomorrow-night-bright.css [new file with mode: 0644]
codebox/static/css/highlight/tomorrow-night-eighties.css [new file with mode: 0644]
codebox/static/css/highlight/tomorrow-night.css [new file with mode: 0644]
codebox/static/css/highlight/tomorrow.css [new file with mode: 0644]
codebox/static/css/highlight/vs.css [new file with mode: 0644]
codebox/static/css/highlight/vs2015.css [new file with mode: 0644]
codebox/static/css/highlight/xcode.css [new file with mode: 0644]
codebox/static/css/highlight/xt256.css [new file with mode: 0644]
codebox/static/css/highlight/zenburn.css [new file with mode: 0644]
codebox/static/js/admin_user.js [new file with mode: 0644]
codebox/static/js/admin_user.js.map [new file with mode: 0644]
codebox/static/js/vendor/highlight-line-numbers.js [new file with mode: 0644]
codebox/static/js/vendor/highlight.pack.js [new file with mode: 0644]
codebox/static/scss/_utils.scss
codebox/static/scss/_vars.scss
codebox/static/scss/core.scss
codebox/static/scss/vendor/_mixins.scss [new file with mode: 0644]
codebox/static/scss/vendor/_variables.scss [new file with mode: 0644]
codebox/static/scss/vendor/circle.scss [new file with mode: 0644]
codebox/views/admin/competition.moon [new file with mode: 0644]
codebox/views/admin/competition/Tupfile [new file with mode: 0644]
codebox/views/admin/competition/new.moon [new file with mode: 0644]
codebox/views/admin/problem.moon
codebox/views/admin/problem/test_case.moon
codebox/views/admin/submission.moon [new file with mode: 0644]
codebox/views/admin/submission/Tupfile [new file with mode: 0644]
codebox/views/admin/submission/edit.moon [new file with mode: 0644]
codebox/views/admin/user.moon [new file with mode: 0644]
codebox/views/ssr/Tupfile [new file with mode: 0644]
codebox/views/ssr/job_result.moon [new file with mode: 0644]
docs/todo
executer/app/executer.coffee
executer/app/executers/c_executer.coffee
executer/app/routes.coffee

index d4bb5268c38bd3b97d6b0979233bd9b986224885..24c3079327f9851a8a5ac00d376ea66e0e531714 100644 (file)
@@ -1,7 +1,7 @@
 lapis = require "lapis"
 console = require "lapis.console"
 
-import Users from require "models"
+import Users, Competitions from require "models"
 bind = require "utils.binding"
 
 bind\bind_static 'executer', require 'facades.executer'
@@ -39,7 +39,11 @@ class extends lapis.Application
        ['executer.status_update': "/executer/status_update"]: require "controllers.executer.status_update"
        ['executer.request': '/executer/request']: require "controllers.executer.request"
 
-       ['admin.user': "/admin/user"]: => "NOT IMPLEMENTED"
+       ['admin': "/admin"]: => redirect_to: @url_for "admin.user"
+
+       ['admin.user': "/admin/user"]: require "controllers.admin.user"
+       ['admin.user.reset_password': "/admin/user/reset_password"]: require "controllers.admin.user.reset_password"
+       ['admin.user.delete': "/admin/user/delete"]: require "controllers.admin.user.delete"
 
        ['admin.problem': "/admin/problem"]: require "controllers.admin.problem"
        ['admin.problem.new': "/admin/problem/new"]: require "controllers.admin.problem.new"
@@ -50,7 +54,17 @@ class extends lapis.Application
        ['admin.testcase.edit':   "/admin/testcase/edit"]:   require "controllers.admin.testcase.edit"
        ['admin.testcase.delete': "/admin/testcase/delete"]: require "controllers.admin.testcase.delete"
 
-       ['admin.submission': "/admin/submission"]: => "NOT IMPLEMENTED"
-       ['admin.competition': "/admin/competition"]: => "NOT IMPLEMENTED"
+       ['admin.submission': "/admin/submission"]: require "controllers.admin.submission"
+       ['admin.submission.edit': "/admin/submission/edit"]: require "controllers.admin.submission.edit"
+       ['admin.submission.delete': "/admin/submission/delete"]: require "controllers.admin.submission.delete"
+
+       ['admin.competition': "/admin/competition"]: require "controllers.admin.competition"
+       ['admin.competition.new': "/admin/competition/new"]: require "controllers.admin.competition.new"
+
+       [test: '/test']: =>
+               user = Users\find 5
+               jobs = user\get_current_jobs!
+
+               json: jobs
 
        "/console": console.make!
diff --git a/codebox/controllers/admin/competition.moon b/codebox/controllers/admin/competition.moon
new file mode 100644 (file)
index 0000000..591249a
--- /dev/null
@@ -0,0 +1,18 @@
+import make_controller from require "controllers.controller"
+import assert_valid from require "lapis.validate"
+import capture_errors from require 'lapis.application'
+import Competitions from require 'models'
+
+make_controller
+       layout: require 'views.partials.admin_layout'
+
+       middleware: { 'logged_in', 'admin_required' }
+
+       get: =>
+               @navbar.selected = 3
+
+               @competitions = Competitions\select!
+
+               render: 'admin.competition'
+
+
diff --git a/codebox/controllers/admin/competition/Tupfile b/codebox/controllers/admin/competition/Tupfile
new file mode 100644 (file)
index 0000000..f0fe651
--- /dev/null
@@ -0,0 +1 @@
+include_rules
diff --git a/codebox/controllers/admin/competition/new.moon b/codebox/controllers/admin/competition/new.moon
new file mode 100644 (file)
index 0000000..eb205ea
--- /dev/null
@@ -0,0 +1,32 @@
+import make_controller from require "controllers.controller"
+import assert_valid from require "lapis.validate"
+import capture_errors, capture_errors_json, yield_error from require 'lapis.application'
+import Competitions from require 'models'
+
+make_controller
+       layout: require 'views.partials.admin_layout'
+
+       middleware: { 'logged_in', 'admin_required' }
+
+       get: =>
+               @flow 'csrf_setup'
+               @navbar.selected = 3
+
+               render: true
+
+       post: capture_errors =>
+               @flow 'csrf_validate'
+
+               assert_valid @params, {
+                       { "name", exists: true }
+                       { "start_time", exists: true }
+                       { "end_time", exists: true }
+               }
+
+               Competitions\create {
+                       name: @params.name
+                       start: @params.start_time
+                       end: @params.end_time
+               }
+
+               redirect_to: @url_for 'admin.compeition'
index ec4bc2281a065f518098c9a59d34385c0eaf66ef..059218474cc1fbbafedf89ef52190cee337a50d2 100644 (file)
@@ -9,9 +9,6 @@ make_controller
 
        middleware: { 'logged_in', 'admin_required' }
 
-       scripts:
-               'admin_problem'
-
        get: =>
                @navbar.selected = 1
 
diff --git a/codebox/controllers/admin/submission.moon b/codebox/controllers/admin/submission.moon
new file mode 100644 (file)
index 0000000..7597d33
--- /dev/null
@@ -0,0 +1,18 @@
+import make_controller from require "controllers.controller"
+import assert_valid from require "lapis.validate"
+import capture_errors from require 'lapis.application'
+import Jobs from require 'models'
+
+make_controller
+       layout: require 'views.partials.admin_layout'
+       scripts: { 'admin_problem' }
+
+       middleware: { 'logged_in', 'admin_required' }
+
+       get: =>
+               @navbar.selected = 2
+
+               @jobs = Jobs\select "order by id desc"
+
+               render: 'admin.submission'
+
diff --git a/codebox/controllers/admin/submission/Tupfile b/codebox/controllers/admin/submission/Tupfile
new file mode 100644 (file)
index 0000000..f0fe651
--- /dev/null
@@ -0,0 +1 @@
+include_rules
diff --git a/codebox/controllers/admin/submission/delete.moon b/codebox/controllers/admin/submission/delete.moon
new file mode 100644 (file)
index 0000000..eff9a33
--- /dev/null
@@ -0,0 +1,22 @@
+import make_controller from require "controllers.controller"
+import assert_valid from require "lapis.validate"
+import capture_errors, capture_errors_json, yield_error from require 'lapis.application'
+import Jobs from require 'models'
+
+make_controller
+       layout: require "views.partials.admin_layout"
+
+       middleware: { 'logged_in', 'admin_required' }
+
+       get: capture_errors_json =>
+               assert_valid @params, {
+                       { 'submission_id', exists: true }
+               }
+
+               job = Jobs\find job_id: @params.submission_id
+               unless job
+                       yield_error 'Job not found'
+
+               job\delete!
+
+               redirect_to: @url_for 'admin.submission'
diff --git a/codebox/controllers/admin/submission/edit.moon b/codebox/controllers/admin/submission/edit.moon
new file mode 100644 (file)
index 0000000..8981baf
--- /dev/null
@@ -0,0 +1,26 @@
+import make_controller from require "controllers.controller"
+import assert_valid from require "lapis.validate"
+import capture_errors, capture_errors_json, yield_error from require 'lapis.application'
+import Jobs from require 'models'
+
+make_controller
+       layout: require "views.partials.admin_layout"
+       middleware: { 'logged_in', 'admin_required' }
+
+       scripts: { "vendor/highlight.pack", "vendor/highlight-line-numbers" }
+
+       get: capture_errors_json =>
+               @navbar.selected = 2
+
+               assert_valid @params, {
+                       { "submission_id", exists: true }
+               }
+
+               @job = Jobs\find job_id: @params.submission_id
+               unless @job
+                       yield_error "Job not found"
+
+               render: "admin.submission.edit"
+
+       post: capture_errors_json =>
+               json: { 'success': true }
diff --git a/codebox/controllers/admin/user.moon b/codebox/controllers/admin/user.moon
new file mode 100644 (file)
index 0000000..94e0c5e
--- /dev/null
@@ -0,0 +1,19 @@
+import make_controller from require "controllers.controller"
+import assert_valid from require "lapis.validate"
+import capture_errors from require 'lapis.application'
+import Users from require 'models'
+
+make_controller
+       layout: require 'views.partials.admin_layout'
+       scripts: { 'admin_user' }
+
+       middleware: { 'logged_in', 'admin_required' }
+
+       get: =>
+               @navbar.selected = 0
+
+               @users = Users\select!
+
+               render: 'admin.user'
+
+
diff --git a/codebox/controllers/admin/user/Tupfile b/codebox/controllers/admin/user/Tupfile
new file mode 100644 (file)
index 0000000..f0fe651
--- /dev/null
@@ -0,0 +1 @@
+include_rules
diff --git a/codebox/controllers/admin/user/delete.moon b/codebox/controllers/admin/user/delete.moon
new file mode 100644 (file)
index 0000000..316389d
--- /dev/null
@@ -0,0 +1,26 @@
+import make_controller from require "controllers.controller"
+import assert_valid from require "lapis.validate"
+import capture_errors, capture_errors_json from require 'lapis.application'
+import Users, Jobs from require 'models'
+
+make_controller
+       middleware: { 'logged_in', 'admin_required' }
+
+       post: capture_errors_json =>
+               assert_valid @params, {
+                       { "username", exists: true }
+               }
+
+               user = Users\find username: @params.username
+               unless user
+                       yield_error "User not found"
+
+               jobs = Jobs\find user_id: user.id
+               if jobs
+                       for job in *jobs
+                               job\delete!
+
+               user\delete!
+
+               json: { success: true }
+
diff --git a/codebox/controllers/admin/user/reset_password.moon b/codebox/controllers/admin/user/reset_password.moon
new file mode 100644 (file)
index 0000000..449958f
--- /dev/null
@@ -0,0 +1,27 @@
+import make_controller from require "controllers.controller"
+import assert_valid from require "lapis.validate"
+import capture_errors, capture_errors_json from require 'lapis.application'
+import Users from require 'models'
+
+make_controller
+       inject:
+               crypto: 'crypto'
+
+       middleware: { 'logged_in', 'admin_required' }
+
+       post: capture_errors_json =>
+               assert_valid @params, {
+                       { "username", exists: true }
+                       { "password", exists: true }
+               }
+
+               user = Users\find username: @params.username
+               unless user
+                       yield_error "User not found"
+
+               user\update {
+                       password_hash: @crypto.encrypt @params.password
+               }
+
+               json: { success: true }
+
index 4565ff99e8ab1ccedb2fc717e16df0c3e497600b..46e6b2d5faebcc29a517bc132bc07017c721092e 100644 (file)
@@ -24,7 +24,8 @@ make_controller
                        status: status.status
                        data: to_json status.data
                }
-
+       
+               print "Updated job: #{job.id}"
                json: { status: 'success' }
        ), =>
                json: { status: 'error', errors: @errors }
index 6b7ad6d00666dcde0743a53c4b1cf1ad848c9d97..82026883a8c366f77b16098fed64f0219dc8c2a1 100644 (file)
@@ -20,7 +20,7 @@ class ExecuterFacade
 
                job = Jobs\create {
                        job_id: job_id
-                       user_id: 1
+                       user_id: 5
                        problem_id: problem_id
                        status: Jobs.statuses\for_db 'queued'
                        lang: lang
index 4ca6e3b1f8cb2c47c5a87cbd7108c06db7133512..c9ce10bd73ba7858bf4bbb07325fcf5718e36e5a 100644 (file)
@@ -59,4 +59,21 @@ import insert from require "lapis.db"
                        nickname: "admin"
                        email: "admin@admin.org"
                }
+
+       [6]: =>
+               create_table "competitions", {
+                       { "id", types.serial }
+                       { "start", types.time null: true }
+                       { "end", types.time null: true }
+                       { "name", types.varchar }
+                       { "active", types.boolean }
+               }
+
+       [7]: =>
+               create_table "competition_problems", {
+                       { "id", types.serial }
+                       { "competition_id", types.foreign_key }
+                       { "problem_id", types.foreign_key }
+                       { "letter", types.varchar }
+               }
 }
diff --git a/codebox/models/competition_problems.moon b/codebox/models/competition_problems.moon
new file mode 100644 (file)
index 0000000..96fa7cf
--- /dev/null
@@ -0,0 +1,3 @@
+import Model from require 'lapis.db.model'
+
+class CompetitionProblems extends Model
diff --git a/codebox/models/competitions.moon b/codebox/models/competitions.moon
new file mode 100644 (file)
index 0000000..25e9416
--- /dev/null
@@ -0,0 +1,13 @@
+import Model from require 'lapis.db.model'
+db = require 'lapis.db'
+
+class Competitions extends Model
+       @relations: {
+               { "problems", fetch: =>
+                       db.select "problems.name, problems.short_name, problems.kind, problems.time_limit, competition_problems.letter
+                       from problems
+                       inner join competition_problems on problems.id = competition_problems.problem_id
+                       inner join competitions on competition_problems.competition_id = competitions.id
+                       where competitions.id=? orber by competition_problems.letter asc", @id
+               }
+       }
index 9b634372a2fec493fd9f41c7b9b7057a383ebba9..ba5e2b474e24f290a561014964fa4a4d08c2e7e8 100644 (file)
@@ -5,7 +5,7 @@ class Jobs extends Model
                queued: 1
                compiling: 2
                running: 3
-               completed: 4
+               correct: 4
                wrong_answer: 5
                timed_out: 6
                bad_language: 7
index 140b29a91445fcd75b865e5872cda19149855204..aab9b91b15aca743a934680ade86df28dfafe36d 100644 (file)
@@ -1,4 +1,5 @@
 import Model, enum from require "lapis.db.model"
+db = require 'lapis.db'
 
 class Problems extends Model
        @kinds: enum {
@@ -13,4 +14,13 @@ class Problems extends Model
                        has_many: 'TestCases'
                        order: "testcase_order asc"
                }
+               { "correct_jobs", fetch: =>
+                       db.query "select count(job_id) from jobs where problem_id=? and status=4", @id
+               }
+               { "wrong_answer_jobs", fetch: =>
+                       db.query "select count(job_id) from jobs where problem_id=? and status=5", @id
+               }
+               { "timed_out_jobs", fetch: =>
+                       db.query "select count(job_id) from jobs where problem_id=? and status=6", @id
+               }
        }
index d8b29e95c378acdd84937114025fbad4c103743e..1b6e47c0227f65af92508eddb96a865af7b36688 100644 (file)
@@ -1,10 +1,13 @@
 import Model from require "lapis.db.model"
+db = require 'lapis.db'
 
 class Users extends Model
        @relations: {
                { 'jobs', has_many: 'Jobs' }
-               { 'c_jobs'
-                       has_many: 'Jobs'
-                       where: { lang: 'C' }
+               { 'current_jobs', fetch: =>
+                       db.select "jobs.job_id, jobs.problem_id, jobs.lang, jobs.code, jobs.status, jobs.data, jobs.time_initiated from jobs
+                       inner join competition_problems on competition_problems.problem_id = jobs.problem_id
+                       inner join competitions on competitions.id = competition_problems.competition_id
+                       where competitions.active=? and jobs.user_id=?", db.TRUE, @id
                }
        }
diff --git a/codebox/static/coffee/admin_user.coffee b/codebox/static/coffee/admin_user.coffee
new file mode 100644 (file)
index 0000000..3791db3
--- /dev/null
@@ -0,0 +1,22 @@
+$(document).ready ->
+       $('[data-user-reset-password]').click (e) ->
+               username = $(e.target).attr 'data-user-reset-password'
+
+               new_password = prompt 'New password'
+               if not new_password? or new_password == ""
+                       return
+
+               $.post '/admin/user/reset_password', { 'username': username, 'password': new_password }, (data) ->
+                       if data.success?
+                               alert("#{username}'s password was changed")
+
+                       console.log(data)
+
+       $('[data-user-delete]').click (e) ->
+               username = $(e.target).attr 'data-user-delete'
+
+               $.post '/admin/user/delete', { 'username': username }, (data) ->
+                       if data.success?
+                               alert "#{username} was deleted"
+
+                       window.location.reload()
index 50ec7404b4d2aeaa24cd6a580eebf05362491b8b..b44ad8c54ca54519784bf84ed2c88150b57c6d29 100644 (file)
@@ -62,6 +62,1027 @@ a {
   color: inherit;
 }
 
+.split-2 {
+  display: grid;
+  grid-template-columns: repeat(2, 1fr);
+}
+
+.split-3 {
+  display: grid;
+  grid-template-columns: repeat(3, 1fr);
+}
+
+.split-4 {
+  display: grid;
+  grid-template-columns: repeat(4, 1fr);
+}
+
+.split-lr {
+  display: grid;
+  grid-template-columns: 1fr 1fr;
+}
+.split-lr > *:first-child {
+  text-align: left;
+}
+.split-lr > *:last-child {
+  text-align: right;
+}
+
+pre {
+  box-shadow: 0px 2px 6px 0.5px rgba(0, 0, 0, 0.5);
+  font-size: 1rem;
+}
+pre .hljs-ln td {
+  padding-right: 8px;
+}
+pre .hljs-ln-line {
+  max-width: 200px !important;
+}
+
+.fixed-half-split {
+  display: grid;
+  grid-template-columns: 275px 1fr;
+}
+
+.tabbed-split {
+  display: grid;
+}
+.tabbed-split.tab-12 {
+  grid-template-columns: 12px 1fr;
+}
+.tabbed-split.tab-16 {
+  grid-template-columns: 16px 1fr;
+}
+.tabbed-split.tab-24 {
+  grid-template-columns: 24px 1fr;
+}
+.tabbed-split.tab-32 {
+  grid-template-columns: 32px 1fr;
+}
+.tabbed-split.primary > span {
+  background-color: #42a5f5;
+}
+.tabbed-split.primary-light > span {
+  background-color: #80d6ff;
+}
+.tabbed-split.primary-dark > span {
+  background-color: #0077c2;
+}
+.tabbed-split.secondary > span {
+  background-color: #FFD700;
+}
+.tabbed-split.secondary-light > span {
+  background-color: #ffe766;
+}
+.tabbed-split.secondary-dark > span {
+  background-color: #998100;
+}
+.tabbed-split.error > span {
+  background-color: #dd0000;
+}
+.tabbed-split.error-light > span {
+  background-color: #ff4444;
+}
+.tabbed-split.error-dark > span {
+  background-color: #770000;
+}
+
+.box {
+  box-shadow: 0px 2px 6px 0.5px rgba(0, 0, 0, 0.5);
+  background-color: #111;
+}
+.box .highlight:hover {
+  background-color: #333;
+}
+
+.w50 {
+  width: 50%;
+}
+
+.w100 {
+  width: 100%;
+}
+
+.pad-1 {
+  padding: 1px;
+}
+
+.pad-l-1 {
+  padding-left: 1px;
+}
+
+.pad-r-1 {
+  padding-right: 1px;
+}
+
+.pad-t-1 {
+  padding-top: 1px;
+}
+
+.pad-b-1 {
+  padding-bottom: 1px;
+}
+
+.mar-1 {
+  margin: 1px;
+}
+
+.mar-l-1 {
+  margin-left: 1px;
+}
+
+.mar-r-1 {
+  margin-right: 1px;
+}
+
+.mar-t-1 {
+  margin-top: 1px;
+}
+
+.mar-b-1 {
+  margin-bottom: 1px;
+}
+
+.pad-2 {
+  padding: 2px;
+}
+
+.pad-l-2 {
+  padding-left: 2px;
+}
+
+.pad-r-2 {
+  padding-right: 2px;
+}
+
+.pad-t-2 {
+  padding-top: 2px;
+}
+
+.pad-b-2 {
+  padding-bottom: 2px;
+}
+
+.mar-2 {
+  margin: 2px;
+}
+
+.mar-l-2 {
+  margin-left: 2px;
+}
+
+.mar-r-2 {
+  margin-right: 2px;
+}
+
+.mar-t-2 {
+  margin-top: 2px;
+}
+
+.mar-b-2 {
+  margin-bottom: 2px;
+}
+
+.pad-3 {
+  padding: 3px;
+}
+
+.pad-l-3 {
+  padding-left: 3px;
+}
+
+.pad-r-3 {
+  padding-right: 3px;
+}
+
+.pad-t-3 {
+  padding-top: 3px;
+}
+
+.pad-b-3 {
+  padding-bottom: 3px;
+}
+
+.mar-3 {
+  margin: 3px;
+}
+
+.mar-l-3 {
+  margin-left: 3px;
+}
+
+.mar-r-3 {
+  margin-right: 3px;
+}
+
+.mar-t-3 {
+  margin-top: 3px;
+}
+
+.mar-b-3 {
+  margin-bottom: 3px;
+}
+
+.pad-4 {
+  padding: 4px;
+}
+
+.pad-l-4 {
+  padding-left: 4px;
+}
+
+.pad-r-4 {
+  padding-right: 4px;
+}
+
+.pad-t-4 {
+  padding-top: 4px;
+}
+
+.pad-b-4 {
+  padding-bottom: 4px;
+}
+
+.mar-4 {
+  margin: 4px;
+}
+
+.mar-l-4 {
+  margin-left: 4px;
+}
+
+.mar-r-4 {
+  margin-right: 4px;
+}
+
+.mar-t-4 {
+  margin-top: 4px;
+}
+
+.mar-b-4 {
+  margin-bottom: 4px;
+}
+
+.pad-5 {
+  padding: 5px;
+}
+
+.pad-l-5 {
+  padding-left: 5px;
+}
+
+.pad-r-5 {
+  padding-right: 5px;
+}
+
+.pad-t-5 {
+  padding-top: 5px;
+}
+
+.pad-b-5 {
+  padding-bottom: 5px;
+}
+
+.mar-5 {
+  margin: 5px;
+}
+
+.mar-l-5 {
+  margin-left: 5px;
+}
+
+.mar-r-5 {
+  margin-right: 5px;
+}
+
+.mar-t-5 {
+  margin-top: 5px;
+}
+
+.mar-b-5 {
+  margin-bottom: 5px;
+}
+
+.pad-6 {
+  padding: 6px;
+}
+
+.pad-l-6 {
+  padding-left: 6px;
+}
+
+.pad-r-6 {
+  padding-right: 6px;
+}
+
+.pad-t-6 {
+  padding-top: 6px;
+}
+
+.pad-b-6 {
+  padding-bottom: 6px;
+}
+
+.mar-6 {
+  margin: 6px;
+}
+
+.mar-l-6 {
+  margin-left: 6px;
+}
+
+.mar-r-6 {
+  margin-right: 6px;
+}
+
+.mar-t-6 {
+  margin-top: 6px;
+}
+
+.mar-b-6 {
+  margin-bottom: 6px;
+}
+
+.pad-7 {
+  padding: 7px;
+}
+
+.pad-l-7 {
+  padding-left: 7px;
+}
+
+.pad-r-7 {
+  padding-right: 7px;
+}
+
+.pad-t-7 {
+  padding-top: 7px;
+}
+
+.pad-b-7 {
+  padding-bottom: 7px;
+}
+
+.mar-7 {
+  margin: 7px;
+}
+
+.mar-l-7 {
+  margin-left: 7px;
+}
+
+.mar-r-7 {
+  margin-right: 7px;
+}
+
+.mar-t-7 {
+  margin-top: 7px;
+}
+
+.mar-b-7 {
+  margin-bottom: 7px;
+}
+
+.pad-8 {
+  padding: 8px;
+}
+
+.pad-l-8 {
+  padding-left: 8px;
+}
+
+.pad-r-8 {
+  padding-right: 8px;
+}
+
+.pad-t-8 {
+  padding-top: 8px;
+}
+
+.pad-b-8 {
+  padding-bottom: 8px;
+}
+
+.mar-8 {
+  margin: 8px;
+}
+
+.mar-l-8 {
+  margin-left: 8px;
+}
+
+.mar-r-8 {
+  margin-right: 8px;
+}
+
+.mar-t-8 {
+  margin-top: 8px;
+}
+
+.mar-b-8 {
+  margin-bottom: 8px;
+}
+
+.pad-9 {
+  padding: 9px;
+}
+
+.pad-l-9 {
+  padding-left: 9px;
+}
+
+.pad-r-9 {
+  padding-right: 9px;
+}
+
+.pad-t-9 {
+  padding-top: 9px;
+}
+
+.pad-b-9 {
+  padding-bottom: 9px;
+}
+
+.mar-9 {
+  margin: 9px;
+}
+
+.mar-l-9 {
+  margin-left: 9px;
+}
+
+.mar-r-9 {
+  margin-right: 9px;
+}
+
+.mar-t-9 {
+  margin-top: 9px;
+}
+
+.mar-b-9 {
+  margin-bottom: 9px;
+}
+
+.pad-10 {
+  padding: 10px;
+}
+
+.pad-l-10 {
+  padding-left: 10px;
+}
+
+.pad-r-10 {
+  padding-right: 10px;
+}
+
+.pad-t-10 {
+  padding-top: 10px;
+}
+
+.pad-b-10 {
+  padding-bottom: 10px;
+}
+
+.mar-10 {
+  margin: 10px;
+}
+
+.mar-l-10 {
+  margin-left: 10px;
+}
+
+.mar-r-10 {
+  margin-right: 10px;
+}
+
+.mar-t-10 {
+  margin-top: 10px;
+}
+
+.mar-b-10 {
+  margin-bottom: 10px;
+}
+
+.pad-11 {
+  padding: 11px;
+}
+
+.pad-l-11 {
+  padding-left: 11px;
+}
+
+.pad-r-11 {
+  padding-right: 11px;
+}
+
+.pad-t-11 {
+  padding-top: 11px;
+}
+
+.pad-b-11 {
+  padding-bottom: 11px;
+}
+
+.mar-11 {
+  margin: 11px;
+}
+
+.mar-l-11 {
+  margin-left: 11px;
+}
+
+.mar-r-11 {
+  margin-right: 11px;
+}
+
+.mar-t-11 {
+  margin-top: 11px;
+}
+
+.mar-b-11 {
+  margin-bottom: 11px;
+}
+
+.pad-12 {
+  padding: 12px;
+}
+
+.pad-l-12 {
+  padding-left: 12px;
+}
+
+.pad-r-12 {
+  padding-right: 12px;
+}
+
+.pad-t-12 {
+  padding-top: 12px;
+}
+
+.pad-b-12 {
+  padding-bottom: 12px;
+}
+
+.mar-12 {
+  margin: 12px;
+}
+
+.mar-l-12 {
+  margin-left: 12px;
+}
+
+.mar-r-12 {
+  margin-right: 12px;
+}
+
+.mar-t-12 {
+  margin-top: 12px;
+}
+
+.mar-b-12 {
+  margin-bottom: 12px;
+}
+
+.pad-13 {
+  padding: 13px;
+}
+
+.pad-l-13 {
+  padding-left: 13px;
+}
+
+.pad-r-13 {
+  padding-right: 13px;
+}
+
+.pad-t-13 {
+  padding-top: 13px;
+}
+
+.pad-b-13 {
+  padding-bottom: 13px;
+}
+
+.mar-13 {
+  margin: 13px;
+}
+
+.mar-l-13 {
+  margin-left: 13px;
+}
+
+.mar-r-13 {
+  margin-right: 13px;
+}
+
+.mar-t-13 {
+  margin-top: 13px;
+}
+
+.mar-b-13 {
+  margin-bottom: 13px;
+}
+
+.pad-14 {
+  padding: 14px;
+}
+
+.pad-l-14 {
+  padding-left: 14px;
+}
+
+.pad-r-14 {
+  padding-right: 14px;
+}
+
+.pad-t-14 {
+  padding-top: 14px;
+}
+
+.pad-b-14 {
+  padding-bottom: 14px;
+}
+
+.mar-14 {
+  margin: 14px;
+}
+
+.mar-l-14 {
+  margin-left: 14px;
+}
+
+.mar-r-14 {
+  margin-right: 14px;
+}
+
+.mar-t-14 {
+  margin-top: 14px;
+}
+
+.mar-b-14 {
+  margin-bottom: 14px;
+}
+
+.pad-15 {
+  padding: 15px;
+}
+
+.pad-l-15 {
+  padding-left: 15px;
+}
+
+.pad-r-15 {
+  padding-right: 15px;
+}
+
+.pad-t-15 {
+  padding-top: 15px;
+}
+
+.pad-b-15 {
+  padding-bottom: 15px;
+}
+
+.mar-15 {
+  margin: 15px;
+}
+
+.mar-l-15 {
+  margin-left: 15px;
+}
+
+.mar-r-15 {
+  margin-right: 15px;
+}
+
+.mar-t-15 {
+  margin-top: 15px;
+}
+
+.mar-b-15 {
+  margin-bottom: 15px;
+}
+
+.pad-16 {
+  padding: 16px;
+}
+
+.pad-l-16 {
+  padding-left: 16px;
+}
+
+.pad-r-16 {
+  padding-right: 16px;
+}
+
+.pad-t-16 {
+  padding-top: 16px;
+}
+
+.pad-b-16 {
+  padding-bottom: 16px;
+}
+
+.mar-16 {
+  margin: 16px;
+}
+
+.mar-l-16 {
+  margin-left: 16px;
+}
+
+.mar-r-16 {
+  margin-right: 16px;
+}
+
+.mar-t-16 {
+  margin-top: 16px;
+}
+
+.mar-b-16 {
+  margin-bottom: 16px;
+}
+
+.pad-17 {
+  padding: 17px;
+}
+
+.pad-l-17 {
+  padding-left: 17px;
+}
+
+.pad-r-17 {
+  padding-right: 17px;
+}
+
+.pad-t-17 {
+  padding-top: 17px;
+}
+
+.pad-b-17 {
+  padding-bottom: 17px;
+}
+
+.mar-17 {
+  margin: 17px;
+}
+
+.mar-l-17 {
+  margin-left: 17px;
+}
+
+.mar-r-17 {
+  margin-right: 17px;
+}
+
+.mar-t-17 {
+  margin-top: 17px;
+}
+
+.mar-b-17 {
+  margin-bottom: 17px;
+}
+
+.pad-18 {
+  padding: 18px;
+}
+
+.pad-l-18 {
+  padding-left: 18px;
+}
+
+.pad-r-18 {
+  padding-right: 18px;
+}
+
+.pad-t-18 {
+  padding-top: 18px;
+}
+
+.pad-b-18 {
+  padding-bottom: 18px;
+}
+
+.mar-18 {
+  margin: 18px;
+}
+
+.mar-l-18 {
+  margin-left: 18px;
+}
+
+.mar-r-18 {
+  margin-right: 18px;
+}
+
+.mar-t-18 {
+  margin-top: 18px;
+}
+
+.mar-b-18 {
+  margin-bottom: 18px;
+}
+
+.pad-19 {
+  padding: 19px;
+}
+
+.pad-l-19 {
+  padding-left: 19px;
+}
+
+.pad-r-19 {
+  padding-right: 19px;
+}
+
+.pad-t-19 {
+  padding-top: 19px;
+}
+
+.pad-b-19 {
+  padding-bottom: 19px;
+}
+
+.mar-19 {
+  margin: 19px;
+}
+
+.mar-l-19 {
+  margin-left: 19px;
+}
+
+.mar-r-19 {
+  margin-right: 19px;
+}
+
+.mar-t-19 {
+  margin-top: 19px;
+}
+
+.mar-b-19 {
+  margin-bottom: 19px;
+}
+
+.pad-20 {
+  padding: 20px;
+}
+
+.pad-l-20 {
+  padding-left: 20px;
+}
+
+.pad-r-20 {
+  padding-right: 20px;
+}
+
+.pad-t-20 {
+  padding-top: 20px;
+}
+
+.pad-b-20 {
+  padding-bottom: 20px;
+}
+
+.mar-20 {
+  margin: 20px;
+}
+
+.mar-l-20 {
+  margin-left: 20px;
+}
+
+.mar-r-20 {
+  margin-right: 20px;
+}
+
+.mar-t-20 {
+  margin-top: 20px;
+}
+
+.mar-b-20 {
+  margin-bottom: 20px;
+}
+
+.pad-21 {
+  padding: 21px;
+}
+
+.pad-l-21 {
+  padding-left: 21px;
+}
+
+.pad-r-21 {
+  padding-right: 21px;
+}
+
+.pad-t-21 {
+  padding-top: 21px;
+}
+
+.pad-b-21 {
+  padding-bottom: 21px;
+}
+
+.mar-21 {
+  margin: 21px;
+}
+
+.mar-l-21 {
+  margin-left: 21px;
+}
+
+.mar-r-21 {
+  margin-right: 21px;
+}
+
+.mar-t-21 {
+  margin-top: 21px;
+}
+
+.mar-b-21 {
+  margin-bottom: 21px;
+}
+
+.pad-22 {
+  padding: 22px;
+}
+
+.pad-l-22 {
+  padding-left: 22px;
+}
+
+.pad-r-22 {
+  padding-right: 22px;
+}
+
+.pad-t-22 {
+  padding-top: 22px;
+}
+
+.pad-b-22 {
+  padding-bottom: 22px;
+}
+
+.mar-22 {
+  margin: 22px;
+}
+
+.mar-l-22 {
+  margin-left: 22px;
+}
+
+.mar-r-22 {
+  margin-right: 22px;
+}
+
+.mar-t-22 {
+  margin-top: 22px;
+}
+
+.mar-b-22 {
+  margin-bottom: 22px;
+}
+
+.pad-23 {
+  padding: 23px;
+}
+
+.pad-l-23 {
+  padding-left: 23px;
+}
+
+.pad-r-23 {
+  padding-right: 23px;
+}
+
+.pad-t-23 {
+  padding-top: 23px;
+}
+
+.pad-b-23 {
+  padding-bottom: 23px;
+}
+
+.mar-23 {
+  margin: 23px;
+}
+
+.mar-l-23 {
+  margin-left: 23px;
+}
+
+.mar-r-23 {
+  margin-right: 23px;
+}
+
+.mar-t-23 {
+  margin-top: 23px;
+}
+
+.mar-b-23 {
+  margin-bottom: 23px;
+}
+
 .sidebar-problem-list {
   z-index: 50;
   box-shadow: 0 10px 0 0 transparent, 0 10px 0 0 transparent, 10px 0 0 0 transparent, 0 8px 8px 2px rgba(0, 0, 0, 0.5);
@@ -106,6 +1127,858 @@ a {
   margin-right: 10px;
 }
 
+.rect-auto, .c100.p100 .slice, .c100.p99 .slice, .c100.p98 .slice, .c100.p97 .slice, .c100.p96 .slice, .c100.p95 .slice, .c100.p94 .slice, .c100.p93 .slice, .c100.p92 .slice, .c100.p91 .slice, .c100.p90 .slice, .c100.p89 .slice, .c100.p88 .slice, .c100.p87 .slice, .c100.p86 .slice, .c100.p85 .slice, .c100.p84 .slice, .c100.p83 .slice, .c100.p82 .slice, .c100.p81 .slice, .c100.p80 .slice, .c100.p79 .slice, .c100.p78 .slice, .c100.p77 .slice, .c100.p76 .slice, .c100.p75 .slice, .c100.p74 .slice, .c100.p73 .slice, .c100.p72 .slice, .c100.p71 .slice, .c100.p70 .slice, .c100.p69 .slice, .c100.p68 .slice, .c100.p67 .slice, .c100.p66 .slice, .c100.p65 .slice, .c100.p64 .slice, .c100.p63 .slice, .c100.p62 .slice, .c100.p61 .slice, .c100.p60 .slice, .c100.p59 .slice, .c100.p58 .slice, .c100.p57 .slice, .c100.p56 .slice, .c100.p55 .slice, .c100.p54 .slice, .c100.p53 .slice, .c100.p52 .slice, .c100.p51 .slice {
+  clip: rect(auto, auto, auto, auto);
+}
+
+.pie, .c100.p100 .fill, .c100.p99 .fill, .c100.p98 .fill, .c100.p97 .fill, .c100.p96 .fill, .c100.p95 .fill, .c100.p94 .fill, .c100.p93 .fill, .c100.p92 .fill, .c100.p91 .fill, .c100.p90 .fill, .c100.p89 .fill, .c100.p88 .fill, .c100.p87 .fill, .c100.p86 .fill, .c100.p85 .fill, .c100.p84 .fill, .c100.p83 .fill, .c100.p82 .fill, .c100.p81 .fill, .c100.p80 .fill, .c100.p79 .fill, .c100.p78 .fill, .c100.p77 .fill, .c100.p76 .fill, .c100.p75 .fill, .c100.p74 .fill, .c100.p73 .fill, .c100.p72 .fill, .c100.p71 .fill, .c100.p70 .fill, .c100.p69 .fill, .c100.p68 .fill, .c100.p67 .fill, .c100.p66 .fill, .c100.p65 .fill, .c100.p64 .fill, .c100.p63 .fill, .c100.p62 .fill, .c100.p61 .fill, .c100.p60 .fill, .c100.p59 .fill, .c100.p58 .fill, .c100.p57 .fill, .c100.p56 .fill, .c100.p55 .fill, .c100.p54 .fill, .c100.p53 .fill, .c100.p52 .fill, .c100.p51 .fill, .c100 .bar {
+  position: absolute;
+  border: 0.08em solid #307bbb;
+  width: 0.84em;
+  height: 0.84em;
+  clip: rect(0em, 0.5em, 1em, 0em);
+  border-radius: 50%;
+  -webkit-transform: rotate(0deg);
+  -moz-transform: rotate(0deg);
+  -ms-transform: rotate(0deg);
+  -o-transform: rotate(0deg);
+  transform: rotate(0deg);
+}
+
+.pie-fill, .c100.p100 .fill, .c100.p100.bar:after, .c100.p99 .fill, .c100.p99.bar:after, .c100.p98 .fill, .c100.p98.bar:after, .c100.p97 .fill, .c100.p97.bar:after, .c100.p96 .fill, .c100.p96.bar:after, .c100.p95 .fill, .c100.p95.bar:after, .c100.p94 .fill, .c100.p94.bar:after, .c100.p93 .fill, .c100.p93.bar:after, .c100.p92 .fill, .c100.p92.bar:after, .c100.p91 .fill, .c100.p91.bar:after, .c100.p90 .fill, .c100.p90.bar:after, .c100.p89 .fill, .c100.p89.bar:after, .c100.p88 .fill, .c100.p88.bar:after, .c100.p87 .fill, .c100.p87.bar:after, .c100.p86 .fill, .c100.p86.bar:after, .c100.p85 .fill, .c100.p85.bar:after, .c100.p84 .fill, .c100.p84.bar:after, .c100.p83 .fill, .c100.p83.bar:after, .c100.p82 .fill, .c100.p82.bar:after, .c100.p81 .fill, .c100.p81.bar:after, .c100.p80 .fill, .c100.p80.bar:after, .c100.p79 .fill, .c100.p79.bar:after, .c100.p78 .fill, .c100.p78.bar:after, .c100.p77 .fill, .c100.p77.bar:after, .c100.p76 .fill, .c100.p76.bar:after, .c100.p75 .fill, .c100.p75.bar:after, .c100.p74 .fill, .c100.p74.bar:after, .c100.p73 .fill, .c100.p73.bar:after, .c100.p72 .fill, .c100.p72.bar:after, .c100.p71 .fill, .c100.p71.bar:after, .c100.p70 .fill, .c100.p70.bar:after, .c100.p69 .fill, .c100.p69.bar:after, .c100.p68 .fill, .c100.p68.bar:after, .c100.p67 .fill, .c100.p67.bar:after, .c100.p66 .fill, .c100.p66.bar:after, .c100.p65 .fill, .c100.p65.bar:after, .c100.p64 .fill, .c100.p64.bar:after, .c100.p63 .fill, .c100.p63.bar:after, .c100.p62 .fill, .c100.p62.bar:after, .c100.p61 .fill, .c100.p61.bar:after, .c100.p60 .fill, .c100.p60.bar:after, .c100.p59 .fill, .c100.p59.bar:after, .c100.p58 .fill, .c100.p58.bar:after, .c100.p57 .fill, .c100.p57.bar:after, .c100.p56 .fill, .c100.p56.bar:after, .c100.p55 .fill, .c100.p55.bar:after, .c100.p54 .fill, .c100.p54.bar:after, .c100.p53 .fill, .c100.p53.bar:after, .c100.p52 .fill, .c100.p52.bar:after, .c100.p51 .fill, .c100.p51.bar:after {
+  -webkit-transform: rotate(180deg);
+  -moz-transform: rotate(180deg);
+  -ms-transform: rotate(180deg);
+  -o-transform: rotate(180deg);
+  transform: rotate(180deg);
+}
+
+.c100 {
+  position: relative;
+  font-size: 120px;
+  width: 1em;
+  height: 1em;
+  border-radius: 50%;
+  float: left;
+  background-color: #ccc;
+}
+.c100 *,
+.c100 *:before,
+.c100 *:after {
+  -webkit-box-sizing: content-box;
+  -moz-box-sizing: content-box;
+  box-sizing: content-box;
+}
+.c100.center {
+  float: none;
+  margin: 0 auto;
+}
+.c100.big {
+  font-size: 240px;
+}
+.c100.small {
+  font-size: 80px;
+}
+.c100 > span {
+  position: absolute;
+  width: 100%;
+  z-index: 1;
+  left: 0;
+  top: 0;
+  width: 5em;
+  line-height: 5em;
+  font-size: 0.2em;
+  color: #ccc;
+  display: block;
+  text-align: center;
+  white-space: nowrap;
+  -webkit-transition-property: all;
+  -moz-transition-property: all;
+  -o-transition-property: all;
+  transition-property: all;
+  -webkit-transition-duration: 0.2s;
+  -moz-transition-duration: 0.2s;
+  -o-transition-duration: 0.2s;
+  transition-duration: 0.2s;
+  -webkit-transition-timing-function: ease-out;
+  -moz-transition-timing-function: ease-out;
+  -o-transition-timing-function: ease-out;
+  transition-timing-function: ease-out;
+}
+.c100:after {
+  position: absolute;
+  top: 0.08em;
+  left: 0.08em;
+  display: block;
+  content: " ";
+  border-radius: 50%;
+  background-color: #f5f5f5;
+  width: 0.84em;
+  height: 0.84em;
+  -webkit-transition-property: all;
+  -moz-transition-property: all;
+  -o-transition-property: all;
+  transition-property: all;
+  -webkit-transition-duration: 0.2s;
+  -moz-transition-duration: 0.2s;
+  -o-transition-duration: 0.2s;
+  transition-duration: 0.2s;
+  -webkit-transition-timing-function: ease-in;
+  -moz-transition-timing-function: ease-in;
+  -o-transition-timing-function: ease-in;
+  transition-timing-function: ease-in;
+}
+.c100 .slice {
+  position: absolute;
+  width: 1em;
+  height: 1em;
+  clip: rect(0em, 1em, 1em, 0.5em);
+}
+.c100.p1 .bar {
+  -webkit-transform: rotate(3.6deg);
+  -moz-transform: rotate(3.6deg);
+  -ms-transform: rotate(3.6deg);
+  -o-transform: rotate(3.6deg);
+  transform: rotate(3.6deg);
+}
+.c100.p2 .bar {
+  -webkit-transform: rotate(7.2deg);
+  -moz-transform: rotate(7.2deg);
+  -ms-transform: rotate(7.2deg);
+  -o-transform: rotate(7.2deg);
+  transform: rotate(7.2deg);
+}
+.c100.p3 .bar {
+  -webkit-transform: rotate(10.8deg);
+  -moz-transform: rotate(10.8deg);
+  -ms-transform: rotate(10.8deg);
+  -o-transform: rotate(10.8deg);
+  transform: rotate(10.8deg);
+}
+.c100.p4 .bar {
+  -webkit-transform: rotate(14.4deg);
+  -moz-transform: rotate(14.4deg);
+  -ms-transform: rotate(14.4deg);
+  -o-transform: rotate(14.4deg);
+  transform: rotate(14.4deg);
+}
+.c100.p5 .bar {
+  -webkit-transform: rotate(18deg);
+  -moz-transform: rotate(18deg);
+  -ms-transform: rotate(18deg);
+  -o-transform: rotate(18deg);
+  transform: rotate(18deg);
+}
+.c100.p6 .bar {
+  -webkit-transform: rotate(21.6deg);
+  -moz-transform: rotate(21.6deg);
+  -ms-transform: rotate(21.6deg);
+  -o-transform: rotate(21.6deg);
+  transform: rotate(21.6deg);
+}
+.c100.p7 .bar {
+  -webkit-transform: rotate(25.2deg);
+  -moz-transform: rotate(25.2deg);
+  -ms-transform: rotate(25.2deg);
+  -o-transform: rotate(25.2deg);
+  transform: rotate(25.2deg);
+}
+.c100.p8 .bar {
+  -webkit-transform: rotate(28.8deg);
+  -moz-transform: rotate(28.8deg);
+  -ms-transform: rotate(28.8deg);
+  -o-transform: rotate(28.8deg);
+  transform: rotate(28.8deg);
+}
+.c100.p9 .bar {
+  -webkit-transform: rotate(32.4deg);
+  -moz-transform: rotate(32.4deg);
+  -ms-transform: rotate(32.4deg);
+  -o-transform: rotate(32.4deg);
+  transform: rotate(32.4deg);
+}
+.c100.p10 .bar {
+  -webkit-transform: rotate(36deg);
+  -moz-transform: rotate(36deg);
+  -ms-transform: rotate(36deg);
+  -o-transform: rotate(36deg);
+  transform: rotate(36deg);
+}
+.c100.p11 .bar {
+  -webkit-transform: rotate(39.6deg);
+  -moz-transform: rotate(39.6deg);
+  -ms-transform: rotate(39.6deg);
+  -o-transform: rotate(39.6deg);
+  transform: rotate(39.6deg);
+}
+.c100.p12 .bar {
+  -webkit-transform: rotate(43.2deg);
+  -moz-transform: rotate(43.2deg);
+  -ms-transform: rotate(43.2deg);
+  -o-transform: rotate(43.2deg);
+  transform: rotate(43.2deg);
+}
+.c100.p13 .bar {
+  -webkit-transform: rotate(46.8deg);
+  -moz-transform: rotate(46.8deg);
+  -ms-transform: rotate(46.8deg);
+  -o-transform: rotate(46.8deg);
+  transform: rotate(46.8deg);
+}
+.c100.p14 .bar {
+  -webkit-transform: rotate(50.4deg);
+  -moz-transform: rotate(50.4deg);
+  -ms-transform: rotate(50.4deg);
+  -o-transform: rotate(50.4deg);
+  transform: rotate(50.4deg);
+}
+.c100.p15 .bar {
+  -webkit-transform: rotate(54deg);
+  -moz-transform: rotate(54deg);
+  -ms-transform: rotate(54deg);
+  -o-transform: rotate(54deg);
+  transform: rotate(54deg);
+}
+.c100.p16 .bar {
+  -webkit-transform: rotate(57.6deg);
+  -moz-transform: rotate(57.6deg);
+  -ms-transform: rotate(57.6deg);
+  -o-transform: rotate(57.6deg);
+  transform: rotate(57.6deg);
+}
+.c100.p17 .bar {
+  -webkit-transform: rotate(61.2deg);
+  -moz-transform: rotate(61.2deg);
+  -ms-transform: rotate(61.2deg);
+  -o-transform: rotate(61.2deg);
+  transform: rotate(61.2deg);
+}
+.c100.p18 .bar {
+  -webkit-transform: rotate(64.8deg);
+  -moz-transform: rotate(64.8deg);
+  -ms-transform: rotate(64.8deg);
+  -o-transform: rotate(64.8deg);
+  transform: rotate(64.8deg);
+}
+.c100.p19 .bar {
+  -webkit-transform: rotate(68.4deg);
+  -moz-transform: rotate(68.4deg);
+  -ms-transform: rotate(68.4deg);
+  -o-transform: rotate(68.4deg);
+  transform: rotate(68.4deg);
+}
+.c100.p20 .bar {
+  -webkit-transform: rotate(72deg);
+  -moz-transform: rotate(72deg);
+  -ms-transform: rotate(72deg);
+  -o-transform: rotate(72deg);
+  transform: rotate(72deg);
+}
+.c100.p21 .bar {
+  -webkit-transform: rotate(75.6deg);
+  -moz-transform: rotate(75.6deg);
+  -ms-transform: rotate(75.6deg);
+  -o-transform: rotate(75.6deg);
+  transform: rotate(75.6deg);
+}
+.c100.p22 .bar {
+  -webkit-transform: rotate(79.2deg);
+  -moz-transform: rotate(79.2deg);
+  -ms-transform: rotate(79.2deg);
+  -o-transform: rotate(79.2deg);
+  transform: rotate(79.2deg);
+}
+.c100.p23 .bar {
+  -webkit-transform: rotate(82.8deg);
+  -moz-transform: rotate(82.8deg);
+  -ms-transform: rotate(82.8deg);
+  -o-transform: rotate(82.8deg);
+  transform: rotate(82.8deg);
+}
+.c100.p24 .bar {
+  -webkit-transform: rotate(86.4deg);
+  -moz-transform: rotate(86.4deg);
+  -ms-transform: rotate(86.4deg);
+  -o-transform: rotate(86.4deg);
+  transform: rotate(86.4deg);
+}
+.c100.p25 .bar {
+  -webkit-transform: rotate(90deg);
+  -moz-transform: rotate(90deg);
+  -ms-transform: rotate(90deg);
+  -o-transform: rotate(90deg);
+  transform: rotate(90deg);
+}
+.c100.p26 .bar {
+  -webkit-transform: rotate(93.6deg);
+  -moz-transform: rotate(93.6deg);
+  -ms-transform: rotate(93.6deg);
+  -o-transform: rotate(93.6deg);
+  transform: rotate(93.6deg);
+}
+.c100.p27 .bar {
+  -webkit-transform: rotate(97.2deg);
+  -moz-transform: rotate(97.2deg);
+  -ms-transform: rotate(97.2deg);
+  -o-transform: rotate(97.2deg);
+  transform: rotate(97.2deg);
+}
+.c100.p28 .bar {
+  -webkit-transform: rotate(100.8deg);
+  -moz-transform: rotate(100.8deg);
+  -ms-transform: rotate(100.8deg);
+  -o-transform: rotate(100.8deg);
+  transform: rotate(100.8deg);
+}
+.c100.p29 .bar {
+  -webkit-transform: rotate(104.4deg);
+  -moz-transform: rotate(104.4deg);
+  -ms-transform: rotate(104.4deg);
+  -o-transform: rotate(104.4deg);
+  transform: rotate(104.4deg);
+}
+.c100.p30 .bar {
+  -webkit-transform: rotate(108deg);
+  -moz-transform: rotate(108deg);
+  -ms-transform: rotate(108deg);
+  -o-transform: rotate(108deg);
+  transform: rotate(108deg);
+}
+.c100.p31 .bar {
+  -webkit-transform: rotate(111.6deg);
+  -moz-transform: rotate(111.6deg);
+  -ms-transform: rotate(111.6deg);
+  -o-transform: rotate(111.6deg);
+  transform: rotate(111.6deg);
+}
+.c100.p32 .bar {
+  -webkit-transform: rotate(115.2deg);
+  -moz-transform: rotate(115.2deg);
+  -ms-transform: rotate(115.2deg);
+  -o-transform: rotate(115.2deg);
+  transform: rotate(115.2deg);
+}
+.c100.p33 .bar {
+  -webkit-transform: rotate(118.8deg);
+  -moz-transform: rotate(118.8deg);
+  -ms-transform: rotate(118.8deg);
+  -o-transform: rotate(118.8deg);
+  transform: rotate(118.8deg);
+}
+.c100.p34 .bar {
+  -webkit-transform: rotate(122.4deg);
+  -moz-transform: rotate(122.4deg);
+  -ms-transform: rotate(122.4deg);
+  -o-transform: rotate(122.4deg);
+  transform: rotate(122.4deg);
+}
+.c100.p35 .bar {
+  -webkit-transform: rotate(126deg);
+  -moz-transform: rotate(126deg);
+  -ms-transform: rotate(126deg);
+  -o-transform: rotate(126deg);
+  transform: rotate(126deg);
+}
+.c100.p36 .bar {
+  -webkit-transform: rotate(129.6deg);
+  -moz-transform: rotate(129.6deg);
+  -ms-transform: rotate(129.6deg);
+  -o-transform: rotate(129.6deg);
+  transform: rotate(129.6deg);
+}
+.c100.p37 .bar {
+  -webkit-transform: rotate(133.2deg);
+  -moz-transform: rotate(133.2deg);
+  -ms-transform: rotate(133.2deg);
+  -o-transform: rotate(133.2deg);
+  transform: rotate(133.2deg);
+}
+.c100.p38 .bar {
+  -webkit-transform: rotate(136.8deg);
+  -moz-transform: rotate(136.8deg);
+  -ms-transform: rotate(136.8deg);
+  -o-transform: rotate(136.8deg);
+  transform: rotate(136.8deg);
+}
+.c100.p39 .bar {
+  -webkit-transform: rotate(140.4deg);
+  -moz-transform: rotate(140.4deg);
+  -ms-transform: rotate(140.4deg);
+  -o-transform: rotate(140.4deg);
+  transform: rotate(140.4deg);
+}
+.c100.p40 .bar {
+  -webkit-transform: rotate(144deg);
+  -moz-transform: rotate(144deg);
+  -ms-transform: rotate(144deg);
+  -o-transform: rotate(144deg);
+  transform: rotate(144deg);
+}
+.c100.p41 .bar {
+  -webkit-transform: rotate(147.6deg);
+  -moz-transform: rotate(147.6deg);
+  -ms-transform: rotate(147.6deg);
+  -o-transform: rotate(147.6deg);
+  transform: rotate(147.6deg);
+}
+.c100.p42 .bar {
+  -webkit-transform: rotate(151.2deg);
+  -moz-transform: rotate(151.2deg);
+  -ms-transform: rotate(151.2deg);
+  -o-transform: rotate(151.2deg);
+  transform: rotate(151.2deg);
+}
+.c100.p43 .bar {
+  -webkit-transform: rotate(154.8deg);
+  -moz-transform: rotate(154.8deg);
+  -ms-transform: rotate(154.8deg);
+  -o-transform: rotate(154.8deg);
+  transform: rotate(154.8deg);
+}
+.c100.p44 .bar {
+  -webkit-transform: rotate(158.4deg);
+  -moz-transform: rotate(158.4deg);
+  -ms-transform: rotate(158.4deg);
+  -o-transform: rotate(158.4deg);
+  transform: rotate(158.4deg);
+}
+.c100.p45 .bar {
+  -webkit-transform: rotate(162deg);
+  -moz-transform: rotate(162deg);
+  -ms-transform: rotate(162deg);
+  -o-transform: rotate(162deg);
+  transform: rotate(162deg);
+}
+.c100.p46 .bar {
+  -webkit-transform: rotate(165.6deg);
+  -moz-transform: rotate(165.6deg);
+  -ms-transform: rotate(165.6deg);
+  -o-transform: rotate(165.6deg);
+  transform: rotate(165.6deg);
+}
+.c100.p47 .bar {
+  -webkit-transform: rotate(169.2deg);
+  -moz-transform: rotate(169.2deg);
+  -ms-transform: rotate(169.2deg);
+  -o-transform: rotate(169.2deg);
+  transform: rotate(169.2deg);
+}
+.c100.p48 .bar {
+  -webkit-transform: rotate(172.8deg);
+  -moz-transform: rotate(172.8deg);
+  -ms-transform: rotate(172.8deg);
+  -o-transform: rotate(172.8deg);
+  transform: rotate(172.8deg);
+}
+.c100.p49 .bar {
+  -webkit-transform: rotate(176.4deg);
+  -moz-transform: rotate(176.4deg);
+  -ms-transform: rotate(176.4deg);
+  -o-transform: rotate(176.4deg);
+  transform: rotate(176.4deg);
+}
+.c100.p50 .bar {
+  -webkit-transform: rotate(180deg);
+  -moz-transform: rotate(180deg);
+  -ms-transform: rotate(180deg);
+  -o-transform: rotate(180deg);
+  transform: rotate(180deg);
+}
+.c100.p51 .bar {
+  -webkit-transform: rotate(183.6deg);
+  -moz-transform: rotate(183.6deg);
+  -ms-transform: rotate(183.6deg);
+  -o-transform: rotate(183.6deg);
+  transform: rotate(183.6deg);
+}
+.c100.p52 .bar {
+  -webkit-transform: rotate(187.2deg);
+  -moz-transform: rotate(187.2deg);
+  -ms-transform: rotate(187.2deg);
+  -o-transform: rotate(187.2deg);
+  transform: rotate(187.2deg);
+}
+.c100.p53 .bar {
+  -webkit-transform: rotate(190.8deg);
+  -moz-transform: rotate(190.8deg);
+  -ms-transform: rotate(190.8deg);
+  -o-transform: rotate(190.8deg);
+  transform: rotate(190.8deg);
+}
+.c100.p54 .bar {
+  -webkit-transform: rotate(194.4deg);
+  -moz-transform: rotate(194.4deg);
+  -ms-transform: rotate(194.4deg);
+  -o-transform: rotate(194.4deg);
+  transform: rotate(194.4deg);
+}
+.c100.p55 .bar {
+  -webkit-transform: rotate(198deg);
+  -moz-transform: rotate(198deg);
+  -ms-transform: rotate(198deg);
+  -o-transform: rotate(198deg);
+  transform: rotate(198deg);
+}
+.c100.p56 .bar {
+  -webkit-transform: rotate(201.6deg);
+  -moz-transform: rotate(201.6deg);
+  -ms-transform: rotate(201.6deg);
+  -o-transform: rotate(201.6deg);
+  transform: rotate(201.6deg);
+}
+.c100.p57 .bar {
+  -webkit-transform: rotate(205.2deg);
+  -moz-transform: rotate(205.2deg);
+  -ms-transform: rotate(205.2deg);
+  -o-transform: rotate(205.2deg);
+  transform: rotate(205.2deg);
+}
+.c100.p58 .bar {
+  -webkit-transform: rotate(208.8deg);
+  -moz-transform: rotate(208.8deg);
+  -ms-transform: rotate(208.8deg);
+  -o-transform: rotate(208.8deg);
+  transform: rotate(208.8deg);
+}
+.c100.p59 .bar {
+  -webkit-transform: rotate(212.4deg);
+  -moz-transform: rotate(212.4deg);
+  -ms-transform: rotate(212.4deg);
+  -o-transform: rotate(212.4deg);
+  transform: rotate(212.4deg);
+}
+.c100.p60 .bar {
+  -webkit-transform: rotate(216deg);
+  -moz-transform: rotate(216deg);
+  -ms-transform: rotate(216deg);
+  -o-transform: rotate(216deg);
+  transform: rotate(216deg);
+}
+.c100.p61 .bar {
+  -webkit-transform: rotate(219.6deg);
+  -moz-transform: rotate(219.6deg);
+  -ms-transform: rotate(219.6deg);
+  -o-transform: rotate(219.6deg);
+  transform: rotate(219.6deg);
+}
+.c100.p62 .bar {
+  -webkit-transform: rotate(223.2deg);
+  -moz-transform: rotate(223.2deg);
+  -ms-transform: rotate(223.2deg);
+  -o-transform: rotate(223.2deg);
+  transform: rotate(223.2deg);
+}
+.c100.p63 .bar {
+  -webkit-transform: rotate(226.8deg);
+  -moz-transform: rotate(226.8deg);
+  -ms-transform: rotate(226.8deg);
+  -o-transform: rotate(226.8deg);
+  transform: rotate(226.8deg);
+}
+.c100.p64 .bar {
+  -webkit-transform: rotate(230.4deg);
+  -moz-transform: rotate(230.4deg);
+  -ms-transform: rotate(230.4deg);
+  -o-transform: rotate(230.4deg);
+  transform: rotate(230.4deg);
+}
+.c100.p65 .bar {
+  -webkit-transform: rotate(234deg);
+  -moz-transform: rotate(234deg);
+  -ms-transform: rotate(234deg);
+  -o-transform: rotate(234deg);
+  transform: rotate(234deg);
+}
+.c100.p66 .bar {
+  -webkit-transform: rotate(237.6deg);
+  -moz-transform: rotate(237.6deg);
+  -ms-transform: rotate(237.6deg);
+  -o-transform: rotate(237.6deg);
+  transform: rotate(237.6deg);
+}
+.c100.p67 .bar {
+  -webkit-transform: rotate(241.2deg);
+  -moz-transform: rotate(241.2deg);
+  -ms-transform: rotate(241.2deg);
+  -o-transform: rotate(241.2deg);
+  transform: rotate(241.2deg);
+}
+.c100.p68 .bar {
+  -webkit-transform: rotate(244.8deg);
+  -moz-transform: rotate(244.8deg);
+  -ms-transform: rotate(244.8deg);
+  -o-transform: rotate(244.8deg);
+  transform: rotate(244.8deg);
+}
+.c100.p69 .bar {
+  -webkit-transform: rotate(248.4deg);
+  -moz-transform: rotate(248.4deg);
+  -ms-transform: rotate(248.4deg);
+  -o-transform: rotate(248.4deg);
+  transform: rotate(248.4deg);
+}
+.c100.p70 .bar {
+  -webkit-transform: rotate(252deg);
+  -moz-transform: rotate(252deg);
+  -ms-transform: rotate(252deg);
+  -o-transform: rotate(252deg);
+  transform: rotate(252deg);
+}
+.c100.p71 .bar {
+  -webkit-transform: rotate(255.6deg);
+  -moz-transform: rotate(255.6deg);
+  -ms-transform: rotate(255.6deg);
+  -o-transform: rotate(255.6deg);
+  transform: rotate(255.6deg);
+}
+.c100.p72 .bar {
+  -webkit-transform: rotate(259.2deg);
+  -moz-transform: rotate(259.2deg);
+  -ms-transform: rotate(259.2deg);
+  -o-transform: rotate(259.2deg);
+  transform: rotate(259.2deg);
+}
+.c100.p73 .bar {
+  -webkit-transform: rotate(262.8deg);
+  -moz-transform: rotate(262.8deg);
+  -ms-transform: rotate(262.8deg);
+  -o-transform: rotate(262.8deg);
+  transform: rotate(262.8deg);
+}
+.c100.p74 .bar {
+  -webkit-transform: rotate(266.4deg);
+  -moz-transform: rotate(266.4deg);
+  -ms-transform: rotate(266.4deg);
+  -o-transform: rotate(266.4deg);
+  transform: rotate(266.4deg);
+}
+.c100.p75 .bar {
+  -webkit-transform: rotate(270deg);
+  -moz-transform: rotate(270deg);
+  -ms-transform: rotate(270deg);
+  -o-transform: rotate(270deg);
+  transform: rotate(270deg);
+}
+.c100.p76 .bar {
+  -webkit-transform: rotate(273.6deg);
+  -moz-transform: rotate(273.6deg);
+  -ms-transform: rotate(273.6deg);
+  -o-transform: rotate(273.6deg);
+  transform: rotate(273.6deg);
+}
+.c100.p77 .bar {
+  -webkit-transform: rotate(277.2deg);
+  -moz-transform: rotate(277.2deg);
+  -ms-transform: rotate(277.2deg);
+  -o-transform: rotate(277.2deg);
+  transform: rotate(277.2deg);
+}
+.c100.p78 .bar {
+  -webkit-transform: rotate(280.8deg);
+  -moz-transform: rotate(280.8deg);
+  -ms-transform: rotate(280.8deg);
+  -o-transform: rotate(280.8deg);
+  transform: rotate(280.8deg);
+}
+.c100.p79 .bar {
+  -webkit-transform: rotate(284.4deg);
+  -moz-transform: rotate(284.4deg);
+  -ms-transform: rotate(284.4deg);
+  -o-transform: rotate(284.4deg);
+  transform: rotate(284.4deg);
+}
+.c100.p80 .bar {
+  -webkit-transform: rotate(288deg);
+  -moz-transform: rotate(288deg);
+  -ms-transform: rotate(288deg);
+  -o-transform: rotate(288deg);
+  transform: rotate(288deg);
+}
+.c100.p81 .bar {
+  -webkit-transform: rotate(291.6deg);
+  -moz-transform: rotate(291.6deg);
+  -ms-transform: rotate(291.6deg);
+  -o-transform: rotate(291.6deg);
+  transform: rotate(291.6deg);
+}
+.c100.p82 .bar {
+  -webkit-transform: rotate(295.2deg);
+  -moz-transform: rotate(295.2deg);
+  -ms-transform: rotate(295.2deg);
+  -o-transform: rotate(295.2deg);
+  transform: rotate(295.2deg);
+}
+.c100.p83 .bar {
+  -webkit-transform: rotate(298.8deg);
+  -moz-transform: rotate(298.8deg);
+  -ms-transform: rotate(298.8deg);
+  -o-transform: rotate(298.8deg);
+  transform: rotate(298.8deg);
+}
+.c100.p84 .bar {
+  -webkit-transform: rotate(302.4deg);
+  -moz-transform: rotate(302.4deg);
+  -ms-transform: rotate(302.4deg);
+  -o-transform: rotate(302.4deg);
+  transform: rotate(302.4deg);
+}
+.c100.p85 .bar {
+  -webkit-transform: rotate(306deg);
+  -moz-transform: rotate(306deg);
+  -ms-transform: rotate(306deg);
+  -o-transform: rotate(306deg);
+  transform: rotate(306deg);
+}
+.c100.p86 .bar {
+  -webkit-transform: rotate(309.6deg);
+  -moz-transform: rotate(309.6deg);
+  -ms-transform: rotate(309.6deg);
+  -o-transform: rotate(309.6deg);
+  transform: rotate(309.6deg);
+}
+.c100.p87 .bar {
+  -webkit-transform: rotate(313.2deg);
+  -moz-transform: rotate(313.2deg);
+  -ms-transform: rotate(313.2deg);
+  -o-transform: rotate(313.2deg);
+  transform: rotate(313.2deg);
+}
+.c100.p88 .bar {
+  -webkit-transform: rotate(316.8deg);
+  -moz-transform: rotate(316.8deg);
+  -ms-transform: rotate(316.8deg);
+  -o-transform: rotate(316.8deg);
+  transform: rotate(316.8deg);
+}
+.c100.p89 .bar {
+  -webkit-transform: rotate(320.4deg);
+  -moz-transform: rotate(320.4deg);
+  -ms-transform: rotate(320.4deg);
+  -o-transform: rotate(320.4deg);
+  transform: rotate(320.4deg);
+}
+.c100.p90 .bar {
+  -webkit-transform: rotate(324deg);
+  -moz-transform: rotate(324deg);
+  -ms-transform: rotate(324deg);
+  -o-transform: rotate(324deg);
+  transform: rotate(324deg);
+}
+.c100.p91 .bar {
+  -webkit-transform: rotate(327.6deg);
+  -moz-transform: rotate(327.6deg);
+  -ms-transform: rotate(327.6deg);
+  -o-transform: rotate(327.6deg);
+  transform: rotate(327.6deg);
+}
+.c100.p92 .bar {
+  -webkit-transform: rotate(331.2deg);
+  -moz-transform: rotate(331.2deg);
+  -ms-transform: rotate(331.2deg);
+  -o-transform: rotate(331.2deg);
+  transform: rotate(331.2deg);
+}
+.c100.p93 .bar {
+  -webkit-transform: rotate(334.8deg);
+  -moz-transform: rotate(334.8deg);
+  -ms-transform: rotate(334.8deg);
+  -o-transform: rotate(334.8deg);
+  transform: rotate(334.8deg);
+}
+.c100.p94 .bar {
+  -webkit-transform: rotate(338.4deg);
+  -moz-transform: rotate(338.4deg);
+  -ms-transform: rotate(338.4deg);
+  -o-transform: rotate(338.4deg);
+  transform: rotate(338.4deg);
+}
+.c100.p95 .bar {
+  -webkit-transform: rotate(342deg);
+  -moz-transform: rotate(342deg);
+  -ms-transform: rotate(342deg);
+  -o-transform: rotate(342deg);
+  transform: rotate(342deg);
+}
+.c100.p96 .bar {
+  -webkit-transform: rotate(345.6deg);
+  -moz-transform: rotate(345.6deg);
+  -ms-transform: rotate(345.6deg);
+  -o-transform: rotate(345.6deg);
+  transform: rotate(345.6deg);
+}
+.c100.p97 .bar {
+  -webkit-transform: rotate(349.2deg);
+  -moz-transform: rotate(349.2deg);
+  -ms-transform: rotate(349.2deg);
+  -o-transform: rotate(349.2deg);
+  transform: rotate(349.2deg);
+}
+.c100.p98 .bar {
+  -webkit-transform: rotate(352.8deg);
+  -moz-transform: rotate(352.8deg);
+  -ms-transform: rotate(352.8deg);
+  -o-transform: rotate(352.8deg);
+  transform: rotate(352.8deg);
+}
+.c100.p99 .bar {
+  -webkit-transform: rotate(356.4deg);
+  -moz-transform: rotate(356.4deg);
+  -ms-transform: rotate(356.4deg);
+  -o-transform: rotate(356.4deg);
+  transform: rotate(356.4deg);
+}
+.c100.p100 .bar {
+  -webkit-transform: rotate(360deg);
+  -moz-transform: rotate(360deg);
+  -ms-transform: rotate(360deg);
+  -o-transform: rotate(360deg);
+  transform: rotate(360deg);
+}
+.c100:hover {
+  cursor: default;
+}
+.c100:hover > span {
+  width: 3.33em;
+  line-height: 3.33em;
+  font-size: 0.3em;
+  color: #307bbb;
+}
+.c100:hover:after {
+  top: 0.04em;
+  left: 0.04em;
+  width: 0.92em;
+  height: 0.92em;
+}
+.c100.dark {
+  background-color: #0077c2;
+}
+.c100.dark .bar,
+.c100.dark .fill {
+  border-color: #80d6ff !important;
+}
+.c100.dark > span {
+  color: #0077c2;
+}
+.c100.dark:after {
+  background-color: #111;
+}
+.c100.dark:hover > span {
+  color: #80d6ff;
+}
+.c100.error {
+  background-color: #770000;
+}
+.c100.error .bar,
+.c100.error .fill {
+  border-color: #dd0000 !important;
+}
+.c100.error:hover > span {
+  color: #dd0000;
+}
+.c100.error > span {
+  color: #770000;
+}
+
 * {
   margin: 0;
   padding: 0;
@@ -141,20 +2014,24 @@ button, a.button {
   display: inline-block;
   cursor: pointer;
 }
+button + button, button + a.button, a.button + button, a.button + a.button {
+  margin-left: 12px;
+}
 
-input, button, textarea {
-  border: 1px solid #0077c2;
-  background-color: #0077c2;
+input, textarea {
+  border: none;
+  background-color: #111;
   color: white;
   font-size: 1rem;
   display: inline-block;
   padding: 0.25rem;
 }
-input::placeholder, button::placeholder, textarea::placeholder {
+input::placeholder, textarea::placeholder {
   color: #999;
 }
 
-form input, form button, form textarea {
+form input, form textarea {
+  z-index: 20;
   box-shadow: 0px 2px 6px 0.5px rgba(0, 0, 0, 0.7);
   padding: 0.75rem;
   margin-bottom: 12px;
@@ -165,10 +2042,14 @@ form textarea {
   height: 50vh;
 }
 form label {
+  z-index: 30;
+  box-shadow: 0px 2px 6px 0.5px rgba(0, 0, 0, 0.7);
+  background-color: #0077c2;
+  width: 100%;
+  line-height: 48px;
   display: inline-block;
   padding-left: 12px;
   margin-top: 16px;
-  margin-bottom: 8px;
 }
 
 .error-list ul li {
@@ -187,7 +2068,7 @@ form label {
   grid-template-columns: 1fr 1fr;
 }
 
-.test_case {
+.test-case {
   outline: none;
   box-shadow: 0px 2px 6px 0.5px rgba(0, 0, 0, 0.5);
   resize: none;
@@ -197,21 +2078,27 @@ form label {
   background-color: #111;
   color: #fff;
 }
-.test_case:first-child {
+.test-case:first-child {
   border-right: 2px solid #0077c2;
 }
 
-.option-line {
+.header-line, .option-line {
   box-shadow: 0px 2px 6px 0.5px rgba(0, 0, 0, 0.5);
-  display: grid;
-  grid-template-columns: 1fr 1fr;
   background-color: #0077c2;
   padding: 4px 12px 4px;
+  margin-top: 12px;
+  display: inline-block;
+  width: 100%;
 }
-.option-line > * {
+.header-line > *, .option-line > * {
   line-height: 44px;
   display: inline-block;
 }
+
+.option-line {
+  display: grid;
+  grid-template-columns: 1fr 1fr;
+}
 .option-line > *:last-child {
   text-align: right;
 }
index 200e023ed1d07c8966cd48cf67764ebe8970e2da..7d0bbc64e92aabaab4af8b59398949bd1f20d02a 100644 (file)
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["../scss/_navbar.scss","../scss/_vars.scss","../scss/_utils.scss","../scss/problem/_sidebar.scss","../scss/core.scss","../scss/_elevate.scss"],"names":[],"mappings":"AAAA;EACC;EACA;EACA,YCIc;EDHd,QCgBe;EDff;EAEA;EAEA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;EAEA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA,kBClCY;EDoCZ;;AAEA;EACC;EACA;;;AE/CJ;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;ACnBD;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EAEA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAIF;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EAEA;EACA;EACA;EAEA;EACA;;;AC7CF;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EAEA;EACA;EACA;EACA;;;AAGD;EC/BI;EDiCH;EACA,kBH5Bc;EG6Bd;EAEA;EACA;EACA;EACA;EAEA;;;AAGD;EACC;EACA,kBHzCc;EG0Cd;EAEA;EACA;EACA;;AAEA;EACC;;;AAKD;EC5DG;ED+DF;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;EACA;EACA;EACA;;;AAOD;ECpFG;EDuFF;EACA,kBH9Ee;EG+Ef;EACA;;AAEA;EACC,kBHvFY;;;AG4Ff;EACC;EACA;;;AAGD;EAKC;EC5GG;ED+GH;EACA;EAEA;EACA;EACA;EACA,OHtHO;;AGyGP;EACC;;;AAeF;ECxHI;ED2HH;EACA;EACA,kBHvHc;EGwHd;;AAEA;EACC;EACA;;AAGD;EACC;;;AAKD;EACC;EACA,kBHzIQ;EG0IR;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA","file":"core.css"}
\ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["../scss/_navbar.scss","../scss/_vars.scss","../scss/_utils.scss","../scss/_elevate.scss","../scss/problem/_sidebar.scss","../scss/vendor/circle.scss","../scss/vendor/_mixins.scss","../scss/vendor/_variables.scss","../scss/core.scss"],"names":[],"mappings":"AAAA;EACC;EACA;EACA,YCIc;EDHd,QCoBe;EDnBf;EAEA;EAEA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;EACA;;AAIF;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;EAEA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA,kBClCY;EDoCZ;;AAEA;EACC;EACA;;;AE/CJ;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAIA;EACC;EACA;;;AAFD;EACC;EACA;;;AAFD;EACC;EACA;;;AAIF;EACC;EACA;;AAGC;EACC;;AAGD;EACC;;;AAKH;EC3CI;ED6CH;;AAGC;EAEC;;AAIF;EAGC;;;AAIF;EACC;EACA;;;AAGD;EACC;;AAEA;EAAW;;AACX;EAAW;;AACX;EAAW;;AACX;EAAW;;AAEC;EAAW,kBDtEd;;ACuES;EAAW,kBDtEd;;ACuEE;EAAW,kBDtEd;;ACwEA;EAAW,kBDtEd;;ACuES;EAAW,kBDtEd;;ACuEE;EAAW,kBDtEd;;ACwEN;EAAW,kBDtEd;;ACuES;EAAW,kBDtEd;;ACuEE;EAAW,kBDtEd;;;ACyEb;ECvFI;EDyFH;;AAEA;EACC;;;AAIF;EACC;;;AAGD;EACC;;;AAIA;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAVf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AAEf;EAAa;;;AACb;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AACf;EAAe;;;AEpHhB;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EAEA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAIF;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EAEA;EACA;EACA;EAEA;EACA;;;AC9CF;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;ECNA;EACA;EACA;EACA;EACA;;;ADMJ;ECVI;EACA;EACA;EACA;EACA;;;ADWJ;EAMI;EACA;EACA;EACA;EACA;EACA;EACA,kBEjCc;;AFsBd;AAAA;AAAA;ECRA,oBDWwB;ECVxB,iBDUwB;ECTxB,YDSwB;;AAUxB;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OEzDU;EF0DV;EACA;EACA;ECzCJ,6BD0CiC;ECzCjC,0BDyCiC;ECxCjC,wBDwCiC;ECvCjC,qBDuCiC;ECnCjC,6BDoCiC;ECnCjC,0BDmCiC;EClCjC,wBDkCiC;ECjCjC,qBDiCiC;EC7BjC,oCD8BwC;EC7BxC,iCD6BwC;EC5BxC,+BD4BwC;EC3BxC,4BD2BwC;;AAGxC;EACI;EACA,KExEO;EFyEP,MEzEO;EF0EP;EACA;EACA;EACA,kBExEG;EFyEH;EACA;ECxDJ,6BDyDiC;ECxDjC,0BDwDiC;ECvDjC,wBDuDiC;ECtDjC,qBDsDiC;EClDjC,6BDmDiC;EClDjC,0BDkDiC;ECjDjC,wBDiDiC;EChDjC,qBDgDiC;EC5CjC,oCD6CwC;EC5CxC,iCD4CwC;EC3CxC,+BD2CwC;EC1CxC,4BD0CwC;;AAGxC;EACI;EACA;EACA;EACA;;AAuBA;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADkGI;ECtGJ;EACA;EACA;EACA;EACA;;ADwGA;EACI;;AACA;EACI;EACA;EACA;EACA,OEzHI;;AF2HR;EACI,KE9HS;EF+HT,ME/HS;EFgIT;EACA;;AAIR;EACI,kBJhIO;;AIiIP;AAAA;EAEI;;AAEJ;EACI,OJtIG;;AIwIP;EACI,kBErII;;AFwIJ;EACI,OJ9IA;;AIkJZ;EACF,kBJ1IW;;AI2IL;AAAA;EAEI;;AAGA;EACI,OJnJR;;AIsJN;EACC,OJrJU;;;AOPb;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EAEA;EACA;EACA;EACA;;;AAGD;ELhCI;EKkCH;EACA,kBP7Bc;EO8Bd;EAEA;EACA;EACA;EACA;EAEA;;AAEA;EACC;;;AAIF;EACC;EACA;EACA;EAEA;EACA;EACA;;AAEA;EACC;;;AAKD;EACC;ELlEE;EKqEF;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;ELhFE;EKkFF,kBP5Ea;EO6Eb;EACA;EAEA;EACA;EACA;;;AAOD;EL/FG;EKkGF;EACA,kBPzFe;EO0Ff;EACA;;AAEA;EACC,kBPlGY;;;AOuGf;EACC;EACA;;;AAGD;EAKC;ELvHG;EK0HH;EACA;EAEA;EACA;EACA;EACA,OPjIO;;AOoHP;EACC;;;AAeF;ELnII;EKsIH,kBPhIc;EOiId;EACA;EACA;EACA;;AAEA;EACC;EACA;;;AAIF;EAGC;EACA;;AAEA;EACC;;;AAKD;EACC;EACA,kBP5JQ;EO6JR;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA","file":"core.css"}
\ No newline at end of file
diff --git a/codebox/static/css/highlight/a11y-dark.css b/codebox/static/css/highlight/a11y-dark.css
new file mode 100644 (file)
index 0000000..b93b742
--- /dev/null
@@ -0,0 +1,99 @@
+/* a11y-dark theme */
+/* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */
+/* @author: ericwbailey */
+
+/* Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #d4d0ab;
+}
+
+/* Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-deletion {
+  color: #ffa07a;
+}
+
+/* Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-meta,
+.hljs-link {
+  color: #f5ab35;
+}
+
+/* Yellow */
+.hljs-attribute {
+  color: #ffd700;
+}
+
+/* Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+  color: #abe338;
+}
+
+/* Blue */
+.hljs-title,
+.hljs-section {
+  color: #00e0e0;
+}
+
+/* Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #dcc6e0;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #2b2b2b;
+  color: #f8f8f2;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
+
+@media screen and (-ms-high-contrast: active) {
+  .hljs-addition,
+  .hljs-attribute,
+  .hljs-built_in,
+  .hljs-builtin-name,
+  .hljs-bullet,
+  .hljs-comment,
+  .hljs-link,
+  .hljs-literal,
+  .hljs-meta,
+  .hljs-number,
+  .hljs-params,
+  .hljs-string,
+  .hljs-symbol,
+  .hljs-type,
+  .hljs-quote {
+        color: highlight;
+    }
+
+    .hljs-keyword,
+    .hljs-selector-tag {
+        font-weight: bold;
+    }
+}
diff --git a/codebox/static/css/highlight/a11y-light.css b/codebox/static/css/highlight/a11y-light.css
new file mode 100644 (file)
index 0000000..f1bf8f3
--- /dev/null
@@ -0,0 +1,99 @@
+/* a11y-light theme */
+/* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */
+/* @author: ericwbailey */
+
+/* Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #696969;
+}
+
+/* Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-deletion {
+  color: #d91e18;
+}
+
+/* Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-meta,
+.hljs-link {
+  color: #aa5d00;
+}
+
+/* Yellow */
+.hljs-attribute {
+  color: #aa5d00;
+}
+
+/* Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+  color: #008000;
+}
+
+/* Blue */
+.hljs-title,
+.hljs-section {
+  color: #007faa;
+}
+
+/* Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #7928a1;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #fefefe;
+  color: #545454;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
+
+@media screen and (-ms-high-contrast: active) {
+  .hljs-addition,
+  .hljs-attribute,
+  .hljs-built_in,
+  .hljs-builtin-name,
+  .hljs-bullet,
+  .hljs-comment,
+  .hljs-link,
+  .hljs-literal,
+  .hljs-meta,
+  .hljs-number,
+  .hljs-params,
+  .hljs-string,
+  .hljs-symbol,
+  .hljs-type,
+  .hljs-quote {
+        color: highlight;
+    }
+
+    .hljs-keyword,
+    .hljs-selector-tag {
+        font-weight: bold;
+    }
+}
diff --git a/codebox/static/css/highlight/agate.css b/codebox/static/css/highlight/agate.css
new file mode 100644 (file)
index 0000000..8d64547
--- /dev/null
@@ -0,0 +1,108 @@
+/*!
+ * Agate by Taufik Nurrohman <https://github.com/tovic>
+ * ----------------------------------------------------
+ *
+ * #ade5fc
+ * #a2fca2
+ * #c6b4f0
+ * #d36363
+ * #fcc28c
+ * #fc9b9b
+ * #ffa
+ * #fff
+ * #333
+ * #62c8f3
+ * #888
+ *
+ */
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #333;
+  color: white;
+}
+
+.hljs-name,
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-code,
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-tag {
+  color: #62c8f3;
+}
+
+.hljs-variable,
+.hljs-template-variable,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #ade5fc;
+}
+
+.hljs-string,
+.hljs-bullet {
+  color: #a2fca2;
+}
+
+.hljs-type,
+.hljs-title,
+.hljs-section,
+.hljs-attribute,
+.hljs-quote,
+.hljs-built_in,
+.hljs-builtin-name {
+  color: #ffa;
+}
+
+.hljs-number,
+.hljs-symbol,
+.hljs-bullet {
+  color: #d36363;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal {
+  color: #fcc28c;
+}
+
+.hljs-comment,
+.hljs-deletion,
+.hljs-code {
+  color: #888;
+}
+
+.hljs-regexp,
+.hljs-link {
+  color: #c6b4f0;
+}
+
+.hljs-meta {
+  color: #fc9b9b;
+}
+
+.hljs-deletion {
+  background-color: #fc9b9b;
+  color: #333;
+}
+
+.hljs-addition {
+  background-color: #a2fca2;
+  color: #333;
+}
+
+.hljs a {
+  color: inherit;
+}
+
+.hljs a:focus,
+.hljs a:hover {
+  color: inherit;
+  text-decoration: underline;
+}
diff --git a/codebox/static/css/highlight/an-old-hope.css b/codebox/static/css/highlight/an-old-hope.css
new file mode 100644 (file)
index 0000000..a6d56f4
--- /dev/null
@@ -0,0 +1,89 @@
+/* 
+
+An Old Hope â€“ Star Wars Syntax (c) Gustavo Costa <gusbemacbe@gmail.com>
+Original theme - Ocean Dark Theme â€“ by https://github.com/gavsiu
+Based on Jesse Leite's Atom syntax theme 'An Old Hope' â€“ https://github.com/JesseLeite/an-old-hope-syntax-atom
+
+*/
+
+/* Death Star Comment */
+.hljs-comment,
+.hljs-quote 
+{
+  color: #B6B18B;
+}
+
+/* Darth Vader */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-deletion 
+{
+  color: #EB3C54;
+}
+
+/* Threepio */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-meta,
+.hljs-link 
+{
+  color: #E7CE56;
+}
+
+/* Luke Skywalker */
+.hljs-attribute 
+{
+  color: #EE7C2B;
+}
+
+/* Obi Wan Kenobi */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition 
+{
+  color: #4FB4D7;
+}
+
+/* Yoda */
+.hljs-title,
+.hljs-section 
+{
+  color: #78BB65;
+}
+
+/* Mace Windu */
+.hljs-keyword,
+.hljs-selector-tag 
+{
+  color: #B45EA4;
+}
+
+/* Millenium Falcon */
+.hljs 
+{
+  display: block;
+  overflow-x: auto;
+  background: #1C1D21;
+  color: #c0c5ce;
+  padding: 0.5em;
+}
+
+.hljs-emphasis 
+{
+  font-style: italic;
+}
+
+.hljs-strong 
+{
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/androidstudio.css b/codebox/static/css/highlight/androidstudio.css
new file mode 100644 (file)
index 0000000..bc8e473
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+Date: 24 Fev 2015
+Author: Pedro Oliveira <kanytu@gmail . com>
+*/
+
+.hljs {
+  color: #a9b7c6;
+  background: #282b2e;
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+}
+
+.hljs-number,
+.hljs-literal,
+.hljs-symbol,
+.hljs-bullet {
+  color: #6897BB;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-deletion {
+  color: #cc7832;
+}
+
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link {
+  color: #629755;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #808080;
+}
+
+.hljs-meta {
+  color: #bbb529;
+}
+
+.hljs-string,
+.hljs-attribute,
+.hljs-addition {
+  color: #6A8759;
+}
+
+.hljs-section,
+.hljs-title,
+.hljs-type {
+  color: #ffc66d;
+}
+
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #e8bf6a;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/arduino-light.css b/codebox/static/css/highlight/arduino-light.css
new file mode 100644 (file)
index 0000000..4b8b7fd
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+
+Arduino® Light Theme - Stefania Mellai <s.mellai@arduino.cc>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #FFFFFF;
+}
+
+.hljs,
+.hljs-subst {
+  color: #434f54;
+}
+
+.hljs-keyword,
+.hljs-attribute,
+.hljs-selector-tag,
+.hljs-doctag,
+.hljs-name {
+  color: #00979D;
+}
+
+.hljs-built_in,
+.hljs-literal,
+.hljs-bullet,
+.hljs-code,
+.hljs-addition {
+  color: #D35400;
+}
+
+.hljs-regexp,
+.hljs-symbol,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+  color: #00979D;
+}
+
+.hljs-type,
+.hljs-string,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-quote,
+.hljs-template-tag,
+.hljs-deletion {
+  color: #005C5F;
+}
+
+.hljs-title,
+.hljs-section {
+  color: #880000;
+  font-weight: bold;
+}
+
+.hljs-comment {
+  color: rgba(149,165,166,.8);
+}
+
+.hljs-meta-keyword {
+  color: #728E00;
+}
+
+.hljs-meta {
+  color: #728E00;
+  color: #434f54;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-function {
+  color: #728E00;
+}
+
+.hljs-number {
+  color: #8A7B52;  
+}
diff --git a/codebox/static/css/highlight/arta.css b/codebox/static/css/highlight/arta.css
new file mode 100644 (file)
index 0000000..75ef3a9
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+Date: 17.V.2011
+Author: pumbur <pumbur@pumbur.net>
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #222;
+}
+
+.hljs,
+.hljs-subst {
+  color: #aaa;
+}
+
+.hljs-section {
+  color: #fff;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-meta {
+  color: #444;
+}
+
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-regexp {
+  color: #ffcc33;
+}
+
+.hljs-number,
+.hljs-addition {
+  color: #00cc66;
+}
+
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-link {
+  color: #32aaee;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #6644aa;
+}
+
+.hljs-title,
+.hljs-variable,
+.hljs-deletion,
+.hljs-template-tag {
+  color: #bb1166;
+}
+
+.hljs-section,
+.hljs-doctag,
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
diff --git a/codebox/static/css/highlight/ascetic.css b/codebox/static/css/highlight/ascetic.css
new file mode 100644 (file)
index 0000000..48397e8
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+
+Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: white;
+  color: black;
+}
+
+.hljs-string,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-section,
+.hljs-addition,
+.hljs-attribute,
+.hljs-link {
+  color: #888;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-meta,
+.hljs-deletion {
+  color: #ccc;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-section,
+.hljs-name,
+.hljs-type,
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
diff --git a/codebox/static/css/highlight/atelier-cave-dark.css b/codebox/static/css/highlight/atelier-cave-dark.css
new file mode 100644 (file)
index 0000000..65428f3
--- /dev/null
@@ -0,0 +1,83 @@
+/* Base16 Atelier Cave Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Cave Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #7e7887;
+}
+
+/* Atelier-Cave Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-regexp,
+.hljs-link,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #be4678;
+}
+
+/* Atelier-Cave Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #aa573c;
+}
+
+/* Atelier-Cave Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #2a9292;
+}
+
+/* Atelier-Cave Blue */
+.hljs-title,
+.hljs-section {
+  color: #576ddb;
+}
+
+/* Atelier-Cave Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #955ae7;
+}
+
+.hljs-deletion,
+.hljs-addition {
+  color: #19171c;
+  display: inline-block;
+  width: 100%;
+}
+
+.hljs-deletion {
+  background-color: #be4678;
+}
+
+.hljs-addition {
+  background-color: #2a9292;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #19171c;
+  color: #8b8792;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-cave-light.css b/codebox/static/css/highlight/atelier-cave-light.css
new file mode 100644 (file)
index 0000000..b419f9f
--- /dev/null
@@ -0,0 +1,85 @@
+/* Base16 Atelier Cave Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Cave Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #655f6d;
+}
+
+/* Atelier-Cave Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #be4678;
+}
+
+/* Atelier-Cave Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #aa573c;
+}
+
+/* Atelier-Cave Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #2a9292;
+}
+
+/* Atelier-Cave Blue */
+.hljs-title,
+.hljs-section {
+  color: #576ddb;
+}
+
+/* Atelier-Cave Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #955ae7;
+}
+
+.hljs-deletion,
+.hljs-addition {
+  color: #19171c;
+  display: inline-block;
+  width: 100%;
+}
+
+.hljs-deletion {
+  background-color: #be4678;
+}
+
+.hljs-addition {
+  background-color: #2a9292;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #efecf4;
+  color: #585260;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-dune-dark.css b/codebox/static/css/highlight/atelier-dune-dark.css
new file mode 100644 (file)
index 0000000..1684f52
--- /dev/null
@@ -0,0 +1,69 @@
+/* Base16 Atelier Dune Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Dune Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #999580;
+}
+
+/* Atelier-Dune Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #d73737;
+}
+
+/* Atelier-Dune Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #b65611;
+}
+
+/* Atelier-Dune Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #60ac39;
+}
+
+/* Atelier-Dune Blue */
+.hljs-title,
+.hljs-section {
+  color: #6684e1;
+}
+
+/* Atelier-Dune Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #b854d4;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #20201d;
+  color: #a6a28c;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-dune-light.css b/codebox/static/css/highlight/atelier-dune-light.css
new file mode 100644 (file)
index 0000000..547719d
--- /dev/null
@@ -0,0 +1,69 @@
+/* Base16 Atelier Dune Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Dune Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #7d7a68;
+}
+
+/* Atelier-Dune Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #d73737;
+}
+
+/* Atelier-Dune Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #b65611;
+}
+
+/* Atelier-Dune Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #60ac39;
+}
+
+/* Atelier-Dune Blue */
+.hljs-title,
+.hljs-section {
+  color: #6684e1;
+}
+
+/* Atelier-Dune Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #b854d4;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #fefbec;
+  color: #6e6b5e;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-estuary-dark.css b/codebox/static/css/highlight/atelier-estuary-dark.css
new file mode 100644 (file)
index 0000000..a5e5071
--- /dev/null
@@ -0,0 +1,84 @@
+/* Base16 Atelier Estuary Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Estuary Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #878573;
+}
+
+/* Atelier-Estuary Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #ba6236;
+}
+
+/* Atelier-Estuary Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #ae7313;
+}
+
+/* Atelier-Estuary Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #7d9726;
+}
+
+/* Atelier-Estuary Blue */
+.hljs-title,
+.hljs-section {
+  color: #36a166;
+}
+
+/* Atelier-Estuary Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #5f9182;
+}
+
+.hljs-deletion,
+.hljs-addition {
+  color: #22221b;
+  display: inline-block;
+  width: 100%;
+}
+
+.hljs-deletion {
+  background-color: #ba6236;
+}
+
+.hljs-addition {
+  background-color: #7d9726;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #22221b;
+  color: #929181;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-estuary-light.css b/codebox/static/css/highlight/atelier-estuary-light.css
new file mode 100644 (file)
index 0000000..1daee5d
--- /dev/null
@@ -0,0 +1,84 @@
+/* Base16 Atelier Estuary Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Estuary Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #6c6b5a;
+}
+
+/* Atelier-Estuary Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #ba6236;
+}
+
+/* Atelier-Estuary Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #ae7313;
+}
+
+/* Atelier-Estuary Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #7d9726;
+}
+
+/* Atelier-Estuary Blue */
+.hljs-title,
+.hljs-section {
+  color: #36a166;
+}
+
+/* Atelier-Estuary Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #5f9182;
+}
+
+.hljs-deletion,
+.hljs-addition {
+  color: #22221b;
+  display: inline-block;
+  width: 100%;
+}
+
+.hljs-deletion {
+  background-color: #ba6236;
+}
+
+.hljs-addition {
+  background-color: #7d9726;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #f4f3ec;
+  color: #5f5e4e;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-forest-dark.css b/codebox/static/css/highlight/atelier-forest-dark.css
new file mode 100644 (file)
index 0000000..0ef4fae
--- /dev/null
@@ -0,0 +1,69 @@
+/* Base16 Atelier Forest Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Forest Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #9c9491;
+}
+
+/* Atelier-Forest Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #f22c40;
+}
+
+/* Atelier-Forest Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #df5320;
+}
+
+/* Atelier-Forest Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #7b9726;
+}
+
+/* Atelier-Forest Blue */
+.hljs-title,
+.hljs-section {
+  color: #407ee7;
+}
+
+/* Atelier-Forest Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #6666ea;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #1b1918;
+  color: #a8a19f;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-forest-light.css b/codebox/static/css/highlight/atelier-forest-light.css
new file mode 100644 (file)
index 0000000..bbedde1
--- /dev/null
@@ -0,0 +1,69 @@
+/* Base16 Atelier Forest Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Forest Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #766e6b;
+}
+
+/* Atelier-Forest Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #f22c40;
+}
+
+/* Atelier-Forest Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #df5320;
+}
+
+/* Atelier-Forest Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #7b9726;
+}
+
+/* Atelier-Forest Blue */
+.hljs-title,
+.hljs-section {
+  color: #407ee7;
+}
+
+/* Atelier-Forest Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #6666ea;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #f1efee;
+  color: #68615e;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-heath-dark.css b/codebox/static/css/highlight/atelier-heath-dark.css
new file mode 100644 (file)
index 0000000..fe01ff7
--- /dev/null
@@ -0,0 +1,69 @@
+/* Base16 Atelier Heath Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Heath Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #9e8f9e;
+}
+
+/* Atelier-Heath Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #ca402b;
+}
+
+/* Atelier-Heath Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #a65926;
+}
+
+/* Atelier-Heath Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #918b3b;
+}
+
+/* Atelier-Heath Blue */
+.hljs-title,
+.hljs-section {
+  color: #516aec;
+}
+
+/* Atelier-Heath Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #7b59c0;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #1b181b;
+  color: #ab9bab;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-heath-light.css b/codebox/static/css/highlight/atelier-heath-light.css
new file mode 100644 (file)
index 0000000..ee43786
--- /dev/null
@@ -0,0 +1,69 @@
+/* Base16 Atelier Heath Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Heath Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #776977;
+}
+
+/* Atelier-Heath Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #ca402b;
+}
+
+/* Atelier-Heath Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #a65926;
+}
+
+/* Atelier-Heath Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #918b3b;
+}
+
+/* Atelier-Heath Blue */
+.hljs-title,
+.hljs-section {
+  color: #516aec;
+}
+
+/* Atelier-Heath Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #7b59c0;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #f7f3f7;
+  color: #695d69;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-lakeside-dark.css b/codebox/static/css/highlight/atelier-lakeside-dark.css
new file mode 100644 (file)
index 0000000..a937d3b
--- /dev/null
@@ -0,0 +1,69 @@
+/* Base16 Atelier Lakeside Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Lakeside Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #7195a8;
+}
+
+/* Atelier-Lakeside Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #d22d72;
+}
+
+/* Atelier-Lakeside Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #935c25;
+}
+
+/* Atelier-Lakeside Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #568c3b;
+}
+
+/* Atelier-Lakeside Blue */
+.hljs-title,
+.hljs-section {
+  color: #257fad;
+}
+
+/* Atelier-Lakeside Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #6b6bb8;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #161b1d;
+  color: #7ea2b4;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-lakeside-light.css b/codebox/static/css/highlight/atelier-lakeside-light.css
new file mode 100644 (file)
index 0000000..6c7e8f9
--- /dev/null
@@ -0,0 +1,69 @@
+/* Base16 Atelier Lakeside Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Lakeside Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #5a7b8c;
+}
+
+/* Atelier-Lakeside Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #d22d72;
+}
+
+/* Atelier-Lakeside Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #935c25;
+}
+
+/* Atelier-Lakeside Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #568c3b;
+}
+
+/* Atelier-Lakeside Blue */
+.hljs-title,
+.hljs-section {
+  color: #257fad;
+}
+
+/* Atelier-Lakeside Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #6b6bb8;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #ebf8ff;
+  color: #516d7b;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-plateau-dark.css b/codebox/static/css/highlight/atelier-plateau-dark.css
new file mode 100644 (file)
index 0000000..3bb0526
--- /dev/null
@@ -0,0 +1,84 @@
+/* Base16 Atelier Plateau Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Plateau Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #7e7777;
+}
+
+/* Atelier-Plateau Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #ca4949;
+}
+
+/* Atelier-Plateau Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #b45a3c;
+}
+
+/* Atelier-Plateau Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #4b8b8b;
+}
+
+/* Atelier-Plateau Blue */
+.hljs-title,
+.hljs-section {
+  color: #7272ca;
+}
+
+/* Atelier-Plateau Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #8464c4;
+}
+
+.hljs-deletion,
+.hljs-addition {
+  color: #1b1818;
+  display: inline-block;
+  width: 100%;
+}
+
+.hljs-deletion {
+  background-color: #ca4949;
+}
+
+.hljs-addition {
+  background-color: #4b8b8b;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #1b1818;
+  color: #8a8585;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-plateau-light.css b/codebox/static/css/highlight/atelier-plateau-light.css
new file mode 100644 (file)
index 0000000..5f0222b
--- /dev/null
@@ -0,0 +1,84 @@
+/* Base16 Atelier Plateau Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Plateau Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #655d5d;
+}
+
+/* Atelier-Plateau Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #ca4949;
+}
+
+/* Atelier-Plateau Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #b45a3c;
+}
+
+/* Atelier-Plateau Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #4b8b8b;
+}
+
+/* Atelier-Plateau Blue */
+.hljs-title,
+.hljs-section {
+  color: #7272ca;
+}
+
+/* Atelier-Plateau Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #8464c4;
+}
+
+.hljs-deletion,
+.hljs-addition {
+  color: #1b1818;
+  display: inline-block;
+  width: 100%;
+}
+
+.hljs-deletion {
+  background-color: #ca4949;
+}
+
+.hljs-addition {
+  background-color: #4b8b8b;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #f4ecec;
+  color: #585050;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-savanna-dark.css b/codebox/static/css/highlight/atelier-savanna-dark.css
new file mode 100644 (file)
index 0000000..38f8314
--- /dev/null
@@ -0,0 +1,84 @@
+/* Base16 Atelier Savanna Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Savanna Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #78877d;
+}
+
+/* Atelier-Savanna Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #b16139;
+}
+
+/* Atelier-Savanna Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #9f713c;
+}
+
+/* Atelier-Savanna Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #489963;
+}
+
+/* Atelier-Savanna Blue */
+.hljs-title,
+.hljs-section {
+  color: #478c90;
+}
+
+/* Atelier-Savanna Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #55859b;
+}
+
+.hljs-deletion,
+.hljs-addition {
+  color: #171c19;
+  display: inline-block;
+  width: 100%;
+}
+
+.hljs-deletion {
+  background-color: #b16139;
+}
+
+.hljs-addition {
+  background-color: #489963;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #171c19;
+  color: #87928a;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-savanna-light.css b/codebox/static/css/highlight/atelier-savanna-light.css
new file mode 100644 (file)
index 0000000..1ccd7c6
--- /dev/null
@@ -0,0 +1,84 @@
+/* Base16 Atelier Savanna Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Savanna Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #5f6d64;
+}
+
+/* Atelier-Savanna Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #b16139;
+}
+
+/* Atelier-Savanna Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #9f713c;
+}
+
+/* Atelier-Savanna Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #489963;
+}
+
+/* Atelier-Savanna Blue */
+.hljs-title,
+.hljs-section {
+  color: #478c90;
+}
+
+/* Atelier-Savanna Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #55859b;
+}
+
+.hljs-deletion,
+.hljs-addition {
+  color: #171c19;
+  display: inline-block;
+  width: 100%;
+}
+
+.hljs-deletion {
+  background-color: #b16139;
+}
+
+.hljs-addition {
+  background-color: #489963;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #ecf4ee;
+  color: #526057;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-seaside-dark.css b/codebox/static/css/highlight/atelier-seaside-dark.css
new file mode 100644 (file)
index 0000000..df29949
--- /dev/null
@@ -0,0 +1,69 @@
+/* Base16 Atelier Seaside Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Seaside Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #809980;
+}
+
+/* Atelier-Seaside Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #e6193c;
+}
+
+/* Atelier-Seaside Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #87711d;
+}
+
+/* Atelier-Seaside Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #29a329;
+}
+
+/* Atelier-Seaside Blue */
+.hljs-title,
+.hljs-section {
+  color: #3d62f5;
+}
+
+/* Atelier-Seaside Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #ad2bee;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #131513;
+  color: #8ca68c;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-seaside-light.css b/codebox/static/css/highlight/atelier-seaside-light.css
new file mode 100644 (file)
index 0000000..9d960f2
--- /dev/null
@@ -0,0 +1,69 @@
+/* Base16 Atelier Seaside Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Seaside Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #687d68;
+}
+
+/* Atelier-Seaside Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #e6193c;
+}
+
+/* Atelier-Seaside Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #87711d;
+}
+
+/* Atelier-Seaside Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #29a329;
+}
+
+/* Atelier-Seaside Blue */
+.hljs-title,
+.hljs-section {
+  color: #3d62f5;
+}
+
+/* Atelier-Seaside Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #ad2bee;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #f4fbf4;
+  color: #5e6e5e;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-sulphurpool-dark.css b/codebox/static/css/highlight/atelier-sulphurpool-dark.css
new file mode 100644 (file)
index 0000000..c2ab793
--- /dev/null
@@ -0,0 +1,69 @@
+/* Base16 Atelier Sulphurpool Dark - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Sulphurpool Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #898ea4;
+}
+
+/* Atelier-Sulphurpool Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #c94922;
+}
+
+/* Atelier-Sulphurpool Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #c76b29;
+}
+
+/* Atelier-Sulphurpool Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #ac9739;
+}
+
+/* Atelier-Sulphurpool Blue */
+.hljs-title,
+.hljs-section {
+  color: #3d8fd1;
+}
+
+/* Atelier-Sulphurpool Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #6679cc;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #202746;
+  color: #979db4;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atelier-sulphurpool-light.css b/codebox/static/css/highlight/atelier-sulphurpool-light.css
new file mode 100644 (file)
index 0000000..96c47d0
--- /dev/null
@@ -0,0 +1,69 @@
+/* Base16 Atelier Sulphurpool Light - Theme */
+/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */
+/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
+
+/* Atelier-Sulphurpool Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #6b7394;
+}
+
+/* Atelier-Sulphurpool Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-regexp,
+.hljs-link,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #c94922;
+}
+
+/* Atelier-Sulphurpool Orange */
+.hljs-number,
+.hljs-meta,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #c76b29;
+}
+
+/* Atelier-Sulphurpool Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet {
+  color: #ac9739;
+}
+
+/* Atelier-Sulphurpool Blue */
+.hljs-title,
+.hljs-section {
+  color: #3d8fd1;
+}
+
+/* Atelier-Sulphurpool Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #6679cc;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #f5f7ff;
+  color: #5e6687;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/atom-one-dark-reasonable.css b/codebox/static/css/highlight/atom-one-dark-reasonable.css
new file mode 100644 (file)
index 0000000..fd41c99
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+
+Atom One Dark With support for ReasonML by Gidi Morris, based off work by Daniel Gamage
+
+Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax
+
+*/
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  line-height: 1.3em;
+  color: #abb2bf;
+  background: #282c34;
+  border-radius: 5px;
+}
+.hljs-keyword, .hljs-operator {
+  color: #F92672;
+}
+.hljs-pattern-match {
+  color: #F92672;
+}
+.hljs-pattern-match .hljs-constructor {
+  color: #61aeee;
+}
+.hljs-function {
+  color: #61aeee;
+}
+.hljs-function .hljs-params {
+  color: #A6E22E;
+}
+.hljs-function .hljs-params .hljs-typing {
+  color: #FD971F;
+}
+.hljs-module-access .hljs-module {
+  color: #7e57c2;
+}
+.hljs-constructor {
+  color: #e2b93d;
+}
+.hljs-constructor .hljs-string {
+  color: #9CCC65;
+}
+.hljs-comment, .hljs-quote {
+  color: #b18eb1;
+  font-style: italic;
+}
+.hljs-doctag, .hljs-formula {
+  color: #c678dd;
+}
+.hljs-section, .hljs-name, .hljs-selector-tag, .hljs-deletion, .hljs-subst {
+  color: #e06c75;
+}
+.hljs-literal {
+  color: #56b6c2;
+}
+.hljs-string, .hljs-regexp, .hljs-addition, .hljs-attribute, .hljs-meta-string {
+  color: #98c379;
+}
+.hljs-built_in, .hljs-class .hljs-title {
+  color: #e6c07b;
+}
+.hljs-attr, .hljs-variable, .hljs-template-variable, .hljs-type, .hljs-selector-class, .hljs-selector-attr, .hljs-selector-pseudo, .hljs-number {
+  color: #d19a66;
+}
+.hljs-symbol, .hljs-bullet, .hljs-link, .hljs-meta, .hljs-selector-id, .hljs-title {
+  color: #61aeee;
+}
+.hljs-emphasis {
+  font-style: italic;
+}
+.hljs-strong {
+  font-weight: bold;
+}
+.hljs-link {
+  text-decoration: underline;
+}
diff --git a/codebox/static/css/highlight/atom-one-dark.css b/codebox/static/css/highlight/atom-one-dark.css
new file mode 100644 (file)
index 0000000..1616aaf
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+
+Atom One Dark by Daniel Gamage
+Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax
+
+base:    #282c34
+mono-1:  #abb2bf
+mono-2:  #818896
+mono-3:  #5c6370
+hue-1:   #56b6c2
+hue-2:   #61aeee
+hue-3:   #c678dd
+hue-4:   #98c379
+hue-5:   #e06c75
+hue-5-2: #be5046
+hue-6:   #d19a66
+hue-6-2: #e6c07b
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  color: #abb2bf;
+  background: #282c34;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #5c6370;
+  font-style: italic;
+}
+
+.hljs-doctag,
+.hljs-keyword,
+.hljs-formula {
+  color: #c678dd;
+}
+
+.hljs-section,
+.hljs-name,
+.hljs-selector-tag,
+.hljs-deletion,
+.hljs-subst {
+  color: #e06c75;
+}
+
+.hljs-literal {
+  color: #56b6c2;
+}
+
+.hljs-string,
+.hljs-regexp,
+.hljs-addition,
+.hljs-attribute,
+.hljs-meta-string {
+  color: #98c379;
+}
+
+.hljs-built_in,
+.hljs-class .hljs-title {
+  color: #e6c07b;
+}
+
+.hljs-attr,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-type,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-number {
+  color: #d19a66;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-link,
+.hljs-meta,
+.hljs-selector-id,
+.hljs-title {
+  color: #61aeee;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-link {
+  text-decoration: underline;
+}
diff --git a/codebox/static/css/highlight/atom-one-light.css b/codebox/static/css/highlight/atom-one-light.css
new file mode 100644 (file)
index 0000000..d5bd1d2
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+
+Atom One Light by Daniel Gamage
+Original One Light Syntax theme from https://github.com/atom/one-light-syntax
+
+base:    #fafafa
+mono-1:  #383a42
+mono-2:  #686b77
+mono-3:  #a0a1a7
+hue-1:   #0184bb
+hue-2:   #4078f2
+hue-3:   #a626a4
+hue-4:   #50a14f
+hue-5:   #e45649
+hue-5-2: #c91243
+hue-6:   #986801
+hue-6-2: #c18401
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  color: #383a42;
+  background: #fafafa;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #a0a1a7;
+  font-style: italic;
+}
+
+.hljs-doctag,
+.hljs-keyword,
+.hljs-formula {
+  color: #a626a4;
+}
+
+.hljs-section,
+.hljs-name,
+.hljs-selector-tag,
+.hljs-deletion,
+.hljs-subst {
+  color: #e45649;
+}
+
+.hljs-literal {
+  color: #0184bb;
+}
+
+.hljs-string,
+.hljs-regexp,
+.hljs-addition,
+.hljs-attribute,
+.hljs-meta-string {
+  color: #50a14f;
+}
+
+.hljs-built_in,
+.hljs-class .hljs-title {
+  color: #c18401;
+}
+
+.hljs-attr,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-type,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-number {
+  color: #986801;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-link,
+.hljs-meta,
+.hljs-selector-id,
+.hljs-title {
+  color: #4078f2;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-link {
+  text-decoration: underline;
+}
diff --git a/codebox/static/css/highlight/brown-paper.css b/codebox/static/css/highlight/brown-paper.css
new file mode 100644 (file)
index 0000000..f0197b9
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+
+Brown Paper style from goldblog.com.ua (c) Zaripov Yura <yur4ik7@ukr.net>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background:#b7a68e url(./brown-papersq.png);
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal {
+  color:#005599;
+  font-weight:bold;
+}
+
+.hljs,
+.hljs-subst {
+  color: #363c69;
+}
+
+.hljs-string,
+.hljs-title,
+.hljs-section,
+.hljs-type,
+.hljs-attribute,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-built_in,
+.hljs-addition,
+.hljs-variable,
+.hljs-template-tag,
+.hljs-template-variable,
+.hljs-link,
+.hljs-name {
+  color: #2c009f;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-meta,
+.hljs-deletion {
+  color: #802022;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-doctag,
+.hljs-title,
+.hljs-section,
+.hljs-type,
+.hljs-name,
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
diff --git a/codebox/static/css/highlight/brown-papersq.png b/codebox/static/css/highlight/brown-papersq.png
new file mode 100644 (file)
index 0000000..3813903
Binary files /dev/null and b/codebox/static/css/highlight/brown-papersq.png differ
diff --git a/codebox/static/css/highlight/codepen-embed.css b/codebox/static/css/highlight/codepen-embed.css
new file mode 100644 (file)
index 0000000..195c4a0
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+  codepen.io Embed Theme
+  Author: Justin Perry <http://github.com/ourmaninamsterdam>
+  Original theme - https://github.com/chriskempson/tomorrow-theme
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #222;
+  color: #fff;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #777;
+}
+
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-regexp,
+.hljs-meta,
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-params,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-link,
+.hljs-deletion {
+  color: #ab875d;
+}
+
+.hljs-section,
+.hljs-title,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-type,
+.hljs-attribute {
+  color: #9b869b;
+}
+
+.hljs-string,
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-addition {
+  color: #8f9c6c;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/color-brewer.css b/codebox/static/css/highlight/color-brewer.css
new file mode 100644 (file)
index 0000000..7934d98
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+
+Colorbrewer theme
+Original: https://github.com/mbostock/colorbrewer-theme (c) Mike Bostock <mike@ocks.org>
+Ported by Fabrício Tavares de Oliveira
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #fff;
+}
+
+.hljs,
+.hljs-subst {
+  color: #000;
+}
+
+.hljs-string,
+.hljs-meta,
+.hljs-symbol,
+.hljs-template-tag,
+.hljs-template-variable,
+.hljs-addition {
+  color: #756bb1;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #636363;
+}
+
+.hljs-number,
+.hljs-regexp,
+.hljs-literal,
+.hljs-bullet,
+.hljs-link {
+  color: #31a354;
+}
+
+.hljs-deletion,
+.hljs-variable {
+  color: #88f;
+}
+
+
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-title,
+.hljs-section,
+.hljs-built_in,
+.hljs-doctag,
+.hljs-type,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-strong {
+  color: #3182bd;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-attribute {
+  color: #e6550d;
+}
diff --git a/codebox/static/css/highlight/darcula.css b/codebox/static/css/highlight/darcula.css
new file mode 100644 (file)
index 0000000..be182d0
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+
+Darcula color scheme from the JetBrains family of IDEs
+
+*/
+
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #2b2b2b;
+}
+
+.hljs {
+  color: #bababa;
+}
+
+.hljs-strong,
+.hljs-emphasis {
+  color: #a8a8a2;
+}
+
+.hljs-bullet,
+.hljs-quote,
+.hljs-link,
+.hljs-number,
+.hljs-regexp,
+.hljs-literal {
+  color: #6896ba;
+}
+
+.hljs-code,
+.hljs-selector-class {
+  color: #a6e22e;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-section,
+.hljs-attribute,
+.hljs-name,
+.hljs-variable {
+  color: #cb7832;
+}
+
+.hljs-params {
+  color: #b9b9b9;
+}
+
+.hljs-string {
+  color: #6a8759;
+}
+
+.hljs-subst,
+.hljs-type,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-symbol,
+.hljs-selector-id,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-template-tag,
+.hljs-template-variable,
+.hljs-addition {
+  color: #e0c46c;
+}
+
+.hljs-comment,
+.hljs-deletion,
+.hljs-meta {
+  color: #7f7f7f;
+}
diff --git a/codebox/static/css/highlight/dark.css b/codebox/static/css/highlight/dark.css
new file mode 100644 (file)
index 0000000..b4724f5
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+
+Dark style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #444;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-section,
+.hljs-link {
+  color: white;
+}
+
+.hljs,
+.hljs-subst {
+  color: #ddd;
+}
+
+.hljs-string,
+.hljs-title,
+.hljs-name,
+.hljs-type,
+.hljs-attribute,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-built_in,
+.hljs-addition,
+.hljs-variable,
+.hljs-template-tag,
+.hljs-template-variable {
+  color: #d88;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-deletion,
+.hljs-meta {
+  color: #777;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-title,
+.hljs-section,
+.hljs-doctag,
+.hljs-type,
+.hljs-name,
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
diff --git a/codebox/static/css/highlight/darkula.css b/codebox/static/css/highlight/darkula.css
new file mode 100644 (file)
index 0000000..f4646c3
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+  Deprecated due to a typo in the name and left here for compatibility purpose only.
+  Please use darcula.css instead.
+*/
+
+@import url('darcula.css');
diff --git a/codebox/static/css/highlight/default.css b/codebox/static/css/highlight/default.css
new file mode 100644 (file)
index 0000000..f1bfade
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+
+Original highlight.js style (c) Ivan Sagalaev <maniac@softwaremaniacs.org>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #F0F0F0;
+}
+
+
+/* Base color: saturation 0; */
+
+.hljs,
+.hljs-subst {
+  color: #444;
+}
+
+.hljs-comment {
+  color: #888888;
+}
+
+.hljs-keyword,
+.hljs-attribute,
+.hljs-selector-tag,
+.hljs-meta-keyword,
+.hljs-doctag,
+.hljs-name {
+  font-weight: bold;
+}
+
+
+/* User color: hue: 0 */
+
+.hljs-type,
+.hljs-string,
+.hljs-number,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-quote,
+.hljs-template-tag,
+.hljs-deletion {
+  color: #880000;
+}
+
+.hljs-title,
+.hljs-section {
+  color: #880000;
+  font-weight: bold;
+}
+
+.hljs-regexp,
+.hljs-symbol,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+  color: #BC6060;
+}
+
+
+/* Language color: hue: 90; */
+
+.hljs-literal {
+  color: #78A960;
+}
+
+.hljs-built_in,
+.hljs-bullet,
+.hljs-code,
+.hljs-addition {
+  color: #397300;
+}
+
+
+/* Meta color: hue: 200 */
+
+.hljs-meta {
+  color: #1f7199;
+}
+
+.hljs-meta-string {
+  color: #4d99bf;
+}
+
+
+/* Misc effects */
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/docco.css b/codebox/static/css/highlight/docco.css
new file mode 100644 (file)
index 0000000..db366be
--- /dev/null
@@ -0,0 +1,97 @@
+/*
+Docco style used in http://jashkenas.github.com/docco/ converted by Simon Madine (@thingsinjars)
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  color: #000;
+  background: #f8f8ff;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #408080;
+  font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-subst {
+  color: #954121;
+}
+
+.hljs-number {
+  color: #40a070;
+}
+
+.hljs-string,
+.hljs-doctag {
+  color: #219161;
+}
+
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-section,
+.hljs-type {
+  color: #19469d;
+}
+
+.hljs-params {
+  color: #00f;
+}
+
+.hljs-title {
+  color: #458;
+  font-weight: bold;
+}
+
+.hljs-tag,
+.hljs-name,
+.hljs-attribute {
+  color: #000080;
+  font-weight: normal;
+}
+
+.hljs-variable,
+.hljs-template-variable {
+  color: #008080;
+}
+
+.hljs-regexp,
+.hljs-link {
+  color: #b68;
+}
+
+.hljs-symbol,
+.hljs-bullet {
+  color: #990073;
+}
+
+.hljs-built_in,
+.hljs-builtin-name {
+  color: #0086b3;
+}
+
+.hljs-meta {
+  color: #999;
+  font-weight: bold;
+}
+
+.hljs-deletion {
+  background: #fdd;
+}
+
+.hljs-addition {
+  background: #dfd;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/dracula.css b/codebox/static/css/highlight/dracula.css
new file mode 100644 (file)
index 0000000..d591db6
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+
+Dracula Theme v1.2.0
+
+https://github.com/zenorocha/dracula-theme
+
+Copyright 2015, All rights reserved
+
+Code licensed under the MIT license
+http://zenorocha.mit-license.org
+
+@author Ã‰verton Ribeiro <nuxlli@gmail.com>
+@author Zeno Rocha <hi@zenorocha.com>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #282a36;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-section,
+.hljs-link {
+  color: #8be9fd;
+}
+
+.hljs-function .hljs-keyword {
+  color: #ff79c6;
+}
+
+.hljs,
+.hljs-subst {
+  color: #f8f8f2;
+}
+
+.hljs-string,
+.hljs-title,
+.hljs-name,
+.hljs-type,
+.hljs-attribute,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition,
+.hljs-variable,
+.hljs-template-tag,
+.hljs-template-variable {
+  color: #f1fa8c;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-deletion,
+.hljs-meta {
+  color: #6272a4;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-title,
+.hljs-section,
+.hljs-doctag,
+.hljs-type,
+.hljs-name,
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
diff --git a/codebox/static/css/highlight/far.css b/codebox/static/css/highlight/far.css
new file mode 100644 (file)
index 0000000..2b3f87b
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+
+FAR Style (c) MajestiC <majestic2k@gmail.com>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #000080;
+}
+
+.hljs,
+.hljs-subst {
+  color: #0ff;
+}
+
+.hljs-string,
+.hljs-attribute,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-template-tag,
+.hljs-template-variable,
+.hljs-addition {
+  color: #ff0;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-section,
+.hljs-type,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-variable {
+  color: #fff;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-doctag,
+.hljs-deletion {
+  color: #888;
+}
+
+.hljs-number,
+.hljs-regexp,
+.hljs-literal,
+.hljs-link {
+  color: #0f0;
+}
+
+.hljs-meta {
+  color: #008080;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-title,
+.hljs-section,
+.hljs-name,
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
diff --git a/codebox/static/css/highlight/foundation.css b/codebox/static/css/highlight/foundation.css
new file mode 100644 (file)
index 0000000..f1fe64b
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+Description: Foundation 4 docs style for highlight.js
+Author: Dan Allen <dan.j.allen@gmail.com>
+Website: http://foundation.zurb.com/docs/
+Version: 1.0
+Date: 2013-04-02
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #eee; color: black;
+}
+
+.hljs-link,
+.hljs-emphasis,
+.hljs-attribute,
+.hljs-addition {
+  color: #070;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong,
+.hljs-string,
+.hljs-deletion {
+  color: #d14;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-quote,
+.hljs-comment {
+  color: #998;
+  font-style: italic;
+}
+
+.hljs-section,
+.hljs-title {
+  color: #900;
+}
+
+.hljs-class .hljs-title,
+.hljs-type {
+  color: #458;
+}
+
+.hljs-variable,
+.hljs-template-variable {
+  color: #336699;
+}
+
+.hljs-bullet {
+  color: #997700;
+}
+
+.hljs-meta {
+  color: #3344bb;
+}
+
+.hljs-code,
+.hljs-number,
+.hljs-literal,
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #099;
+}
+
+.hljs-regexp {
+  background-color: #fff0ff;
+  color: #880088;
+}
+
+.hljs-symbol {
+  color: #990073;
+}
+
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #007700;
+}
diff --git a/codebox/static/css/highlight/github-gist.css b/codebox/static/css/highlight/github-gist.css
new file mode 100644 (file)
index 0000000..18240c8
--- /dev/null
@@ -0,0 +1,79 @@
+/**
+ * GitHub Gist Theme
+ * Author : Anthony Attard - https://github.com/AnthonyAttard
+ * Author : Louis Barranqueiro - https://github.com/LouisBarranqueiro
+ */
+
+.hljs {
+  display: block;
+  background: white;
+  padding: 0.5em;
+  color: #333333;
+  overflow-x: auto;
+}
+
+.hljs-comment,
+.hljs-meta {
+  color: #969896;
+}
+
+.hljs-variable,
+.hljs-template-variable,
+.hljs-strong,
+.hljs-emphasis,
+.hljs-quote {
+  color: #df5000;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-type {
+  color: #d73a49;
+}
+
+.hljs-literal,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-attribute {
+  color: #0086b3;
+}
+
+.hljs-section,
+.hljs-name {
+  color: #63a35c;
+}
+
+.hljs-tag {
+  color: #333333;
+}
+
+.hljs-title,
+.hljs-attr,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+  color: #6f42c1;
+}
+
+.hljs-addition {
+  color: #55a532;
+  background-color: #eaffea;
+}
+
+.hljs-deletion {
+  color: #bd2c00;
+  background-color: #ffecec;
+}
+
+.hljs-link {
+  text-decoration: underline;
+}
+
+.hljs-number {
+  color: #005cc5;
+}
+
+.hljs-string {
+  color: #032f62;
+}
diff --git a/codebox/static/css/highlight/github.css b/codebox/static/css/highlight/github.css
new file mode 100644 (file)
index 0000000..791932b
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+
+github.com style (c) Vasily Polovnyov <vast@whiteants.net>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  color: #333;
+  background: #f8f8f8;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #998;
+  font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-subst {
+  color: #333;
+  font-weight: bold;
+}
+
+.hljs-number,
+.hljs-literal,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag .hljs-attr {
+  color: #008080;
+}
+
+.hljs-string,
+.hljs-doctag {
+  color: #d14;
+}
+
+.hljs-title,
+.hljs-section,
+.hljs-selector-id {
+  color: #900;
+  font-weight: bold;
+}
+
+.hljs-subst {
+  font-weight: normal;
+}
+
+.hljs-type,
+.hljs-class .hljs-title {
+  color: #458;
+  font-weight: bold;
+}
+
+.hljs-tag,
+.hljs-name,
+.hljs-attribute {
+  color: #000080;
+  font-weight: normal;
+}
+
+.hljs-regexp,
+.hljs-link {
+  color: #009926;
+}
+
+.hljs-symbol,
+.hljs-bullet {
+  color: #990073;
+}
+
+.hljs-built_in,
+.hljs-builtin-name {
+  color: #0086b3;
+}
+
+.hljs-meta {
+  color: #999;
+  font-weight: bold;
+}
+
+.hljs-deletion {
+  background: #fdd;
+}
+
+.hljs-addition {
+  background: #dfd;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/gml.css b/codebox/static/css/highlight/gml.css
new file mode 100644 (file)
index 0000000..ffb5e47
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+
+GML Theme - Meseta <meseta@gmail.com>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #222222;
+  color: #C0C0C0;
+}
+
+.hljs-keywords {
+  color: #FFB871;
+  font-weight: bold;
+}
+
+.hljs-built_in {
+  color: #FFB871;
+}
+
+.hljs-literal {
+  color: #FF8080;
+}
+
+.hljs-symbol {
+  color: #58E55A;
+}
+
+.hljs-comment {
+  color: #5B995B;
+}
+
+.hljs-string {
+  color: #FFFF00;
+}
+
+.hljs-number {
+  color: #FF8080;
+}
+
+.hljs-attribute,
+.hljs-selector-tag,
+.hljs-doctag,
+.hljs-name,
+.hljs-bullet,
+.hljs-code,
+.hljs-addition,
+.hljs-regexp,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-type,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-quote,
+.hljs-template-tag,
+.hljs-deletion,
+.hljs-title,
+.hljs-section,
+.hljs-function,
+.hljs-meta-keyword,
+.hljs-meta,
+.hljs-subst {
+  color: #C0C0C0;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/googlecode.css b/codebox/static/css/highlight/googlecode.css
new file mode 100644 (file)
index 0000000..884ad63
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+
+Google Code style (c) Aahan Krish <geekpanth3r@gmail.com>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: white;
+  color: black;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #800;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-section,
+.hljs-title,
+.hljs-name {
+  color: #008;
+}
+
+.hljs-variable,
+.hljs-template-variable {
+  color: #660;
+}
+
+.hljs-string,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-regexp {
+  color: #080;
+}
+
+.hljs-literal,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-meta,
+.hljs-number,
+.hljs-link {
+  color: #066;
+}
+
+.hljs-title,
+.hljs-doctag,
+.hljs-type,
+.hljs-attr,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-params {
+  color: #606;
+}
+
+.hljs-attribute,
+.hljs-subst {
+  color: #000;
+}
+
+.hljs-formula {
+  background-color: #eee;
+  font-style: italic;
+}
+
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #9B703F
+}
+
+.hljs-addition {
+  background-color: #baeeba;
+}
+
+.hljs-deletion {
+  background-color: #ffc8bd;
+}
+
+.hljs-doctag,
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
diff --git a/codebox/static/css/highlight/grayscale.css b/codebox/static/css/highlight/grayscale.css
new file mode 100644 (file)
index 0000000..5376f34
--- /dev/null
@@ -0,0 +1,101 @@
+/*
+
+grayscale style (c) MY Sun <simonmysun@gmail.com>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  color: #333;
+  background: #fff;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #777;
+  font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-subst {
+  color: #333;
+  font-weight: bold;
+}
+
+.hljs-number,
+.hljs-literal {
+  color: #777;
+}
+
+.hljs-string,
+.hljs-doctag,
+.hljs-formula {
+  color: #333;
+  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAJ0lEQVQIW2O8e/fufwYGBgZBQUEQxcCIIfDu3Tuwivfv30NUoAsAALHpFMMLqZlPAAAAAElFTkSuQmCC) repeat;
+}
+
+.hljs-title,
+.hljs-section,
+.hljs-selector-id {
+  color: #000;
+  font-weight: bold;
+}
+
+.hljs-subst {
+  font-weight: normal;
+}
+
+.hljs-class .hljs-title,
+.hljs-type,
+.hljs-name {
+  color: #333;
+  font-weight: bold;
+}
+
+.hljs-tag {
+  color: #333;
+}
+
+.hljs-regexp {
+    color: #333;
+    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAAPUlEQVQYV2NkQAN37979r6yszIgujiIAU4RNMVwhuiQ6H6wQl3XI4oy4FMHcCJPHcDS6J2A2EqUQpJhohQDexSef15DBCwAAAABJRU5ErkJggg==) repeat;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-link {
+  color: #000;
+  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAKElEQVQIW2NkQAO7d+/+z4gsBhJwdXVlhAvCBECKwIIwAbhKZBUwBQA6hBpm5efZsgAAAABJRU5ErkJggg==) repeat;
+}
+
+.hljs-built_in,
+.hljs-builtin-name {
+  color: #000;
+  text-decoration: underline;
+}
+
+.hljs-meta {
+  color: #999;
+  font-weight: bold;
+}
+
+.hljs-deletion {
+  color: #fff;
+  background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAADCAYAAABS3WWCAAAAE0lEQVQIW2MMDQ39zzhz5kwIAQAyxweWgUHd1AAAAABJRU5ErkJggg==) repeat;
+}
+
+.hljs-addition {
+  color: #000;
+  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAALUlEQVQYV2N89+7dfwYk8P79ewZBQUFkIQZGOiu6e/cuiptQHAPl0NtNxAQBAM97Oejj3Dg7AAAAAElFTkSuQmCC) repeat;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/gruvbox-dark.css b/codebox/static/css/highlight/gruvbox-dark.css
new file mode 100644 (file)
index 0000000..f563811
--- /dev/null
@@ -0,0 +1,108 @@
+/*
+
+Gruvbox style (dark) (c) Pavel Pertsev (original style at https://github.com/morhetz/gruvbox)
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #282828;
+}
+
+.hljs,
+.hljs-subst {
+  color: #ebdbb2;
+}
+
+/* Gruvbox Red */
+.hljs-deletion,
+.hljs-formula,
+.hljs-keyword,
+.hljs-link,
+.hljs-selector-tag {
+  color: #fb4934;
+}
+
+/* Gruvbox Blue */
+.hljs-built_in,
+.hljs-emphasis,
+.hljs-name,
+.hljs-quote,
+.hljs-strong,
+.hljs-title,
+.hljs-variable {
+  color: #83a598;
+}
+
+/* Gruvbox Yellow */
+.hljs-attr,
+.hljs-params,
+.hljs-template-tag,
+.hljs-type {
+  color: #fabd2f;
+}
+
+/* Gruvbox Purple */
+.hljs-builtin-name,
+.hljs-doctag,
+.hljs-literal,
+.hljs-number {
+  color: #8f3f71;
+}
+
+/* Gruvbox Orange */
+.hljs-code,
+.hljs-meta,
+.hljs-regexp,
+.hljs-selector-id,
+.hljs-template-variable {
+  color: #fe8019;
+}
+
+/* Gruvbox Green */
+.hljs-addition,
+.hljs-meta-string,
+.hljs-section,
+.hljs-selector-attr,
+.hljs-selector-class,
+.hljs-string,
+.hljs-symbol {
+  color: #b8bb26;
+}
+
+/* Gruvbox Aqua */
+.hljs-attribute,
+.hljs-bullet,
+.hljs-class,
+.hljs-function,
+.hljs-function .hljs-keyword,
+.hljs-meta-keyword,
+.hljs-selector-pseudo,
+.hljs-tag {
+  color: #8ec07c;
+}
+
+/* Gruvbox Gray */
+.hljs-comment {
+  color: #928374;
+}
+
+/* Gruvbox Purple */
+.hljs-link_label,
+.hljs-literal,
+.hljs-number {
+  color: #d3869b;
+}
+
+.hljs-comment,
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-section,
+.hljs-strong,
+.hljs-tag {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/gruvbox-light.css b/codebox/static/css/highlight/gruvbox-light.css
new file mode 100644 (file)
index 0000000..ff45468
--- /dev/null
@@ -0,0 +1,108 @@
+/*
+
+Gruvbox style (light) (c) Pavel Pertsev (original style at https://github.com/morhetz/gruvbox)
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #fbf1c7;
+}
+
+.hljs,
+.hljs-subst {
+  color: #3c3836;
+}
+
+/* Gruvbox Red */
+.hljs-deletion,
+.hljs-formula,
+.hljs-keyword,
+.hljs-link,
+.hljs-selector-tag {
+  color: #9d0006;
+}
+
+/* Gruvbox Blue */
+.hljs-built_in,
+.hljs-emphasis,
+.hljs-name,
+.hljs-quote,
+.hljs-strong,
+.hljs-title,
+.hljs-variable {
+  color: #076678;
+}
+
+/* Gruvbox Yellow */
+.hljs-attr,
+.hljs-params,
+.hljs-template-tag,
+.hljs-type {
+  color: #b57614;
+}
+
+/* Gruvbox Purple */
+.hljs-builtin-name,
+.hljs-doctag,
+.hljs-literal,
+.hljs-number {
+  color: #8f3f71;
+}
+
+/* Gruvbox Orange */
+.hljs-code,
+.hljs-meta,
+.hljs-regexp,
+.hljs-selector-id,
+.hljs-template-variable {
+  color: #af3a03;
+}
+
+/* Gruvbox Green */
+.hljs-addition,
+.hljs-meta-string,
+.hljs-section,
+.hljs-selector-attr,
+.hljs-selector-class,
+.hljs-string,
+.hljs-symbol {
+  color: #79740e;
+}
+
+/* Gruvbox Aqua */
+.hljs-attribute,
+.hljs-bullet,
+.hljs-class,
+.hljs-function,
+.hljs-function .hljs-keyword,
+.hljs-meta-keyword,
+.hljs-selector-pseudo,
+.hljs-tag {
+  color: #427b58;
+}
+
+/* Gruvbox Gray */
+.hljs-comment {
+  color: #928374;
+}
+
+/* Gruvbox Purple */
+.hljs-link_label,
+.hljs-literal,
+.hljs-number {
+  color: #8f3f71;
+}
+
+.hljs-comment,
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-section,
+.hljs-strong,
+.hljs-tag {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/hopscotch.css b/codebox/static/css/highlight/hopscotch.css
new file mode 100644 (file)
index 0000000..32e60d2
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Hopscotch
+ * by Jan T. Sott
+ * https://github.com/idleberg/Hopscotch
+ *
+ * This work is licensed under the Creative Commons CC0 1.0 Universal License
+ */
+
+/* Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #989498;
+}
+
+/* Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-link,
+.hljs-deletion {
+  color: #dd464c;
+}
+
+/* Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params {
+  color: #fd8b19;
+}
+
+/* Yellow */
+.hljs-class .hljs-title {
+  color: #fdcc59;
+}
+
+/* Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+  color: #8fc13e;
+}
+
+/* Aqua */
+.hljs-meta {
+  color: #149b93;
+}
+
+/* Blue */
+.hljs-function,
+.hljs-section,
+.hljs-title {
+  color: #1290bf;
+}
+
+/* Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #c85e7c;
+}
+
+.hljs {
+  display: block;
+  background: #322931;
+  color: #b9b5b8;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/hybrid.css b/codebox/static/css/highlight/hybrid.css
new file mode 100644 (file)
index 0000000..29735a1
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+
+vim-hybrid theme by w0ng (https://github.com/w0ng/vim-hybrid)
+
+*/
+
+/*background color*/
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #1d1f21;
+}
+
+/*selection color*/
+.hljs::selection,
+.hljs span::selection {
+  background: #373b41;
+}
+
+.hljs::-moz-selection,
+.hljs span::-moz-selection {
+  background: #373b41;
+}
+
+/*foreground color*/
+.hljs {
+  color: #c5c8c6;
+}
+
+/*color: fg_yellow*/
+.hljs-title,
+.hljs-name {
+  color: #f0c674;
+}
+
+/*color: fg_comment*/
+.hljs-comment,
+.hljs-meta,
+.hljs-meta .hljs-keyword {
+  color: #707880;
+}
+
+/*color: fg_red*/
+.hljs-number,
+.hljs-symbol,
+.hljs-literal,
+.hljs-deletion,
+.hljs-link {
+ color: #cc6666
+}
+
+/*color: fg_green*/
+.hljs-string,
+.hljs-doctag,
+.hljs-addition,
+.hljs-regexp,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+  color: #b5bd68;
+}
+
+/*color: fg_purple*/
+.hljs-attribute,
+.hljs-code,
+.hljs-selector-id {
+ color: #b294bb;
+}
+
+/*color: fg_blue*/
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-bullet,
+.hljs-tag {
+ color: #81a2be;
+}
+
+/*color: fg_aqua*/
+.hljs-subst,
+.hljs-variable,
+.hljs-template-tag,
+.hljs-template-variable {
+  color: #8abeb7;
+}
+
+/*color: fg_orange*/
+.hljs-type,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-quote,
+.hljs-section,
+.hljs-selector-class {
+  color: #de935f;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/idea.css b/codebox/static/css/highlight/idea.css
new file mode 100644 (file)
index 0000000..3bf1892
--- /dev/null
@@ -0,0 +1,97 @@
+/*
+
+Intellij Idea-like styling (c) Vasily Polovnyov <vast@whiteants.net>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  color: #000;
+  background: #fff;
+}
+
+.hljs-subst,
+.hljs-title {
+  font-weight: normal;
+  color: #000;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #808080;
+  font-style: italic;
+}
+
+.hljs-meta {
+  color: #808000;
+}
+
+.hljs-tag {
+  background: #efefef;
+}
+
+.hljs-section,
+.hljs-name,
+.hljs-literal,
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-type,
+.hljs-selector-id,
+.hljs-selector-class {
+  font-weight: bold;
+  color: #000080;
+}
+
+.hljs-attribute,
+.hljs-number,
+.hljs-regexp,
+.hljs-link {
+  font-weight: bold;
+  color: #0000ff;
+}
+
+.hljs-number,
+.hljs-regexp,
+.hljs-link {
+  font-weight: normal;
+}
+
+.hljs-string {
+  color: #008000;
+  font-weight: bold;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-formula {
+  color: #000;
+  background: #d0eded;
+  font-style: italic;
+}
+
+.hljs-doctag {
+  text-decoration: underline;
+}
+
+.hljs-variable,
+.hljs-template-variable {
+  color: #660e7a;
+}
+
+.hljs-addition {
+  background: #baeeba;
+}
+
+.hljs-deletion {
+  background: #ffc8bd;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/ir-black.css b/codebox/static/css/highlight/ir-black.css
new file mode 100644 (file)
index 0000000..bd4c755
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+  IR_Black style (c) Vasily Mikhailitchenko <vaskas@programica.ru>
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #000;
+  color: #f8f8f8;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-meta {
+  color: #7c7c7c;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-tag,
+.hljs-name {
+  color: #96cbfe;
+}
+
+.hljs-attribute,
+.hljs-selector-id {
+  color: #ffffb6;
+}
+
+.hljs-string,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-addition {
+  color: #a8ff60;
+}
+
+.hljs-subst {
+  color: #daefa3;
+}
+
+.hljs-regexp,
+.hljs-link {
+  color: #e9c062;
+}
+
+.hljs-title,
+.hljs-section,
+.hljs-type,
+.hljs-doctag {
+  color: #ffffb6;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-literal {
+  color: #c6c5fe;
+}
+
+.hljs-number,
+.hljs-deletion {
+  color:#ff73fd;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/isbl-editor-dark.css b/codebox/static/css/highlight/isbl-editor-dark.css
new file mode 100644 (file)
index 0000000..2f1d95d
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+
+ISBL Editor style dark color scheme (c) Dmitriy Tarasov <dimatar@gmail.com>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #404040;
+  color: #f0f0f0;
+}
+
+/* Base color: saturation 0; */
+
+.hljs,
+.hljs-subst {
+  color: #f0f0f0;
+}
+
+.hljs-comment {
+  color: #b5b5b5;
+  font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-attribute,
+.hljs-selector-tag,
+.hljs-meta-keyword,
+.hljs-doctag,
+.hljs-name {
+  color: #f0f0f0;
+  font-weight: bold;
+}
+
+
+/* User color: hue: 0 */
+
+.hljs-string {
+  color: #97bf0d;
+}
+
+.hljs-type,
+.hljs-number,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-quote,
+.hljs-template-tag,
+.hljs-deletion {
+  color: #f0f0f0;
+}
+
+.hljs-title,
+.hljs-section {
+  color: #df471e;
+}
+
+.hljs-title>.hljs-built_in {
+  color: #81bce9;
+  font-weight: normal;
+}
+
+.hljs-regexp,
+.hljs-symbol,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+  color: #e2c696;
+}
+
+/* Language color: hue: 90; */
+
+.hljs-built_in,
+.hljs-literal {
+  color: #97bf0d;
+  font-weight: bold;
+}
+
+.hljs-bullet,
+.hljs-code,
+.hljs-addition {
+  color: #397300;
+}
+
+.hljs-class  {
+  color: #ce9d4d;
+  font-weight: bold;
+}
+
+/* Meta color: hue: 200 */
+
+.hljs-meta {
+  color: #1f7199;
+}
+
+.hljs-meta-string {
+  color: #4d99bf;
+}
+
+
+/* Misc effects */
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/isbl-editor-light.css b/codebox/static/css/highlight/isbl-editor-light.css
new file mode 100644 (file)
index 0000000..633070d
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+
+ISBL Editor style light color schemec (c) Dmitriy Tarasov <dimatar@gmail.com>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: white;
+  color: black;
+}
+
+/* Base color: saturation 0; */
+
+.hljs,
+.hljs-subst {
+  color: #000000;
+}
+
+.hljs-comment {
+  color: #555555;
+  font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-attribute,
+.hljs-selector-tag,
+.hljs-meta-keyword,
+.hljs-doctag,
+.hljs-name {
+  color: #000000;
+  font-weight: bold;
+}
+
+
+/* User color: hue: 0 */
+
+.hljs-string {
+  color: #000080;
+}
+
+.hljs-type,
+.hljs-number,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-quote,
+.hljs-template-tag,
+.hljs-deletion {
+  color: #000000;
+}
+
+.hljs-title,
+.hljs-section {
+  color: #fb2c00;
+}
+
+.hljs-title>.hljs-built_in {
+  color: #008080;
+  font-weight: normal;
+}
+
+.hljs-regexp,
+.hljs-symbol,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+  color: #5e1700;
+}
+
+/* Language color: hue: 90; */
+
+.hljs-built_in,
+.hljs-literal {
+  color: #000080;
+  font-weight: bold;
+}
+
+.hljs-bullet,
+.hljs-code,
+.hljs-addition {
+  color: #397300;
+}
+
+.hljs-class  {
+  color: #6f1C00;
+  font-weight: bold;
+}
+
+/* Meta color: hue: 200 */
+
+.hljs-meta {
+  color: #1f7199;
+}
+
+.hljs-meta-string {
+  color: #4d99bf;
+}
+
+
+/* Misc effects */
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/kimbie.dark.css b/codebox/static/css/highlight/kimbie.dark.css
new file mode 100644 (file)
index 0000000..d139cb5
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+    Name:     Kimbie (dark)
+    Author:   Jan T. Sott
+    License:  Creative Commons Attribution-ShareAlike 4.0 Unported License
+    URL:      https://github.com/idleberg/Kimbie-highlight.js
+*/
+
+/* Kimbie Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #d6baad;
+}
+
+/* Kimbie Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-meta {
+  color: #dc3958;
+}
+
+/* Kimbie Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-deletion,
+.hljs-link {
+  color: #f79a32;
+}
+
+/* Kimbie Yellow */
+.hljs-title,
+.hljs-section,
+.hljs-attribute {
+  color: #f06431;
+}
+
+/* Kimbie Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+  color: #889b4a;
+}
+
+/* Kimbie Purple */
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-function {
+  color: #98676a;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #221a0f;
+  color: #d3af86;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/kimbie.light.css b/codebox/static/css/highlight/kimbie.light.css
new file mode 100644 (file)
index 0000000..04ff6ed
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+    Name:     Kimbie (light)
+    Author:   Jan T. Sott
+    License:  Creative Commons Attribution-ShareAlike 4.0 Unported License
+    URL:      https://github.com/idleberg/Kimbie-highlight.js
+*/
+
+/* Kimbie Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #a57a4c;
+}
+
+/* Kimbie Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-meta {
+  color: #dc3958;
+}
+
+/* Kimbie Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-deletion,
+.hljs-link {
+  color: #f79a32;
+}
+
+/* Kimbie Yellow */
+.hljs-title,
+.hljs-section,
+.hljs-attribute {
+  color: #f06431;
+}
+
+/* Kimbie Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+  color: #889b4a;
+}
+
+/* Kimbie Purple */
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-function {
+  color: #98676a;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #fbebd4;
+  color: #84613d;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/lightfair.css b/codebox/static/css/highlight/lightfair.css
new file mode 100644 (file)
index 0000000..a247c8e
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+
+Lightfair style (c) Tristian Kelly <tristian.kelly560@gmail.com>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+}
+
+.hljs-name {
+    color:#01a3a3;
+}
+
+.hljs-tag,.hljs-meta {
+    color:#778899;
+}
+
+.hljs,
+.hljs-subst {
+    color: #444
+}
+
+.hljs-comment {
+    color: #888888
+}
+
+.hljs-keyword,
+.hljs-attribute,
+.hljs-selector-tag,
+.hljs-meta-keyword,
+.hljs-doctag,
+.hljs-name {
+    font-weight: bold
+}
+
+.hljs-type,
+.hljs-string,
+.hljs-number,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-quote,
+.hljs-template-tag,
+.hljs-deletion {
+    color: #4286f4
+}
+
+.hljs-title,
+.hljs-section {
+    color: #4286f4;
+    font-weight: bold
+}
+
+.hljs-regexp,
+.hljs-symbol,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+    color: #BC6060
+}
+
+.hljs-literal {
+    color: #62bcbc
+}
+
+.hljs-built_in,
+.hljs-bullet,
+.hljs-code,
+.hljs-addition {
+    color: #25c6c6
+}
+
+.hljs-meta-string {
+    color: #4d99bf
+}
+
+.hljs-emphasis {
+    font-style: italic
+}
+
+.hljs-strong {
+    font-weight: bold
+}
diff --git a/codebox/static/css/highlight/magula.css b/codebox/static/css/highlight/magula.css
new file mode 100644 (file)
index 0000000..44dee5e
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+Description: Magula style for highligh.js
+Author: Ruslan Keba <rukeba@gmail.com>
+Website: http://rukeba.com/
+Version: 1.0
+Date: 2009-01-03
+Music: Aphex Twin / Xtal
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background-color: #f4f4f4;
+}
+
+.hljs,
+.hljs-subst {
+  color: black;
+}
+
+.hljs-string,
+.hljs-title,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-attribute,
+.hljs-addition,
+.hljs-variable,
+.hljs-template-tag,
+.hljs-template-variable {
+  color: #050;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #777;
+}
+
+.hljs-number,
+.hljs-regexp,
+.hljs-literal,
+.hljs-type,
+.hljs-link {
+  color: #800;
+}
+
+.hljs-deletion,
+.hljs-meta {
+  color: #00e;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-doctag,
+.hljs-title,
+.hljs-section,
+.hljs-built_in,
+.hljs-tag,
+.hljs-name {
+  font-weight: bold;
+  color: navy;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/mono-blue.css b/codebox/static/css/highlight/mono-blue.css
new file mode 100644 (file)
index 0000000..884c97c
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+  Five-color theme from a single blue hue.
+*/
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #eaeef3;
+}
+
+.hljs {
+  color: #00193a;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-title,
+.hljs-section,
+.hljs-doctag,
+.hljs-name,
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-comment {
+  color: #738191;
+}
+
+.hljs-string,
+.hljs-title,
+.hljs-section,
+.hljs-built_in,
+.hljs-literal,
+.hljs-type,
+.hljs-addition,
+.hljs-tag,
+.hljs-quote,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #0048ab;
+}
+
+.hljs-meta,
+.hljs-subst,
+.hljs-symbol,
+.hljs-regexp,
+.hljs-attribute,
+.hljs-deletion,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link,
+.hljs-bullet {
+  color: #4c81c9;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
diff --git a/codebox/static/css/highlight/monokai-sublime.css b/codebox/static/css/highlight/monokai-sublime.css
new file mode 100644 (file)
index 0000000..2864170
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+
+Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #23241f;
+}
+
+.hljs,
+.hljs-tag,
+.hljs-subst {
+  color: #f8f8f2;
+}
+
+.hljs-strong,
+.hljs-emphasis {
+  color: #a8a8a2;
+}
+
+.hljs-bullet,
+.hljs-quote,
+.hljs-number,
+.hljs-regexp,
+.hljs-literal,
+.hljs-link {
+  color: #ae81ff;
+}
+
+.hljs-code,
+.hljs-title,
+.hljs-section,
+.hljs-selector-class {
+  color: #a6e22e;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-name,
+.hljs-attr {
+  color: #f92672;
+}
+
+.hljs-symbol,
+.hljs-attribute {
+  color: #66d9ef;
+}
+
+.hljs-params,
+.hljs-class .hljs-title {
+  color: #f8f8f2;
+}
+
+.hljs-string,
+.hljs-type,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-selector-id,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-addition,
+.hljs-variable,
+.hljs-template-variable {
+  color: #e6db74;
+}
+
+.hljs-comment,
+.hljs-deletion,
+.hljs-meta {
+  color: #75715e;
+}
diff --git a/codebox/static/css/highlight/monokai.css b/codebox/static/css/highlight/monokai.css
new file mode 100644 (file)
index 0000000..775d53f
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+Monokai style - ported by Luigi Maselli - http://grigio.org
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #272822; color: #ddd;
+}
+
+.hljs-tag,
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-strong,
+.hljs-name {
+  color: #f92672;
+}
+
+.hljs-code {
+  color: #66d9ef;
+}
+
+.hljs-class .hljs-title {
+  color: white;
+}
+
+.hljs-attribute,
+.hljs-symbol,
+.hljs-regexp,
+.hljs-link {
+  color: #bf79db;
+}
+
+.hljs-string,
+.hljs-bullet,
+.hljs-subst,
+.hljs-title,
+.hljs-section,
+.hljs-emphasis,
+.hljs-type,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-addition,
+.hljs-variable,
+.hljs-template-tag,
+.hljs-template-variable {
+  color: #a6e22e;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-deletion,
+.hljs-meta {
+  color: #75715e;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-doctag,
+.hljs-title,
+.hljs-section,
+.hljs-type,
+.hljs-selector-id {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/nord.css b/codebox/static/css/highlight/nord.css
new file mode 100644 (file)
index 0000000..4240384
--- /dev/null
@@ -0,0 +1,309 @@
+/*
+ * Copyright (c) 2017-present Arctic Ice Studio <development@arcticicestudio.com>
+ * Copyright (c) 2017-present Sven Greb <development@svengreb.de>
+ *
+ * Project:    Nord highlight.js
+ * Version:    0.1.0
+ * Repository: https://github.com/arcticicestudio/nord-highlightjs
+ * License:    MIT
+ * References:
+ *   https://github.com/arcticicestudio/nord
+ */
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #2E3440;
+}
+
+.hljs,
+.hljs-subst {
+  color: #D8DEE9;
+}
+
+.hljs-selector-tag {
+  color: #81A1C1;
+}
+
+.hljs-selector-id {
+  color: #8FBCBB;
+  font-weight: bold;
+}
+
+.hljs-selector-class {
+  color: #8FBCBB;
+}
+
+.hljs-selector-attr {
+  color: #8FBCBB;
+}
+
+.hljs-selector-pseudo {
+  color: #88C0D0;
+}
+
+.hljs-addition {
+  background-color: rgba(163, 190, 140, 0.5);
+}
+
+.hljs-deletion {
+  background-color: rgba(191, 97, 106, 0.5);
+}
+
+.hljs-built_in,
+.hljs-type {
+  color: #8FBCBB;
+}
+
+.hljs-class {
+  color: #8FBCBB;
+}
+
+.hljs-function {
+  color: #88C0D0;
+}
+
+.hljs-function > .hljs-title {
+  color: #88C0D0;
+}
+
+.hljs-keyword,
+.hljs-literal,
+.hljs-symbol {
+  color: #81A1C1;
+}
+
+.hljs-number {
+  color: #B48EAD;
+}
+
+.hljs-regexp {
+  color: #EBCB8B;
+}
+
+.hljs-string {
+  color: #A3BE8C;
+}
+
+.hljs-title {
+  color: #8FBCBB;
+}
+
+.hljs-params {
+  color: #D8DEE9;
+}
+
+.hljs-bullet {
+  color: #81A1C1;
+}
+
+.hljs-code {
+  color: #8FBCBB;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-formula {
+  color: #8FBCBB;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-link:hover {
+  text-decoration: underline;
+}
+
+.hljs-quote {
+  color: #4C566A;
+}
+
+.hljs-comment {
+  color: #4C566A;
+}
+
+.hljs-doctag {
+  color: #8FBCBB;
+}
+
+.hljs-meta,
+.hljs-meta-keyword {
+  color: #5E81AC;
+}
+
+.hljs-meta-string {
+  color: #A3BE8C;
+}
+
+.hljs-attr {
+  color: #8FBCBB;
+}
+
+.hljs-attribute {
+  color: #D8DEE9;
+}
+
+.hljs-builtin-name {
+  color: #81A1C1;
+}
+
+.hljs-name {
+  color: #81A1C1;
+}
+
+.hljs-section {
+  color: #88C0D0;
+}
+
+.hljs-tag {
+  color: #81A1C1;
+}
+
+.hljs-variable {
+  color: #D8DEE9;
+}
+
+.hljs-template-variable {
+  color: #D8DEE9;
+}
+
+.hljs-template-tag {
+  color: #5E81AC;
+}
+
+.abnf .hljs-attribute {
+  color: #88C0D0;
+}
+
+.abnf .hljs-symbol {
+  color: #EBCB8B;
+}
+
+.apache .hljs-attribute {
+  color: #88C0D0;
+}
+
+.apache .hljs-section {
+  color: #81A1C1;
+}
+
+.arduino .hljs-built_in {
+  color: #88C0D0;
+}
+
+.aspectj .hljs-meta {
+  color: #D08770;
+}
+
+.aspectj > .hljs-title {
+  color: #88C0D0;
+}
+
+.bnf .hljs-attribute {
+  color: #8FBCBB;
+}
+
+.clojure .hljs-name {
+  color: #88C0D0;
+}
+
+.clojure .hljs-symbol {
+  color: #EBCB8B;
+}
+
+.coq .hljs-built_in {
+  color: #88C0D0;
+}
+
+.cpp .hljs-meta-string {
+  color: #8FBCBB;
+}
+
+.css .hljs-built_in {
+  color: #88C0D0;
+}
+
+.css .hljs-keyword {
+  color: #D08770;
+}
+
+.diff .hljs-meta {
+  color: #8FBCBB;
+}
+
+.ebnf .hljs-attribute {
+  color: #8FBCBB;
+}
+
+.glsl .hljs-built_in {
+  color: #88C0D0;
+}
+
+.groovy .hljs-meta:not(:first-child) {
+  color: #D08770;
+}
+
+.haxe .hljs-meta {
+  color: #D08770;
+}
+
+.java .hljs-meta {
+  color: #D08770;
+}
+
+.ldif .hljs-attribute {
+  color: #8FBCBB;
+}
+
+.lisp .hljs-name {
+  color: #88C0D0;
+}
+
+.lua .hljs-built_in {
+  color: #88C0D0;
+}
+
+.moonscript .hljs-built_in {
+  color: #88C0D0;
+}
+
+.nginx .hljs-attribute {
+  color: #88C0D0;
+}
+
+.nginx .hljs-section {
+  color: #5E81AC;
+}
+
+.pf .hljs-built_in {
+  color: #88C0D0;
+}
+
+.processing .hljs-built_in {
+  color: #88C0D0;
+}
+
+.scss .hljs-keyword {
+  color: #81A1C1;
+}
+
+.stylus .hljs-keyword {
+  color: #81A1C1;
+}
+
+.swift .hljs-meta {
+  color: #D08770;
+}
+
+.vim .hljs-built_in {
+  color: #88C0D0;
+  font-style: italic;
+}
+
+.yaml .hljs-meta {
+  color: #D08770;
+}
diff --git a/codebox/static/css/highlight/obsidian.css b/codebox/static/css/highlight/obsidian.css
new file mode 100644 (file)
index 0000000..356630f
--- /dev/null
@@ -0,0 +1,88 @@
+/**
+ * Obsidian style
+ * ported by Alexander Marenin (http://github.com/ioncreature)
+ */
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #282b2e;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-selector-id {
+  color: #93c763;
+}
+
+.hljs-number {
+  color: #ffcd22;
+}
+
+.hljs {
+  color: #e0e2e4;
+}
+
+.hljs-attribute {
+  color: #668bb0;
+}
+
+.hljs-code,
+.hljs-class .hljs-title,
+.hljs-section {
+  color: white;
+}
+
+.hljs-regexp,
+.hljs-link {
+  color: #d39745;
+}
+
+.hljs-meta {
+  color: #557182;
+}
+
+.hljs-tag,
+.hljs-name,
+.hljs-bullet,
+.hljs-subst,
+.hljs-emphasis,
+.hljs-type,
+.hljs-built_in,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-addition,
+.hljs-variable,
+.hljs-template-tag,
+.hljs-template-variable {
+  color: #8cbbad;
+}
+
+.hljs-string,
+.hljs-symbol {
+  color: #ec7600;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-deletion {
+  color: #818e96;
+}
+
+.hljs-selector-class {
+  color: #A082BD
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-doctag,
+.hljs-title,
+.hljs-section,
+.hljs-type,
+.hljs-name,
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/ocean.css b/codebox/static/css/highlight/ocean.css
new file mode 100644 (file)
index 0000000..5901581
--- /dev/null
@@ -0,0 +1,74 @@
+/* Ocean Dark Theme */
+/* https://github.com/gavsiu */
+/* Original theme - https://github.com/chriskempson/base16 */
+
+/* Ocean Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #65737e;
+}
+
+/* Ocean Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-deletion {
+  color: #bf616a;
+}
+
+/* Ocean Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-meta,
+.hljs-link {
+  color: #d08770;
+}
+
+/* Ocean Yellow */
+.hljs-attribute {
+  color: #ebcb8b;
+}
+
+/* Ocean Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+  color: #a3be8c;
+}
+
+/* Ocean Blue */
+.hljs-title,
+.hljs-section {
+  color: #8fa1b3;
+}
+
+/* Ocean Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #b48ead;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #2b303b;
+  color: #c0c5ce;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/paraiso-dark.css b/codebox/static/css/highlight/paraiso-dark.css
new file mode 100644 (file)
index 0000000..e729240
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+    Paraíso (dark)
+    Created by Jan T. Sott (http://github.com/idleberg)
+    Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
+*/
+
+/* Paraíso Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #8d8687;
+}
+
+/* Paraíso Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-link,
+.hljs-meta {
+  color: #ef6155;
+}
+
+/* Paraíso Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-deletion {
+  color: #f99b15;
+}
+
+/* Paraíso Yellow */
+.hljs-title,
+.hljs-section,
+.hljs-attribute {
+  color: #fec418;
+}
+
+/* Paraíso Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+  color: #48b685;
+}
+
+/* Paraíso Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #815ba4;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #2f1e2e;
+  color: #a39e9b;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/paraiso-light.css b/codebox/static/css/highlight/paraiso-light.css
new file mode 100644 (file)
index 0000000..944857c
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+    Paraíso (light)
+    Created by Jan T. Sott (http://github.com/idleberg)
+    Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
+*/
+
+/* Paraíso Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #776e71;
+}
+
+/* Paraíso Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-link,
+.hljs-meta {
+  color: #ef6155;
+}
+
+/* Paraíso Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-deletion {
+  color: #f99b15;
+}
+
+/* Paraíso Yellow */
+.hljs-title,
+.hljs-section,
+.hljs-attribute {
+  color: #fec418;
+}
+
+/* Paraíso Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+  color: #48b685;
+}
+
+/* Paraíso Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #815ba4;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #e7e9db;
+  color: #4f424c;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/pojoaque.css b/codebox/static/css/highlight/pojoaque.css
new file mode 100644 (file)
index 0000000..2e07847
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+
+Pojoaque Style by Jason Tate
+http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html
+Based on Solarized Style from http://ethanschoonover.com/solarized
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  color: #dccf8f;
+  background: url(./pojoaque.jpg) repeat scroll left top #181914;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #586e75;
+  font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-addition {
+  color: #b64926;
+}
+
+.hljs-number,
+.hljs-string,
+.hljs-doctag,
+.hljs-regexp {
+  color: #468966;
+}
+
+.hljs-title,
+.hljs-section,
+.hljs-built_in,
+.hljs-name {
+  color: #ffb03b;
+}
+
+.hljs-variable,
+.hljs-template-variable,
+.hljs-class .hljs-title,
+.hljs-type,
+.hljs-tag {
+  color: #b58900;
+}
+
+.hljs-attribute {
+  color: #b89859;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-link,
+.hljs-subst,
+.hljs-meta {
+  color: #cb4b16;
+}
+
+.hljs-deletion {
+  color: #dc322f;
+}
+
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #d3a60c;
+}
+
+.hljs-formula {
+  background: #073642;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/pojoaque.jpg b/codebox/static/css/highlight/pojoaque.jpg
new file mode 100644 (file)
index 0000000..9c07d4a
Binary files /dev/null and b/codebox/static/css/highlight/pojoaque.jpg differ
diff --git a/codebox/static/css/highlight/purebasic.css b/codebox/static/css/highlight/purebasic.css
new file mode 100644 (file)
index 0000000..5ce9b9e
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+
+PureBASIC native IDE style ( version 1.0 - April 2016 )
+
+by Tristano Ajmone <tajmone@gmail.com>
+
+Public Domain
+
+NOTE_1:        PureBASIC code syntax highlighting only applies the following classes:
+                       .hljs-comment
+                       .hljs-function
+                       .hljs-keywords
+                       .hljs-string
+                       .hljs-symbol
+
+               Other classes are added here for the benefit of styling other languages with the look and feel of PureBASIC native IDE style.
+               If you need to customize a stylesheet for PureBASIC only, remove all non-relevant classes -- PureBASIC-related classes are followed by
+               a "--- used for PureBASIC ... ---" comment on same line.
+
+NOTE_2:        Color names provided in comments were derived using "Name that Color" online tool:
+                       http://chir.ag/projects/name-that-color
+*/
+
+.hljs { /* Common set of rules required by highlight.js (don'r remove!) */
+       display: block;
+       overflow-x: auto;
+       padding: 0.5em;
+       background: #FFFFDF; /* Half and Half (approx.) */
+/* --- Uncomment to add PureBASIC native IDE styled font!
+       font-family: Consolas;
+*/
+}
+
+.hljs, /* --- used for PureBASIC base color --- */
+.hljs-type,  /* --- used for PureBASIC Procedures return type --- */
+.hljs-function, /* --- used for wrapping PureBASIC Procedures definitions --- */
+.hljs-name,
+.hljs-number,
+.hljs-attr,
+.hljs-params,
+.hljs-subst {
+       color: #000000; /* Black */
+}
+
+.hljs-comment, /* --- used for PureBASIC Comments --- */
+.hljs-regexp,
+.hljs-section,
+.hljs-selector-pseudo,
+.hljs-addition {
+       color: #00AAAA; /* Persian Green (approx.) */
+}
+
+.hljs-title, /* --- used for PureBASIC Procedures Names --- */
+.hljs-tag,
+.hljs-variable,
+.hljs-code  {
+       color: #006666; /* Blue Stone (approx.) */
+}
+
+.hljs-keyword, /* --- used for PureBASIC Keywords --- */
+.hljs-class,
+.hljs-meta-keyword,
+.hljs-selector-class,
+.hljs-built_in,
+.hljs-builtin-name {
+       color: #006666; /* Blue Stone (approx.) */
+       font-weight: bold;
+}
+
+.hljs-string, /* --- used for PureBASIC Strings --- */
+.hljs-selector-attr {
+       color: #0080FF; /* Azure Radiance (approx.) */
+}
+
+.hljs-symbol, /* --- used for PureBASIC Constants --- */
+.hljs-link,
+.hljs-deletion,
+.hljs-attribute {
+       color: #924B72; /* Cannon Pink (approx.) */
+}
+
+.hljs-meta,
+.hljs-literal,
+.hljs-selector-id {
+       color: #924B72; /* Cannon Pink (approx.) */
+       font-weight: bold;
+}
+
+.hljs-strong,
+.hljs-name {
+       font-weight: bold;
+}
+
+.hljs-emphasis {
+       font-style: italic;
+}
diff --git a/codebox/static/css/highlight/qtcreator_dark.css b/codebox/static/css/highlight/qtcreator_dark.css
new file mode 100644 (file)
index 0000000..7aa56a3
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+
+Qt Creator dark color scheme
+
+*/
+
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #000000;
+}
+
+.hljs,
+.hljs-subst,
+.hljs-tag,
+.hljs-title {
+  color: #aaaaaa;
+}
+
+.hljs-strong,
+.hljs-emphasis {
+  color: #a8a8a2;
+}
+
+.hljs-bullet,
+.hljs-quote,
+.hljs-number,
+.hljs-regexp,
+.hljs-literal {
+  color: #ff55ff;
+}
+
+.hljs-code
+.hljs-selector-class {
+  color: #aaaaff;
+}
+
+.hljs-emphasis,
+.hljs-stronge,
+.hljs-type {
+  font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-function,
+.hljs-section,
+.hljs-symbol,
+.hljs-name {
+  color: #ffff55;
+}
+
+.hljs-attribute {
+  color: #ff5555;
+}
+
+.hljs-variable,
+.hljs-params,
+.hljs-class .hljs-title {
+  color: #8888ff;
+}
+
+.hljs-string,
+.hljs-selector-id,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-type,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-template-tag,
+.hljs-template-variable,
+.hljs-addition,
+.hljs-link {
+  color: #ff55ff;
+}
+
+.hljs-comment,
+.hljs-meta,
+.hljs-deletion {
+  color: #55ffff;
+}
diff --git a/codebox/static/css/highlight/qtcreator_light.css b/codebox/static/css/highlight/qtcreator_light.css
new file mode 100644 (file)
index 0000000..1efa2c6
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+
+Qt Creator light color scheme
+
+*/
+
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #ffffff;
+}
+
+.hljs,
+.hljs-subst,
+.hljs-tag,
+.hljs-title {
+  color: #000000;
+}
+
+.hljs-strong,
+.hljs-emphasis {
+  color: #000000;
+}
+
+.hljs-bullet,
+.hljs-quote,
+.hljs-number,
+.hljs-regexp,
+.hljs-literal {
+  color: #000080;
+}
+
+.hljs-code
+.hljs-selector-class {
+  color: #800080;
+}
+
+.hljs-emphasis,
+.hljs-stronge,
+.hljs-type {
+  font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-function,
+.hljs-section,
+.hljs-symbol,
+.hljs-name {
+  color: #808000;
+}
+
+.hljs-attribute {
+  color: #800000;
+}
+
+.hljs-variable,
+.hljs-params,
+.hljs-class .hljs-title {
+  color: #0055AF;
+}
+
+.hljs-string,
+.hljs-selector-id,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-type,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-template-tag,
+.hljs-template-variable,
+.hljs-addition,
+.hljs-link {
+  color: #008000;
+}
+
+.hljs-comment,
+.hljs-meta,
+.hljs-deletion {
+  color: #008000;
+}
diff --git a/codebox/static/css/highlight/railscasts.css b/codebox/static/css/highlight/railscasts.css
new file mode 100644 (file)
index 0000000..008cdc5
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+
+Railscasts-like style (c) Visoft, Inc. (Damien White)
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #232323;
+  color: #e6e1dc;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #bc9458;
+  font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #c26230;
+}
+
+.hljs-string,
+.hljs-number,
+.hljs-regexp,
+.hljs-variable,
+.hljs-template-variable {
+  color: #a5c261;
+}
+
+.hljs-subst {
+  color: #519f50;
+}
+
+.hljs-tag,
+.hljs-name {
+  color: #e8bf6a;
+}
+
+.hljs-type {
+  color: #da4939;
+}
+
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-attr,
+.hljs-link {
+  color: #6d9cbe;
+}
+
+.hljs-params {
+  color: #d0d0ff;
+}
+
+.hljs-attribute {
+  color: #cda869;
+}
+
+.hljs-meta {
+  color: #9b859d;
+}
+
+.hljs-title,
+.hljs-section {
+  color: #ffc66d;
+}
+
+.hljs-addition {
+  background-color: #144212;
+  color: #e6e1dc;
+  display: inline-block;
+  width: 100%;
+}
+
+.hljs-deletion {
+  background-color: #600;
+  color: #e6e1dc;
+  display: inline-block;
+  width: 100%;
+}
+
+.hljs-selector-class {
+  color: #9b703f;
+}
+
+.hljs-selector-id {
+  color: #8b98ab;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-link {
+  text-decoration: underline;
+}
diff --git a/codebox/static/css/highlight/rainbow.css b/codebox/static/css/highlight/rainbow.css
new file mode 100644 (file)
index 0000000..905eb8e
--- /dev/null
@@ -0,0 +1,85 @@
+/*
+
+Style with support for rainbow parens
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #474949;
+  color: #d1d9e1;
+}
+
+
+.hljs-comment,
+.hljs-quote {
+  color: #969896;
+  font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-type,
+.hljs-addition {
+  color: #cc99cc;
+}
+
+.hljs-number,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+  color: #f99157;
+}
+
+.hljs-string,
+.hljs-doctag,
+.hljs-regexp {
+  color: #8abeb7;
+}
+
+.hljs-title,
+.hljs-name,
+.hljs-section,
+.hljs-built_in {
+  color: #b5bd68;
+}
+
+.hljs-variable,
+.hljs-template-variable,
+.hljs-selector-id,
+.hljs-class .hljs-title {
+   color: #ffcc66;
+}
+
+.hljs-section,
+.hljs-name,
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-subst,
+.hljs-meta,
+.hljs-link {
+  color: #f99157;
+}
+
+.hljs-deletion {
+  color: #dc322f;
+}
+
+.hljs-formula {
+  background: #eee8d5;
+}
+
+.hljs-attr,
+.hljs-attribute {
+  color: #81a2be;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
diff --git a/codebox/static/css/highlight/routeros.css b/codebox/static/css/highlight/routeros.css
new file mode 100644 (file)
index 0000000..ebe2399
--- /dev/null
@@ -0,0 +1,108 @@
+/*
+
+ highlight.js style for Microtik RouterOS script
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #F0F0F0;
+}
+
+/* Base color: saturation 0; */
+
+.hljs,
+.hljs-subst {
+  color: #444;
+}
+
+.hljs-comment {
+  color: #888888;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-meta-keyword,
+.hljs-doctag,
+.hljs-name {
+  font-weight: bold;
+}
+
+.hljs-attribute {
+  color: #0E9A00;
+}    
+
+.hljs-function {
+  color: #99069A;
+}
+
+.hljs-builtin-name {
+  color: #99069A;
+}
+
+/* User color: hue: 0 */
+
+.hljs-type,
+.hljs-string,
+.hljs-number,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-quote,
+.hljs-template-tag,
+.hljs-deletion {
+  color: #880000;
+}
+
+.hljs-title,
+.hljs-section {
+  color: #880000;
+  font-weight: bold;
+}
+
+.hljs-regexp,
+.hljs-symbol,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-link,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+  color: #BC6060;
+}
+
+
+/* Language color: hue: 90; */
+
+.hljs-literal {
+  color: #78A960;
+}
+
+.hljs-built_in,
+.hljs-bullet,
+.hljs-code,
+.hljs-addition {
+  color: #0C9A9A;
+}
+
+
+/* Meta color: hue: 200 */
+
+.hljs-meta {
+  color: #1f7199;
+}
+
+.hljs-meta-string {
+  color: #4d99bf;
+}
+
+
+/* Misc effects */
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/school-book.css b/codebox/static/css/highlight/school-book.css
new file mode 100644 (file)
index 0000000..9483851
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+
+School Book style from goldblog.com.ua (c) Zaripov Yura <yur4ik7@ukr.net>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 15px 0.5em 0.5em 30px;
+  font-size: 11px;
+  line-height:16px;
+  background:#f6f6ae url(./school-book.png);
+  border-top: solid 2px #d2e8b9;
+  border-bottom: solid 1px #d2e8b9;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal {
+  color:#005599;
+  font-weight:bold;
+}
+
+.hljs,
+.hljs-subst {
+  color: #3e5915;
+}
+
+.hljs-string,
+.hljs-title,
+.hljs-section,
+.hljs-type,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-attribute,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-addition,
+.hljs-variable,
+.hljs-template-tag,
+.hljs-template-variable,
+.hljs-link {
+  color: #2c009f;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-deletion,
+.hljs-meta {
+  color: #e60415;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-doctag,
+.hljs-title,
+.hljs-section,
+.hljs-type,
+.hljs-name,
+.hljs-selector-id,
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
diff --git a/codebox/static/css/highlight/school-book.png b/codebox/static/css/highlight/school-book.png
new file mode 100644 (file)
index 0000000..956e979
Binary files /dev/null and b/codebox/static/css/highlight/school-book.png differ
diff --git a/codebox/static/css/highlight/shades-of-purple.css b/codebox/static/css/highlight/shades-of-purple.css
new file mode 100644 (file)
index 0000000..c0e899e
--- /dev/null
@@ -0,0 +1,97 @@
+/**
+ * Shades of Purple Theme â€” for Highlightjs.
+ *
+ * @author (c) Ahmad Awais <https://twitter.com/mrahmadawais/>
+ * @link GitHub Repo â†’ https://github.com/ahmadawais/Shades-of-Purple-HighlightJS
+ * @version 1.5.0
+ */
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  /* Custom font is optional */
+  /* font-family: 'Operator Mono', 'Fira Code', 'Menlo', 'Monaco', 'Courier New', 'monospace';  */
+  line-height: 1.45;
+  padding: 2rem;
+  background: #2d2b57;
+  font-weight: normal;
+}
+
+.hljs-title {
+  color: #fad000;
+  font-weight: normal;
+}
+
+.hljs-name {
+  color: #a1feff;
+}
+
+.hljs-tag {
+  color: #ffffff;
+}
+
+.hljs-attr {
+  color: #f8d000;
+  font-style: italic;
+}
+
+.hljs-built_in,
+.hljs-selector-tag,
+.hljs-section {
+  color: #fb9e00;
+}
+
+.hljs-keyword {
+  color: #fb9e00;
+}
+
+.hljs,
+.hljs-subst {
+  color: #e3dfff;
+}
+
+.hljs-string,
+.hljs-attribute,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition,
+.hljs-code,
+.hljs-regexp,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-template-tag,
+.hljs-quote,
+.hljs-deletion {
+  color: #4cd213;
+}
+
+.hljs-meta,
+.hljs-meta-string {
+  color: #fb9e00;
+}
+
+.hljs-comment {
+  color: #ac65ff;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-name,
+.hljs-strong {
+  font-weight: normal;
+}
+
+.hljs-literal,
+.hljs-number {
+  color: #fa658d;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/solarized-dark.css b/codebox/static/css/highlight/solarized-dark.css
new file mode 100644 (file)
index 0000000..b4c0da1
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+
+Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull <sourdrums@gmail.com>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #002b36;
+  color: #839496;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #586e75;
+}
+
+/* Solarized Green */
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-addition {
+  color: #859900;
+}
+
+/* Solarized Cyan */
+.hljs-number,
+.hljs-string,
+.hljs-meta .hljs-meta-string,
+.hljs-literal,
+.hljs-doctag,
+.hljs-regexp {
+  color: #2aa198;
+}
+
+/* Solarized Blue */
+.hljs-title,
+.hljs-section,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #268bd2;
+}
+
+/* Solarized Yellow */
+.hljs-attribute,
+.hljs-attr,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-class .hljs-title,
+.hljs-type {
+  color: #b58900;
+}
+
+/* Solarized Orange */
+.hljs-symbol,
+.hljs-bullet,
+.hljs-subst,
+.hljs-meta,
+.hljs-meta .hljs-keyword,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-link {
+  color: #cb4b16;
+}
+
+/* Solarized Red */
+.hljs-built_in,
+.hljs-deletion {
+  color: #dc322f;
+}
+
+.hljs-formula {
+  background: #073642;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/solarized-light.css b/codebox/static/css/highlight/solarized-light.css
new file mode 100644 (file)
index 0000000..fdcfcc7
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+
+Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull <sourdrums@gmail.com>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #fdf6e3;
+  color: #657b83;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #93a1a1;
+}
+
+/* Solarized Green */
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-addition {
+  color: #859900;
+}
+
+/* Solarized Cyan */
+.hljs-number,
+.hljs-string,
+.hljs-meta .hljs-meta-string,
+.hljs-literal,
+.hljs-doctag,
+.hljs-regexp {
+  color: #2aa198;
+}
+
+/* Solarized Blue */
+.hljs-title,
+.hljs-section,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #268bd2;
+}
+
+/* Solarized Yellow */
+.hljs-attribute,
+.hljs-attr,
+.hljs-variable,
+.hljs-template-variable,
+.hljs-class .hljs-title,
+.hljs-type {
+  color: #b58900;
+}
+
+/* Solarized Orange */
+.hljs-symbol,
+.hljs-bullet,
+.hljs-subst,
+.hljs-meta,
+.hljs-meta .hljs-keyword,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-link {
+  color: #cb4b16;
+}
+
+/* Solarized Red */
+.hljs-built_in,
+.hljs-deletion {
+  color: #dc322f;
+}
+
+.hljs-formula {
+  background: #eee8d5;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/sunburst.css b/codebox/static/css/highlight/sunburst.css
new file mode 100644 (file)
index 0000000..f56dd5e
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+
+Sunburst-like style (c) Vasily Polovnyov <vast@whiteants.net>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #000;
+  color: #f8f8f8;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #aeaeae;
+  font-style: italic;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-type {
+  color: #e28964;
+}
+
+.hljs-string {
+  color: #65b042;
+}
+
+.hljs-subst {
+  color: #daefa3;
+}
+
+.hljs-regexp,
+.hljs-link {
+  color: #e9c062;
+}
+
+.hljs-title,
+.hljs-section,
+.hljs-tag,
+.hljs-name {
+  color: #89bdff;
+}
+
+.hljs-class .hljs-title,
+.hljs-doctag {
+  text-decoration: underline;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-number {
+  color: #3387cc;
+}
+
+.hljs-params,
+.hljs-variable,
+.hljs-template-variable {
+  color: #3e87e3;
+}
+
+.hljs-attribute {
+  color: #cda869;
+}
+
+.hljs-meta {
+  color: #8996a8;
+}
+
+.hljs-formula {
+  background-color: #0e2231;
+  color: #f8f8f8;
+  font-style: italic;
+}
+
+.hljs-addition {
+  background-color: #253b22;
+  color: #f8f8f8;
+}
+
+.hljs-deletion {
+  background-color: #420e09;
+  color: #f8f8f8;
+}
+
+.hljs-selector-class {
+  color: #9b703f;
+}
+
+.hljs-selector-id {
+  color: #8b98ab;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/tomorrow-night-blue.css b/codebox/static/css/highlight/tomorrow-night-blue.css
new file mode 100644 (file)
index 0000000..78e59cc
--- /dev/null
@@ -0,0 +1,75 @@
+/* Tomorrow Night Blue Theme */
+/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
+/* Original theme - https://github.com/chriskempson/tomorrow-theme */
+/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
+
+/* Tomorrow Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #7285b7;
+}
+
+/* Tomorrow Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-deletion {
+  color: #ff9da4;
+}
+
+/* Tomorrow Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-meta,
+.hljs-link {
+  color: #ffc58f;
+}
+
+/* Tomorrow Yellow */
+.hljs-attribute {
+  color: #ffeead;
+}
+
+/* Tomorrow Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+  color: #d1f1a9;
+}
+
+/* Tomorrow Blue */
+.hljs-title,
+.hljs-section {
+  color: #bbdaff;
+}
+
+/* Tomorrow Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #ebbbff;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #002451;
+  color: white;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/tomorrow-night-bright.css b/codebox/static/css/highlight/tomorrow-night-bright.css
new file mode 100644 (file)
index 0000000..e05af8a
--- /dev/null
@@ -0,0 +1,74 @@
+/* Tomorrow Night Bright Theme */
+/* Original theme - https://github.com/chriskempson/tomorrow-theme */
+/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
+
+/* Tomorrow Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #969896;
+}
+
+/* Tomorrow Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-deletion {
+  color: #d54e53;
+}
+
+/* Tomorrow Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-meta,
+.hljs-link {
+  color: #e78c45;
+}
+
+/* Tomorrow Yellow */
+.hljs-attribute {
+  color: #e7c547;
+}
+
+/* Tomorrow Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+  color: #b9ca4a;
+}
+
+/* Tomorrow Blue */
+.hljs-title,
+.hljs-section {
+  color: #7aa6da;
+}
+
+/* Tomorrow Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #c397d8;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: black;
+  color: #eaeaea;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/tomorrow-night-eighties.css b/codebox/static/css/highlight/tomorrow-night-eighties.css
new file mode 100644 (file)
index 0000000..08fd51c
--- /dev/null
@@ -0,0 +1,74 @@
+/* Tomorrow Night Eighties Theme */
+/* Original theme - https://github.com/chriskempson/tomorrow-theme */
+/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
+
+/* Tomorrow Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #999999;
+}
+
+/* Tomorrow Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-deletion {
+  color: #f2777a;
+}
+
+/* Tomorrow Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-meta,
+.hljs-link {
+  color: #f99157;
+}
+
+/* Tomorrow Yellow */
+.hljs-attribute {
+  color: #ffcc66;
+}
+
+/* Tomorrow Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+  color: #99cc99;
+}
+
+/* Tomorrow Blue */
+.hljs-title,
+.hljs-section {
+  color: #6699cc;
+}
+
+/* Tomorrow Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #cc99cc;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #2d2d2d;
+  color: #cccccc;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/tomorrow-night.css b/codebox/static/css/highlight/tomorrow-night.css
new file mode 100644 (file)
index 0000000..ddd270a
--- /dev/null
@@ -0,0 +1,75 @@
+/* Tomorrow Night Theme */
+/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
+/* Original theme - https://github.com/chriskempson/tomorrow-theme */
+/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
+
+/* Tomorrow Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #969896;
+}
+
+/* Tomorrow Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-deletion {
+  color: #cc6666;
+}
+
+/* Tomorrow Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-meta,
+.hljs-link {
+  color: #de935f;
+}
+
+/* Tomorrow Yellow */
+.hljs-attribute {
+  color: #f0c674;
+}
+
+/* Tomorrow Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+  color: #b5bd68;
+}
+
+/* Tomorrow Blue */
+.hljs-title,
+.hljs-section {
+  color: #81a2be;
+}
+
+/* Tomorrow Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #b294bb;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: #1d1f21;
+  color: #c5c8c6;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/tomorrow.css b/codebox/static/css/highlight/tomorrow.css
new file mode 100644 (file)
index 0000000..026a62f
--- /dev/null
@@ -0,0 +1,72 @@
+/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
+
+/* Tomorrow Comment */
+.hljs-comment,
+.hljs-quote {
+  color: #8e908c;
+}
+
+/* Tomorrow Red */
+.hljs-variable,
+.hljs-template-variable,
+.hljs-tag,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-regexp,
+.hljs-deletion {
+  color: #c82829;
+}
+
+/* Tomorrow Orange */
+.hljs-number,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-literal,
+.hljs-type,
+.hljs-params,
+.hljs-meta,
+.hljs-link {
+  color: #f5871f;
+}
+
+/* Tomorrow Yellow */
+.hljs-attribute {
+  color: #eab700;
+}
+
+/* Tomorrow Green */
+.hljs-string,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-addition {
+  color: #718c00;
+}
+
+/* Tomorrow Blue */
+.hljs-title,
+.hljs-section {
+  color: #4271ae;
+}
+
+/* Tomorrow Purple */
+.hljs-keyword,
+.hljs-selector-tag {
+  color: #8959a8;
+}
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  background: white;
+  color: #4d4d4c;
+  padding: 0.5em;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/vs.css b/codebox/static/css/highlight/vs.css
new file mode 100644 (file)
index 0000000..c5d07d3
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+
+Visual Studio-like style based on original C# coloring by Jason Diamond <jason@diamond.name>
+
+*/
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: white;
+  color: black;
+}
+
+.hljs-comment,
+.hljs-quote,
+.hljs-variable {
+  color: #008000;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-built_in,
+.hljs-name,
+.hljs-tag {
+  color: #00f;
+}
+
+.hljs-string,
+.hljs-title,
+.hljs-section,
+.hljs-attribute,
+.hljs-literal,
+.hljs-template-tag,
+.hljs-template-variable,
+.hljs-type,
+.hljs-addition {
+  color: #a31515;
+}
+
+.hljs-deletion,
+.hljs-selector-attr,
+.hljs-selector-pseudo,
+.hljs-meta {
+  color: #2b91af;
+}
+
+.hljs-doctag {
+  color: #808080;
+}
+
+.hljs-attr {
+  color: #f00;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-link {
+  color: #00b0e8;
+}
+
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/css/highlight/vs2015.css b/codebox/static/css/highlight/vs2015.css
new file mode 100644 (file)
index 0000000..d1d9be3
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * Visual Studio 2015 dark style
+ * Author: Nicolas LLOBERA <nllobera@gmail.com>
+ */
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #1E1E1E;
+  color: #DCDCDC;
+}
+
+.hljs-keyword,
+.hljs-literal,
+.hljs-symbol,
+.hljs-name {
+  color: #569CD6;
+}
+.hljs-link {
+  color: #569CD6;
+  text-decoration: underline;
+}
+
+.hljs-built_in,
+.hljs-type {
+  color: #4EC9B0;
+}
+
+.hljs-number,
+.hljs-class {
+  color: #B8D7A3;
+}
+
+.hljs-string,
+.hljs-meta-string {
+  color: #D69D85;
+}
+
+.hljs-regexp,
+.hljs-template-tag {
+  color: #9A5334;
+}
+
+.hljs-subst,
+.hljs-function,
+.hljs-title,
+.hljs-params,
+.hljs-formula {
+  color: #DCDCDC;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #57A64A;
+  font-style: italic;
+}
+
+.hljs-doctag {
+  color: #608B4E;
+}
+
+.hljs-meta,
+.hljs-meta-keyword,
+.hljs-tag {
+  color: #9B9B9B;
+}
+
+.hljs-variable,
+.hljs-template-variable {
+  color: #BD63C5;
+}
+
+.hljs-attr,
+.hljs-attribute,
+.hljs-builtin-name {
+  color: #9CDCFE;
+}
+
+.hljs-section {
+  color: gold;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
+
+/*.hljs-code {
+  font-family:'Monospace';
+}*/
+
+.hljs-bullet,
+.hljs-selector-tag,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-selector-attr,
+.hljs-selector-pseudo {
+  color: #D7BA7D;
+}
+
+.hljs-addition {
+  background-color: #144212;
+  display: inline-block;
+  width: 100%;
+}
+
+.hljs-deletion {
+  background-color: #600;
+  display: inline-block;
+  width: 100%;
+}
diff --git a/codebox/static/css/highlight/xcode.css b/codebox/static/css/highlight/xcode.css
new file mode 100644 (file)
index 0000000..b305665
--- /dev/null
@@ -0,0 +1,104 @@
+/*
+
+XCode style (c) Angel Garcia <angelgarcia.mail@gmail.com>
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #fff;
+  color: black;
+}
+
+/* Gray DOCTYPE selectors like WebKit */
+.xml .hljs-meta {
+  color: #c0c0c0;
+}
+
+.hljs-comment,
+.hljs-quote {
+  color: #007400;
+}
+
+.hljs-tag,
+.hljs-attribute,
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-literal,
+.hljs-name {
+  color: #aa0d91;
+}
+
+.hljs-variable,
+.hljs-template-variable {
+  color: #3F6E74;
+}
+
+.hljs-code,
+.hljs-string,
+.hljs-meta-string {
+  color: #c41a16;
+}
+
+.hljs-regexp,
+.hljs-link {
+  color: #0E0EFF;
+}
+
+.hljs-title,
+.hljs-symbol,
+.hljs-bullet,
+.hljs-number {
+  color: #1c00cf;
+}
+
+.hljs-section,
+.hljs-meta {
+  color: #643820;
+}
+
+
+.hljs-class .hljs-title,
+.hljs-type,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-params {
+  color: #5c2699;
+}
+
+.hljs-attr {
+  color: #836C28;
+}
+
+.hljs-subst {
+  color: #000;
+}
+
+.hljs-formula {
+  background-color: #eee;
+  font-style: italic;
+}
+
+.hljs-addition {
+  background-color: #baeeba;
+}
+
+.hljs-deletion {
+  background-color: #ffc8bd;
+}
+
+.hljs-selector-id,
+.hljs-selector-class {
+  color: #9b703f;
+}
+
+.hljs-doctag,
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
diff --git a/codebox/static/css/highlight/xt256.css b/codebox/static/css/highlight/xt256.css
new file mode 100644 (file)
index 0000000..3e35ad2
--- /dev/null
@@ -0,0 +1,92 @@
+
+/*
+  xt256.css
+
+  Contact: initbar [at] protonmail [dot] ch
+         : github.com/initbar
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  color: #eaeaea;
+  background: #000;
+  padding: 0.5em;
+}
+
+.hljs-subst {
+  color: #eaeaea;
+}
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
+
+.hljs-builtin-name,
+.hljs-type {
+  color: #eaeaea;
+}
+
+.hljs-params {
+  color: #da0000;
+}
+
+.hljs-literal,
+.hljs-number,
+.hljs-name {
+  color: #ff0000;
+  font-weight: bolder;
+}
+
+.hljs-comment {
+  color: #969896;
+}
+
+.hljs-selector-id,
+.hljs-quote {
+  color: #00ffff;
+}
+
+.hljs-template-variable,
+.hljs-variable,
+.hljs-title {
+  color: #00ffff;
+  font-weight: bold;
+}
+
+.hljs-selector-class,
+.hljs-keyword,
+.hljs-symbol {
+  color: #fff000;
+}
+
+.hljs-string,
+.hljs-bullet {
+  color: #00ff00;
+}
+
+.hljs-tag,
+.hljs-section {
+  color: #000fff;
+}
+
+.hljs-selector-tag {
+  color: #000fff;
+  font-weight: bold;
+}
+
+.hljs-attribute,
+.hljs-built_in,
+.hljs-regexp,
+.hljs-link {
+  color: #ff00ff;
+}
+
+.hljs-meta {
+  color: #fff;
+  font-weight: bolder;
+}
diff --git a/codebox/static/css/highlight/zenburn.css b/codebox/static/css/highlight/zenburn.css
new file mode 100644 (file)
index 0000000..07be502
--- /dev/null
@@ -0,0 +1,80 @@
+/*
+
+Zenburn style from voldmar.ru (c) Vladimir Epifanov <voldmar@voldmar.ru>
+based on dark.css by Ivan Sagalaev
+
+*/
+
+.hljs {
+  display: block;
+  overflow-x: auto;
+  padding: 0.5em;
+  background: #3f3f3f;
+  color: #dcdcdc;
+}
+
+.hljs-keyword,
+.hljs-selector-tag,
+.hljs-tag {
+  color: #e3ceab;
+}
+
+.hljs-template-tag {
+  color: #dcdcdc;
+}
+
+.hljs-number {
+  color: #8cd0d3;
+}
+
+.hljs-variable,
+.hljs-template-variable,
+.hljs-attribute {
+  color: #efdcbc;
+}
+
+.hljs-literal {
+  color: #efefaf;
+}
+
+.hljs-subst {
+  color: #8f8f8f;
+}
+
+.hljs-title,
+.hljs-name,
+.hljs-selector-id,
+.hljs-selector-class,
+.hljs-section,
+.hljs-type {
+  color: #efef8f;
+}
+
+.hljs-symbol,
+.hljs-bullet,
+.hljs-link {
+  color: #dca3a3;
+}
+
+.hljs-deletion,
+.hljs-string,
+.hljs-built_in,
+.hljs-builtin-name {
+  color: #cc9393;
+}
+
+.hljs-addition,
+.hljs-comment,
+.hljs-quote,
+.hljs-meta {
+  color: #7f9f7f;
+}
+
+
+.hljs-emphasis {
+  font-style: italic;
+}
+
+.hljs-strong {
+  font-weight: bold;
+}
diff --git a/codebox/static/js/admin_user.js b/codebox/static/js/admin_user.js
new file mode 100644 (file)
index 0000000..46f6421
--- /dev/null
@@ -0,0 +1,37 @@
+// Generated by CoffeeScript 2.4.1
+(function() {
+  $(document).ready(function() {
+    $('[data-user-reset-password]').click(function(e) {
+      var new_password, username;
+      username = $(e.target).attr('data-user-reset-password');
+      new_password = prompt('New password');
+      if ((new_password == null) || new_password === "") {
+        return;
+      }
+      return $.post('/admin/user/reset_password', {
+        'username': username,
+        'password': new_password
+      }, function(data) {
+        if (data.success != null) {
+          alert(`${username}'s password was changed`);
+        }
+        return console.log(data);
+      });
+    });
+    return $('[data-user-delete]').click(function(e) {
+      var username;
+      username = $(e.target).attr('data-user-delete');
+      return $.post('/admin/user/delete', {
+        'username': username
+      }, function(data) {
+        if (data.success != null) {
+          alert(`${username} was deleted`);
+        }
+        return window.location.reload();
+      });
+    });
+  });
+
+}).call(this);
+
+//# sourceMappingURL=admin_user.js.map
diff --git a/codebox/static/js/admin_user.js.map b/codebox/static/js/admin_user.js.map
new file mode 100644 (file)
index 0000000..3212bdc
--- /dev/null
@@ -0,0 +1,13 @@
+{
+  "version": 3,
+  "file": "admin_user.js",
+  "sourceRoot": "..",
+  "sources": [
+    "coffee/admin_user.coffee"
+  ],
+  "names": [],
+  "mappings": ";AAAA;EAAA,CAAA,CAAE,QAAF,CAAW,CAAC,KAAZ,CAAkB,QAAA,CAAA,CAAA;IACjB,CAAA,CAAE,4BAAF,CAA+B,CAAC,KAAhC,CAAsC,QAAA,CAAC,CAAD,CAAA;AACrC,UAAA,YAAA,EAAA;MAAA,QAAA,GAAW,CAAA,CAAE,CAAC,CAAC,MAAJ,CAAW,CAAC,IAAZ,CAAiB,0BAAjB;MAEX,YAAA,GAAe,MAAA,CAAO,cAAP;MACf,IAAO,sBAAJ,IAAqB,YAAA,KAAgB,EAAxC;AACC,eADD;;aAGA,CAAC,CAAC,IAAF,CAAO,4BAAP,EAAqC;QAAE,UAAA,EAAY,QAAd;QAAwB,UAAA,EAAY;MAApC,CAArC,EAAyF,QAAA,CAAC,IAAD,CAAA;QACxF,IAAG,oBAAH;UACC,KAAA,CAAM,CAAA,CAAA,CAAG,QAAH,CAAY,uBAAZ,CAAN,EADD;;eAGA,OAAO,CAAC,GAAR,CAAY,IAAZ;MAJwF,CAAzF;IAPqC,CAAtC;WAaA,CAAA,CAAE,oBAAF,CAAuB,CAAC,KAAxB,CAA8B,QAAA,CAAC,CAAD,CAAA;AAC7B,UAAA;MAAA,QAAA,GAAW,CAAA,CAAE,CAAC,CAAC,MAAJ,CAAW,CAAC,IAAZ,CAAiB,kBAAjB;aAEX,CAAC,CAAC,IAAF,CAAO,oBAAP,EAA6B;QAAE,UAAA,EAAY;MAAd,CAA7B,EAAuD,QAAA,CAAC,IAAD,CAAA;QACtD,IAAG,oBAAH;UACC,KAAA,CAAM,CAAA,CAAA,CAAG,QAAH,CAAY,YAAZ,CAAN,EADD;;eAGA,MAAM,CAAC,QAAQ,CAAC,MAAhB,CAAA;MAJsD,CAAvD;IAH6B,CAA9B;EAdiB,CAAlB;AAAA",
+  "sourcesContent": [
+    "$(document).ready ->\n\t$('[data-user-reset-password]').click (e) ->\n\t\tusername = $(e.target).attr 'data-user-reset-password'\n\n\t\tnew_password = prompt 'New password'\n\t\tif not new_password? or new_password == \"\"\n\t\t\treturn\n\n\t\t$.post '/admin/user/reset_password', { 'username': username, 'password': new_password }, (data) ->\n\t\t\tif data.success?\n\t\t\t\talert(\"#{username}'s password was changed\")\n\n\t\t\tconsole.log(data)\n\n\t$('[data-user-delete]').click (e) ->\n\t\tusername = $(e.target).attr 'data-user-delete'\n\n\t\t$.post '/admin/user/delete', { 'username': username }, (data) ->\n\t\t\tif data.success?\n\t\t\t\talert \"#{username} was deleted\"\n\n\t\t\twindow.location.reload()\n"
+  ]
+}
\ No newline at end of file
diff --git a/codebox/static/js/vendor/highlight-line-numbers.js b/codebox/static/js/vendor/highlight-line-numbers.js
new file mode 100644 (file)
index 0000000..c849a41
--- /dev/null
@@ -0,0 +1,2 @@
+!function(n,e){"use strict";function t(){var n=e.createElement("style");n.type="text/css",n.innerHTML=h(".{0}{border-collapse:collapse}.{0} td{padding:0}.{1}:before{content:attr({2})}",[f,m,j]),e.getElementsByTagName("head")[0].appendChild(n)}function r(t){"complete"===e.readyState?l(t):n.addEventListener("DOMContentLoaded",function(){l(t)})}function l(t){try{var r=e.querySelectorAll("code.hljs");for(var l in r)r.hasOwnProperty(l)&&i(r[l],t)}catch(o){n.console.error("LineNumbers error: ",o)}}function i(n,e){if("object"==typeof n){e=e||{singleLine:!1};var t=e.singleLine?0:1;u(function(){s(n),n.innerHTML=o(n.innerHTML,t)})}}function o(n,e){var t=c(n);if(""===t[t.length-1].trim()&&t.pop(),t.length>e){for(var r="",l=0,i=t.length;l<i;l++)r+=h('<tr><td class="{0}"><div class="{1} {2}" {3}="{5}"></div></td><td class="{4}"><div class="{1}">{6}</div></td></tr>',[v,g,m,j,p,l+1,t[l].length>0?t[l]:" "]);return h('<table class="{0}">{1}</table>',[f,r])}return n}function s(n){var e=n.childNodes;for(var t in e)if(e.hasOwnProperty(t)){var r=e[t];d(r.textContent)>0&&(r.childNodes.length>0?s(r):a(r.parentNode))}}function a(n){var e=n.className;if(/hljs-/.test(e)){for(var t=c(n.innerHTML),r=0,l="";r<t.length;r++)l+=h('<span class="{0}">{1}</span>\n',[e,t[r]]);n.innerHTML=l.trim()}}function c(n){return 0===n.length?[]:n.split(L)}function d(n){return(n.trim().match(L)||[]).length}function u(e){n.setTimeout(e,0)}function h(n,e){return n.replace(/\{(\d+)\}/g,function(n,t){return e[t]?e[t]:n})}var f="hljs-ln",g="hljs-ln-line",p="hljs-ln-code",v="hljs-ln-numbers",m="hljs-ln-n",j="data-line-number",L=/\r\n|\r|\n/g;n.hljs?(n.hljs.initLineNumbersOnLoad=r,n.hljs.lineNumbersBlock=i,t()):n.console.error("highlight.js not detected!")}(window,document);
+
diff --git a/codebox/static/js/vendor/highlight.pack.js b/codebox/static/js/vendor/highlight.pack.js
new file mode 100644 (file)
index 0000000..3066da4
--- /dev/null
@@ -0,0 +1,2 @@
+/*! highlight.js v9.15.10 | BSD3 License | git.io/hljslicense */
+!function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"==typeof exports||exports.nodeType?n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs})):e(exports)}(function(a){var f=[],u=Object.keys,N={},c={},n=/^(no-?highlight|plain|text)$/i,s=/\blang(?:uage)?-([\w-]+)\b/i,t=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,r={case_insensitive:"cI",lexemes:"l",contains:"c",keywords:"k",subLanguage:"sL",className:"cN",begin:"b",beginKeywords:"bK",end:"e",endsWithParent:"eW",illegal:"i",excludeBegin:"eB",excludeEnd:"eE",returnBegin:"rB",returnEnd:"rE",relevance:"r",variants:"v",IDENT_RE:"IR",UNDERSCORE_IDENT_RE:"UIR",NUMBER_RE:"NR",C_NUMBER_RE:"CNR",BINARY_NUMBER_RE:"BNR",RE_STARTERS_RE:"RSR",BACKSLASH_ESCAPE:"BE",APOS_STRING_MODE:"ASM",QUOTE_STRING_MODE:"QSM",PHRASAL_WORDS_MODE:"PWM",C_LINE_COMMENT_MODE:"CLCM",C_BLOCK_COMMENT_MODE:"CBCM",HASH_COMMENT_MODE:"HCM",NUMBER_MODE:"NM",C_NUMBER_MODE:"CNM",BINARY_NUMBER_MODE:"BNM",CSS_NUMBER_MODE:"CSSNM",REGEXP_MODE:"RM",TITLE_MODE:"TM",UNDERSCORE_TITLE_MODE:"UTM",COMMENT:"C",beginRe:"bR",endRe:"eR",illegalRe:"iR",lexemesRe:"lR",terminators:"t",terminator_end:"tE"},b="</span>",h={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};function _(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function E(e){return e.nodeName.toLowerCase()}function v(e,n){var t=e&&e.exec(n);return t&&0===t.index}function l(e){return n.test(e)}function g(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function R(e){var a=[];return function e(n,t){for(var r=n.firstChild;r;r=r.nextSibling)3===r.nodeType?t+=r.nodeValue.length:1===r.nodeType&&(a.push({event:"start",offset:t,node:r}),t=e(r,t),E(r).match(/br|hr|img|input/)||a.push({event:"stop",offset:t,node:r}));return t}(e,0),a}function i(e){if(r&&!e.langApiRestored){for(var n in e.langApiRestored=!0,r)e[n]&&(e[r[n]]=e[n]);(e.c||[]).concat(e.v||[]).forEach(i)}}function m(o){function s(e){return e&&e.source||e}function c(e,n){return new RegExp(s(e),"m"+(o.cI?"i":"")+(n?"g":""))}!function n(t,e){if(!t.compiled){if(t.compiled=!0,t.k=t.k||t.bK,t.k){function r(t,e){o.cI&&(e=e.toLowerCase()),e.split(" ").forEach(function(e){var n=e.split("|");a[n[0]]=[t,n[1]?Number(n[1]):1]})}var a={};"string"==typeof t.k?r("keyword",t.k):u(t.k).forEach(function(e){r(e,t.k[e])}),t.k=a}t.lR=c(t.l||/\w+/,!0),e&&(t.bK&&(t.b="\\b("+t.bK.split(" ").join("|")+")\\b"),t.b||(t.b=/\B|\b/),t.bR=c(t.b),t.endSameAsBegin&&(t.e=t.b),t.e||t.eW||(t.e=/\B|\b/),t.e&&(t.eR=c(t.e)),t.tE=s(t.e)||"",t.eW&&e.tE&&(t.tE+=(t.e?"|":"")+e.tE)),t.i&&(t.iR=c(t.i)),null==t.r&&(t.r=1),t.c||(t.c=[]),t.c=Array.prototype.concat.apply([],t.c.map(function(e){return function(n){return n.v&&!n.cached_variants&&(n.cached_variants=n.v.map(function(e){return g(n,{v:null},e)})),n.cached_variants||n.eW&&[g(n)]||[n]}("self"===e?t:e)})),t.c.forEach(function(e){n(e,t)}),t.starts&&n(t.starts,e);var i=t.c.map(function(e){return e.bK?"\\.?(?:"+e.b+")\\.?":e.b}).concat([t.tE,t.i]).map(s).filter(Boolean);t.t=i.length?c(function(e,n){for(var t=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",i=0;i<e.length;i++){var o=r,c=s(e[i]);for(0<i&&(a+=n);0<c.length;){var u=t.exec(c);if(null==u){a+=c;break}a+=c.substring(0,u.index),c=c.substring(u.index+u[0].length),"\\"==u[0][0]&&u[1]?a+="\\"+String(Number(u[1])+o):(a+=u[0],"("==u[0]&&r++)}}return a}(i,"|"),!0):{exec:function(){return null}}}}(o)}function C(e,n,i,t){function c(e,n,t,r){var a='<span class="'+(r?"":h.classPrefix);return e?(a+=e+'">')+n+(t?"":b):n}function o(){E+=null!=l.sL?function(){var e="string"==typeof l.sL;if(e&&!N[l.sL])return _(g);var n=e?C(l.sL,g,!0,f[l.sL]):O(g,l.sL.length?l.sL:void 0);return 0<l.r&&(R+=n.r),e&&(f[l.sL]=n.top),c(n.language,n.value,!1,!0)}():function(){var e,n,t,r,a,i,o;if(!l.k)return _(g);for(r="",n=0,l.lR.lastIndex=0,t=l.lR.exec(g);t;)r+=_(g.substring(n,t.index)),a=l,i=t,void 0,o=s.cI?i[0].toLowerCase():i[0],(e=a.k.hasOwnProperty(o)&&a.k[o])?(R+=e[1],r+=c(e[0],_(t[0]))):r+=_(t[0]),n=l.lR.lastIndex,t=l.lR.exec(g);return r+_(g.substr(n))}(),g=""}function u(e){E+=e.cN?c(e.cN,"",!0):"",l=Object.create(e,{parent:{value:l}})}function r(e,n){if(g+=e,null==n)return o(),0;var t=function(e,n){var t,r,a;for(t=0,r=n.c.length;t<r;t++)if(v(n.c[t].bR,e))return n.c[t].endSameAsBegin&&(n.c[t].eR=(a=n.c[t].bR.exec(e)[0],new RegExp(a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"m"))),n.c[t]}(n,l);if(t)return t.skip?g+=n:(t.eB&&(g+=n),o(),t.rB||t.eB||(g=n)),u(t),t.rB?0:n.length;var r=function e(n,t){if(v(n.eR,t)){for(;n.endsParent&&n.parent;)n=n.parent;return n}if(n.eW)return e(n.parent,t)}(l,n);if(r){var a=l;for(a.skip?g+=n:(a.rE||a.eE||(g+=n),o(),a.eE&&(g=n));l.cN&&(E+=b),l.skip||l.sL||(R+=l.r),(l=l.parent)!==r.parent;);return r.starts&&(r.endSameAsBegin&&(r.starts.eR=r.eR),u(r.starts)),a.rE?0:n.length}if(function(e,n){return!i&&v(n.iR,e)}(n,l))throw new Error('Illegal lexeme "'+n+'" for mode "'+(l.cN||"<unnamed>")+'"');return g+=n,n.length||1}var s=B(e);if(!s)throw new Error('Unknown language: "'+e+'"');m(s);var a,l=t||s,f={},E="";for(a=l;a!==s;a=a.parent)a.cN&&(E=c(a.cN,"",!0)+E);var g="",R=0;try{for(var d,p,M=0;l.t.lastIndex=M,d=l.t.exec(n);)p=r(n.substring(M,d.index),d[0]),M=d.index+p;for(r(n.substr(M)),a=l;a.parent;a=a.parent)a.cN&&(E+=b);return{r:R,value:E,language:e,top:l}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{r:0,value:_(n)};throw e}}function O(t,e){e=e||h.languages||u(N);var r={r:0,value:_(t)},a=r;return e.filter(B).filter(M).forEach(function(e){var n=C(e,t,!1);n.language=e,n.r>a.r&&(a=n),n.r>r.r&&(a=r,r=n)}),a.language&&(r.second_best=a),r}function d(e){return h.tabReplace||h.useBR?e.replace(t,function(e,n){return h.useBR&&"\n"===e?"<br>":h.tabReplace?n.replace(/\t/g,h.tabReplace):""}):e}function o(e){var n,t,r,a,i,o=function(e){var n,t,r,a,i=e.className+" ";if(i+=e.parentNode?e.parentNode.className:"",t=s.exec(i))return B(t[1])?t[1]:"no-highlight";for(n=0,r=(i=i.split(/\s+/)).length;n<r;n++)if(l(a=i[n])||B(a))return a}(e);l(o)||(h.useBR?(n=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n"):n=e,i=n.textContent,r=o?C(o,i,!0):O(i),(t=R(n)).length&&((a=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=r.value,r.value=function(e,n,t){var r=0,a="",i=[];function o(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset<n[0].offset?e:n:"start"===n[0].event?e:n:e.length?e:n}function c(e){a+="<"+E(e)+f.map.call(e.attributes,function(e){return" "+e.nodeName+'="'+_(e.value).replace('"',"&quot;")+'"'}).join("")+">"}function u(e){a+="</"+E(e)+">"}function s(e){("start"===e.event?c:u)(e.node)}for(;e.length||n.length;){var l=o();if(a+=_(t.substring(r,l[0].offset)),r=l[0].offset,l===e){for(i.reverse().forEach(u);s(l.splice(0,1)[0]),(l=o())===e&&l.length&&l[0].offset===r;);i.reverse().forEach(c)}else"start"===l[0].event?i.push(l[0].node):i.pop(),s(l.splice(0,1)[0])}return a+_(t.substr(r))}(t,R(a),i)),r.value=d(r.value),e.innerHTML=r.value,e.className=function(e,n,t){var r=n?c[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}(e.className,o,r.language),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function p(){if(!p.called){p.called=!0;var e=document.querySelectorAll("pre code");f.forEach.call(e,o)}}function B(e){return e=(e||"").toLowerCase(),N[e]||N[c[e]]}function M(e){var n=B(e);return n&&!n.disableAutodetect}return a.highlight=C,a.highlightAuto=O,a.fixMarkup=d,a.highlightBlock=o,a.configure=function(e){h=g(h,e)},a.initHighlighting=p,a.initHighlightingOnLoad=function(){addEventListener("DOMContentLoaded",p,!1),addEventListener("load",p,!1)},a.registerLanguage=function(n,e){var t=N[n]=e(a);i(t),t.aliases&&t.aliases.forEach(function(e){c[e]=n})},a.listLanguages=function(){return u(N)},a.getLanguage=B,a.autoDetection=M,a.inherit=g,a.IR=a.IDENT_RE="[a-zA-Z]\\w*",a.UIR=a.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",a.NR=a.NUMBER_RE="\\b\\d+(\\.\\d+)?",a.CNR=a.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",a.BNR=a.BINARY_NUMBER_RE="\\b(0b[01]+)",a.RSR=a.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",a.BE=a.BACKSLASH_ESCAPE={b:"\\\\[\\s\\S]",r:0},a.ASM=a.APOS_STRING_MODE={cN:"string",b:"'",e:"'",i:"\\n",c:[a.BE]},a.QSM=a.QUOTE_STRING_MODE={cN:"string",b:'"',e:'"',i:"\\n",c:[a.BE]},a.PWM=a.PHRASAL_WORDS_MODE={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},a.C=a.COMMENT=function(e,n,t){var r=a.inherit({cN:"comment",b:e,e:n,c:[]},t||{});return r.c.push(a.PWM),r.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),r},a.CLCM=a.C_LINE_COMMENT_MODE=a.C("//","$"),a.CBCM=a.C_BLOCK_COMMENT_MODE=a.C("/\\*","\\*/"),a.HCM=a.HASH_COMMENT_MODE=a.C("#","$"),a.NM=a.NUMBER_MODE={cN:"number",b:a.NR,r:0},a.CNM=a.C_NUMBER_MODE={cN:"number",b:a.CNR,r:0},a.BNM=a.BINARY_NUMBER_MODE={cN:"number",b:a.BNR,r:0},a.CSSNM=a.CSS_NUMBER_MODE={cN:"number",b:a.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},a.RM=a.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[a.BE,{b:/\[/,e:/\]/,r:0,c:[a.BE]}]},a.TM=a.TITLE_MODE={cN:"title",b:a.IR,r:0},a.UTM=a.UNDERSCORE_TITLE_MODE={cN:"title",b:a.UIR,r:0},a.METHOD_GUARD={b:"\\.\\s*"+a.UIR,r:0},a});hljs.registerLanguage("go",function(e){var t={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",literal:"true false iota nil",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{aliases:["golang"],k:t,i:"</",c:[e.CLCM,e.CBCM,{cN:"string",v:[e.QSM,{b:"'",e:"[^\\\\]'"},{b:"`",e:"`"}]},{cN:"number",v:[{b:e.CNR+"[i]",r:1},e.CNM]},{b:/:=/},{cN:"function",bK:"func",e:/\s*\{/,eE:!0,c:[e.TM,{cN:"params",b:/\(/,e:/\)/,k:t,i:/["']/}]}]}});hljs.registerLanguage("javascript",function(e){var r="[A-Za-z$_][0-9A-Za-z$_]*",t={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},a={cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},s={cN:"subst",b:"\\$\\{",e:"\\}",k:t,c:[]},c={b:"html`",e:"",starts:{e:"`",rE:!1,c:[e.BE,s],sL:"xml"}},n={b:"css`",e:"",starts:{e:"`",rE:!1,c:[e.BE,s],sL:"css"}},o={cN:"string",b:"`",e:"`",c:[e.BE,s]};s.c=[e.ASM,e.QSM,c,n,o,a,e.RM];var i=s.c.concat([e.CBCM,e.CLCM]);return{aliases:["js","jsx"],k:t,c:[{cN:"meta",r:10,b:/^\s*['"]use (strict|asm)['"]/},{cN:"meta",b:/^#!/,e:/$/},e.ASM,e.QSM,c,n,o,e.CLCM,e.CBCM,a,{b:/[{,]\s*/,r:0,c:[{b:r+"\\s*:",rB:!0,r:0,c:[{cN:"attr",b:r,r:0}]}]},{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBCM,e.RM,{cN:"function",b:"(\\(.*?\\)|"+r+")\\s*=>",rB:!0,e:"\\s*=>",c:[{cN:"params",v:[{b:r},{b:/\(\s*\)/},{b:/\(/,e:/\)/,eB:!0,eE:!0,k:t,c:i}]}]},{cN:"",b:/\s/,e:/\s*/,skip:!0},{b:/</,e:/(\/[A-Za-z0-9\\._:-]+|[A-Za-z0-9\\._:-]+\/)>/,sL:"xml",c:[{b:/<[A-Za-z0-9\\._:-]+\s*\/>/,skip:!0},{b:/<[A-Za-z0-9\\._:-]+/,e:/(\/[A-Za-z0-9\\._:-]+|[A-Za-z0-9\\._:-]+\/)>/,skip:!0,c:[{b:/<[A-Za-z0-9\\._:-]+\s*\/>/,skip:!0},"self"]}]}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:r}),{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,c:i}],i:/\[|%/},{b:/\$[(.]/},e.METHOD_GUARD,{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]},{bK:"constructor get set",e:/\{/,eE:!0}],i:/#(?!!)/}});hljs.registerLanguage("python",function(e){var r={keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10",built_in:"Ellipsis NotImplemented",literal:"False None True"},b={cN:"meta",b:/^(>>>|\.\.\.) /},c={cN:"subst",b:/\{/,e:/\}/,k:r,i:/#/},a={cN:"string",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[e.BE,b],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[e.BE,b],r:10},{b:/(fr|rf|f)'''/,e:/'''/,c:[e.BE,b,c]},{b:/(fr|rf|f)"""/,e:/"""/,c:[e.BE,b,c]},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)"/,e:/"/},{b:/(fr|rf|f)'/,e:/'/,c:[e.BE,c]},{b:/(fr|rf|f)"/,e:/"/,c:[e.BE,c]},e.ASM,e.QSM]},i={cN:"number",r:0,v:[{b:e.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:e.CNR+"[lLjJ]?"}]},l={cN:"params",b:/\(/,e:/\)/,c:["self",b,i,a]};return c.c=[a,i,b],{aliases:["py","gyp","ipython"],k:r,i:/(<\/|->|\?)|=>/,c:[b,i,a,e.HCM,{v:[{cN:"function",bK:"def"},{cN:"class",bK:"class"}],e:/:/,i:/[${=;\n,]/,c:[e.UTM,l,{b:/->/,eW:!0,k:"None"}]},{cN:"meta",b:/^[\t ]*@/,e:/$/},{b:/\b(print|exec)\(/}]}});hljs.registerLanguage("cal",function(e){var r="div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to until while with var",t=[e.CLCM,e.C(/\{/,/\}/,{r:0}),e.C(/\(\*/,/\*\)/,{r:10})],c={cN:"string",b:/'/,e:/'/,c:[{b:/''/}]},n={cN:"string",b:/(#\d+)+/},o={cN:"function",bK:"procedure",e:/[:;]/,k:"procedure|10",c:[e.TM,{cN:"params",b:/\(/,e:/\)/,k:r,c:[c,n]}].concat(t)},a={cN:"class",b:"OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)",rB:!0,c:[e.TM,o]};return{cI:!0,k:{keyword:r,literal:"false true"},i:/\/\*/,c:[c,n,{cN:"number",b:"\\b\\d+(\\.\\d+)?(DT|D|T)",r:0},{cN:"string",b:'"',e:'"'},e.NM,a,o]}});hljs.registerLanguage("cpp",function(t){var e={cN:"keyword",b:"\\b[a-z\\d_]*_t\\b"},r={cN:"string",v:[{b:'(u8?|U|L)?"',e:'"',i:"\\n",c:[t.BE]},{b:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\((?:.|\n)*?\)\1"/},{b:"'\\\\?.",e:"'",i:"."}]},s={cN:"number",v:[{b:"\\b(0b[01']+)"},{b:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{b:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],r:0},i={cN:"meta",b:/#\s*[a-z]+\b/,e:/$/,k:{"meta-keyword":"if else elif endif define undef warning error line pragma ifdef ifndef include"},c:[{b:/\\\n/,r:0},t.inherit(r,{cN:"meta-string"}),{cN:"meta-string",b:/<[^\n>]*>/,e:/$/,i:"\\n"},t.CLCM,t.CBCM]},a=t.IR+"\\s*\\(",c={keyword:"int float while private char catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and or not",built_in:"std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr",literal:"true false nullptr NULL"},n=[e,t.CLCM,t.CBCM,s,r];return{aliases:["c","cc","h","c++","h++","hpp","hh","hxx","cxx"],k:c,i:"</",c:n.concat([i,{b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:c,c:["self",e]},{b:t.IR+"::",k:c},{v:[{b:/=/,e:/;/},{b:/\(/,e:/\)/},{bK:"new throw return else",e:/;/}],k:c,c:n.concat([{b:/\(/,e:/\)/,k:c,c:n.concat(["self"]),r:0}]),r:0},{cN:"function",b:"("+t.IR+"[\\*&\\s]+)+"+a,rB:!0,e:/[{;=]/,eE:!0,k:c,i:/[^\w\s\*&]/,c:[{b:a,rB:!0,c:[t.TM],r:0},{cN:"params",b:/\(/,e:/\)/,k:c,r:0,c:[t.CLCM,t.CBCM,r,s,e,{b:/\(/,e:/\)/,k:c,r:0,c:["self",t.CLCM,t.CBCM,r,s,e]}]},t.CLCM,t.CBCM,i]},{cN:"class",bK:"class struct",e:/[{;:]/,c:[{b:/</,e:/>/,c:["self"]},t.TM]}]),exports:{preprocessor:i,strings:r,k:c}}});
\ No newline at end of file
index 78fe86401ecb08389e2408c1e8467d85f32d8f36..4eed3ecc15c292a1fbfd32a1688517df608fac87 100644 (file)
@@ -19,3 +19,100 @@ a {
        text-decoration: none;
        color: inherit;
 }
+
+@for $i from 2 to 5 {
+       .split-#{$i} {
+               display: grid;
+               grid-template-columns: repeat(#{$i}, 1fr);
+       }
+}
+
+.split-lr {
+       display: grid;
+       grid-template-columns: 1fr 1fr;
+
+       > * {
+               &:first-child {
+                       text-align: left;
+               }
+
+               &:last-child {
+                       text-align: right;
+               }
+       }
+}
+
+pre {
+       @include elevate(2px, rgba(0, 0, 0, 0.5));
+       font-size: 1rem;
+
+       .hljs-ln {
+               td {
+                       //Bit of space between line numbers and code
+                       padding-right: 8px;
+               }
+       }
+
+       .hljs-ln-line {
+               //THIS SHOULD BE PUT IN A PULL REQUEST TO THE HLJS REPO
+               //This prevents the line from bleeding out of the container
+               max-width: 200px !important;
+       }
+}
+
+.fixed-half-split {
+       display: grid;
+       grid-template-columns: 275px 1fr;
+}
+
+.tabbed-split {
+       display: grid;
+
+       &.tab-12 { grid-template-columns: 12px 1fr; }
+       &.tab-16 { grid-template-columns: 16px 1fr; }
+       &.tab-24 { grid-template-columns: 24px 1fr; }
+       &.tab-32 { grid-template-columns: 32px 1fr; }
+
+       &.primary { & > span { background-color: $primary; } }
+       &.primary-light { & > span { background-color: $primary-light; } }
+       &.primary-dark { & > span { background-color: $primary-dark; } }
+
+       &.secondary { & > span { background-color: $secondary; } }
+       &.secondary-light { & > span { background-color: $secondary-light; } }
+       &.secondary-dark { & > span { background-color: $secondary-dark; } }
+
+       &.error { & > span { background-color: $error; } }
+       &.error-light { & > span { background-color: $error-light; } }
+       &.error-dark { & > span { background-color: $error-dark; } }
+}
+
+.box {
+       @include elevate(2px, rgba(0, 0, 0, 0.5));
+       background-color: #111;
+
+       .highlight:hover {
+               background-color: #333;
+       }
+}
+
+.w50 {
+       width: 50%;
+}
+
+.w100 {
+       width: 100%;
+}
+
+@for $i from 1 to 24 {
+       .pad-#{$i} { padding: #{$i}px; }
+       .pad-l-#{$i} { padding-left: #{$i}px; }
+       .pad-r-#{$i} { padding-right: #{$i}px; }
+       .pad-t-#{$i} { padding-top: #{$i}px; }
+       .pad-b-#{$i} { padding-bottom: #{$i}px; }
+
+       .mar-#{$i} { margin: #{$i}px; }
+       .mar-l-#{$i} { margin-left: #{$i}px; }
+       .mar-r-#{$i} { margin-right: #{$i}px; }
+       .mar-t-#{$i} { margin-top: #{$i}px; }
+       .mar-b-#{$i} { margin-bottom: #{$i}px; }
+}
index ccd82bf5d3b112e717b98f197a6e2bd893cb61b4..fad4c48505b8a8970150678fa1da2e255252bed2 100644 (file)
@@ -11,6 +11,10 @@ $secondary: #FFD700;
 $secondary-light: lighten(#FFD700, 20);
 $secondary-dark: darken(#FFD700, 20);
 
+$error: #dd0000;
+$error-light: lighten(#dd0000, 20);
+$error-dark: darken(#dd0000, 20);
+
 $primary-text: $white;
 $secondary-text: $black;
 
index 566137e3ecf526b8e90352c8ed8622db46b08d2f..3f4dcb0b54f186d89d61f3fc520af8116218f6d7 100644 (file)
@@ -4,6 +4,7 @@
 @import '_utils';
 @import 'problem/_list.scss';
 @import 'problem/_sidebar.scss';
+@import 'vendor/circle.scss';
 
 * {
        margin: 0;
@@ -42,11 +43,15 @@ button, a.button {
        display: inline-block;
 
        cursor: pointer;
+
+       & + button, & + a.button {
+               margin-left: 12px;
+       }
 }
 
-input, button, textarea {
-       border: 1px solid $primary-dark;
-       background-color: $primary-dark;
+input, textarea {
+       border: none;
+       background-color: #111;
        color: white;
 
        font-size: 1rem;
@@ -59,7 +64,8 @@ input, button, textarea {
 }
 
 form {
-       input, button, textarea {
+       input, textarea {
+               z-index: 20;
                @include elevate(2px, rgba(0, 0, 0, 0.7));
 
                padding: .75rem;
@@ -73,10 +79,15 @@ form {
        }
 
        label {
+               z-index: 30;
+               @include elevate(2px, rgba(0, 0, 0, 0.7));
+               background-color: $primary-dark;
+               width: 100%;
+               line-height: 48px;
+
                display: inline-block;
                padding-left: 12px;
                margin-top: 16px;
-               margin-bottom: 8px;
        }
 }
 
@@ -102,7 +113,7 @@ form {
        grid-template-columns: 1fr 1fr;
 }
 
-.test_case {
+.test-case {
        &:first-child {
                border-right: 2px solid $primary-dark;
        }
@@ -119,18 +130,26 @@ form {
        color: $white;
 }
 
-.option-line {
+.header-line {
        @include elevate(2px, rgba(0, 0, 0, 0.5));
 
-       display: grid;
-       grid-template-columns: 1fr 1fr;
        background-color: $primary-dark;
        padding: 4px 12px 4px;
+       margin-top: 12px;
+       display: inline-block;
+       width: 100%;
 
        & > * {
                line-height: 44px;
                display: inline-block;
        }
+}
+
+.option-line {
+       @extend .header-line;
+
+       display: grid;
+       grid-template-columns: 1fr 1fr;
 
        & > *:last-child {
                text-align: right;
@@ -153,3 +172,4 @@ form {
                cursor: pointer;
        }
 }
+
diff --git a/codebox/static/scss/vendor/_mixins.scss b/codebox/static/scss/vendor/_mixins.scss
new file mode 100644 (file)
index 0000000..19145a3
--- /dev/null
@@ -0,0 +1,42 @@
+// mixins
+
+@mixin border-radius($radius) {
+  -webkit-border-radius: $radius;
+     -moz-border-radius: $radius;
+      -ms-border-radius: $radius;
+          border-radius: $radius;
+}
+
+@mixin rotate($rotation) {
+    -webkit-transform: rotate($rotation);
+    -moz-transform: rotate($rotation);
+    -ms-transform: rotate($rotation);
+    -o-transform: rotate($rotation);
+    transform: rotate($rotation);
+}
+
+@mixin box-sizing($box-sizing) {
+    -webkit-box-sizing: $box-sizing;
+    -moz-box-sizing: $box-sizing;
+    box-sizing: $box-sizing;
+}
+@mixin transition-property($transition) {
+    -webkit-transition-property: $transition;
+    -moz-transition-property:$transition;
+    -o-transition-property:$transition;
+    transition-property: $transition;
+}
+
+@mixin transition-duration($duration) {
+    -webkit-transition-duration: $duration;
+    -moz-transition-duration:$duration;
+    -o-transition-duration: $duration;
+    transition-duration: $duration;
+}
+
+@mixin transition-timing-function($timing){
+    -webkit-transition-timing-function: $timing;
+    -moz-transition-timing-function: $timing;
+    -o-transition-timing-function: $timing;
+    transition-timing-function: $timing;
+}
diff --git a/codebox/static/scss/vendor/_variables.scss b/codebox/static/scss/vendor/_variables.scss
new file mode 100644 (file)
index 0000000..935aacd
--- /dev/null
@@ -0,0 +1,16 @@
+$circle-width: 0.08em;
+$circle-width-hover: 0.04em;
+// colors default
+$primary-color: #307bbb;
+$secondary-color: #ccc;
+$bg-color: #f5f5f5;
+$primary-color-green: #4db53c;
+$primary-color-orange: #dd9d22;
+// colors dark skin
+$primary-color-dark: $primary-light;
+$secondary-color-dark: $primary-dark;
+$bg-color-dark: #111;
+$primary-color-green-dark: #5fd400;
+$primary-color-orange-dark: #e08833;
+
+$error-color: $error;
diff --git a/codebox/static/scss/vendor/circle.scss b/codebox/static/scss/vendor/circle.scss
new file mode 100644 (file)
index 0000000..7cb05f6
--- /dev/null
@@ -0,0 +1,168 @@
+// VARS
+@import "_variables";
+// mixins
+@import "_mixins";
+// CIRCLE
+// classes 2 extend
+.rect-auto {
+    clip: rect(auto, auto, auto, auto);
+}
+
+.pie {
+    position: absolute;
+    border: $circle-width solid $primary-color;
+    width: 1 - (2 * $circle-width);
+    height: 1 - (2 * $circle-width);
+    clip: rect(0em, 0.5em, 1em, 0em);
+    border-radius: 50%;
+    @include rotate(0deg);
+}
+
+.pie-fill {
+    @include rotate(180deg);
+}
+
+// main
+.c100 {
+    *,
+    *:before,
+    *:after {
+        @include box-sizing(content-box);
+    }
+    position: relative;
+    font-size: 120px;
+    width: 1em;
+    height: 1em;
+    border-radius: 50%;
+    float: left;
+    background-color: $secondary-color;
+    // center circle to its parent
+    &.center {
+        float: none;
+        margin: 0 auto;
+    }
+    // bigger size
+    &.big {
+        font-size: 240px;
+    }
+    // smaller size
+    &.small {
+        font-size: 80px;
+    }
+    // centered value inside circle
+    >span {
+        position: absolute;
+        width: 100%;
+        z-index: 1;
+        left: 0;
+        top: 0;
+        width: 5em;
+        line-height: 5em;
+        font-size: 0.2em;
+        color: $secondary-color;
+        display: block;
+        text-align: center;
+        white-space: nowrap;
+        @include transition-property(all);
+        @include transition-duration(0.2s);
+        @include transition-timing-function(ease-out);
+    }
+    // background inside the circle
+    &:after {
+        position: absolute;
+        top: $circle-width;
+        left: $circle-width;
+        display: block;
+        content: " ";
+        border-radius: 50%;
+        background-color: $bg-color;
+        width: 1 - (2 * $circle-width);
+        height: 1 - (2 * $circle-width);
+        @include transition-property(all);
+        @include transition-duration(0.2s);
+        @include transition-timing-function(ease-in);
+    }
+    // the slice (mask)
+    .slice {
+        position: absolute;
+        width: 1em;
+        height: 1em;
+        clip: rect(0em, 1em, 1em, 0.5em);
+    }
+    // circle to show the status
+    .bar {
+        @extend .pie;
+    }
+    // loop to create all needed elements automatically
+    @for $i from 51 through 100 {
+        &.p#{$i} {
+            & .slice {
+                @extend .rect-auto;
+            }
+            &.bar:after {
+                @extend .pie-fill;
+            }
+            & .fill {
+                @extend .pie;
+                @extend .pie-fill;
+            }
+        }
+    }
+    // loop to rotate all 100 circles
+    @for $i from 1 through 100 {
+        &.p#{$i} .bar {
+            $degs: (360/100 * $i);
+            @include rotate(#{$degs}deg);
+        }
+    }
+    // hover styles
+    &:hover {
+        cursor: default;
+        >span {
+            width: 3.33em;
+            line-height: 3.33em;
+            font-size: 0.3em;
+            color: $primary-color;
+        }
+        &:after {
+            top: $circle-width-hover;
+            left: $circle-width-hover;
+            width: 1 - (2 * $circle-width-hover);
+            height: 1 - (2 * $circle-width-hover);
+        }
+    }
+    // override colors for the dark skin
+    &.dark {
+        background-color: $secondary-color-dark;
+        .bar,
+        .fill {
+            border-color: $primary-color-dark !important;
+        }
+        >span {
+            color: $secondary-color-dark;
+        }
+        &:after {
+            background-color: $bg-color-dark;
+        }
+        &:hover {
+            >span {
+                color: $primary-color-dark;
+            }
+        }
+    }
+    &.error {
+               background-color: $error-dark;
+        .bar,
+        .fill {
+            border-color: $error-color !important;
+        }
+        &:hover {
+            >span {
+                color: $error-color;
+            }
+        }
+               >span {
+                       color: $error-dark;
+               }
+    }
+}
diff --git a/codebox/views/admin/competition.moon b/codebox/views/admin/competition.moon
new file mode 100644 (file)
index 0000000..0c01de4
--- /dev/null
@@ -0,0 +1,24 @@
+html = require "lapis.html"
+
+class AdminCompetition extends html.Widget
+       content: =>
+               h1 'Competitions'
+
+               div class: 'content', ->
+                       a class: 'button', href: (@url_for 'admin.competition.new'),
+                               -> text 'Create a competition'
+
+                       for comp in *@competitions
+                               div class: 'header-line', ->
+                                       span comp.name
+
+                               div class: 'box', ->
+                                       div class: 'highlight pad-12 split-lr', ->
+                                               span 'Start time'
+                                               span comp.start
+
+                                       div class: 'highlight pad-12 split-lr', ->
+                                               span 'End time'
+                                               span comp.end
+
+
diff --git a/codebox/views/admin/competition/Tupfile b/codebox/views/admin/competition/Tupfile
new file mode 100644 (file)
index 0000000..f0fe651
--- /dev/null
@@ -0,0 +1 @@
+include_rules
diff --git a/codebox/views/admin/competition/new.moon b/codebox/views/admin/competition/new.moon
new file mode 100644 (file)
index 0000000..b83a534
--- /dev/null
@@ -0,0 +1,21 @@
+html = require "lapis.html"
+
+class AdminCompetitionNew extends html.Widget
+       content: =>
+               h1 "Create a competition"
+
+               div class: 'content', ->
+                       form method: 'POST', ->
+                               input type: 'hidden', name: 'csrf_token', value: @csrf_token
+
+                               label for: 'name', 'Competition name'
+                               input type: 'text', name: 'name', placeholder: 'Competition name', ""
+
+                               label for: 'start_time', 'Start time'
+                               input type: 'datetime-local', name: 'start_time', ""
+
+                               label for: 'end_time', 'End time'
+                               input type: 'datetime-local', name: 'end_time', ""
+
+                               input type: 'submit', value: 'Create competition'
+
index fdc7978f298a4279087cf54f0a312adf0fcb84eb..bde1c9fa4b78eb944ef33b8157e06694afa6ff3a 100644 (file)
@@ -5,13 +5,21 @@ class AdminProblems extends html.Widget
                h1 'Problems'
 
                div class: 'content', ->
+                       a class: 'button', href: (@url_for 'admin.problem.new'),
+                               -> text 'Create a problem'
+
+                       br ''
                        for problem in *@problems
                                div class: 'option-line', ->
-                                       span "#{problem.name}, Time Limit: #{problem.time_limit}"
+                                       span "#{problem.name}"
                                        div class: 'button-list', ->
                                                a href: (@url_for 'admin.problem.edit', problem_name: problem.short_name), 'Edit'
                                                a { 'data-problem-delete': problem.short_name }, 'Delete'
+                               div class: 'box', ->
+                                       div class: 'highlight pad-12 split-lr', ->
+                                               span "Short name:"
+                                               span "#{problem.short_name}"
+                                       div class: 'highlight pad-12 split-lr', ->
+                                               span "Time limit:"
+                                               span "#{problem.time_limit}ms"
 
-                       br ''
-                       a class: 'button', href: (@url_for 'admin.problem.new'),
-                               -> text 'Create a problem'
index 6241191cf97ca7e86ff099c47c6dbfd333cdec8b..319116fe96063ceb6f7d8469935d7d37a10734f3 100644 (file)
@@ -12,11 +12,11 @@ class TestCase extends html.Widget
                        div class: 'option-line', ->
                                div ->
                                        span "Case  "
-                                       input { type: "number", min: 0, max: 1000, value: @order, 'data-tc-order-id': @id }, ''
+                                       input { style: "background-color: inherit", type: "number", min: 0, max: 1000, value: @order, 'data-tc-order-id': @id }, ''
                                div class: 'button-list', ->
                                        button { 'data-tc-save': @id }, 'Save'
                                        button { 'data-tc-delete': @id }, 'Delete'
 
                        div style: 'margin-bottom: 12px', class: 'split', ->
-                               textarea { class: 'test_case', 'data-tc-input-id': @id }, @input
-                               textarea { class: 'test_case', 'data-tc-output-id': @id }, @output
+                               textarea { class: 'test-case', 'data-tc-input-id': @id }, @input
+                               textarea { class: 'test-case', 'data-tc-output-id': @id }, @output
diff --git a/codebox/views/admin/submission.moon b/codebox/views/admin/submission.moon
new file mode 100644 (file)
index 0000000..20b1d43
--- /dev/null
@@ -0,0 +1,28 @@
+html = require "lapis.html"
+import Jobs from require "models"
+
+class AdminSubmission extends html.Widget
+       content: =>
+               h1 'Submissions'
+
+               div class: 'content', ->
+                       for job in *@jobs
+                               div class: 'option-line', ->
+                                       span "#{job.job_id}"
+                                       div class: 'button-list', ->
+                                               a href: (@url_for 'admin.submission.edit', {}, { submission_id: job.job_id }), 'View'
+
+                               div class: 'box', ->
+                                       div class: 'highlight pad-12 split-lr', ->
+                                               span 'Status:'
+                                               span Jobs.statuses\to_name job.status
+                                       div class: 'highlight pad-12 split-lr', ->
+                                               span 'Username:'
+                                               span job\get_user!.username
+                                       div class: 'highlight pad-12 split-lr', ->
+                                               span 'Problem:'
+                                               span job\get_problem!.short_name
+                                       div class: 'highlight pad-12 split-lr', ->
+                                               span 'Language:'
+                                               span job.lang
+
diff --git a/codebox/views/admin/submission/Tupfile b/codebox/views/admin/submission/Tupfile
new file mode 100644 (file)
index 0000000..f0fe651
--- /dev/null
@@ -0,0 +1 @@
+include_rules
diff --git a/codebox/views/admin/submission/edit.moon b/codebox/views/admin/submission/edit.moon
new file mode 100644 (file)
index 0000000..865552c
--- /dev/null
@@ -0,0 +1,19 @@
+html = require "lapis.html"
+
+class AdminSubmissionEdit extends html.Widget
+       content: =>
+               link rel: "stylesheet", href: "/static/css/highlight/vs2015.css"
+               script ->
+                       text "hljs.initHighlightingOnLoad();hljs.initLineNumbersOnLoad();"
+
+               div class: 'content', ->
+                       a class: 'button', href: (@url_for 'admin.submission.delete', {}, { 'submission_id': @job.job_id }), 'Delete submission'
+
+                       widget (require('views.ssr.job_result')(@job))
+
+                       div class: 'header-line', ->
+                               div -> text "#{@job.lang} code"
+
+                       pre -> code class: @job.lang, ->
+                               text @job.code
+
diff --git a/codebox/views/admin/user.moon b/codebox/views/admin/user.moon
new file mode 100644 (file)
index 0000000..f813587
--- /dev/null
@@ -0,0 +1,20 @@
+html = require "lapis.html"
+
+class AdminUsers extends html.Widget
+       content: =>
+               h1 'Users'
+
+               div class: 'content', ->
+                       for user in *@users
+                               div class: 'option-line', ->
+                                       span "#{user.username}"
+                                       div class: 'button-list', ->
+                                               button { 'data-user-reset-password': user.username }, 'Reset password'
+                                               button { 'data-user-delete': user.username }, 'Delete'
+                               div class: 'box', ->
+                                       div class: 'highlight pad-12 split-lr', ->
+                                               span "Nickname:"
+                                               span "#{user.nickname}"
+                                       div class: 'highlight pad-12 split-lr', ->
+                                               span "Email:"
+                                               span "#{user.email}"
diff --git a/codebox/views/ssr/Tupfile b/codebox/views/ssr/Tupfile
new file mode 100644 (file)
index 0000000..f0fe651
--- /dev/null
@@ -0,0 +1 @@
+include_rules
diff --git a/codebox/views/ssr/job_result.moon b/codebox/views/ssr/job_result.moon
new file mode 100644 (file)
index 0000000..bd32efc
--- /dev/null
@@ -0,0 +1,103 @@
+html = require 'lapis.html'
+import Jobs from require 'models'
+import from_json from require 'lapis.util'
+
+process_str = (str) ->
+       str = str\gsub '\\/', '/'
+       str\gsub '\\n', (string.char 10)
+
+class JobResultView extends html.Widget
+       new: (@job) =>
+               @status_str = Jobs.statuses\to_name @job.status
+
+               @username = @job\get_user!.username
+               @problem = @job\get_problem!.name
+               @json_data = from_json @job.data
+               @time_started = @job.time_initiated
+
+               @ring_color = ''
+               switch @job.status
+                       when Jobs.statuses.wrong_answer then @ring_color = 'error'
+                       when Jobs.statuses.timed_out then @ring_color = 'error'
+                       when Jobs.statuses.bad_language then @ring_color = 'error'
+                       when Jobs.statuses.bad_problem then @ring_color = 'error'
+                       when Jobs.statuses.compile_err then @ring_color = 'error'
+                       when Jobs.statuses.error then @ring_color = 'error'
+
+               @show_slash = true
+               switch @job.status
+                       when Jobs.statuses.compile_err then @show_slash = false
+                       when Jobs.statuses.queued then @show_slash = false
+                       when Jobs.statuses.bad_language then @show_slash = false
+                       when Jobs.statuses.bad_problem then @show_slash = false
+
+               if @show_slash
+                       @completed_percentage = math.floor(100 * (@json_data.completed / @json_data.total))
+
+       content: =>
+               div class: 'fixed-half-split', ->
+                       div ->
+                               span class: "mar-t-12 mar-l-12 c100 p#{@completed_percentage} big dark #{@ring_color}", ->
+                                       if @show_slash
+                                               span -> text "#{@json_data.completed} / #{@json_data.total}"
+                                       else
+                                               span -> text "Error"
+
+                                       div class: 'slice', ->
+                                               div class: 'bar', ''
+                                               div class: 'fill', ''
+
+                               div class: 'mar-r-12', ->
+                                       div class: 'header-line', ->
+                                               div 'Stats'
+
+                                       div class: 'box', ->
+                                               div class: "highlight pad-12 pad-b-4 split-lr", ->
+                                                       div "Status:"
+                                                       div "#{@status_str}"
+                                               div class: "highlight pad-l-12 pad-r-12 pad-t-4 pad-b-4 split-lr", ->
+                                                       div "Problem:"
+                                                       div "#{@problem}"
+                                               div class: "highlight pad-l-12 pad-r-12 pad-t-4 pad-b-4 split-lr", ->
+                                                       div "Time submittted:"
+                                                       div "#{@time_started}"
+                                               div class: "highlight pad-l-12 pad-r-12 pad-t-4 pad-b-4 split-lr", ->
+                                                       div "Bytes:"
+                                                       div "N/A"
+                       div ->
+                               if @show_slash
+                                       div class: 'header-line', ->
+                                               div 'Test cases'
+
+                                       div class: 'box', ->
+                                               for i = 1, @json_data.total
+                                                       tc_status = 'secondary'
+                                                       if i <= @json_data.completed
+                                                               tc_status = 'primary'
+                                                       if @ring_color == 'error' and i == @json_data.completed + 1
+                                                               tc_status = 'error'
+
+                                                       div class: "tabbed-split tab-24 #{tc_status}", ->
+                                                               span ''
+                                                               div class: 'highlight pad-12', ->
+                                                                       div class: 'split-3', ->
+                                                                               p "Test case: #{i}"
+                                                                               if i <= @json_data.completed
+                                                                                       p "Correct!"
+                                                                               elseif i == @json_data.completed + 1
+                                                                                       switch @job.status
+                                                                                               when Jobs.statuses.wrong_answer then p "Wrong answer"
+                                                                                               when Jobs.statuses.timed_out then p "Timed out"
+                                                                                               when Jobs.statuses.error then p "Execution error"
+                                                                                               when Jobs.statuses.running then p "Running"
+                                                                               else
+                                                                                       p "---------"
+
+                                                                               if type(@json_data.run_times[i]) == 'number'
+                                                                                       p "Run time: #{@json_data.run_times[i]}s"
+                               else
+                                       div class: 'header-line', ->
+                                               div 'Errors'
+
+                                       div class: 'box', ->
+                                               pre (process_str @job.data)
index 8b3c2d22bbaa2689e9ed1f997fdf2c5e366ac8e5..5876abbedc0c1e0cb597a6c32dda56961a5628a3 100644 (file)
--- a/docs/todo
+++ b/docs/todo
@@ -1,4 +1,4 @@
-[ ] Be able to add test cases to problems
-[ ] Be able to delete problems
-[ ] Be able to delete test cases
-[ ] Be able to order test cases
+[X] Be able to add test cases to problems
+[X] Be able to delete problems
+[X] Be able to delete test cases
+[X] Be able to order test cases
index ada99d53b19ee91902bb7f453be59a2cfc46f6b7..32aa6b38100563b8d79e9d3fced6fcc6ada80856 100644 (file)
@@ -44,7 +44,7 @@ class Executer
                try
                        exec_file = await compiler.compile code
                catch err
-                       yield { status: 9, data: err }
+                       yield { status: 9, data: err.substring(0, 4096) }
                        return
 
                executer = @executers[lang]
index 0b58493ae56dae44c57ea59999bb8f46085abf82..50a36536716c93b868167f6efef049cdfa441689 100644 (file)
@@ -12,7 +12,7 @@ class CExecuter extends BaseExecuter
                err_output = ""
                bash_shell.stderr.on 'data', (data) => err_output += data.toString()
 
-               bash_shell.stdin.end "cat #{input} | timeout -s SIGKILL #{time_limit / 1000.0} #{path}"
+               bash_shell.stdin.end "echo #{input} | timeout -s SIGKILL #{time_limit / 1000.0} #{path}"
 
                start_time = process.hrtime()
                res_code = await on_child_exit bash_shell
index 2ce05f2adc8ddae9856cc34b6b520c37e3b177ac..c2eb91f5b3cb321e67b2449802da5e79785e45f4 100644 (file)
@@ -10,22 +10,25 @@ async function handle_job(job_id, lang, code, cases, time_limit) {
        let processor = executer.process(lang, code, cases, time_limit)
 
        for await (let status of processor) {
-               request.post('http://192.168.0.3:8888/executer/status_update',
-                       { json: true,
-                         form: {
-                                 request_token: process.env.REQ_SECRET,
-                                 job_id: job_id,
-                                 status: JSON.stringify(status)
-                         }
-                       },
-                       (err, res, body) => {
-                               if (err) {
-                                       return console.log(err)
+               await new Promise((resolve, rej) => {
+                       request.post('http://192.168.0.3:8888/executer/status_update',
+                               { json: true,
+                                 form: {
+                                         request_token: process.env.REQ_SECRET,
+                                         job_id: job_id,
+                                         status: JSON.stringify(status)
+                                 }
+                               },
+                               (err, res, body) => {
+                                       if (err) {
+                                               rej(-1);
+                                       }
+
+                                       console.log("Updated job: ", job_id, status.status)
+                                       resolve(1);
                                }
-
-                               console.log("Updated job: ", job_id, status.status)
-                       }
-               )
+                       )
+               });
        }
 }
 ```