diff --git a/CHANGELOG.md b/CHANGELOG.md
index e19032f..1a0cb36 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+## 1.2.0-dev
+
+- [Update font-awesome](https://github.com/alexandrevicenzi/Flex/issues/31)
+- [Added browser color configuration](https://github.com/alexandrevicenzi/Flex/pull/34)
+- [Related posts](https://github.com/alexandrevicenzi/Flex/pull/27)
+- [More Pygments Styles](https://github.com/alexandrevicenzi/Flex/issues/38)
+
## 1.1.1
- [Bug in CSS with placement of "Newer Posts" button](https://github.com/alexandrevicenzi/Flex/issues/21)
diff --git a/README.md b/README.md
index a07d87a..8588a6c 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Flex [![Build Status](https://travis-ci.org/alexandrevicenzi/Flex.svg?branch=master)](https://travis-ci.org/alexandrevicenzi/Flex)
+# Flex [![Build Status](https://travis-ci.org/alexandrevicenzi/Flex.svg?branch=master)](https://travis-ci.org/alexandrevicenzi/Flex) [![Dependency Status](https://david-dm.org/alexandrevicenzi/Flex.svg)](https://david-dm.org/alexandrevicenzi/Flex)
A minimalist [Pelican](http://blog.getpelican.com/) theme.
@@ -10,6 +10,7 @@ A minimalist [Pelican](http://blog.getpelican.com/) theme.
- SEO Best Practices
- Open Graph
- Rich Snippets (JSON-LD)
+- [Multiple Code Highlight Styles](https://github.com/alexandrevicenzi/Flex/wiki/Code-Highlight)
## Integrations
@@ -21,10 +22,22 @@ A minimalist [Pelican](http://blog.getpelican.com/) theme.
- [Piwik](http://piwik.org/)
- [StatusCake](https://www.statuscake.com/)
+## Install
+
+The recommend way to install is over [pelican-themes](https://github.com/getpelican/pelican-themes).
+
+The `master` branch is the development branch. If you're happy with fresh new things and maybe sometimes (~most of time~) broken things you can clone the `master`, but I would recommend to you to clone a tag branch.
+
## Docs
[Go to Wiki](https://github.com/alexandrevicenzi/Flex/wiki)
+## Contributing
+
+Always open an issue before sending a PR. Talk about the problem/feature that you want to fix. If it's really a good thing you can submit your PR. If you send an PR without talking about before what it is, you may work for nothing.
+
+As always, if you want something that only make sense to you, just fork Flex and start a new theme.
+
## Live example
You can see how things looks like [here](https://blog.alexandrevicenzi.com/flex-pelican-theme.html).
diff --git a/gulpfile.js b/gulpfile.js
index e0e40ec..d0da96c 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -18,4 +18,14 @@ gulp.task('cp', function () {
.pipe(gulp.dest('./static/font-awesome'));
});
-gulp.task('default', ['less', 'cp']);
+gulp.task('pygments', function () {
+ return gulp.src(['./static/pygments/*.css', '!./static/pygments/*min.css'])
+ .pipe(minify())
+ .pipe(rename({
+ extname: '.min.css'
+ }))
+ .pipe(gulp.dest('./static/pygments'));
+});
+
+
+gulp.task('default', ['less', 'cp', 'pygments']);
diff --git a/pygments/README.md b/pygments/README.md
new file mode 100644
index 0000000..b687a54
--- /dev/null
+++ b/pygments/README.md
@@ -0,0 +1,17 @@
+# Pygments CSS generator
+
+This is the correct way to generate all pygments CSS files.
+
+## How to generate CSSs files
+
+Before run `generate.py` remember to install all requirements.
+This can done with `pip install -r requirements.txt`.
+
+After this you can run `./generate.py`. Remember to run inside this folder.
+Because it uses relative path to place inside `static/pygments` folder.
+
+After that, go back to the Flex path and run `gulp pygments` to generate all `min.css` files.
+
+## How to add new styles?
+
+[See wiki](https://github.com/alexandrevicenzi/Flex/wiki/Code-Highlight#how-to-add-new-styles).
diff --git a/pygments/generate.py b/pygments/generate.py
new file mode 100755
index 0000000..1d6a9bb
--- /dev/null
+++ b/pygments/generate.py
@@ -0,0 +1,35 @@
+#!/usr/bin/env python
+
+import os
+
+from pygments.styles import get_all_styles
+from pygments.formatters.html import HtmlFormatter
+
+PYGMENTS_PATH = './../static/pygments'
+
+
+def export():
+ if not os.path.exists(PYGMENTS_PATH):
+ os.makedirs(PYGMENTS_PATH)
+
+ styles = list(get_all_styles())
+
+ for style in styles:
+ print('Generating CSS for %s' % style)
+
+ opts = {
+ 'style': style,
+ }
+
+ path = os.path.join(PYGMENTS_PATH, '%s.css' % style)
+ formatter = HtmlFormatter(**opts)
+ css_content = formatter.get_style_defs()
+ # little fix because pelican doesn't append background color.
+ css_content = css_content.replace('.hll', '.highlight')
+
+ with open(path, 'w') as f:
+ f.write(css_content)
+
+
+if __name__ == '__main__':
+ export()
diff --git a/pygments/requirements.txt b/pygments/requirements.txt
new file mode 100644
index 0000000..785d22d
--- /dev/null
+++ b/pygments/requirements.txt
@@ -0,0 +1,2 @@
+Pygments==2.1.3
+pygments-style-github==0.4
diff --git a/static/pygments/algol.css b/static/pygments/algol.css
new file mode 100644
index 0000000..cd099f1
--- /dev/null
+++ b/static/pygments/algol.css
@@ -0,0 +1,39 @@
+.highlight { background-color: #ffffcc }
+.c { color: #888888; font-style: italic } /* Comment */
+.err { border: 1px solid #FF0000 } /* Error */
+.k { font-weight: bold; text-decoration: underline } /* Keyword */
+.ch { color: #888888; font-style: italic } /* Comment.Hashbang */
+.cm { color: #888888; font-style: italic } /* Comment.Multiline */
+.cp { color: #888888; font-weight: bold } /* Comment.Preproc */
+.cpf { color: #888888; font-style: italic } /* Comment.PreprocFile */
+.c1 { color: #888888; font-style: italic } /* Comment.Single */
+.cs { color: #888888; font-weight: bold } /* Comment.Special */
+.kc { font-weight: bold; text-decoration: underline } /* Keyword.Constant */
+.kd { font-weight: bold; font-style: italic; text-decoration: underline } /* Keyword.Declaration */
+.kn { font-weight: bold; text-decoration: underline } /* Keyword.Namespace */
+.kp { font-weight: bold; text-decoration: underline } /* Keyword.Pseudo */
+.kr { font-weight: bold; text-decoration: underline } /* Keyword.Reserved */
+.kt { font-weight: bold; text-decoration: underline } /* Keyword.Type */
+.s { color: #666666; font-style: italic } /* Literal.String */
+.nb { font-weight: bold; font-style: italic } /* Name.Builtin */
+.nc { color: #666666; font-weight: bold; font-style: italic } /* Name.Class */
+.no { color: #666666; font-weight: bold; font-style: italic } /* Name.Constant */
+.nf { color: #666666; font-weight: bold; font-style: italic } /* Name.Function */
+.nn { color: #666666; font-weight: bold; font-style: italic } /* Name.Namespace */
+.nv { color: #666666; font-weight: bold; font-style: italic } /* Name.Variable */
+.ow { font-weight: bold } /* Operator.Word */
+.sb { color: #666666; font-style: italic } /* Literal.String.Backtick */
+.sc { color: #666666; font-style: italic } /* Literal.String.Char */
+.sd { color: #666666; font-style: italic } /* Literal.String.Doc */
+.s2 { color: #666666; font-style: italic } /* Literal.String.Double */
+.se { color: #666666; font-style: italic } /* Literal.String.Escape */
+.sh { color: #666666; font-style: italic } /* Literal.String.Heredoc */
+.si { color: #666666; font-style: italic } /* Literal.String.Interpol */
+.sx { color: #666666; font-style: italic } /* Literal.String.Other */
+.sr { color: #666666; font-style: italic } /* Literal.String.Regex */
+.s1 { color: #666666; font-style: italic } /* Literal.String.Single */
+.ss { color: #666666; font-style: italic } /* Literal.String.Symbol */
+.bp { font-weight: bold; font-style: italic } /* Name.Builtin.Pseudo */
+.vc { color: #666666; font-weight: bold; font-style: italic } /* Name.Variable.Class */
+.vg { color: #666666; font-weight: bold; font-style: italic } /* Name.Variable.Global */
+.vi { color: #666666; font-weight: bold; font-style: italic } /* Name.Variable.Instance */
\ No newline at end of file
diff --git a/static/pygments/algol.min.css b/static/pygments/algol.min.css
new file mode 100644
index 0000000..d9335e8
--- /dev/null
+++ b/static/pygments/algol.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:#888;font-style:italic}.err{border:1px solid red}.k{font-weight:700;text-decoration:underline}.ch,.cm{color:#888;font-style:italic}.cp{color:#888;font-weight:700}.c1,.cpf{color:#888;font-style:italic}.cs{color:#888;font-weight:700}.kc,.kd{font-weight:700;text-decoration:underline}.kd{font-style:italic}.kn,.kp,.kr,.kt{font-weight:700;text-decoration:underline}.s{color:#666;font-style:italic}.nb,.nc{font-weight:700;font-style:italic}.nc{color:#666}.nf,.nn,.no,.nv{color:#666;font-weight:700;font-style:italic}.ow{font-weight:700}.s1,.s2,.sb,.sc,.sd,.se,.sh,.si,.sr,.ss,.sx{color:#666;font-style:italic}.bp,.vc{font-weight:700;font-style:italic}.vc{color:#666}.vg,.vi{color:#666;font-weight:700;font-style:italic}
\ No newline at end of file
diff --git a/static/pygments/algol_nu.css b/static/pygments/algol_nu.css
new file mode 100644
index 0000000..cbbb271
--- /dev/null
+++ b/static/pygments/algol_nu.css
@@ -0,0 +1,39 @@
+.highlight { background-color: #ffffcc }
+.c { color: #888888; font-style: italic } /* Comment */
+.err { border: 1px solid #FF0000 } /* Error */
+.k { font-weight: bold } /* Keyword */
+.ch { color: #888888; font-style: italic } /* Comment.Hashbang */
+.cm { color: #888888; font-style: italic } /* Comment.Multiline */
+.cp { color: #888888; font-weight: bold } /* Comment.Preproc */
+.cpf { color: #888888; font-style: italic } /* Comment.PreprocFile */
+.c1 { color: #888888; font-style: italic } /* Comment.Single */
+.cs { color: #888888; font-weight: bold } /* Comment.Special */
+.kc { font-weight: bold } /* Keyword.Constant */
+.kd { font-weight: bold; font-style: italic } /* Keyword.Declaration */
+.kn { font-weight: bold } /* Keyword.Namespace */
+.kp { font-weight: bold } /* Keyword.Pseudo */
+.kr { font-weight: bold } /* Keyword.Reserved */
+.kt { font-weight: bold } /* Keyword.Type */
+.s { color: #666666; font-style: italic } /* Literal.String */
+.nb { font-weight: bold; font-style: italic } /* Name.Builtin */
+.nc { color: #666666; font-weight: bold; font-style: italic } /* Name.Class */
+.no { color: #666666; font-weight: bold; font-style: italic } /* Name.Constant */
+.nf { color: #666666; font-weight: bold; font-style: italic } /* Name.Function */
+.nn { color: #666666; font-weight: bold; font-style: italic } /* Name.Namespace */
+.nv { color: #666666; font-weight: bold; font-style: italic } /* Name.Variable */
+.ow { font-weight: bold } /* Operator.Word */
+.sb { color: #666666; font-style: italic } /* Literal.String.Backtick */
+.sc { color: #666666; font-style: italic } /* Literal.String.Char */
+.sd { color: #666666; font-style: italic } /* Literal.String.Doc */
+.s2 { color: #666666; font-style: italic } /* Literal.String.Double */
+.se { color: #666666; font-style: italic } /* Literal.String.Escape */
+.sh { color: #666666; font-style: italic } /* Literal.String.Heredoc */
+.si { color: #666666; font-style: italic } /* Literal.String.Interpol */
+.sx { color: #666666; font-style: italic } /* Literal.String.Other */
+.sr { color: #666666; font-style: italic } /* Literal.String.Regex */
+.s1 { color: #666666; font-style: italic } /* Literal.String.Single */
+.ss { color: #666666; font-style: italic } /* Literal.String.Symbol */
+.bp { font-weight: bold; font-style: italic } /* Name.Builtin.Pseudo */
+.vc { color: #666666; font-weight: bold; font-style: italic } /* Name.Variable.Class */
+.vg { color: #666666; font-weight: bold; font-style: italic } /* Name.Variable.Global */
+.vi { color: #666666; font-weight: bold; font-style: italic } /* Name.Variable.Instance */
\ No newline at end of file
diff --git a/static/pygments/algol_nu.min.css b/static/pygments/algol_nu.min.css
new file mode 100644
index 0000000..1e79262
--- /dev/null
+++ b/static/pygments/algol_nu.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:#888;font-style:italic}.err{border:1px solid red}.k{font-weight:700}.ch,.cm{color:#888;font-style:italic}.cp{color:#888;font-weight:700}.c1,.cpf{color:#888;font-style:italic}.cs{color:#888}.cs,.kc,.kd{font-weight:700}.kd{font-style:italic}.kn,.kp,.kr,.kt{font-weight:700}.s{color:#666;font-style:italic}.nb,.nc{font-weight:700;font-style:italic}.nc{color:#666}.nf,.nn,.no,.nv{color:#666;font-weight:700;font-style:italic}.ow{font-weight:700}.s1,.s2,.sb,.sc,.sd,.se,.sh,.si,.sr,.ss,.sx{color:#666;font-style:italic}.bp,.vc{font-weight:700;font-style:italic}.vc{color:#666}.vg,.vi{color:#666;font-weight:700;font-style:italic}
\ No newline at end of file
diff --git a/static/pygments/autumn.css b/static/pygments/autumn.css
new file mode 100644
index 0000000..4b8fe52
--- /dev/null
+++ b/static/pygments/autumn.css
@@ -0,0 +1,61 @@
+.highlight { background-color: #ffffcc }
+.c { color: #aaaaaa; font-style: italic } /* Comment */
+.err { color: #FF0000; background-color: #FFAAAA } /* Error */
+.k { color: #0000aa } /* Keyword */
+.ch { color: #aaaaaa; font-style: italic } /* Comment.Hashbang */
+.cm { color: #aaaaaa; font-style: italic } /* Comment.Multiline */
+.cp { color: #4c8317 } /* Comment.Preproc */
+.cpf { color: #aaaaaa; font-style: italic } /* Comment.PreprocFile */
+.c1 { color: #aaaaaa; font-style: italic } /* Comment.Single */
+.cs { color: #0000aa; font-style: italic } /* Comment.Special */
+.gd { color: #aa0000 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #aa0000 } /* Generic.Error */
+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.gi { color: #00aa00 } /* Generic.Inserted */
+.go { color: #888888 } /* Generic.Output */
+.gp { color: #555555 } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.gt { color: #aa0000 } /* Generic.Traceback */
+.kc { color: #0000aa } /* Keyword.Constant */
+.kd { color: #0000aa } /* Keyword.Declaration */
+.kn { color: #0000aa } /* Keyword.Namespace */
+.kp { color: #0000aa } /* Keyword.Pseudo */
+.kr { color: #0000aa } /* Keyword.Reserved */
+.kt { color: #00aaaa } /* Keyword.Type */
+.m { color: #009999 } /* Literal.Number */
+.s { color: #aa5500 } /* Literal.String */
+.na { color: #1e90ff } /* Name.Attribute */
+.nb { color: #00aaaa } /* Name.Builtin */
+.nc { color: #00aa00; text-decoration: underline } /* Name.Class */
+.no { color: #aa0000 } /* Name.Constant */
+.nd { color: #888888 } /* Name.Decorator */
+.ni { color: #880000; font-weight: bold } /* Name.Entity */
+.nf { color: #00aa00 } /* Name.Function */
+.nn { color: #00aaaa; text-decoration: underline } /* Name.Namespace */
+.nt { color: #1e90ff; font-weight: bold } /* Name.Tag */
+.nv { color: #aa0000 } /* Name.Variable */
+.ow { color: #0000aa } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mb { color: #009999 } /* Literal.Number.Bin */
+.mf { color: #009999 } /* Literal.Number.Float */
+.mh { color: #009999 } /* Literal.Number.Hex */
+.mi { color: #009999 } /* Literal.Number.Integer */
+.mo { color: #009999 } /* Literal.Number.Oct */
+.sb { color: #aa5500 } /* Literal.String.Backtick */
+.sc { color: #aa5500 } /* Literal.String.Char */
+.sd { color: #aa5500 } /* Literal.String.Doc */
+.s2 { color: #aa5500 } /* Literal.String.Double */
+.se { color: #aa5500 } /* Literal.String.Escape */
+.sh { color: #aa5500 } /* Literal.String.Heredoc */
+.si { color: #aa5500 } /* Literal.String.Interpol */
+.sx { color: #aa5500 } /* Literal.String.Other */
+.sr { color: #009999 } /* Literal.String.Regex */
+.s1 { color: #aa5500 } /* Literal.String.Single */
+.ss { color: #0000aa } /* Literal.String.Symbol */
+.bp { color: #00aaaa } /* Name.Builtin.Pseudo */
+.vc { color: #aa0000 } /* Name.Variable.Class */
+.vg { color: #aa0000 } /* Name.Variable.Global */
+.vi { color: #aa0000 } /* Name.Variable.Instance */
+.il { color: #009999 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/autumn.min.css b/static/pygments/autumn.min.css
new file mode 100644
index 0000000..e014095
--- /dev/null
+++ b/static/pygments/autumn.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:#aaa;font-style:italic}.err{color:red;background-color:#faa}.k{color:#00a}.ch,.cm{color:#aaa;font-style:italic}.cp{color:#4c8317}.c1,.cpf{color:#aaa}.c1,.cpf,.cs{font-style:italic}.cs{color:#00a}.gd{color:#a00}.ge{font-style:italic}.gr{color:#a00}.gh{color:navy;font-weight:700}.gi{color:#0a0}.go{color:#888}.gp{color:#555}.gs,.gu{font-weight:700}.gu{color:purple}.gt{color:#a00}.kc,.kd,.kn,.kp,.kr{color:#00a}.kt{color:#0aa}.m{color:#099}.s{color:#a50}.na{color:#1e90ff}.nb{color:#0aa}.nc{color:#0a0;text-decoration:underline}.no{color:#a00}.nd{color:#888}.ni{color:#800;font-weight:700}.nf{color:#0a0}.nn{color:#0aa;text-decoration:underline}.nt{color:#1e90ff;font-weight:700}.nv{color:#a00}.ow{color:#00a}.w{color:#bbb}.mb,.mf,.mh,.mi,.mo{color:#099}.s2,.sb,.sc,.sd,.se,.sh,.si,.sx{color:#a50}.sr{color:#099}.s1{color:#a50}.ss{color:#00a}.bp{color:#0aa}.vc,.vg,.vi{color:#a00}.il{color:#099}
\ No newline at end of file
diff --git a/static/pygments/borland.css b/static/pygments/borland.css
new file mode 100644
index 0000000..cdf0b28
--- /dev/null
+++ b/static/pygments/borland.css
@@ -0,0 +1,49 @@
+.highlight { background-color: #ffffcc }
+.c { color: #008800; font-style: italic } /* Comment */
+.err { color: #a61717; background-color: #e3d2d2 } /* Error */
+.k { color: #000080; font-weight: bold } /* Keyword */
+.ch { color: #008800; font-style: italic } /* Comment.Hashbang */
+.cm { color: #008800; font-style: italic } /* Comment.Multiline */
+.cp { color: #008080 } /* Comment.Preproc */
+.cpf { color: #008800; font-style: italic } /* Comment.PreprocFile */
+.c1 { color: #008800; font-style: italic } /* Comment.Single */
+.cs { color: #008800; font-weight: bold } /* Comment.Special */
+.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #aa0000 } /* Generic.Error */
+.gh { color: #999999 } /* Generic.Heading */
+.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
+.go { color: #888888 } /* Generic.Output */
+.gp { color: #555555 } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #aaaaaa } /* Generic.Subheading */
+.gt { color: #aa0000 } /* Generic.Traceback */
+.kc { color: #000080; font-weight: bold } /* Keyword.Constant */
+.kd { color: #000080; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #000080; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #000080; font-weight: bold } /* Keyword.Pseudo */
+.kr { color: #000080; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #000080; font-weight: bold } /* Keyword.Type */
+.m { color: #0000FF } /* Literal.Number */
+.s { color: #0000FF } /* Literal.String */
+.na { color: #FF0000 } /* Name.Attribute */
+.nt { color: #000080; font-weight: bold } /* Name.Tag */
+.ow { font-weight: bold } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mb { color: #0000FF } /* Literal.Number.Bin */
+.mf { color: #0000FF } /* Literal.Number.Float */
+.mh { color: #0000FF } /* Literal.Number.Hex */
+.mi { color: #0000FF } /* Literal.Number.Integer */
+.mo { color: #0000FF } /* Literal.Number.Oct */
+.sb { color: #0000FF } /* Literal.String.Backtick */
+.sc { color: #800080 } /* Literal.String.Char */
+.sd { color: #0000FF } /* Literal.String.Doc */
+.s2 { color: #0000FF } /* Literal.String.Double */
+.se { color: #0000FF } /* Literal.String.Escape */
+.sh { color: #0000FF } /* Literal.String.Heredoc */
+.si { color: #0000FF } /* Literal.String.Interpol */
+.sx { color: #0000FF } /* Literal.String.Other */
+.sr { color: #0000FF } /* Literal.String.Regex */
+.s1 { color: #0000FF } /* Literal.String.Single */
+.ss { color: #0000FF } /* Literal.String.Symbol */
+.il { color: #0000FF } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/borland.min.css b/static/pygments/borland.min.css
new file mode 100644
index 0000000..1be51cc
--- /dev/null
+++ b/static/pygments/borland.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:#080;font-style:italic}.err{color:#a61717;background-color:#e3d2d2}.k{color:navy;font-weight:700}.ch,.cm{color:#080;font-style:italic}.cp{color:teal}.c1,.cpf{color:#080;font-style:italic}.cs{color:#080;font-weight:700}.gd{color:#000;background-color:#fdd}.ge{font-style:italic}.gr{color:#a00}.gh{color:#999}.gi{color:#000;background-color:#dfd}.go{color:#888}.gp{color:#555}.gs{font-weight:700}.gu{color:#aaa}.gt{color:#a00}.kc,.kd,.kn,.kp,.kr,.kt{color:navy;font-weight:700}.m,.s{color:#00f}.na{color:red}.nt{color:navy}.nt,.ow{font-weight:700}.w{color:#bbb}.mb,.mf,.mh,.mi,.mo,.sb{color:#00f}.sc{color:purple}.il,.s1,.s2,.sd,.se,.sh,.si,.sr,.ss,.sx{color:#00f}
\ No newline at end of file
diff --git a/static/pygments/bw.css b/static/pygments/bw.css
new file mode 100644
index 0000000..e9d2551
--- /dev/null
+++ b/static/pygments/bw.css
@@ -0,0 +1,36 @@
+.highlight { background-color: #ffffcc }
+.c { font-style: italic } /* Comment */
+.err { border: 1px solid #FF0000 } /* Error */
+.k { font-weight: bold } /* Keyword */
+.ch { font-style: italic } /* Comment.Hashbang */
+.cm { font-style: italic } /* Comment.Multiline */
+.cpf { font-style: italic } /* Comment.PreprocFile */
+.c1 { font-style: italic } /* Comment.Single */
+.cs { font-style: italic } /* Comment.Special */
+.ge { font-style: italic } /* Generic.Emph */
+.gh { font-weight: bold } /* Generic.Heading */
+.gp { font-weight: bold } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { font-weight: bold } /* Generic.Subheading */
+.kc { font-weight: bold } /* Keyword.Constant */
+.kd { font-weight: bold } /* Keyword.Declaration */
+.kn { font-weight: bold } /* Keyword.Namespace */
+.kr { font-weight: bold } /* Keyword.Reserved */
+.s { font-style: italic } /* Literal.String */
+.nc { font-weight: bold } /* Name.Class */
+.ni { font-weight: bold } /* Name.Entity */
+.ne { font-weight: bold } /* Name.Exception */
+.nn { font-weight: bold } /* Name.Namespace */
+.nt { font-weight: bold } /* Name.Tag */
+.ow { font-weight: bold } /* Operator.Word */
+.sb { font-style: italic } /* Literal.String.Backtick */
+.sc { font-style: italic } /* Literal.String.Char */
+.sd { font-style: italic } /* Literal.String.Doc */
+.s2 { font-style: italic } /* Literal.String.Double */
+.se { font-weight: bold; font-style: italic } /* Literal.String.Escape */
+.sh { font-style: italic } /* Literal.String.Heredoc */
+.si { font-weight: bold; font-style: italic } /* Literal.String.Interpol */
+.sx { font-style: italic } /* Literal.String.Other */
+.sr { font-style: italic } /* Literal.String.Regex */
+.s1 { font-style: italic } /* Literal.String.Single */
+.ss { font-style: italic } /* Literal.String.Symbol */
\ No newline at end of file
diff --git a/static/pygments/bw.min.css b/static/pygments/bw.min.css
new file mode 100644
index 0000000..a8965bf
--- /dev/null
+++ b/static/pygments/bw.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{font-style:italic}.err{border:1px solid red}.k{font-weight:700}.c1,.ch,.cm,.cpf,.cs,.ge{font-style:italic}.gh,.gp,.gs,.gu,.kc,.kd,.kn,.kr{font-weight:700}.s{font-style:italic}.nc,.ne,.ni,.nn,.nt,.ow{font-weight:700}.s2,.sb,.sc,.sd,.se{font-style:italic}.se{font-weight:700}.sh,.si{font-style:italic}.si{font-weight:700}.s1,.sr,.ss,.sx{font-style:italic}
\ No newline at end of file
diff --git a/static/pygments/colorful.css b/static/pygments/colorful.css
new file mode 100644
index 0000000..6d73d55
--- /dev/null
+++ b/static/pygments/colorful.css
@@ -0,0 +1,64 @@
+.highlight { background-color: #ffffcc }
+.c { color: #888888 } /* Comment */
+.err { color: #FF0000; background-color: #FFAAAA } /* Error */
+.k { color: #008800; font-weight: bold } /* Keyword */
+.o { color: #333333 } /* Operator */
+.ch { color: #888888 } /* Comment.Hashbang */
+.cm { color: #888888 } /* Comment.Multiline */
+.cp { color: #557799 } /* Comment.Preproc */
+.cpf { color: #888888 } /* Comment.PreprocFile */
+.c1 { color: #888888 } /* Comment.Single */
+.cs { color: #cc0000; font-weight: bold } /* Comment.Special */
+.gd { color: #A00000 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #FF0000 } /* Generic.Error */
+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.gi { color: #00A000 } /* Generic.Inserted */
+.go { color: #888888 } /* Generic.Output */
+.gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.gt { color: #0044DD } /* Generic.Traceback */
+.kc { color: #008800; font-weight: bold } /* Keyword.Constant */
+.kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #003388; font-weight: bold } /* Keyword.Pseudo */
+.kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #333399; font-weight: bold } /* Keyword.Type */
+.m { color: #6600EE; font-weight: bold } /* Literal.Number */
+.s { background-color: #fff0f0 } /* Literal.String */
+.na { color: #0000CC } /* Name.Attribute */
+.nb { color: #007020 } /* Name.Builtin */
+.nc { color: #BB0066; font-weight: bold } /* Name.Class */
+.no { color: #003366; font-weight: bold } /* Name.Constant */
+.nd { color: #555555; font-weight: bold } /* Name.Decorator */
+.ni { color: #880000; font-weight: bold } /* Name.Entity */
+.ne { color: #FF0000; font-weight: bold } /* Name.Exception */
+.nf { color: #0066BB; font-weight: bold } /* Name.Function */
+.nl { color: #997700; font-weight: bold } /* Name.Label */
+.nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
+.nt { color: #007700 } /* Name.Tag */
+.nv { color: #996633 } /* Name.Variable */
+.ow { color: #000000; font-weight: bold } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mb { color: #6600EE; font-weight: bold } /* Literal.Number.Bin */
+.mf { color: #6600EE; font-weight: bold } /* Literal.Number.Float */
+.mh { color: #005588; font-weight: bold } /* Literal.Number.Hex */
+.mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
+.mo { color: #4400EE; font-weight: bold } /* Literal.Number.Oct */
+.sb { background-color: #fff0f0 } /* Literal.String.Backtick */
+.sc { color: #0044DD } /* Literal.String.Char */
+.sd { color: #DD4422 } /* Literal.String.Doc */
+.s2 { background-color: #fff0f0 } /* Literal.String.Double */
+.se { color: #666666; font-weight: bold; background-color: #fff0f0 } /* Literal.String.Escape */
+.sh { background-color: #fff0f0 } /* Literal.String.Heredoc */
+.si { background-color: #eeeeee } /* Literal.String.Interpol */
+.sx { color: #DD2200; background-color: #fff0f0 } /* Literal.String.Other */
+.sr { color: #000000; background-color: #fff0ff } /* Literal.String.Regex */
+.s1 { background-color: #fff0f0 } /* Literal.String.Single */
+.ss { color: #AA6600 } /* Literal.String.Symbol */
+.bp { color: #007020 } /* Name.Builtin.Pseudo */
+.vc { color: #336699 } /* Name.Variable.Class */
+.vg { color: #dd7700; font-weight: bold } /* Name.Variable.Global */
+.vi { color: #3333BB } /* Name.Variable.Instance */
+.il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/colorful.min.css b/static/pygments/colorful.min.css
new file mode 100644
index 0000000..cec1bbd
--- /dev/null
+++ b/static/pygments/colorful.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:#888}.err{color:red;background-color:#faa}.k{color:#080;font-weight:700}.o{color:#333}.ch,.cm{color:#888}.cp{color:#579}.c1,.cpf{color:#888}.cs{color:#c00;font-weight:700}.gd{color:#a00000}.ge{font-style:italic}.gr{color:red}.gh{color:navy;font-weight:700}.gi{color:#00a000}.go{color:#888}.gp{color:#c65d09}.gp,.gs,.gu{font-weight:700}.gu{color:purple}.gt{color:#04d}.kc,.kd,.kn{color:#080;font-weight:700}.kp{color:#038}.kp,.kr{font-weight:700}.kr{color:#080}.kt{color:#339}.kt,.m{font-weight:700}.m{color:#60e}.s{background-color:#fff0f0}.na{color:#00c}.nb{color:#007020}.nc{color:#b06}.nc,.no{font-weight:700}.no{color:#036}.nd{color:#555}.nd,.ni{font-weight:700}.ni{color:#800}.ne{color:red}.ne,.nf{font-weight:700}.nf{color:#06b}.nl{color:#970}.nl,.nn{font-weight:700}.nn{color:#0e84b5}.nt{color:#070}.nv{color:#963}.ow{color:#000;font-weight:700}.w{color:#bbb}.mb,.mf{color:#60e}.mb,.mf,.mh{font-weight:700}.mh{color:#058}.mi{color:#00d}.mi,.mo{font-weight:700}.mo{color:#40e}.sb{background-color:#fff0f0}.sc{color:#04d}.sd{color:#d42}.s2,.se{background-color:#fff0f0}.se{color:#666;font-weight:700}.sh{background-color:#fff0f0}.si{background-color:#eee}.sx{color:#d20;background-color:#fff0f0}.sr{color:#000;background-color:#fff0ff}.s1{background-color:#fff0f0}.ss{color:#a60}.bp{color:#007020}.vc{color:#369}.vg{color:#d70;font-weight:700}.vi{color:#33b}.il{color:#00d;font-weight:700}
\ No newline at end of file
diff --git a/static/pygments/default.css b/static/pygments/default.css
new file mode 100644
index 0000000..a342ba0
--- /dev/null
+++ b/static/pygments/default.css
@@ -0,0 +1,64 @@
+.highlight { background-color: #ffffcc }
+.c { color: #408080; font-style: italic } /* Comment */
+.err { border: 1px solid #FF0000 } /* Error */
+.k { color: #008000; font-weight: bold } /* Keyword */
+.o { color: #666666 } /* Operator */
+.ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.cp { color: #BC7A00 } /* Comment.Preproc */
+.cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+.c1 { color: #408080; font-style: italic } /* Comment.Single */
+.cs { color: #408080; font-style: italic } /* Comment.Special */
+.gd { color: #A00000 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #FF0000 } /* Generic.Error */
+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.gi { color: #00A000 } /* Generic.Inserted */
+.go { color: #888888 } /* Generic.Output */
+.gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.gt { color: #0044DD } /* Generic.Traceback */
+.kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #008000 } /* Keyword.Pseudo */
+.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #B00040 } /* Keyword.Type */
+.m { color: #666666 } /* Literal.Number */
+.s { color: #BA2121 } /* Literal.String */
+.na { color: #7D9029 } /* Name.Attribute */
+.nb { color: #008000 } /* Name.Builtin */
+.nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.no { color: #880000 } /* Name.Constant */
+.nd { color: #AA22FF } /* Name.Decorator */
+.ni { color: #999999; font-weight: bold } /* Name.Entity */
+.ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.nf { color: #0000FF } /* Name.Function */
+.nl { color: #A0A000 } /* Name.Label */
+.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.nt { color: #008000; font-weight: bold } /* Name.Tag */
+.nv { color: #19177C } /* Name.Variable */
+.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mb { color: #666666 } /* Literal.Number.Bin */
+.mf { color: #666666 } /* Literal.Number.Float */
+.mh { color: #666666 } /* Literal.Number.Hex */
+.mi { color: #666666 } /* Literal.Number.Integer */
+.mo { color: #666666 } /* Literal.Number.Oct */
+.sb { color: #BA2121 } /* Literal.String.Backtick */
+.sc { color: #BA2121 } /* Literal.String.Char */
+.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.s2 { color: #BA2121 } /* Literal.String.Double */
+.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.sh { color: #BA2121 } /* Literal.String.Heredoc */
+.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.sx { color: #008000 } /* Literal.String.Other */
+.sr { color: #BB6688 } /* Literal.String.Regex */
+.s1 { color: #BA2121 } /* Literal.String.Single */
+.ss { color: #19177C } /* Literal.String.Symbol */
+.bp { color: #008000 } /* Name.Builtin.Pseudo */
+.vc { color: #19177C } /* Name.Variable.Class */
+.vg { color: #19177C } /* Name.Variable.Global */
+.vi { color: #19177C } /* Name.Variable.Instance */
+.il { color: #666666 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/default.min.css b/static/pygments/default.min.css
new file mode 100644
index 0000000..86f44e7
--- /dev/null
+++ b/static/pygments/default.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:#408080;font-style:italic}.err{border:1px solid red}.k{color:green;font-weight:700}.o{color:#666}.ch,.cm{color:#408080;font-style:italic}.cp{color:#bc7a00}.c1,.cpf,.cs{color:#408080;font-style:italic}.gd{color:#a00000}.ge{font-style:italic}.gr{color:red}.gh{color:navy;font-weight:700}.gi{color:#00a000}.go{color:#888}.gp{color:navy}.gp,.gs,.gu{font-weight:700}.gu{color:purple}.gt{color:#04d}.kc,.kd,.kn{color:green;font-weight:700}.kp,.kr{color:green}.kr{font-weight:700}.kt{color:#b00040}.m{color:#666}.s{color:#ba2121}.na{color:#7d9029}.nb{color:green}.nc{color:#00f;font-weight:700}.no{color:#800}.nd{color:#a2f}.ni{color:#999}.ne,.ni{font-weight:700}.ne{color:#d2413a}.nf{color:#00f}.nl{color:#a0a000}.nn{color:#00f}.nn,.nt{font-weight:700}.nt{color:green}.nv{color:#19177c}.ow{color:#a2f;font-weight:700}.w{color:#bbb}.mb,.mf,.mh,.mi,.mo{color:#666}.sb,.sc,.sd{color:#ba2121}.sd{font-style:italic}.s2{color:#ba2121}.se{color:#b62;font-weight:700}.sh{color:#ba2121}.si{color:#b68;font-weight:700}.sx{color:green}.sr{color:#b68}.s1{color:#ba2121}.ss{color:#19177c}.bp{color:green}.vc,.vg,.vi{color:#19177c}.il{color:#666}
\ No newline at end of file
diff --git a/static/pygments/emacs.css b/static/pygments/emacs.css
new file mode 100644
index 0000000..b28c685
--- /dev/null
+++ b/static/pygments/emacs.css
@@ -0,0 +1,64 @@
+.highlight { background-color: #ffffcc }
+.c { color: #008800; font-style: italic } /* Comment */
+.err { border: 1px solid #FF0000 } /* Error */
+.k { color: #AA22FF; font-weight: bold } /* Keyword */
+.o { color: #666666 } /* Operator */
+.ch { color: #008800; font-style: italic } /* Comment.Hashbang */
+.cm { color: #008800; font-style: italic } /* Comment.Multiline */
+.cp { color: #008800 } /* Comment.Preproc */
+.cpf { color: #008800; font-style: italic } /* Comment.PreprocFile */
+.c1 { color: #008800; font-style: italic } /* Comment.Single */
+.cs { color: #008800; font-weight: bold } /* Comment.Special */
+.gd { color: #A00000 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #FF0000 } /* Generic.Error */
+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.gi { color: #00A000 } /* Generic.Inserted */
+.go { color: #888888 } /* Generic.Output */
+.gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.gt { color: #0044DD } /* Generic.Traceback */
+.kc { color: #AA22FF; font-weight: bold } /* Keyword.Constant */
+.kd { color: #AA22FF; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #AA22FF; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #AA22FF } /* Keyword.Pseudo */
+.kr { color: #AA22FF; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #00BB00; font-weight: bold } /* Keyword.Type */
+.m { color: #666666 } /* Literal.Number */
+.s { color: #BB4444 } /* Literal.String */
+.na { color: #BB4444 } /* Name.Attribute */
+.nb { color: #AA22FF } /* Name.Builtin */
+.nc { color: #0000FF } /* Name.Class */
+.no { color: #880000 } /* Name.Constant */
+.nd { color: #AA22FF } /* Name.Decorator */
+.ni { color: #999999; font-weight: bold } /* Name.Entity */
+.ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.nf { color: #00A000 } /* Name.Function */
+.nl { color: #A0A000 } /* Name.Label */
+.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.nt { color: #008000; font-weight: bold } /* Name.Tag */
+.nv { color: #B8860B } /* Name.Variable */
+.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mb { color: #666666 } /* Literal.Number.Bin */
+.mf { color: #666666 } /* Literal.Number.Float */
+.mh { color: #666666 } /* Literal.Number.Hex */
+.mi { color: #666666 } /* Literal.Number.Integer */
+.mo { color: #666666 } /* Literal.Number.Oct */
+.sb { color: #BB4444 } /* Literal.String.Backtick */
+.sc { color: #BB4444 } /* Literal.String.Char */
+.sd { color: #BB4444; font-style: italic } /* Literal.String.Doc */
+.s2 { color: #BB4444 } /* Literal.String.Double */
+.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+.sh { color: #BB4444 } /* Literal.String.Heredoc */
+.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+.sx { color: #008000 } /* Literal.String.Other */
+.sr { color: #BB6688 } /* Literal.String.Regex */
+.s1 { color: #BB4444 } /* Literal.String.Single */
+.ss { color: #B8860B } /* Literal.String.Symbol */
+.bp { color: #AA22FF } /* Name.Builtin.Pseudo */
+.vc { color: #B8860B } /* Name.Variable.Class */
+.vg { color: #B8860B } /* Name.Variable.Global */
+.vi { color: #B8860B } /* Name.Variable.Instance */
+.il { color: #666666 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/emacs.min.css b/static/pygments/emacs.min.css
new file mode 100644
index 0000000..18d9979
--- /dev/null
+++ b/static/pygments/emacs.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:#080;font-style:italic}.err{border:1px solid red}.k{color:#a2f;font-weight:700}.o{color:#666}.ch,.cm{font-style:italic}.ch,.cm,.cp{color:#080}.c1,.cpf{color:#080;font-style:italic}.cs{color:#080;font-weight:700}.gd{color:#a00000}.ge{font-style:italic}.gr{color:red}.gh{color:navy;font-weight:700}.gi{color:#00a000}.go{color:#888}.gp{color:navy}.gp,.gs,.gu{font-weight:700}.gu{color:purple}.gt{color:#04d}.kc,.kd,.kn{color:#a2f;font-weight:700}.kp,.kr{color:#a2f}.kr,.kt{font-weight:700}.kt{color:#0b0}.m{color:#666}.na,.s{color:#b44}.nb{color:#a2f}.nc{color:#00f}.no{color:#800}.nd{color:#a2f}.ni{color:#999}.ne,.ni{font-weight:700}.ne{color:#d2413a}.nf{color:#00a000}.nl{color:#a0a000}.nn{color:#00f}.nn,.nt{font-weight:700}.nt{color:green}.nv{color:#b8860b}.ow{color:#a2f;font-weight:700}.w{color:#bbb}.mb,.mf,.mh,.mi,.mo{color:#666}.sb,.sc,.sd{color:#b44}.sd{font-style:italic}.s2{color:#b44}.se{color:#b62;font-weight:700}.sh{color:#b44}.si{color:#b68;font-weight:700}.sx{color:green}.sr{color:#b68}.s1{color:#b44}.ss{color:#b8860b}.bp{color:#a2f}.vc,.vg,.vi{color:#b8860b}.il{color:#666}
\ No newline at end of file
diff --git a/static/pygments/friendly.css b/static/pygments/friendly.css
new file mode 100644
index 0000000..9a155b4
--- /dev/null
+++ b/static/pygments/friendly.css
@@ -0,0 +1,64 @@
+.highlight { background-color: #ffffcc }
+.c { color: #60a0b0; font-style: italic } /* Comment */
+.err { border: 1px solid #FF0000 } /* Error */
+.k { color: #007020; font-weight: bold } /* Keyword */
+.o { color: #666666 } /* Operator */
+.ch { color: #60a0b0; font-style: italic } /* Comment.Hashbang */
+.cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
+.cp { color: #007020 } /* Comment.Preproc */
+.cpf { color: #60a0b0; font-style: italic } /* Comment.PreprocFile */
+.c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
+.cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */
+.gd { color: #A00000 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #FF0000 } /* Generic.Error */
+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.gi { color: #00A000 } /* Generic.Inserted */
+.go { color: #888888 } /* Generic.Output */
+.gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.gt { color: #0044DD } /* Generic.Traceback */
+.kc { color: #007020; font-weight: bold } /* Keyword.Constant */
+.kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #007020 } /* Keyword.Pseudo */
+.kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #902000 } /* Keyword.Type */
+.m { color: #40a070 } /* Literal.Number */
+.s { color: #4070a0 } /* Literal.String */
+.na { color: #4070a0 } /* Name.Attribute */
+.nb { color: #007020 } /* Name.Builtin */
+.nc { color: #0e84b5; font-weight: bold } /* Name.Class */
+.no { color: #60add5 } /* Name.Constant */
+.nd { color: #555555; font-weight: bold } /* Name.Decorator */
+.ni { color: #d55537; font-weight: bold } /* Name.Entity */
+.ne { color: #007020 } /* Name.Exception */
+.nf { color: #06287e } /* Name.Function */
+.nl { color: #002070; font-weight: bold } /* Name.Label */
+.nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
+.nt { color: #062873; font-weight: bold } /* Name.Tag */
+.nv { color: #bb60d5 } /* Name.Variable */
+.ow { color: #007020; font-weight: bold } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mb { color: #40a070 } /* Literal.Number.Bin */
+.mf { color: #40a070 } /* Literal.Number.Float */
+.mh { color: #40a070 } /* Literal.Number.Hex */
+.mi { color: #40a070 } /* Literal.Number.Integer */
+.mo { color: #40a070 } /* Literal.Number.Oct */
+.sb { color: #4070a0 } /* Literal.String.Backtick */
+.sc { color: #4070a0 } /* Literal.String.Char */
+.sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
+.s2 { color: #4070a0 } /* Literal.String.Double */
+.se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
+.sh { color: #4070a0 } /* Literal.String.Heredoc */
+.si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
+.sx { color: #c65d09 } /* Literal.String.Other */
+.sr { color: #235388 } /* Literal.String.Regex */
+.s1 { color: #4070a0 } /* Literal.String.Single */
+.ss { color: #517918 } /* Literal.String.Symbol */
+.bp { color: #007020 } /* Name.Builtin.Pseudo */
+.vc { color: #bb60d5 } /* Name.Variable.Class */
+.vg { color: #bb60d5 } /* Name.Variable.Global */
+.vi { color: #bb60d5 } /* Name.Variable.Instance */
+.il { color: #40a070 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/friendly.min.css b/static/pygments/friendly.min.css
new file mode 100644
index 0000000..b0ccee2
--- /dev/null
+++ b/static/pygments/friendly.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:#60a0b0;font-style:italic}.err{border:1px solid red}.k{color:#007020;font-weight:700}.o{color:#666}.ch,.cm{color:#60a0b0;font-style:italic}.cp{color:#007020}.c1,.cpf{font-style:italic}.c1,.cpf,.cs{color:#60a0b0}.cs{background-color:#fff0f0}.gd{color:#a00000}.ge{font-style:italic}.gr{color:red}.gh{color:navy;font-weight:700}.gi{color:#00a000}.go{color:#888}.gp{color:#c65d09}.gp,.gs,.gu{font-weight:700}.gu{color:purple}.gt{color:#04d}.kc,.kd,.kn{font-weight:700}.kc,.kd,.kn,.kp,.kr{color:#007020}.kr{font-weight:700}.kt{color:#902000}.m{color:#40a070}.na,.s{color:#4070a0}.nb{color:#007020}.nc{color:#0e84b5;font-weight:700}.no{color:#60add5}.nd{color:#555}.nd,.ni{font-weight:700}.ni{color:#d55537}.ne{color:#007020}.nf{color:#06287e}.nl{color:#002070}.nl,.nn{font-weight:700}.nn{color:#0e84b5}.nt{color:#062873;font-weight:700}.nv{color:#bb60d5}.ow{color:#007020;font-weight:700}.w{color:#bbb}.mb,.mf,.mh,.mi,.mo{color:#40a070}.sb,.sc,.sd{color:#4070a0}.sd{font-style:italic}.s2,.se{color:#4070a0}.se{font-weight:700}.sh{color:#4070a0}.si{color:#70a0d0;font-style:italic}.sx{color:#c65d09}.sr{color:#235388}.s1{color:#4070a0}.ss{color:#517918}.bp{color:#007020}.vc,.vg,.vi{color:#bb60d5}.il{color:#40a070}
\ No newline at end of file
diff --git a/static/pygments/fruity.css b/static/pygments/fruity.css
new file mode 100644
index 0000000..033e274
--- /dev/null
+++ b/static/pygments/fruity.css
@@ -0,0 +1,73 @@
+.highlight { background-color: #333333 }
+.c { color: #008800; font-style: italic; background-color: #0f140f } /* Comment */
+.err { color: #ffffff } /* Error */
+.esc { color: #ffffff } /* Escape */
+.g { color: #ffffff } /* Generic */
+.k { color: #fb660a; font-weight: bold } /* Keyword */
+.l { color: #ffffff } /* Literal */
+.n { color: #ffffff } /* Name */
+.o { color: #ffffff } /* Operator */
+.x { color: #ffffff } /* Other */
+.p { color: #ffffff } /* Punctuation */
+.ch { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Hashbang */
+.cm { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Multiline */
+.cp { color: #ff0007; font-weight: bold; font-style: italic; background-color: #0f140f } /* Comment.Preproc */
+.cpf { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.PreprocFile */
+.c1 { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Single */
+.cs { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Special */
+.gd { color: #ffffff } /* Generic.Deleted */
+.ge { color: #ffffff } /* Generic.Emph */
+.gr { color: #ffffff } /* Generic.Error */
+.gh { color: #ffffff; font-weight: bold } /* Generic.Heading */
+.gi { color: #ffffff } /* Generic.Inserted */
+.go { color: #444444; background-color: #222222 } /* Generic.Output */
+.gp { color: #ffffff } /* Generic.Prompt */
+.gs { color: #ffffff } /* Generic.Strong */
+.gu { color: #ffffff; font-weight: bold } /* Generic.Subheading */
+.gt { color: #ffffff } /* Generic.Traceback */
+.kc { color: #fb660a; font-weight: bold } /* Keyword.Constant */
+.kd { color: #fb660a; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #fb660a; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #fb660a } /* Keyword.Pseudo */
+.kr { color: #fb660a; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #cdcaa9; font-weight: bold } /* Keyword.Type */
+.ld { color: #ffffff } /* Literal.Date */
+.m { color: #0086f7; font-weight: bold } /* Literal.Number */
+.s { color: #0086d2 } /* Literal.String */
+.na { color: #ff0086; font-weight: bold } /* Name.Attribute */
+.nb { color: #ffffff } /* Name.Builtin */
+.nc { color: #ffffff } /* Name.Class */
+.no { color: #0086d2 } /* Name.Constant */
+.nd { color: #ffffff } /* Name.Decorator */
+.ni { color: #ffffff } /* Name.Entity */
+.ne { color: #ffffff } /* Name.Exception */
+.nf { color: #ff0086; font-weight: bold } /* Name.Function */
+.nl { color: #ffffff } /* Name.Label */
+.nn { color: #ffffff } /* Name.Namespace */
+.nx { color: #ffffff } /* Name.Other */
+.py { color: #ffffff } /* Name.Property */
+.nt { color: #fb660a; font-weight: bold } /* Name.Tag */
+.nv { color: #fb660a } /* Name.Variable */
+.ow { color: #ffffff } /* Operator.Word */
+.w { color: #888888 } /* Text.Whitespace */
+.mb { color: #0086f7; font-weight: bold } /* Literal.Number.Bin */
+.mf { color: #0086f7; font-weight: bold } /* Literal.Number.Float */
+.mh { color: #0086f7; font-weight: bold } /* Literal.Number.Hex */
+.mi { color: #0086f7; font-weight: bold } /* Literal.Number.Integer */
+.mo { color: #0086f7; font-weight: bold } /* Literal.Number.Oct */
+.sb { color: #0086d2 } /* Literal.String.Backtick */
+.sc { color: #0086d2 } /* Literal.String.Char */
+.sd { color: #0086d2 } /* Literal.String.Doc */
+.s2 { color: #0086d2 } /* Literal.String.Double */
+.se { color: #0086d2 } /* Literal.String.Escape */
+.sh { color: #0086d2 } /* Literal.String.Heredoc */
+.si { color: #0086d2 } /* Literal.String.Interpol */
+.sx { color: #0086d2 } /* Literal.String.Other */
+.sr { color: #0086d2 } /* Literal.String.Regex */
+.s1 { color: #0086d2 } /* Literal.String.Single */
+.ss { color: #0086d2 } /* Literal.String.Symbol */
+.bp { color: #ffffff } /* Name.Builtin.Pseudo */
+.vc { color: #fb660a } /* Name.Variable.Class */
+.vg { color: #fb660a } /* Name.Variable.Global */
+.vi { color: #fb660a } /* Name.Variable.Instance */
+.il { color: #0086f7; font-weight: bold } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/fruity.min.css b/static/pygments/fruity.min.css
new file mode 100644
index 0000000..6220f05
--- /dev/null
+++ b/static/pygments/fruity.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#333}.c{color:#080;font-style:italic;background-color:#0f140f}.err,.esc,.g{color:#fff}.k{color:#fb660a;font-weight:700}.l,.n,.o,.p,.x{color:#fff}.ch,.cm{color:#080}.ch,.cm,.cp{font-style:italic;background-color:#0f140f}.cp{color:#ff0007;font-weight:700}.c1,.cpf,.cs{color:#080;font-style:italic;background-color:#0f140f}.gd,.ge,.gh,.gr{color:#fff}.gh{font-weight:700}.gi{color:#fff}.go{color:#444;background-color:#222}.gp,.gs,.gu{color:#fff}.gu{font-weight:700}.gt{color:#fff}.kc,.kd,.kn{font-weight:700}.kc,.kd,.kn,.kp,.kr{color:#fb660a}.kr,.kt{font-weight:700}.kt{color:#cdcaa9}.ld{color:#fff}.m{color:#0086f7;font-weight:700}.s{color:#0086d2}.na{color:#ff0086;font-weight:700}.nb,.nc{color:#fff}.no{color:#0086d2}.nd,.ne,.ni{color:#fff}.nf{color:#ff0086;font-weight:700}.nl,.nn,.nx,.py{color:#fff}.nt{font-weight:700}.nt,.nv{color:#fb660a}.ow{color:#fff}.w{color:#888}.mb,.mf,.mh,.mi,.mo{color:#0086f7;font-weight:700}.s1,.s2,.sb,.sc,.sd,.se,.sh,.si,.sr,.ss,.sx{color:#0086d2}.bp{color:#fff}.vc,.vg,.vi{color:#fb660a}.il{color:#0086f7;font-weight:700}
\ No newline at end of file
diff --git a/static/pygments/github.css b/static/pygments/github.css
new file mode 100644
index 0000000..139ae86
--- /dev/null
+++ b/static/pygments/github.css
@@ -0,0 +1,64 @@
+.highlight { background-color: #ffffcc }
+.c { color: #999988; font-style: italic } /* Comment */
+.err { color: #a61717; background-color: #e3d2d2 } /* Error */
+.k { color: #000000; font-weight: bold } /* Keyword */
+.o { color: #000000; font-weight: bold } /* Operator */
+.ch { color: #999988; font-style: italic } /* Comment.Hashbang */
+.cm { color: #999988; font-style: italic } /* Comment.Multiline */
+.cp { color: #999999; font-weight: bold; font-style: italic } /* Comment.Preproc */
+.cpf { color: #999988; font-style: italic } /* Comment.PreprocFile */
+.c1 { color: #999988; font-style: italic } /* Comment.Single */
+.cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
+.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
+.ge { color: #000000; font-style: italic } /* Generic.Emph */
+.gr { color: #aa0000 } /* Generic.Error */
+.gh { color: #999999 } /* Generic.Heading */
+.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
+.go { color: #888888 } /* Generic.Output */
+.gp { color: #555555 } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #aaaaaa } /* Generic.Subheading */
+.gt { color: #aa0000 } /* Generic.Traceback */
+.kc { color: #000000; font-weight: bold } /* Keyword.Constant */
+.kd { color: #000000; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #000000; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */
+.kr { color: #000000; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #445588; font-weight: bold } /* Keyword.Type */
+.m { color: #009999 } /* Literal.Number */
+.s { color: #dd1144 } /* Literal.String */
+.na { color: #008080 } /* Name.Attribute */
+.nb { color: #0086B3 } /* Name.Builtin */
+.nc { color: #445588; font-weight: bold } /* Name.Class */
+.no { color: #008080 } /* Name.Constant */
+.nd { color: #3c5d5d; font-weight: bold } /* Name.Decorator */
+.ni { color: #800080 } /* Name.Entity */
+.ne { color: #990000; font-weight: bold } /* Name.Exception */
+.nf { color: #990000; font-weight: bold } /* Name.Function */
+.nl { color: #990000; font-weight: bold } /* Name.Label */
+.nn { color: #555555 } /* Name.Namespace */
+.nt { color: #000080 } /* Name.Tag */
+.nv { color: #008080 } /* Name.Variable */
+.ow { color: #000000; font-weight: bold } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mb { color: #009999 } /* Literal.Number.Bin */
+.mf { color: #009999 } /* Literal.Number.Float */
+.mh { color: #009999 } /* Literal.Number.Hex */
+.mi { color: #009999 } /* Literal.Number.Integer */
+.mo { color: #009999 } /* Literal.Number.Oct */
+.sb { color: #dd1144 } /* Literal.String.Backtick */
+.sc { color: #dd1144 } /* Literal.String.Char */
+.sd { color: #dd1144 } /* Literal.String.Doc */
+.s2 { color: #dd1144 } /* Literal.String.Double */
+.se { color: #dd1144 } /* Literal.String.Escape */
+.sh { color: #dd1144 } /* Literal.String.Heredoc */
+.si { color: #dd1144 } /* Literal.String.Interpol */
+.sx { color: #dd1144 } /* Literal.String.Other */
+.sr { color: #009926 } /* Literal.String.Regex */
+.s1 { color: #dd1144 } /* Literal.String.Single */
+.ss { color: #990073 } /* Literal.String.Symbol */
+.bp { color: #999999 } /* Name.Builtin.Pseudo */
+.vc { color: #008080 } /* Name.Variable.Class */
+.vg { color: #008080 } /* Name.Variable.Global */
+.vi { color: #008080 } /* Name.Variable.Instance */
+.il { color: #009999 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/github.min.css b/static/pygments/github.min.css
new file mode 100644
index 0000000..0d35cf1
--- /dev/null
+++ b/static/pygments/github.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:#998;font-style:italic}.err{color:#a61717;background-color:#e3d2d2}.k,.o{color:#000;font-weight:700}.ch,.cm{color:#998}.ch,.cm,.cp{font-style:italic}.cp{color:#999;font-weight:700}.c1,.cpf{color:#998}.c1,.cpf,.cs{font-style:italic}.cs{color:#999;font-weight:700}.gd{background-color:#fdd}.gd,.ge{color:#000}.ge{font-style:italic}.gr{color:#a00}.gh{color:#999}.gi{color:#000;background-color:#dfd}.go{color:#888}.gp{color:#555}.gs{font-weight:700}.gu{color:#aaa}.gt{color:#a00}.kc,.kd,.kn,.kp,.kr{color:#000;font-weight:700}.kt{color:#458;font-weight:700}.m{color:#099}.s{color:#d14}.na{color:teal}.nb{color:#0086b3}.nc{color:#458;font-weight:700}.no{color:teal}.nd{color:#3c5d5d;font-weight:700}.ni{color:purple}.ne,.nf,.nl{color:#900;font-weight:700}.nn{color:#555}.nt{color:navy}.nv{color:teal}.ow{color:#000;font-weight:700}.w{color:#bbb}.mb,.mf,.mh,.mi,.mo{color:#099}.s2,.sb,.sc,.sd,.se,.sh,.si,.sx{color:#d14}.sr{color:#009926}.s1{color:#d14}.ss{color:#990073}.bp{color:#999}.vc,.vg,.vi{color:teal}.il{color:#099}
\ No newline at end of file
diff --git a/static/pygments/igor.css b/static/pygments/igor.css
new file mode 100644
index 0000000..87cf359
--- /dev/null
+++ b/static/pygments/igor.css
@@ -0,0 +1,30 @@
+.highlight { background-color: #ffffcc }
+.c { color: #FF0000; font-style: italic } /* Comment */
+.k { color: #0000FF } /* Keyword */
+.ch { color: #FF0000; font-style: italic } /* Comment.Hashbang */
+.cm { color: #FF0000; font-style: italic } /* Comment.Multiline */
+.cp { color: #FF0000; font-style: italic } /* Comment.Preproc */
+.cpf { color: #FF0000; font-style: italic } /* Comment.PreprocFile */
+.c1 { color: #FF0000; font-style: italic } /* Comment.Single */
+.cs { color: #FF0000; font-style: italic } /* Comment.Special */
+.kc { color: #0000FF } /* Keyword.Constant */
+.kd { color: #0000FF } /* Keyword.Declaration */
+.kn { color: #0000FF } /* Keyword.Namespace */
+.kp { color: #0000FF } /* Keyword.Pseudo */
+.kr { color: #0000FF } /* Keyword.Reserved */
+.kt { color: #0000FF } /* Keyword.Type */
+.s { color: #009C00 } /* Literal.String */
+.nc { color: #007575 } /* Name.Class */
+.nd { color: #CC00A3 } /* Name.Decorator */
+.nf { color: #C34E00 } /* Name.Function */
+.sb { color: #009C00 } /* Literal.String.Backtick */
+.sc { color: #009C00 } /* Literal.String.Char */
+.sd { color: #009C00 } /* Literal.String.Doc */
+.s2 { color: #009C00 } /* Literal.String.Double */
+.se { color: #009C00 } /* Literal.String.Escape */
+.sh { color: #009C00 } /* Literal.String.Heredoc */
+.si { color: #009C00 } /* Literal.String.Interpol */
+.sx { color: #009C00 } /* Literal.String.Other */
+.sr { color: #009C00 } /* Literal.String.Regex */
+.s1 { color: #009C00 } /* Literal.String.Single */
+.ss { color: #009C00 } /* Literal.String.Symbol */
\ No newline at end of file
diff --git a/static/pygments/igor.min.css b/static/pygments/igor.min.css
new file mode 100644
index 0000000..c68c6b7
--- /dev/null
+++ b/static/pygments/igor.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:red;font-style:italic}.k{color:#00f}.c1,.ch,.cm,.cp,.cpf,.cs{color:red;font-style:italic}.kc,.kd,.kn,.kp,.kr,.kt{color:#00f}.s{color:#009c00}.nc{color:#007575}.nd{color:#cc00a3}.nf{color:#c34e00}.s1,.s2,.sb,.sc,.sd,.se,.sh,.si,.sr,.ss,.sx{color:#009c00}
\ No newline at end of file
diff --git a/static/pygments/lovelace.css b/static/pygments/lovelace.css
new file mode 100644
index 0000000..d248228
--- /dev/null
+++ b/static/pygments/lovelace.css
@@ -0,0 +1,65 @@
+.highlight { background-color: #ffffcc }
+.c { color: #888888; font-style: italic } /* Comment */
+.err { background-color: #a848a8 } /* Error */
+.k { color: #2838b0 } /* Keyword */
+.o { color: #666666 } /* Operator */
+.p { color: #888888 } /* Punctuation */
+.ch { color: #287088; font-style: italic } /* Comment.Hashbang */
+.cm { color: #888888; font-style: italic } /* Comment.Multiline */
+.cp { color: #289870 } /* Comment.Preproc */
+.cpf { color: #888888; font-style: italic } /* Comment.PreprocFile */
+.c1 { color: #888888; font-style: italic } /* Comment.Single */
+.cs { color: #888888; font-style: italic } /* Comment.Special */
+.gd { color: #c02828 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #c02828 } /* Generic.Error */
+.gh { color: #666666 } /* Generic.Heading */
+.gi { color: #388038 } /* Generic.Inserted */
+.go { color: #666666 } /* Generic.Output */
+.gp { color: #444444 } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #444444 } /* Generic.Subheading */
+.gt { color: #2838b0 } /* Generic.Traceback */
+.kc { color: #444444; font-style: italic } /* Keyword.Constant */
+.kd { color: #2838b0; font-style: italic } /* Keyword.Declaration */
+.kn { color: #2838b0 } /* Keyword.Namespace */
+.kp { color: #2838b0 } /* Keyword.Pseudo */
+.kr { color: #2838b0 } /* Keyword.Reserved */
+.kt { color: #2838b0; font-style: italic } /* Keyword.Type */
+.m { color: #444444 } /* Literal.Number */
+.s { color: #b83838 } /* Literal.String */
+.na { color: #388038 } /* Name.Attribute */
+.nb { color: #388038 } /* Name.Builtin */
+.nc { color: #287088 } /* Name.Class */
+.no { color: #b85820 } /* Name.Constant */
+.nd { color: #287088 } /* Name.Decorator */
+.ni { color: #709030 } /* Name.Entity */
+.ne { color: #908828 } /* Name.Exception */
+.nf { color: #785840 } /* Name.Function */
+.nl { color: #289870 } /* Name.Label */
+.nn { color: #289870 } /* Name.Namespace */
+.nt { color: #2838b0 } /* Name.Tag */
+.nv { color: #b04040 } /* Name.Variable */
+.ow { color: #a848a8 } /* Operator.Word */
+.w { color: #a89028 } /* Text.Whitespace */
+.mb { color: #444444 } /* Literal.Number.Bin */
+.mf { color: #444444 } /* Literal.Number.Float */
+.mh { color: #444444 } /* Literal.Number.Hex */
+.mi { color: #444444 } /* Literal.Number.Integer */
+.mo { color: #444444 } /* Literal.Number.Oct */
+.sb { color: #b83838 } /* Literal.String.Backtick */
+.sc { color: #a848a8 } /* Literal.String.Char */
+.sd { color: #b85820; font-style: italic } /* Literal.String.Doc */
+.s2 { color: #b83838 } /* Literal.String.Double */
+.se { color: #709030 } /* Literal.String.Escape */
+.sh { color: #b83838 } /* Literal.String.Heredoc */
+.si { color: #b83838; text-decoration: underline } /* Literal.String.Interpol */
+.sx { color: #a848a8 } /* Literal.String.Other */
+.sr { color: #a848a8 } /* Literal.String.Regex */
+.s1 { color: #b83838 } /* Literal.String.Single */
+.ss { color: #b83838 } /* Literal.String.Symbol */
+.bp { color: #388038; font-style: italic } /* Name.Builtin.Pseudo */
+.vc { color: #b04040 } /* Name.Variable.Class */
+.vg { color: #908828 } /* Name.Variable.Global */
+.vi { color: #b04040 } /* Name.Variable.Instance */
+.il { color: #444444 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/lovelace.min.css b/static/pygments/lovelace.min.css
new file mode 100644
index 0000000..4d28a6d
--- /dev/null
+++ b/static/pygments/lovelace.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:#888;font-style:italic}.err{background-color:#a848a8}.k{color:#2838b0}.o{color:#666}.p{color:#888}.ch{color:#287088}.ch,.cm{font-style:italic}.cm{color:#888}.cp{color:#289870}.c1,.cpf,.cs{color:#888;font-style:italic}.gd{color:#c02828}.ge{font-style:italic}.gr{color:#c02828}.gh{color:#666}.gi{color:#388038}.go{color:#666}.gp{color:#444}.gs{font-weight:700}.gu{color:#444}.gt{color:#2838b0}.kc{color:#444}.kc,.kd{font-style:italic}.kd,.kn,.kp,.kr,.kt{color:#2838b0}.kt{font-style:italic}.m{color:#444}.s{color:#b83838}.na,.nb{color:#388038}.nc{color:#287088}.no{color:#b85820}.nd{color:#287088}.ni{color:#709030}.ne{color:#908828}.nf{color:#785840}.nl,.nn{color:#289870}.nt{color:#2838b0}.nv{color:#b04040}.ow{color:#a848a8}.w{color:#a89028}.mb,.mf,.mh,.mi,.mo{color:#444}.sb{color:#b83838}.sc{color:#a848a8}.sd{color:#b85820;font-style:italic}.s2{color:#b83838}.se{color:#709030}.sh,.si{color:#b83838}.si{text-decoration:underline}.sr,.sx{color:#a848a8}.s1,.ss{color:#b83838}.bp{color:#388038;font-style:italic}.vc{color:#b04040}.vg{color:#908828}.vi{color:#b04040}.il{color:#444}
\ No newline at end of file
diff --git a/static/pygments/manni.css b/static/pygments/manni.css
new file mode 100644
index 0000000..a4f174e
--- /dev/null
+++ b/static/pygments/manni.css
@@ -0,0 +1,64 @@
+.highlight { background-color: #ffffcc }
+.c { color: #0099FF; font-style: italic } /* Comment */
+.err { color: #AA0000; background-color: #FFAAAA } /* Error */
+.k { color: #006699; font-weight: bold } /* Keyword */
+.o { color: #555555 } /* Operator */
+.ch { color: #0099FF; font-style: italic } /* Comment.Hashbang */
+.cm { color: #0099FF; font-style: italic } /* Comment.Multiline */
+.cp { color: #009999 } /* Comment.Preproc */
+.cpf { color: #0099FF; font-style: italic } /* Comment.PreprocFile */
+.c1 { color: #0099FF; font-style: italic } /* Comment.Single */
+.cs { color: #0099FF; font-weight: bold; font-style: italic } /* Comment.Special */
+.gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #FF0000 } /* Generic.Error */
+.gh { color: #003300; font-weight: bold } /* Generic.Heading */
+.gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */
+.go { color: #AAAAAA } /* Generic.Output */
+.gp { color: #000099; font-weight: bold } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #003300; font-weight: bold } /* Generic.Subheading */
+.gt { color: #99CC66 } /* Generic.Traceback */
+.kc { color: #006699; font-weight: bold } /* Keyword.Constant */
+.kd { color: #006699; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #006699; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #006699 } /* Keyword.Pseudo */
+.kr { color: #006699; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #007788; font-weight: bold } /* Keyword.Type */
+.m { color: #FF6600 } /* Literal.Number */
+.s { color: #CC3300 } /* Literal.String */
+.na { color: #330099 } /* Name.Attribute */
+.nb { color: #336666 } /* Name.Builtin */
+.nc { color: #00AA88; font-weight: bold } /* Name.Class */
+.no { color: #336600 } /* Name.Constant */
+.nd { color: #9999FF } /* Name.Decorator */
+.ni { color: #999999; font-weight: bold } /* Name.Entity */
+.ne { color: #CC0000; font-weight: bold } /* Name.Exception */
+.nf { color: #CC00FF } /* Name.Function */
+.nl { color: #9999FF } /* Name.Label */
+.nn { color: #00CCFF; font-weight: bold } /* Name.Namespace */
+.nt { color: #330099; font-weight: bold } /* Name.Tag */
+.nv { color: #003333 } /* Name.Variable */
+.ow { color: #000000; font-weight: bold } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mb { color: #FF6600 } /* Literal.Number.Bin */
+.mf { color: #FF6600 } /* Literal.Number.Float */
+.mh { color: #FF6600 } /* Literal.Number.Hex */
+.mi { color: #FF6600 } /* Literal.Number.Integer */
+.mo { color: #FF6600 } /* Literal.Number.Oct */
+.sb { color: #CC3300 } /* Literal.String.Backtick */
+.sc { color: #CC3300 } /* Literal.String.Char */
+.sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */
+.s2 { color: #CC3300 } /* Literal.String.Double */
+.se { color: #CC3300; font-weight: bold } /* Literal.String.Escape */
+.sh { color: #CC3300 } /* Literal.String.Heredoc */
+.si { color: #AA0000 } /* Literal.String.Interpol */
+.sx { color: #CC3300 } /* Literal.String.Other */
+.sr { color: #33AAAA } /* Literal.String.Regex */
+.s1 { color: #CC3300 } /* Literal.String.Single */
+.ss { color: #FFCC33 } /* Literal.String.Symbol */
+.bp { color: #336666 } /* Name.Builtin.Pseudo */
+.vc { color: #003333 } /* Name.Variable.Class */
+.vg { color: #003333 } /* Name.Variable.Global */
+.vi { color: #003333 } /* Name.Variable.Instance */
+.il { color: #FF6600 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/manni.min.css b/static/pygments/manni.min.css
new file mode 100644
index 0000000..851fb30
--- /dev/null
+++ b/static/pygments/manni.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:#09f;font-style:italic}.err{color:#a00;background-color:#faa}.k{color:#069;font-weight:700}.o{color:#555}.ch,.cm{color:#09f;font-style:italic}.cp{color:#099}.c1,.cpf,.cs{color:#09f;font-style:italic}.cs{font-weight:700}.gd{background-color:#fcc;border:1px solid #c00}.ge{font-style:italic}.gr{color:red}.gh{color:#030;font-weight:700}.gi{background-color:#cfc;border:1px solid #0c0}.go{color:#aaa}.gp{color:#009}.gp,.gs,.gu{font-weight:700}.gu{color:#030}.gt{color:#9c6}.kc,.kd,.kn{color:#069;font-weight:700}.kp,.kr{color:#069}.kr,.kt{font-weight:700}.kt{color:#078}.m{color:#f60}.s{color:#c30}.na{color:#309}.nb{color:#366}.nc{color:#0a8;font-weight:700}.no{color:#360}.nd{color:#99f}.ni{color:#999}.ne,.ni{font-weight:700}.ne{color:#c00}.nf{color:#c0f}.nl{color:#99f}.nn{color:#0cf}.nn,.nt{font-weight:700}.nt{color:#309}.nv{color:#033}.ow{color:#000;font-weight:700}.w{color:#bbb}.mb,.mf,.mh,.mi,.mo{color:#f60}.sb,.sc,.sd{color:#c30}.sd{font-style:italic}.s2,.se{color:#c30}.se{font-weight:700}.sh{color:#c30}.si{color:#a00}.sx{color:#c30}.sr{color:#3aa}.s1{color:#c30}.ss{color:#fc3}.bp{color:#366}.vc,.vg,.vi{color:#033}.il{color:#f60}
\ No newline at end of file
diff --git a/static/pygments/monokai.css b/static/pygments/monokai.css
new file mode 100644
index 0000000..3c8bf06
--- /dev/null
+++ b/static/pygments/monokai.css
@@ -0,0 +1,65 @@
+.highlight { background-color: #49483e }
+.c { color: #75715e } /* Comment */
+.err { color: #960050; background-color: #1e0010 } /* Error */
+.k { color: #66d9ef } /* Keyword */
+.l { color: #ae81ff } /* Literal */
+.n { color: #f8f8f2 } /* Name */
+.o { color: #f92672 } /* Operator */
+.p { color: #f8f8f2 } /* Punctuation */
+.ch { color: #75715e } /* Comment.Hashbang */
+.cm { color: #75715e } /* Comment.Multiline */
+.cp { color: #75715e } /* Comment.Preproc */
+.cpf { color: #75715e } /* Comment.PreprocFile */
+.c1 { color: #75715e } /* Comment.Single */
+.cs { color: #75715e } /* Comment.Special */
+.gd { color: #f92672 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gi { color: #a6e22e } /* Generic.Inserted */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #75715e } /* Generic.Subheading */
+.kc { color: #66d9ef } /* Keyword.Constant */
+.kd { color: #66d9ef } /* Keyword.Declaration */
+.kn { color: #f92672 } /* Keyword.Namespace */
+.kp { color: #66d9ef } /* Keyword.Pseudo */
+.kr { color: #66d9ef } /* Keyword.Reserved */
+.kt { color: #66d9ef } /* Keyword.Type */
+.ld { color: #e6db74 } /* Literal.Date */
+.m { color: #ae81ff } /* Literal.Number */
+.s { color: #e6db74 } /* Literal.String */
+.na { color: #a6e22e } /* Name.Attribute */
+.nb { color: #f8f8f2 } /* Name.Builtin */
+.nc { color: #a6e22e } /* Name.Class */
+.no { color: #66d9ef } /* Name.Constant */
+.nd { color: #a6e22e } /* Name.Decorator */
+.ni { color: #f8f8f2 } /* Name.Entity */
+.ne { color: #a6e22e } /* Name.Exception */
+.nf { color: #a6e22e } /* Name.Function */
+.nl { color: #f8f8f2 } /* Name.Label */
+.nn { color: #f8f8f2 } /* Name.Namespace */
+.nx { color: #a6e22e } /* Name.Other */
+.py { color: #f8f8f2 } /* Name.Property */
+.nt { color: #f92672 } /* Name.Tag */
+.nv { color: #f8f8f2 } /* Name.Variable */
+.ow { color: #f92672 } /* Operator.Word */
+.w { color: #f8f8f2 } /* Text.Whitespace */
+.mb { color: #ae81ff } /* Literal.Number.Bin */
+.mf { color: #ae81ff } /* Literal.Number.Float */
+.mh { color: #ae81ff } /* Literal.Number.Hex */
+.mi { color: #ae81ff } /* Literal.Number.Integer */
+.mo { color: #ae81ff } /* Literal.Number.Oct */
+.sb { color: #e6db74 } /* Literal.String.Backtick */
+.sc { color: #e6db74 } /* Literal.String.Char */
+.sd { color: #e6db74 } /* Literal.String.Doc */
+.s2 { color: #e6db74 } /* Literal.String.Double */
+.se { color: #ae81ff } /* Literal.String.Escape */
+.sh { color: #e6db74 } /* Literal.String.Heredoc */
+.si { color: #e6db74 } /* Literal.String.Interpol */
+.sx { color: #e6db74 } /* Literal.String.Other */
+.sr { color: #e6db74 } /* Literal.String.Regex */
+.s1 { color: #e6db74 } /* Literal.String.Single */
+.ss { color: #e6db74 } /* Literal.String.Symbol */
+.bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */
+.vc { color: #f8f8f2 } /* Name.Variable.Class */
+.vg { color: #f8f8f2 } /* Name.Variable.Global */
+.vi { color: #f8f8f2 } /* Name.Variable.Instance */
+.il { color: #ae81ff } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/monokai.min.css b/static/pygments/monokai.min.css
new file mode 100644
index 0000000..e9eb78b
--- /dev/null
+++ b/static/pygments/monokai.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#49483e}.c{color:#75715e}.err{color:#960050;background-color:#1e0010}.k{color:#66d9ef}.l{color:#ae81ff}.n{color:#f8f8f2}.o{color:#f92672}.p{color:#f8f8f2}.c1,.ch,.cm,.cp,.cpf,.cs{color:#75715e}.gd{color:#f92672}.ge{font-style:italic}.gi{color:#a6e22e}.gs{font-weight:700}.gu{color:#75715e}.kc,.kd{color:#66d9ef}.kn{color:#f92672}.kp,.kr,.kt{color:#66d9ef}.ld{color:#e6db74}.m{color:#ae81ff}.s{color:#e6db74}.na{color:#a6e22e}.nb{color:#f8f8f2}.nc{color:#a6e22e}.no{color:#66d9ef}.nd{color:#a6e22e}.ni{color:#f8f8f2}.ne,.nf{color:#a6e22e}.nl,.nn{color:#f8f8f2}.nx{color:#a6e22e}.py{color:#f8f8f2}.nt{color:#f92672}.nv{color:#f8f8f2}.ow{color:#f92672}.w{color:#f8f8f2}.mb,.mf,.mh,.mi,.mo{color:#ae81ff}.s2,.sb,.sc,.sd{color:#e6db74}.se{color:#ae81ff}.s1,.sh,.si,.sr,.ss,.sx{color:#e6db74}.bp,.vc,.vg,.vi{color:#f8f8f2}.il{color:#ae81ff}
\ No newline at end of file
diff --git a/static/pygments/murphy.css b/static/pygments/murphy.css
new file mode 100644
index 0000000..fd46e31
--- /dev/null
+++ b/static/pygments/murphy.css
@@ -0,0 +1,64 @@
+.highlight { background-color: #ffffcc }
+.c { color: #666666; font-style: italic } /* Comment */
+.err { color: #FF0000; background-color: #FFAAAA } /* Error */
+.k { color: #228899; font-weight: bold } /* Keyword */
+.o { color: #333333 } /* Operator */
+.ch { color: #666666; font-style: italic } /* Comment.Hashbang */
+.cm { color: #666666; font-style: italic } /* Comment.Multiline */
+.cp { color: #557799 } /* Comment.Preproc */
+.cpf { color: #666666; font-style: italic } /* Comment.PreprocFile */
+.c1 { color: #666666; font-style: italic } /* Comment.Single */
+.cs { color: #cc0000; font-weight: bold; font-style: italic } /* Comment.Special */
+.gd { color: #A00000 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #FF0000 } /* Generic.Error */
+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.gi { color: #00A000 } /* Generic.Inserted */
+.go { color: #888888 } /* Generic.Output */
+.gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.gt { color: #0044DD } /* Generic.Traceback */
+.kc { color: #228899; font-weight: bold } /* Keyword.Constant */
+.kd { color: #228899; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #228899; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #0088ff; font-weight: bold } /* Keyword.Pseudo */
+.kr { color: #228899; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #6666ff; font-weight: bold } /* Keyword.Type */
+.m { color: #6600EE; font-weight: bold } /* Literal.Number */
+.s { background-color: #e0e0ff } /* Literal.String */
+.na { color: #000077 } /* Name.Attribute */
+.nb { color: #007722 } /* Name.Builtin */
+.nc { color: #ee99ee; font-weight: bold } /* Name.Class */
+.no { color: #55eedd; font-weight: bold } /* Name.Constant */
+.nd { color: #555555; font-weight: bold } /* Name.Decorator */
+.ni { color: #880000 } /* Name.Entity */
+.ne { color: #FF0000; font-weight: bold } /* Name.Exception */
+.nf { color: #55eedd; font-weight: bold } /* Name.Function */
+.nl { color: #997700; font-weight: bold } /* Name.Label */
+.nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
+.nt { color: #007700 } /* Name.Tag */
+.nv { color: #003366 } /* Name.Variable */
+.ow { color: #000000; font-weight: bold } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mb { color: #6600EE; font-weight: bold } /* Literal.Number.Bin */
+.mf { color: #6600EE; font-weight: bold } /* Literal.Number.Float */
+.mh { color: #005588; font-weight: bold } /* Literal.Number.Hex */
+.mi { color: #6666ff; font-weight: bold } /* Literal.Number.Integer */
+.mo { color: #4400EE; font-weight: bold } /* Literal.Number.Oct */
+.sb { background-color: #e0e0ff } /* Literal.String.Backtick */
+.sc { color: #8888FF } /* Literal.String.Char */
+.sd { color: #DD4422 } /* Literal.String.Doc */
+.s2 { background-color: #e0e0ff } /* Literal.String.Double */
+.se { color: #666666; font-weight: bold; background-color: #e0e0ff } /* Literal.String.Escape */
+.sh { background-color: #e0e0ff } /* Literal.String.Heredoc */
+.si { background-color: #eeeeee } /* Literal.String.Interpol */
+.sx { color: #ff8888; background-color: #e0e0ff } /* Literal.String.Other */
+.sr { color: #000000; background-color: #e0e0ff } /* Literal.String.Regex */
+.s1 { background-color: #e0e0ff } /* Literal.String.Single */
+.ss { color: #ffcc88 } /* Literal.String.Symbol */
+.bp { color: #007722 } /* Name.Builtin.Pseudo */
+.vc { color: #ccccff } /* Name.Variable.Class */
+.vg { color: #ff8844 } /* Name.Variable.Global */
+.vi { color: #aaaaff } /* Name.Variable.Instance */
+.il { color: #6666ff; font-weight: bold } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/murphy.min.css b/static/pygments/murphy.min.css
new file mode 100644
index 0000000..2b44ac9
--- /dev/null
+++ b/static/pygments/murphy.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:#666;font-style:italic}.err{color:red;background-color:#faa}.k{color:#289;font-weight:700}.o{color:#333}.ch,.cm{color:#666;font-style:italic}.cp{color:#579}.c1,.cpf{color:#666}.c1,.cpf,.cs{font-style:italic}.cs{color:#c00;font-weight:700}.gd{color:#a00000}.ge{font-style:italic}.gr{color:red}.gh{color:navy;font-weight:700}.gi{color:#00a000}.go{color:#888}.gp{color:#c65d09}.gp,.gs,.gu{font-weight:700}.gu{color:purple}.gt{color:#04d}.kc,.kd,.kn{color:#289;font-weight:700}.kp{color:#08f}.kp,.kr{font-weight:700}.kr{color:#289}.kt{color:#66f}.kt,.m{font-weight:700}.m{color:#60e}.s{background-color:#e0e0ff}.na{color:#007}.nb{color:#072}.nc{color:#e9e}.nc,.no{font-weight:700}.no{color:#5ed}.nd{color:#555;font-weight:700}.ni{color:#800}.ne{color:red}.ne,.nf{font-weight:700}.nf{color:#5ed}.nl{color:#970}.nl,.nn{font-weight:700}.nn{color:#0e84b5}.nt{color:#070}.nv{color:#036}.ow{color:#000;font-weight:700}.w{color:#bbb}.mb,.mf{color:#60e}.mb,.mf,.mh{font-weight:700}.mh{color:#058}.mi{color:#66f}.mi,.mo{font-weight:700}.mo{color:#40e}.sb{background-color:#e0e0ff}.sc{color:#88f}.sd{color:#d42}.s2,.se{background-color:#e0e0ff}.se{color:#666;font-weight:700}.sh{background-color:#e0e0ff}.si{background-color:#eee}.sx{color:#f88}.sr,.sx{background-color:#e0e0ff}.sr{color:#000}.s1{background-color:#e0e0ff}.ss{color:#fc8}.bp{color:#072}.vc{color:#ccf}.vg{color:#f84}.vi{color:#aaf}.il{color:#66f;font-weight:700}
\ No newline at end of file
diff --git a/static/pygments/native.css b/static/pygments/native.css
new file mode 100644
index 0000000..65f10c1
--- /dev/null
+++ b/static/pygments/native.css
@@ -0,0 +1,73 @@
+.highlight { background-color: #404040 }
+.c { color: #999999; font-style: italic } /* Comment */
+.err { color: #a61717; background-color: #e3d2d2 } /* Error */
+.esc { color: #d0d0d0 } /* Escape */
+.g { color: #d0d0d0 } /* Generic */
+.k { color: #6ab825; font-weight: bold } /* Keyword */
+.l { color: #d0d0d0 } /* Literal */
+.n { color: #d0d0d0 } /* Name */
+.o { color: #d0d0d0 } /* Operator */
+.x { color: #d0d0d0 } /* Other */
+.p { color: #d0d0d0 } /* Punctuation */
+.ch { color: #999999; font-style: italic } /* Comment.Hashbang */
+.cm { color: #999999; font-style: italic } /* Comment.Multiline */
+.cp { color: #cd2828; font-weight: bold } /* Comment.Preproc */
+.cpf { color: #999999; font-style: italic } /* Comment.PreprocFile */
+.c1 { color: #999999; font-style: italic } /* Comment.Single */
+.cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */
+.gd { color: #d22323 } /* Generic.Deleted */
+.ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */
+.gr { color: #d22323 } /* Generic.Error */
+.gh { color: #ffffff; font-weight: bold } /* Generic.Heading */
+.gi { color: #589819 } /* Generic.Inserted */
+.go { color: #cccccc } /* Generic.Output */
+.gp { color: #aaaaaa } /* Generic.Prompt */
+.gs { color: #d0d0d0; font-weight: bold } /* Generic.Strong */
+.gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */
+.gt { color: #d22323 } /* Generic.Traceback */
+.kc { color: #6ab825; font-weight: bold } /* Keyword.Constant */
+.kd { color: #6ab825; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #6ab825; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #6ab825 } /* Keyword.Pseudo */
+.kr { color: #6ab825; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #6ab825; font-weight: bold } /* Keyword.Type */
+.ld { color: #d0d0d0 } /* Literal.Date */
+.m { color: #3677a9 } /* Literal.Number */
+.s { color: #ed9d13 } /* Literal.String */
+.na { color: #bbbbbb } /* Name.Attribute */
+.nb { color: #24909d } /* Name.Builtin */
+.nc { color: #447fcf; text-decoration: underline } /* Name.Class */
+.no { color: #40ffff } /* Name.Constant */
+.nd { color: #ffa500 } /* Name.Decorator */
+.ni { color: #d0d0d0 } /* Name.Entity */
+.ne { color: #bbbbbb } /* Name.Exception */
+.nf { color: #447fcf } /* Name.Function */
+.nl { color: #d0d0d0 } /* Name.Label */
+.nn { color: #447fcf; text-decoration: underline } /* Name.Namespace */
+.nx { color: #d0d0d0 } /* Name.Other */
+.py { color: #d0d0d0 } /* Name.Property */
+.nt { color: #6ab825; font-weight: bold } /* Name.Tag */
+.nv { color: #40ffff } /* Name.Variable */
+.ow { color: #6ab825; font-weight: bold } /* Operator.Word */
+.w { color: #666666 } /* Text.Whitespace */
+.mb { color: #3677a9 } /* Literal.Number.Bin */
+.mf { color: #3677a9 } /* Literal.Number.Float */
+.mh { color: #3677a9 } /* Literal.Number.Hex */
+.mi { color: #3677a9 } /* Literal.Number.Integer */
+.mo { color: #3677a9 } /* Literal.Number.Oct */
+.sb { color: #ed9d13 } /* Literal.String.Backtick */
+.sc { color: #ed9d13 } /* Literal.String.Char */
+.sd { color: #ed9d13 } /* Literal.String.Doc */
+.s2 { color: #ed9d13 } /* Literal.String.Double */
+.se { color: #ed9d13 } /* Literal.String.Escape */
+.sh { color: #ed9d13 } /* Literal.String.Heredoc */
+.si { color: #ed9d13 } /* Literal.String.Interpol */
+.sx { color: #ffa500 } /* Literal.String.Other */
+.sr { color: #ed9d13 } /* Literal.String.Regex */
+.s1 { color: #ed9d13 } /* Literal.String.Single */
+.ss { color: #ed9d13 } /* Literal.String.Symbol */
+.bp { color: #24909d } /* Name.Builtin.Pseudo */
+.vc { color: #40ffff } /* Name.Variable.Class */
+.vg { color: #40ffff } /* Name.Variable.Global */
+.vi { color: #40ffff } /* Name.Variable.Instance */
+.il { color: #3677a9 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/native.min.css b/static/pygments/native.min.css
new file mode 100644
index 0000000..8dd3e3c
--- /dev/null
+++ b/static/pygments/native.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#404040}.c{color:#999;font-style:italic}.err{color:#a61717;background-color:#e3d2d2}.esc,.g{color:#d0d0d0}.k{color:#6ab825;font-weight:700}.l,.n,.o,.p,.x{color:#d0d0d0}.ch,.cm{color:#999;font-style:italic}.cp{color:#cd2828;font-weight:700}.c1,.cpf{color:#999;font-style:italic}.cs{color:#e50808;font-weight:700;background-color:#520000}.gd{color:#d22323}.ge{color:#d0d0d0;font-style:italic}.gr{color:#d22323}.gh{color:#fff;font-weight:700}.gi{color:#589819}.go{color:#ccc}.gp{color:#aaa}.gs{color:#d0d0d0;font-weight:700}.gu{color:#fff;text-decoration:underline}.gt{color:#d22323}.kc,.kd,.kn{font-weight:700}.kc,.kd,.kn,.kp{color:#6ab825}.kr,.kt{color:#6ab825;font-weight:700}.ld{color:#d0d0d0}.m{color:#3677a9}.s{color:#ed9d13}.na{color:#bbb}.nb{color:#24909d}.nc{color:#447fcf;text-decoration:underline}.no{color:#40ffff}.nd{color:orange}.ni{color:#d0d0d0}.ne{color:#bbb}.nf{color:#447fcf}.nl{color:#d0d0d0}.nn{color:#447fcf;text-decoration:underline}.nx,.py{color:#d0d0d0}.nt{color:#6ab825;font-weight:700}.nv{color:#40ffff}.ow{color:#6ab825;font-weight:700}.w{color:#666}.mb,.mf,.mh,.mi,.mo{color:#3677a9}.s2,.sb,.sc,.sd,.se,.sh,.si{color:#ed9d13}.sx{color:orange}.s1,.sr,.ss{color:#ed9d13}.bp{color:#24909d}.vc,.vg,.vi{color:#40ffff}.il{color:#3677a9}
\ No newline at end of file
diff --git a/static/pygments/paraiso-dark.css b/static/pygments/paraiso-dark.css
new file mode 100644
index 0000000..cfecfa9
--- /dev/null
+++ b/static/pygments/paraiso-dark.css
@@ -0,0 +1,67 @@
+.highlight { background-color: #4f424c }
+.c { color: #776e71 } /* Comment */
+.err { color: #ef6155 } /* Error */
+.k { color: #815ba4 } /* Keyword */
+.l { color: #f99b15 } /* Literal */
+.n { color: #e7e9db } /* Name */
+.o { color: #5bc4bf } /* Operator */
+.p { color: #e7e9db } /* Punctuation */
+.ch { color: #776e71 } /* Comment.Hashbang */
+.cm { color: #776e71 } /* Comment.Multiline */
+.cp { color: #776e71 } /* Comment.Preproc */
+.cpf { color: #776e71 } /* Comment.PreprocFile */
+.c1 { color: #776e71 } /* Comment.Single */
+.cs { color: #776e71 } /* Comment.Special */
+.gd { color: #ef6155 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gh { color: #e7e9db; font-weight: bold } /* Generic.Heading */
+.gi { color: #48b685 } /* Generic.Inserted */
+.gp { color: #776e71; font-weight: bold } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #5bc4bf; font-weight: bold } /* Generic.Subheading */
+.kc { color: #815ba4 } /* Keyword.Constant */
+.kd { color: #815ba4 } /* Keyword.Declaration */
+.kn { color: #5bc4bf } /* Keyword.Namespace */
+.kp { color: #815ba4 } /* Keyword.Pseudo */
+.kr { color: #815ba4 } /* Keyword.Reserved */
+.kt { color: #fec418 } /* Keyword.Type */
+.ld { color: #48b685 } /* Literal.Date */
+.m { color: #f99b15 } /* Literal.Number */
+.s { color: #48b685 } /* Literal.String */
+.na { color: #06b6ef } /* Name.Attribute */
+.nb { color: #e7e9db } /* Name.Builtin */
+.nc { color: #fec418 } /* Name.Class */
+.no { color: #ef6155 } /* Name.Constant */
+.nd { color: #5bc4bf } /* Name.Decorator */
+.ni { color: #e7e9db } /* Name.Entity */
+.ne { color: #ef6155 } /* Name.Exception */
+.nf { color: #06b6ef } /* Name.Function */
+.nl { color: #e7e9db } /* Name.Label */
+.nn { color: #fec418 } /* Name.Namespace */
+.nx { color: #06b6ef } /* Name.Other */
+.py { color: #e7e9db } /* Name.Property */
+.nt { color: #5bc4bf } /* Name.Tag */
+.nv { color: #ef6155 } /* Name.Variable */
+.ow { color: #5bc4bf } /* Operator.Word */
+.w { color: #e7e9db } /* Text.Whitespace */
+.mb { color: #f99b15 } /* Literal.Number.Bin */
+.mf { color: #f99b15 } /* Literal.Number.Float */
+.mh { color: #f99b15 } /* Literal.Number.Hex */
+.mi { color: #f99b15 } /* Literal.Number.Integer */
+.mo { color: #f99b15 } /* Literal.Number.Oct */
+.sb { color: #48b685 } /* Literal.String.Backtick */
+.sc { color: #e7e9db } /* Literal.String.Char */
+.sd { color: #776e71 } /* Literal.String.Doc */
+.s2 { color: #48b685 } /* Literal.String.Double */
+.se { color: #f99b15 } /* Literal.String.Escape */
+.sh { color: #48b685 } /* Literal.String.Heredoc */
+.si { color: #f99b15 } /* Literal.String.Interpol */
+.sx { color: #48b685 } /* Literal.String.Other */
+.sr { color: #48b685 } /* Literal.String.Regex */
+.s1 { color: #48b685 } /* Literal.String.Single */
+.ss { color: #48b685 } /* Literal.String.Symbol */
+.bp { color: #e7e9db } /* Name.Builtin.Pseudo */
+.vc { color: #ef6155 } /* Name.Variable.Class */
+.vg { color: #ef6155 } /* Name.Variable.Global */
+.vi { color: #ef6155 } /* Name.Variable.Instance */
+.il { color: #f99b15 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/paraiso-dark.min.css b/static/pygments/paraiso-dark.min.css
new file mode 100644
index 0000000..0931d6e
--- /dev/null
+++ b/static/pygments/paraiso-dark.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#4f424c}.c{color:#776e71}.err{color:#ef6155}.k{color:#815ba4}.l{color:#f99b15}.n{color:#e7e9db}.o{color:#5bc4bf}.p{color:#e7e9db}.c1,.ch,.cm,.cp,.cpf,.cs{color:#776e71}.gd{color:#ef6155}.ge{font-style:italic}.gh{color:#e7e9db;font-weight:700}.gi{color:#48b685}.gp{color:#776e71}.gp,.gs,.gu{font-weight:700}.gu{color:#5bc4bf}.kc,.kd{color:#815ba4}.kn{color:#5bc4bf}.kp,.kr{color:#815ba4}.kt{color:#fec418}.ld{color:#48b685}.m{color:#f99b15}.s{color:#48b685}.na{color:#06b6ef}.nb{color:#e7e9db}.nc{color:#fec418}.no{color:#ef6155}.nd{color:#5bc4bf}.ni{color:#e7e9db}.ne{color:#ef6155}.nf{color:#06b6ef}.nl{color:#e7e9db}.nn{color:#fec418}.nx{color:#06b6ef}.py{color:#e7e9db}.nt{color:#5bc4bf}.nv{color:#ef6155}.ow{color:#5bc4bf}.w{color:#e7e9db}.mb,.mf,.mh,.mi,.mo{color:#f99b15}.sb{color:#48b685}.sc{color:#e7e9db}.sd{color:#776e71}.s2{color:#48b685}.se{color:#f99b15}.sh{color:#48b685}.si{color:#f99b15}.s1,.sr,.ss,.sx{color:#48b685}.bp{color:#e7e9db}.vc,.vg,.vi{color:#ef6155}.il{color:#f99b15}
\ No newline at end of file
diff --git a/static/pygments/paraiso-light.css b/static/pygments/paraiso-light.css
new file mode 100644
index 0000000..c7db930
--- /dev/null
+++ b/static/pygments/paraiso-light.css
@@ -0,0 +1,67 @@
+.highlight { background-color: #a39e9b }
+.c { color: #8d8687 } /* Comment */
+.err { color: #ef6155 } /* Error */
+.k { color: #815ba4 } /* Keyword */
+.l { color: #f99b15 } /* Literal */
+.n { color: #2f1e2e } /* Name */
+.o { color: #5bc4bf } /* Operator */
+.p { color: #2f1e2e } /* Punctuation */
+.ch { color: #8d8687 } /* Comment.Hashbang */
+.cm { color: #8d8687 } /* Comment.Multiline */
+.cp { color: #8d8687 } /* Comment.Preproc */
+.cpf { color: #8d8687 } /* Comment.PreprocFile */
+.c1 { color: #8d8687 } /* Comment.Single */
+.cs { color: #8d8687 } /* Comment.Special */
+.gd { color: #ef6155 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gh { color: #2f1e2e; font-weight: bold } /* Generic.Heading */
+.gi { color: #48b685 } /* Generic.Inserted */
+.gp { color: #8d8687; font-weight: bold } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #5bc4bf; font-weight: bold } /* Generic.Subheading */
+.kc { color: #815ba4 } /* Keyword.Constant */
+.kd { color: #815ba4 } /* Keyword.Declaration */
+.kn { color: #5bc4bf } /* Keyword.Namespace */
+.kp { color: #815ba4 } /* Keyword.Pseudo */
+.kr { color: #815ba4 } /* Keyword.Reserved */
+.kt { color: #fec418 } /* Keyword.Type */
+.ld { color: #48b685 } /* Literal.Date */
+.m { color: #f99b15 } /* Literal.Number */
+.s { color: #48b685 } /* Literal.String */
+.na { color: #06b6ef } /* Name.Attribute */
+.nb { color: #2f1e2e } /* Name.Builtin */
+.nc { color: #fec418 } /* Name.Class */
+.no { color: #ef6155 } /* Name.Constant */
+.nd { color: #5bc4bf } /* Name.Decorator */
+.ni { color: #2f1e2e } /* Name.Entity */
+.ne { color: #ef6155 } /* Name.Exception */
+.nf { color: #06b6ef } /* Name.Function */
+.nl { color: #2f1e2e } /* Name.Label */
+.nn { color: #fec418 } /* Name.Namespace */
+.nx { color: #06b6ef } /* Name.Other */
+.py { color: #2f1e2e } /* Name.Property */
+.nt { color: #5bc4bf } /* Name.Tag */
+.nv { color: #ef6155 } /* Name.Variable */
+.ow { color: #5bc4bf } /* Operator.Word */
+.w { color: #2f1e2e } /* Text.Whitespace */
+.mb { color: #f99b15 } /* Literal.Number.Bin */
+.mf { color: #f99b15 } /* Literal.Number.Float */
+.mh { color: #f99b15 } /* Literal.Number.Hex */
+.mi { color: #f99b15 } /* Literal.Number.Integer */
+.mo { color: #f99b15 } /* Literal.Number.Oct */
+.sb { color: #48b685 } /* Literal.String.Backtick */
+.sc { color: #2f1e2e } /* Literal.String.Char */
+.sd { color: #8d8687 } /* Literal.String.Doc */
+.s2 { color: #48b685 } /* Literal.String.Double */
+.se { color: #f99b15 } /* Literal.String.Escape */
+.sh { color: #48b685 } /* Literal.String.Heredoc */
+.si { color: #f99b15 } /* Literal.String.Interpol */
+.sx { color: #48b685 } /* Literal.String.Other */
+.sr { color: #48b685 } /* Literal.String.Regex */
+.s1 { color: #48b685 } /* Literal.String.Single */
+.ss { color: #48b685 } /* Literal.String.Symbol */
+.bp { color: #2f1e2e } /* Name.Builtin.Pseudo */
+.vc { color: #ef6155 } /* Name.Variable.Class */
+.vg { color: #ef6155 } /* Name.Variable.Global */
+.vi { color: #ef6155 } /* Name.Variable.Instance */
+.il { color: #f99b15 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/paraiso-light.min.css b/static/pygments/paraiso-light.min.css
new file mode 100644
index 0000000..f163e16
--- /dev/null
+++ b/static/pygments/paraiso-light.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#a39e9b}.c{color:#8d8687}.err{color:#ef6155}.k{color:#815ba4}.l{color:#f99b15}.n{color:#2f1e2e}.o{color:#5bc4bf}.p{color:#2f1e2e}.c1,.ch,.cm,.cp,.cpf,.cs{color:#8d8687}.gd{color:#ef6155}.ge{font-style:italic}.gh{color:#2f1e2e;font-weight:700}.gi{color:#48b685}.gp{color:#8d8687}.gp,.gs,.gu{font-weight:700}.gu{color:#5bc4bf}.kc,.kd{color:#815ba4}.kn{color:#5bc4bf}.kp,.kr{color:#815ba4}.kt{color:#fec418}.ld{color:#48b685}.m{color:#f99b15}.s{color:#48b685}.na{color:#06b6ef}.nb{color:#2f1e2e}.nc{color:#fec418}.no{color:#ef6155}.nd{color:#5bc4bf}.ni{color:#2f1e2e}.ne{color:#ef6155}.nf{color:#06b6ef}.nl{color:#2f1e2e}.nn{color:#fec418}.nx{color:#06b6ef}.py{color:#2f1e2e}.nt{color:#5bc4bf}.nv{color:#ef6155}.ow{color:#5bc4bf}.w{color:#2f1e2e}.mb,.mf,.mh,.mi,.mo{color:#f99b15}.sb{color:#48b685}.sc{color:#2f1e2e}.sd{color:#8d8687}.s2{color:#48b685}.se{color:#f99b15}.sh{color:#48b685}.si{color:#f99b15}.s1,.sr,.ss,.sx{color:#48b685}.bp{color:#2f1e2e}.vc,.vg,.vi{color:#ef6155}.il{color:#f99b15}
\ No newline at end of file
diff --git a/static/pygments/pastie.css b/static/pygments/pastie.css
new file mode 100644
index 0000000..0484a40
--- /dev/null
+++ b/static/pygments/pastie.css
@@ -0,0 +1,63 @@
+.highlight { background-color: #ffffcc }
+.c { color: #888888 } /* Comment */
+.err { color: #a61717; background-color: #e3d2d2 } /* Error */
+.k { color: #008800; font-weight: bold } /* Keyword */
+.ch { color: #888888 } /* Comment.Hashbang */
+.cm { color: #888888 } /* Comment.Multiline */
+.cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
+.cpf { color: #888888 } /* Comment.PreprocFile */
+.c1 { color: #888888 } /* Comment.Single */
+.cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
+.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #aa0000 } /* Generic.Error */
+.gh { color: #333333 } /* Generic.Heading */
+.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
+.go { color: #888888 } /* Generic.Output */
+.gp { color: #555555 } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #666666 } /* Generic.Subheading */
+.gt { color: #aa0000 } /* Generic.Traceback */
+.kc { color: #008800; font-weight: bold } /* Keyword.Constant */
+.kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #008800 } /* Keyword.Pseudo */
+.kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #888888; font-weight: bold } /* Keyword.Type */
+.m { color: #0000DD; font-weight: bold } /* Literal.Number */
+.s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
+.na { color: #336699 } /* Name.Attribute */
+.nb { color: #003388 } /* Name.Builtin */
+.nc { color: #bb0066; font-weight: bold } /* Name.Class */
+.no { color: #003366; font-weight: bold } /* Name.Constant */
+.nd { color: #555555 } /* Name.Decorator */
+.ne { color: #bb0066; font-weight: bold } /* Name.Exception */
+.nf { color: #0066bb; font-weight: bold } /* Name.Function */
+.nl { color: #336699; font-style: italic } /* Name.Label */
+.nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
+.py { color: #336699; font-weight: bold } /* Name.Property */
+.nt { color: #bb0066; font-weight: bold } /* Name.Tag */
+.nv { color: #336699 } /* Name.Variable */
+.ow { color: #008800 } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
+.mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
+.mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
+.mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
+.mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
+.sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
+.sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
+.sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
+.s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
+.se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
+.sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
+.si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
+.sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
+.sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
+.s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
+.ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
+.bp { color: #003388 } /* Name.Builtin.Pseudo */
+.vc { color: #336699 } /* Name.Variable.Class */
+.vg { color: #dd7700 } /* Name.Variable.Global */
+.vi { color: #3333bb } /* Name.Variable.Instance */
+.il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/pastie.min.css b/static/pygments/pastie.min.css
new file mode 100644
index 0000000..7a1b6fb
--- /dev/null
+++ b/static/pygments/pastie.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:#888}.err{color:#a61717;background-color:#e3d2d2}.k{color:#080;font-weight:700}.ch,.cm{color:#888}.cp{color:#c00;font-weight:700}.c1,.cpf{color:#888}.cs{color:#c00;font-weight:700;background-color:#fff0f0}.gd{color:#000;background-color:#fdd}.ge{font-style:italic}.gr{color:#a00}.gh{color:#333}.gi{color:#000;background-color:#dfd}.go{color:#888}.gp{color:#555}.gs{font-weight:700}.gu{color:#666}.gt{color:#a00}.kc,.kd,.kn{color:#080;font-weight:700}.kp,.kr{color:#080}.kr,.kt{font-weight:700}.kt{color:#888}.m{color:#00d;font-weight:700}.s{color:#d20;background-color:#fff0f0}.na{color:#369}.nb{color:#038}.nc{color:#b06}.nc,.no{font-weight:700}.no{color:#036}.nd{color:#555}.ne{color:#b06}.ne,.nf{font-weight:700}.nf{color:#06b}.nl{color:#369;font-style:italic}.nn{color:#b06}.nn,.py{font-weight:700}.py{color:#369}.nt{color:#b06;font-weight:700}.nv{color:#369}.ow{color:#080}.w{color:#bbb}.mb,.mf,.mh,.mi,.mo{color:#00d;font-weight:700}.s2,.sb,.sc,.sd{color:#d20}.s2,.sb,.sc,.sd,.se{background-color:#fff0f0}.se{color:#04d}.sh{color:#d20}.sh,.si{background-color:#fff0f0}.si{color:#33b}.sx{color:#2b2;background-color:#f0fff0}.sr{color:#080;background-color:#fff0ff}.s1{color:#d20}.s1,.ss{background-color:#fff0f0}.ss{color:#a60}.bp{color:#038}.vc{color:#369}.vg{color:#d70}.vi{color:#33b}.il{color:#00d;font-weight:700}
\ No newline at end of file
diff --git a/static/pygments/perldoc.css b/static/pygments/perldoc.css
new file mode 100644
index 0000000..a488774
--- /dev/null
+++ b/static/pygments/perldoc.css
@@ -0,0 +1,61 @@
+.highlight { background-color: #ffffcc }
+.c { color: #228B22 } /* Comment */
+.err { color: #a61717; background-color: #e3d2d2 } /* Error */
+.k { color: #8B008B; font-weight: bold } /* Keyword */
+.ch { color: #228B22 } /* Comment.Hashbang */
+.cm { color: #228B22 } /* Comment.Multiline */
+.cp { color: #1e889b } /* Comment.Preproc */
+.cpf { color: #228B22 } /* Comment.PreprocFile */
+.c1 { color: #228B22 } /* Comment.Single */
+.cs { color: #8B008B; font-weight: bold } /* Comment.Special */
+.gd { color: #aa0000 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #aa0000 } /* Generic.Error */
+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.gi { color: #00aa00 } /* Generic.Inserted */
+.go { color: #888888 } /* Generic.Output */
+.gp { color: #555555 } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.gt { color: #aa0000 } /* Generic.Traceback */
+.kc { color: #8B008B; font-weight: bold } /* Keyword.Constant */
+.kd { color: #8B008B; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #8B008B; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #8B008B; font-weight: bold } /* Keyword.Pseudo */
+.kr { color: #8B008B; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #a7a7a7; font-weight: bold } /* Keyword.Type */
+.m { color: #B452CD } /* Literal.Number */
+.s { color: #CD5555 } /* Literal.String */
+.na { color: #658b00 } /* Name.Attribute */
+.nb { color: #658b00 } /* Name.Builtin */
+.nc { color: #008b45; font-weight: bold } /* Name.Class */
+.no { color: #00688B } /* Name.Constant */
+.nd { color: #707a7c } /* Name.Decorator */
+.ne { color: #008b45; font-weight: bold } /* Name.Exception */
+.nf { color: #008b45 } /* Name.Function */
+.nn { color: #008b45; text-decoration: underline } /* Name.Namespace */
+.nt { color: #8B008B; font-weight: bold } /* Name.Tag */
+.nv { color: #00688B } /* Name.Variable */
+.ow { color: #8B008B } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mb { color: #B452CD } /* Literal.Number.Bin */
+.mf { color: #B452CD } /* Literal.Number.Float */
+.mh { color: #B452CD } /* Literal.Number.Hex */
+.mi { color: #B452CD } /* Literal.Number.Integer */
+.mo { color: #B452CD } /* Literal.Number.Oct */
+.sb { color: #CD5555 } /* Literal.String.Backtick */
+.sc { color: #CD5555 } /* Literal.String.Char */
+.sd { color: #CD5555 } /* Literal.String.Doc */
+.s2 { color: #CD5555 } /* Literal.String.Double */
+.se { color: #CD5555 } /* Literal.String.Escape */
+.sh { color: #1c7e71; font-style: italic } /* Literal.String.Heredoc */
+.si { color: #CD5555 } /* Literal.String.Interpol */
+.sx { color: #cb6c20 } /* Literal.String.Other */
+.sr { color: #1c7e71 } /* Literal.String.Regex */
+.s1 { color: #CD5555 } /* Literal.String.Single */
+.ss { color: #CD5555 } /* Literal.String.Symbol */
+.bp { color: #658b00 } /* Name.Builtin.Pseudo */
+.vc { color: #00688B } /* Name.Variable.Class */
+.vg { color: #00688B } /* Name.Variable.Global */
+.vi { color: #00688B } /* Name.Variable.Instance */
+.il { color: #B452CD } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/perldoc.min.css b/static/pygments/perldoc.min.css
new file mode 100644
index 0000000..a22b37d
--- /dev/null
+++ b/static/pygments/perldoc.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:#228b22}.err{color:#a61717;background-color:#e3d2d2}.k{color:#8b008b;font-weight:700}.ch,.cm{color:#228b22}.cp{color:#1e889b}.c1,.cpf{color:#228b22}.cs{color:#8b008b;font-weight:700}.gd{color:#a00}.ge{font-style:italic}.gr{color:#a00}.gh{color:navy;font-weight:700}.gi{color:#0a0}.go{color:#888}.gp{color:#555}.gs,.gu{font-weight:700}.gu{color:purple}.gt{color:#a00}.kc,.kd,.kn,.kp,.kr{color:#8b008b;font-weight:700}.kt{color:#a7a7a7;font-weight:700}.m{color:#b452cd}.s{color:#cd5555}.na,.nb{color:#658b00}.nc{color:#008b45;font-weight:700}.no{color:#00688b}.nd{color:#707a7c}.ne{font-weight:700}.ne,.nf,.nn{color:#008b45}.nn{text-decoration:underline}.nt{color:#8b008b;font-weight:700}.nv{color:#00688b}.ow{color:#8b008b}.w{color:#bbb}.mb,.mf,.mh,.mi,.mo{color:#b452cd}.s2,.sb,.sc,.sd,.se{color:#cd5555}.sh{color:#1c7e71;font-style:italic}.si{color:#cd5555}.sx{color:#cb6c20}.sr{color:#1c7e71}.s1,.ss{color:#cd5555}.bp{color:#658b00}.vc,.vg,.vi{color:#00688b}.il{color:#b452cd}
\ No newline at end of file
diff --git a/static/pygments/rrt.css b/static/pygments/rrt.css
new file mode 100644
index 0000000..9e01466
--- /dev/null
+++ b/static/pygments/rrt.css
@@ -0,0 +1,33 @@
+.highlight { background-color: #0000ff }
+.c { color: #00ff00 } /* Comment */
+.k { color: #ff0000 } /* Keyword */
+.ch { color: #00ff00 } /* Comment.Hashbang */
+.cm { color: #00ff00 } /* Comment.Multiline */
+.cp { color: #e5e5e5 } /* Comment.Preproc */
+.cpf { color: #00ff00 } /* Comment.PreprocFile */
+.c1 { color: #00ff00 } /* Comment.Single */
+.cs { color: #00ff00 } /* Comment.Special */
+.kc { color: #ff0000 } /* Keyword.Constant */
+.kd { color: #ff0000 } /* Keyword.Declaration */
+.kn { color: #ff0000 } /* Keyword.Namespace */
+.kp { color: #ff0000 } /* Keyword.Pseudo */
+.kr { color: #ff0000 } /* Keyword.Reserved */
+.kt { color: #ee82ee } /* Keyword.Type */
+.s { color: #87ceeb } /* Literal.String */
+.no { color: #7fffd4 } /* Name.Constant */
+.nf { color: #ffff00 } /* Name.Function */
+.nv { color: #eedd82 } /* Name.Variable */
+.sb { color: #87ceeb } /* Literal.String.Backtick */
+.sc { color: #87ceeb } /* Literal.String.Char */
+.sd { color: #87ceeb } /* Literal.String.Doc */
+.s2 { color: #87ceeb } /* Literal.String.Double */
+.se { color: #87ceeb } /* Literal.String.Escape */
+.sh { color: #87ceeb } /* Literal.String.Heredoc */
+.si { color: #87ceeb } /* Literal.String.Interpol */
+.sx { color: #87ceeb } /* Literal.String.Other */
+.sr { color: #87ceeb } /* Literal.String.Regex */
+.s1 { color: #87ceeb } /* Literal.String.Single */
+.ss { color: #87ceeb } /* Literal.String.Symbol */
+.vc { color: #eedd82 } /* Name.Variable.Class */
+.vg { color: #eedd82 } /* Name.Variable.Global */
+.vi { color: #eedd82 } /* Name.Variable.Instance */
\ No newline at end of file
diff --git a/static/pygments/rrt.min.css b/static/pygments/rrt.min.css
new file mode 100644
index 0000000..5c9c744
--- /dev/null
+++ b/static/pygments/rrt.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#00f}.c{color:#0f0}.k{color:red}.ch,.cm{color:#0f0}.cp{color:#e5e5e5}.c1,.cpf,.cs{color:#0f0}.kc,.kd,.kn,.kp,.kr{color:red}.kt{color:violet}.s{color:#87ceeb}.no{color:#7fffd4}.nf{color:#ff0}.nv{color:#eedd82}.s1,.s2,.sb,.sc,.sd,.se,.sh,.si,.sr,.ss,.sx{color:#87ceeb}.vc,.vg,.vi{color:#eedd82}
\ No newline at end of file
diff --git a/static/pygments/tango.css b/static/pygments/tango.css
new file mode 100644
index 0000000..de6d99a
--- /dev/null
+++ b/static/pygments/tango.css
@@ -0,0 +1,72 @@
+.highlight { background-color: #ffffcc }
+.c { color: #8f5902; font-style: italic } /* Comment */
+.err { color: #a40000; border: 1px solid #ef2929 } /* Error */
+.g { color: #000000 } /* Generic */
+.k { color: #204a87; font-weight: bold } /* Keyword */
+.l { color: #000000 } /* Literal */
+.n { color: #000000 } /* Name */
+.o { color: #ce5c00; font-weight: bold } /* Operator */
+.x { color: #000000 } /* Other */
+.p { color: #000000; font-weight: bold } /* Punctuation */
+.ch { color: #8f5902; font-style: italic } /* Comment.Hashbang */
+.cm { color: #8f5902; font-style: italic } /* Comment.Multiline */
+.cp { color: #8f5902; font-style: italic } /* Comment.Preproc */
+.cpf { color: #8f5902; font-style: italic } /* Comment.PreprocFile */
+.c1 { color: #8f5902; font-style: italic } /* Comment.Single */
+.cs { color: #8f5902; font-style: italic } /* Comment.Special */
+.gd { color: #a40000 } /* Generic.Deleted */
+.ge { color: #000000; font-style: italic } /* Generic.Emph */
+.gr { color: #ef2929 } /* Generic.Error */
+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.gi { color: #00A000 } /* Generic.Inserted */
+.go { color: #000000; font-style: italic } /* Generic.Output */
+.gp { color: #8f5902 } /* Generic.Prompt */
+.gs { color: #000000; font-weight: bold } /* Generic.Strong */
+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.gt { color: #a40000; font-weight: bold } /* Generic.Traceback */
+.kc { color: #204a87; font-weight: bold } /* Keyword.Constant */
+.kd { color: #204a87; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #204a87; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #204a87; font-weight: bold } /* Keyword.Pseudo */
+.kr { color: #204a87; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #204a87; font-weight: bold } /* Keyword.Type */
+.ld { color: #000000 } /* Literal.Date */
+.m { color: #0000cf; font-weight: bold } /* Literal.Number */
+.s { color: #4e9a06 } /* Literal.String */
+.na { color: #c4a000 } /* Name.Attribute */
+.nb { color: #204a87 } /* Name.Builtin */
+.nc { color: #000000 } /* Name.Class */
+.no { color: #000000 } /* Name.Constant */
+.nd { color: #5c35cc; font-weight: bold } /* Name.Decorator */
+.ni { color: #ce5c00 } /* Name.Entity */
+.ne { color: #cc0000; font-weight: bold } /* Name.Exception */
+.nf { color: #000000 } /* Name.Function */
+.nl { color: #f57900 } /* Name.Label */
+.nn { color: #000000 } /* Name.Namespace */
+.nx { color: #000000 } /* Name.Other */
+.py { color: #000000 } /* Name.Property */
+.nt { color: #204a87; font-weight: bold } /* Name.Tag */
+.nv { color: #000000 } /* Name.Variable */
+.ow { color: #204a87; font-weight: bold } /* Operator.Word */
+.w { color: #f8f8f8; text-decoration: underline } /* Text.Whitespace */
+.mb { color: #0000cf; font-weight: bold } /* Literal.Number.Bin */
+.mf { color: #0000cf; font-weight: bold } /* Literal.Number.Float */
+.mh { color: #0000cf; font-weight: bold } /* Literal.Number.Hex */
+.mi { color: #0000cf; font-weight: bold } /* Literal.Number.Integer */
+.mo { color: #0000cf; font-weight: bold } /* Literal.Number.Oct */
+.sb { color: #4e9a06 } /* Literal.String.Backtick */
+.sc { color: #4e9a06 } /* Literal.String.Char */
+.sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */
+.s2 { color: #4e9a06 } /* Literal.String.Double */
+.se { color: #4e9a06 } /* Literal.String.Escape */
+.sh { color: #4e9a06 } /* Literal.String.Heredoc */
+.si { color: #4e9a06 } /* Literal.String.Interpol */
+.sx { color: #4e9a06 } /* Literal.String.Other */
+.sr { color: #4e9a06 } /* Literal.String.Regex */
+.s1 { color: #4e9a06 } /* Literal.String.Single */
+.ss { color: #4e9a06 } /* Literal.String.Symbol */
+.bp { color: #3465a4 } /* Name.Builtin.Pseudo */
+.vc { color: #000000 } /* Name.Variable.Class */
+.vg { color: #000000 } /* Name.Variable.Global */
+.vi { color: #000000 } /* Name.Variable.Instance */
+.il { color: #0000cf; font-weight: bold } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/tango.min.css b/static/pygments/tango.min.css
new file mode 100644
index 0000000..c5fdf76
--- /dev/null
+++ b/static/pygments/tango.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:#8f5902;font-style:italic}.err{color:#a40000;border:1px solid #ef2929}.g{color:#000}.k{color:#204a87;font-weight:700}.l,.n{color:#000}.o{color:#ce5c00;font-weight:700}.p,.x{color:#000}.p{font-weight:700}.c1,.ch,.cm,.cp,.cpf,.cs{color:#8f5902;font-style:italic}.gd{color:#a40000}.ge{color:#000;font-style:italic}.gr{color:#ef2929}.gh{color:navy;font-weight:700}.gi{color:#00a000}.go{color:#000;font-style:italic}.gp{color:#8f5902}.gs{color:#000}.gs,.gu{font-weight:700}.gu{color:purple}.gt{color:#a40000;font-weight:700}.kc,.kd,.kn,.kp,.kr,.kt{color:#204a87;font-weight:700}.ld{color:#000}.m{color:#0000cf;font-weight:700}.s{color:#4e9a06}.na{color:#c4a000}.nb{color:#204a87}.nc,.no{color:#000}.nd{color:#5c35cc;font-weight:700}.ni{color:#ce5c00}.ne{color:#c00;font-weight:700}.nf{color:#000}.nl{color:#f57900}.nn,.nx,.py{color:#000}.nt{color:#204a87;font-weight:700}.nv{color:#000}.ow{color:#204a87;font-weight:700}.w{color:#f8f8f8;text-decoration:underline}.mb,.mf,.mh,.mi,.mo{color:#0000cf;font-weight:700}.sb,.sc{color:#4e9a06}.sd{color:#8f5902;font-style:italic}.s1,.s2,.se,.sh,.si,.sr,.ss,.sx{color:#4e9a06}.bp{color:#3465a4}.vc,.vg,.vi{color:#000}.il{color:#0000cf;font-weight:700}
\ No newline at end of file
diff --git a/static/pygments/trac.css b/static/pygments/trac.css
new file mode 100644
index 0000000..fe1440d
--- /dev/null
+++ b/static/pygments/trac.css
@@ -0,0 +1,62 @@
+.highlight { background-color: #ffffcc }
+.c { color: #999988; font-style: italic } /* Comment */
+.err { color: #a61717; background-color: #e3d2d2 } /* Error */
+.k { font-weight: bold } /* Keyword */
+.o { font-weight: bold } /* Operator */
+.ch { color: #999988; font-style: italic } /* Comment.Hashbang */
+.cm { color: #999988; font-style: italic } /* Comment.Multiline */
+.cp { color: #999999; font-weight: bold } /* Comment.Preproc */
+.cpf { color: #999988; font-style: italic } /* Comment.PreprocFile */
+.c1 { color: #999988; font-style: italic } /* Comment.Single */
+.cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
+.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #aa0000 } /* Generic.Error */
+.gh { color: #999999 } /* Generic.Heading */
+.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
+.go { color: #888888 } /* Generic.Output */
+.gp { color: #555555 } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #aaaaaa } /* Generic.Subheading */
+.gt { color: #aa0000 } /* Generic.Traceback */
+.kc { font-weight: bold } /* Keyword.Constant */
+.kd { font-weight: bold } /* Keyword.Declaration */
+.kn { font-weight: bold } /* Keyword.Namespace */
+.kp { font-weight: bold } /* Keyword.Pseudo */
+.kr { font-weight: bold } /* Keyword.Reserved */
+.kt { color: #445588; font-weight: bold } /* Keyword.Type */
+.m { color: #009999 } /* Literal.Number */
+.s { color: #bb8844 } /* Literal.String */
+.na { color: #008080 } /* Name.Attribute */
+.nb { color: #999999 } /* Name.Builtin */
+.nc { color: #445588; font-weight: bold } /* Name.Class */
+.no { color: #008080 } /* Name.Constant */
+.ni { color: #800080 } /* Name.Entity */
+.ne { color: #990000; font-weight: bold } /* Name.Exception */
+.nf { color: #990000; font-weight: bold } /* Name.Function */
+.nn { color: #555555 } /* Name.Namespace */
+.nt { color: #000080 } /* Name.Tag */
+.nv { color: #008080 } /* Name.Variable */
+.ow { font-weight: bold } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mb { color: #009999 } /* Literal.Number.Bin */
+.mf { color: #009999 } /* Literal.Number.Float */
+.mh { color: #009999 } /* Literal.Number.Hex */
+.mi { color: #009999 } /* Literal.Number.Integer */
+.mo { color: #009999 } /* Literal.Number.Oct */
+.sb { color: #bb8844 } /* Literal.String.Backtick */
+.sc { color: #bb8844 } /* Literal.String.Char */
+.sd { color: #bb8844 } /* Literal.String.Doc */
+.s2 { color: #bb8844 } /* Literal.String.Double */
+.se { color: #bb8844 } /* Literal.String.Escape */
+.sh { color: #bb8844 } /* Literal.String.Heredoc */
+.si { color: #bb8844 } /* Literal.String.Interpol */
+.sx { color: #bb8844 } /* Literal.String.Other */
+.sr { color: #808000 } /* Literal.String.Regex */
+.s1 { color: #bb8844 } /* Literal.String.Single */
+.ss { color: #bb8844 } /* Literal.String.Symbol */
+.bp { color: #999999 } /* Name.Builtin.Pseudo */
+.vc { color: #008080 } /* Name.Variable.Class */
+.vg { color: #008080 } /* Name.Variable.Global */
+.vi { color: #008080 } /* Name.Variable.Instance */
+.il { color: #009999 } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/trac.min.css b/static/pygments/trac.min.css
new file mode 100644
index 0000000..c802a23
--- /dev/null
+++ b/static/pygments/trac.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:#998;font-style:italic}.err{color:#a61717;background-color:#e3d2d2}.k,.o{font-weight:700}.ch,.cm{color:#998;font-style:italic}.cp{color:#999;font-weight:700}.c1,.cpf{color:#998}.c1,.cpf,.cs{font-style:italic}.cs{color:#999;font-weight:700}.gd{color:#000;background-color:#fdd}.ge{font-style:italic}.gr{color:#a00}.gh{color:#999}.gi{color:#000;background-color:#dfd}.go{color:#888}.gp{color:#555}.gs{font-weight:700}.gu{color:#aaa}.gt{color:#a00}.kc,.kd,.kn,.kp,.kr,.kt{font-weight:700}.kt{color:#458}.m{color:#099}.s{color:#b84}.na{color:teal}.nb{color:#999}.nc{color:#458;font-weight:700}.no{color:teal}.ni{color:purple}.ne,.nf{color:#900;font-weight:700}.nn{color:#555}.nt{color:navy}.nv{color:teal}.ow{font-weight:700}.w{color:#bbb}.mb,.mf,.mh,.mi,.mo{color:#099}.s2,.sb,.sc,.sd,.se,.sh,.si,.sx{color:#b84}.sr{color:olive}.s1,.ss{color:#b84}.bp{color:#999}.vc,.vg,.vi{color:teal}.il{color:#099}
\ No newline at end of file
diff --git a/static/pygments/vim.css b/static/pygments/vim.css
new file mode 100644
index 0000000..3c4a177
--- /dev/null
+++ b/static/pygments/vim.css
@@ -0,0 +1,73 @@
+.highlight { background-color: #222222 }
+.c { color: #000080 } /* Comment */
+.err { color: #cccccc; border: 1px solid #FF0000 } /* Error */
+.esc { color: #cccccc } /* Escape */
+.g { color: #cccccc } /* Generic */
+.k { color: #cdcd00 } /* Keyword */
+.l { color: #cccccc } /* Literal */
+.n { color: #cccccc } /* Name */
+.o { color: #3399cc } /* Operator */
+.x { color: #cccccc } /* Other */
+.p { color: #cccccc } /* Punctuation */
+.ch { color: #000080 } /* Comment.Hashbang */
+.cm { color: #000080 } /* Comment.Multiline */
+.cp { color: #000080 } /* Comment.Preproc */
+.cpf { color: #000080 } /* Comment.PreprocFile */
+.c1 { color: #000080 } /* Comment.Single */
+.cs { color: #cd0000; font-weight: bold } /* Comment.Special */
+.gd { color: #cd0000 } /* Generic.Deleted */
+.ge { color: #cccccc; font-style: italic } /* Generic.Emph */
+.gr { color: #FF0000 } /* Generic.Error */
+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.gi { color: #00cd00 } /* Generic.Inserted */
+.go { color: #888888 } /* Generic.Output */
+.gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.gs { color: #cccccc; font-weight: bold } /* Generic.Strong */
+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.gt { color: #0044DD } /* Generic.Traceback */
+.kc { color: #cdcd00 } /* Keyword.Constant */
+.kd { color: #00cd00 } /* Keyword.Declaration */
+.kn { color: #cd00cd } /* Keyword.Namespace */
+.kp { color: #cdcd00 } /* Keyword.Pseudo */
+.kr { color: #cdcd00 } /* Keyword.Reserved */
+.kt { color: #00cd00 } /* Keyword.Type */
+.ld { color: #cccccc } /* Literal.Date */
+.m { color: #cd00cd } /* Literal.Number */
+.s { color: #cd0000 } /* Literal.String */
+.na { color: #cccccc } /* Name.Attribute */
+.nb { color: #cd00cd } /* Name.Builtin */
+.nc { color: #00cdcd } /* Name.Class */
+.no { color: #cccccc } /* Name.Constant */
+.nd { color: #cccccc } /* Name.Decorator */
+.ni { color: #cccccc } /* Name.Entity */
+.ne { color: #666699; font-weight: bold } /* Name.Exception */
+.nf { color: #cccccc } /* Name.Function */
+.nl { color: #cccccc } /* Name.Label */
+.nn { color: #cccccc } /* Name.Namespace */
+.nx { color: #cccccc } /* Name.Other */
+.py { color: #cccccc } /* Name.Property */
+.nt { color: #cccccc } /* Name.Tag */
+.nv { color: #00cdcd } /* Name.Variable */
+.ow { color: #cdcd00 } /* Operator.Word */
+.w { color: #cccccc } /* Text.Whitespace */
+.mb { color: #cd00cd } /* Literal.Number.Bin */
+.mf { color: #cd00cd } /* Literal.Number.Float */
+.mh { color: #cd00cd } /* Literal.Number.Hex */
+.mi { color: #cd00cd } /* Literal.Number.Integer */
+.mo { color: #cd00cd } /* Literal.Number.Oct */
+.sb { color: #cd0000 } /* Literal.String.Backtick */
+.sc { color: #cd0000 } /* Literal.String.Char */
+.sd { color: #cd0000 } /* Literal.String.Doc */
+.s2 { color: #cd0000 } /* Literal.String.Double */
+.se { color: #cd0000 } /* Literal.String.Escape */
+.sh { color: #cd0000 } /* Literal.String.Heredoc */
+.si { color: #cd0000 } /* Literal.String.Interpol */
+.sx { color: #cd0000 } /* Literal.String.Other */
+.sr { color: #cd0000 } /* Literal.String.Regex */
+.s1 { color: #cd0000 } /* Literal.String.Single */
+.ss { color: #cd0000 } /* Literal.String.Symbol */
+.bp { color: #cd00cd } /* Name.Builtin.Pseudo */
+.vc { color: #00cdcd } /* Name.Variable.Class */
+.vg { color: #00cdcd } /* Name.Variable.Global */
+.vi { color: #00cdcd } /* Name.Variable.Instance */
+.il { color: #cd00cd } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/vim.min.css b/static/pygments/vim.min.css
new file mode 100644
index 0000000..3b4bb4f
--- /dev/null
+++ b/static/pygments/vim.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#222}.c{color:navy}.err{border:1px solid red}.err,.esc,.g{color:#ccc}.k{color:#cdcd00}.l,.n{color:#ccc}.o{color:#39c}.p,.x{color:#ccc}.c1,.ch,.cm,.cp,.cpf{color:navy}.cs{font-weight:700}.cs,.gd{color:#cd0000}.ge{color:#ccc;font-style:italic}.gr{color:red}.gh{color:navy;font-weight:700}.gi{color:#00cd00}.go{color:#888}.gp{color:navy}.gp,.gs{font-weight:700}.gs{color:#ccc}.gu{color:purple;font-weight:700}.gt{color:#04d}.kc{color:#cdcd00}.kd{color:#00cd00}.kn{color:#cd00cd}.kp,.kr{color:#cdcd00}.kt{color:#00cd00}.ld{color:#ccc}.m{color:#cd00cd}.s{color:#cd0000}.na{color:#ccc}.nb{color:#cd00cd}.nc{color:#00cdcd}.nd,.ni,.no{color:#ccc}.ne{color:#669;font-weight:700}.nf,.nl,.nn,.nt,.nx,.py{color:#ccc}.nv{color:#00cdcd}.ow{color:#cdcd00}.w{color:#ccc}.mb,.mf,.mh,.mi,.mo{color:#cd00cd}.s1,.s2,.sb,.sc,.sd,.se,.sh,.si,.sr,.ss,.sx{color:#cd0000}.bp{color:#cd00cd}.vc,.vg,.vi{color:#00cdcd}.il{color:#cd00cd}
\ No newline at end of file
diff --git a/static/pygments/vs.css b/static/pygments/vs.css
new file mode 100644
index 0000000..7fd5bed
--- /dev/null
+++ b/static/pygments/vs.css
@@ -0,0 +1,35 @@
+.highlight { background-color: #ffffcc }
+.c { color: #008000 } /* Comment */
+.err { border: 1px solid #FF0000 } /* Error */
+.k { color: #0000ff } /* Keyword */
+.ch { color: #008000 } /* Comment.Hashbang */
+.cm { color: #008000 } /* Comment.Multiline */
+.cp { color: #0000ff } /* Comment.Preproc */
+.cpf { color: #008000 } /* Comment.PreprocFile */
+.c1 { color: #008000 } /* Comment.Single */
+.cs { color: #008000 } /* Comment.Special */
+.ge { font-style: italic } /* Generic.Emph */
+.gh { font-weight: bold } /* Generic.Heading */
+.gp { font-weight: bold } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { font-weight: bold } /* Generic.Subheading */
+.kc { color: #0000ff } /* Keyword.Constant */
+.kd { color: #0000ff } /* Keyword.Declaration */
+.kn { color: #0000ff } /* Keyword.Namespace */
+.kp { color: #0000ff } /* Keyword.Pseudo */
+.kr { color: #0000ff } /* Keyword.Reserved */
+.kt { color: #2b91af } /* Keyword.Type */
+.s { color: #a31515 } /* Literal.String */
+.nc { color: #2b91af } /* Name.Class */
+.ow { color: #0000ff } /* Operator.Word */
+.sb { color: #a31515 } /* Literal.String.Backtick */
+.sc { color: #a31515 } /* Literal.String.Char */
+.sd { color: #a31515 } /* Literal.String.Doc */
+.s2 { color: #a31515 } /* Literal.String.Double */
+.se { color: #a31515 } /* Literal.String.Escape */
+.sh { color: #a31515 } /* Literal.String.Heredoc */
+.si { color: #a31515 } /* Literal.String.Interpol */
+.sx { color: #a31515 } /* Literal.String.Other */
+.sr { color: #a31515 } /* Literal.String.Regex */
+.s1 { color: #a31515 } /* Literal.String.Single */
+.ss { color: #a31515 } /* Literal.String.Symbol */
\ No newline at end of file
diff --git a/static/pygments/vs.min.css b/static/pygments/vs.min.css
new file mode 100644
index 0000000..4a250ed
--- /dev/null
+++ b/static/pygments/vs.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:green}.err{border:1px solid red}.k{color:#00f}.ch,.cm{color:green}.cp{color:#00f}.c1,.cpf,.cs{color:green}.ge{font-style:italic}.gh,.gp,.gs,.gu{font-weight:700}.kc,.kd,.kn,.kp,.kr{color:#00f}.kt{color:#2b91af}.s{color:#a31515}.nc{color:#2b91af}.ow{color:#00f}.s1,.s2,.sb,.sc,.sd,.se,.sh,.si,.sr,.ss,.sx{color:#a31515}
\ No newline at end of file
diff --git a/static/pygments/xcode.css b/static/pygments/xcode.css
new file mode 100644
index 0000000..e45bf95
--- /dev/null
+++ b/static/pygments/xcode.css
@@ -0,0 +1,58 @@
+.highlight { background-color: #ffffcc }
+.c { color: #177500 } /* Comment */
+.err { color: #000000 } /* Error */
+.k { color: #A90D91 } /* Keyword */
+.l { color: #1C01CE } /* Literal */
+.n { color: #000000 } /* Name */
+.o { color: #000000 } /* Operator */
+.ch { color: #177500 } /* Comment.Hashbang */
+.cm { color: #177500 } /* Comment.Multiline */
+.cp { color: #633820 } /* Comment.Preproc */
+.cpf { color: #177500 } /* Comment.PreprocFile */
+.c1 { color: #177500 } /* Comment.Single */
+.cs { color: #177500 } /* Comment.Special */
+.kc { color: #A90D91 } /* Keyword.Constant */
+.kd { color: #A90D91 } /* Keyword.Declaration */
+.kn { color: #A90D91 } /* Keyword.Namespace */
+.kp { color: #A90D91 } /* Keyword.Pseudo */
+.kr { color: #A90D91 } /* Keyword.Reserved */
+.kt { color: #A90D91 } /* Keyword.Type */
+.ld { color: #1C01CE } /* Literal.Date */
+.m { color: #1C01CE } /* Literal.Number */
+.s { color: #C41A16 } /* Literal.String */
+.na { color: #836C28 } /* Name.Attribute */
+.nb { color: #A90D91 } /* Name.Builtin */
+.nc { color: #3F6E75 } /* Name.Class */
+.no { color: #000000 } /* Name.Constant */
+.nd { color: #000000 } /* Name.Decorator */
+.ni { color: #000000 } /* Name.Entity */
+.ne { color: #000000 } /* Name.Exception */
+.nf { color: #000000 } /* Name.Function */
+.nl { color: #000000 } /* Name.Label */
+.nn { color: #000000 } /* Name.Namespace */
+.nx { color: #000000 } /* Name.Other */
+.py { color: #000000 } /* Name.Property */
+.nt { color: #000000 } /* Name.Tag */
+.nv { color: #000000 } /* Name.Variable */
+.ow { color: #000000 } /* Operator.Word */
+.mb { color: #1C01CE } /* Literal.Number.Bin */
+.mf { color: #1C01CE } /* Literal.Number.Float */
+.mh { color: #1C01CE } /* Literal.Number.Hex */
+.mi { color: #1C01CE } /* Literal.Number.Integer */
+.mo { color: #1C01CE } /* Literal.Number.Oct */
+.sb { color: #C41A16 } /* Literal.String.Backtick */
+.sc { color: #2300CE } /* Literal.String.Char */
+.sd { color: #C41A16 } /* Literal.String.Doc */
+.s2 { color: #C41A16 } /* Literal.String.Double */
+.se { color: #C41A16 } /* Literal.String.Escape */
+.sh { color: #C41A16 } /* Literal.String.Heredoc */
+.si { color: #C41A16 } /* Literal.String.Interpol */
+.sx { color: #C41A16 } /* Literal.String.Other */
+.sr { color: #C41A16 } /* Literal.String.Regex */
+.s1 { color: #C41A16 } /* Literal.String.Single */
+.ss { color: #C41A16 } /* Literal.String.Symbol */
+.bp { color: #5B269A } /* Name.Builtin.Pseudo */
+.vc { color: #000000 } /* Name.Variable.Class */
+.vg { color: #000000 } /* Name.Variable.Global */
+.vi { color: #000000 } /* Name.Variable.Instance */
+.il { color: #1C01CE } /* Literal.Number.Integer.Long */
\ No newline at end of file
diff --git a/static/pygments/xcode.min.css b/static/pygments/xcode.min.css
new file mode 100644
index 0000000..a9cbbc3
--- /dev/null
+++ b/static/pygments/xcode.min.css
@@ -0,0 +1 @@
+.highlight{background-color:#ffc}.c{color:#177500}.err{color:#000}.k{color:#a90d91}.l{color:#1c01ce}.n,.o{color:#000}.ch,.cm{color:#177500}.cp{color:#633820}.c1,.cpf,.cs{color:#177500}.kc,.kd,.kn,.kp,.kr,.kt{color:#a90d91}.ld,.m{color:#1c01ce}.s{color:#c41a16}.na{color:#836c28}.nb{color:#a90d91}.nc{color:#3f6e75}.nd,.ne,.nf,.ni,.nl,.nn,.no,.nt,.nv,.nx,.ow,.py{color:#000}.mb,.mf,.mh,.mi,.mo{color:#1c01ce}.sb{color:#c41a16}.sc{color:#2300ce}.s1,.s2,.sd,.se,.sh,.si,.sr,.ss,.sx{color:#c41a16}.bp{color:#5b269a}.vc,.vg,.vi{color:#000}.il{color:#1c01ce}
\ No newline at end of file
diff --git a/static/stylesheet/pygments.min.css b/static/stylesheet/pygments.min.css
deleted file mode 100644
index f9feeef..0000000
--- a/static/stylesheet/pygments.min.css
+++ /dev/null
@@ -1,2 +0,0 @@
-/* https://github.com/richleland/pygments-css/blob/master/github.css */
-.hll { background-color: #ffffcc } .c { color: #999988; font-style: italic } .err { color: #a61717; background-color: #e3d2d2 } .k { color: #000000; font-weight: bold } .o { color: #000000; font-weight: bold } .cm { color: #999988; font-style: italic } .cp { color: #999999; font-weight: bold } .c1 { color: #999988; font-style: italic } .cs { color: #999999; font-weight: bold } .gd { color: #000000; background-color: #ffdddd } .ge { color: #000000; font-style: italic } .gr { color: #aa0000 } .gh { color: #999999 } .gi { color: #000000; background-color: #ddffdd } .go { color: #888888 } .gp { color: #555555 } .gs { font-weight: bold } .gu { color: #aaaaaa } .gt { color: #aa0000 } .kc { color: #000000; font-weight: bold } .kd { color: #000000; font-weight: bold } .kn { color: #000000; font-weight: bold } .kp { color: #000000; font-weight: bold } .kr { color: #000000; font-weight: bold } .kt { color: #445588; font-weight: bold } .m { color: #009999 } .s { color: #d01040 } .na { color: #008080 } .nb { color: #0086B3 } .nc { color: #445588; font-weight: bold } .no { color: #008080 } .nd { color: #3c5d5d; font-weight: bold } .ni { color: #800080 } .ne { color: #990000; font-weight: bold } .nf { color: #990000; font-weight: bold } .nl { color: #990000; font-weight: bold } .nn { color: #555555 } .nt { color: #000080 } .nv { color: #008080 } .ow { color: #000000; font-weight: bold } .w { color: #bbbbbb } .mf { color: #009999 } .mh { color: #009999 } .mi { color: #009999 } .mo { color: #009999 } .sb { color: #d01040 } .sc { color: #d01040 } .sd { color: #d01040 } .s2 { color: #d01040 } .se { color: #d01040 } .sh { color: #d01040 } .si { color: #d01040 } .sx { color: #d01040 } .sr { color: #009926 } .s1 { color: #d01040 } .ss { color: #990073 } .bp { color: #999999 } .vc { color: #008080 } .vg { color: #008080 } .vi { color: #008080 } .il { color: #009999 }
\ No newline at end of file
diff --git a/templates/base.html b/templates/base.html
index 61ac95e..fe3b8a3 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -10,7 +10,7 @@
{% endif %}
-
+
{% if CUSTOM_CSS %}
@@ -33,6 +33,7 @@
+
{% if BROWSER_COLOR %}