summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rwxr-xr-xbin/paste3
-rw-r--r--deps/highlight.js/AUTHORS.en.txt37
-rw-r--r--deps/highlight.js/AUTHORS.ru.txt37
-rw-r--r--deps/highlight.js/LICENSE24
-rw-r--r--deps/highlight.js/export.html115
-rw-r--r--deps/highlight.js/highlight.js637
-rw-r--r--deps/highlight.js/highlight.pack.js1
-rw-r--r--deps/highlight.js/highlight_src.js603
-rw-r--r--deps/highlight.js/languages/1c.js99
-rw-r--r--deps/highlight.js/languages/apache.js446
-rw-r--r--deps/highlight.js/languages/avrasm.js92
-rw-r--r--deps/highlight.js/languages/axapta.js56
-rw-r--r--deps/highlight.js/languages/bash.js85
-rw-r--r--deps/highlight.js/languages/cpp.js46
-rw-r--r--deps/highlight.js/languages/cs.js51
-rw-r--r--deps/highlight.js/languages/css.js85
-rw-r--r--deps/highlight.js/languages/delphi.js87
-rw-r--r--deps/highlight.js/languages/diff.js69
-rw-r--r--deps/highlight.js/languages/django.js65
-rw-r--r--deps/highlight.js/languages/dos.js37
-rw-r--r--deps/highlight.js/languages/html-xml.js143
-rw-r--r--deps/highlight.js/languages/ini.js44
-rw-r--r--deps/highlight.js/languages/java.js62
-rw-r--r--deps/highlight.js/languages/javascript.js54
-rw-r--r--deps/highlight.js/languages/lisp.js99
-rw-r--r--deps/highlight.js/languages/lua.js85
-rw-r--r--deps/highlight.js/languages/mel.js55
-rw-r--r--deps/highlight.js/languages/nginx.js102
-rw-r--r--deps/highlight.js/languages/parser3.js58
-rw-r--r--deps/highlight.js/languages/perl.js156
-rw-r--r--deps/highlight.js/languages/php.js58
-rw-r--r--deps/highlight.js/languages/profile.js55
-rw-r--r--deps/highlight.js/languages/python.js79
-rw-r--r--deps/highlight.js/languages/renderman.js243
-rw-r--r--deps/highlight.js/languages/ruby.js199
-rw-r--r--deps/highlight.js/languages/scala.js67
-rw-r--r--deps/highlight.js/languages/smalltalk.js56
-rw-r--r--deps/highlight.js/languages/sql.js110
-rw-r--r--deps/highlight.js/languages/tex.js62
-rw-r--r--deps/highlight.js/languages/vbscript.js40
-rw-r--r--deps/highlight.js/readme.eng.txt486
-rw-r--r--deps/highlight.js/readme.rus.txt494
-rw-r--r--deps/highlight.js/styles/ascetic.css45
-rw-r--r--deps/highlight.js/styles/brown_paper.css113
-rw-r--r--deps/highlight.js/styles/brown_papersq.pngbin0 -> 18198 bytes
-rw-r--r--deps/highlight.js/styles/dark.css109
-rw-r--r--deps/highlight.js/styles/default.css123
-rw-r--r--deps/highlight.js/styles/far.css123
-rw-r--r--deps/highlight.js/styles/github.css128
-rw-r--r--deps/highlight.js/styles/idea.css117
-rw-r--r--deps/highlight.js/styles/ir_black.css105
-rw-r--r--deps/highlight.js/styles/magula.css117
-rw-r--r--deps/highlight.js/styles/school_book.css117
-rw-r--r--deps/highlight.js/styles/school_book.pngbin0 -> 486 bytes
-rw-r--r--deps/highlight.js/styles/sunburst.css148
-rw-r--r--deps/highlight.js/styles/vs.css75
-rw-r--r--deps/highlight.js/styles/zenburn.css121
-rw-r--r--deps/highlight.js/test.html1196
-rw-r--r--lib/highlight.js54
-rw-r--r--lib/main.js103
-rw-r--r--lib/uuid.js17
62 files changed, 8295 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..885c9f0
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+node_modules
+db
diff --git a/bin/paste b/bin/paste
new file mode 100755
index 0000000..ae31e7b
--- /dev/null
+++ b/bin/paste
@@ -0,0 +1,3 @@
+#!/usr/bin/env node
+
+require(__dirname + '/../lib/main.js');
diff --git a/deps/highlight.js/AUTHORS.en.txt b/deps/highlight.js/AUTHORS.en.txt
new file mode 100644
index 0000000..0857f01
--- /dev/null
+++ b/deps/highlight.js/AUTHORS.en.txt
@@ -0,0 +1,37 @@
+Syntax highlighting with language autodetection.
+
+URL: http://softwaremaniacs.org/soft/highlight/en/
+
+Original author and current maintainer:
+Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
+
+Contributors:
+
+- Peter Leonov <gojpeg@gmail.com>
+- Victor Karamzin <Victor.Karamzin@enterra-inc.com>
+- Vsevolod Solovyov <vsevolod.solovyov@gmail.com>
+- Anton Kovalyov <anton@kovalyov.net>
+- Nikita Ledyaev <lenikita@yandex.ru>
+- Konstantin Evdokimenko <qewerty@gmail.com>
+- Dmitri Roudakov <dmitri@roudakov.ru>
+- Yuri Ivanov <ivanov@supersoft.ru>
+- Vladimir Ermakov <vooon341@mail.ru>
+- Vladimir Gubarkov <xonixx@gmail.com>
+- Brian Beck <exogen@gmail.com>
+- MajestiC <majestic2k@gmail.com>
+- Vasily Polovnyov <vast@whiteants.net>
+- Vladimir Epifanov <voldmar@voldmar.ru>
+- Alexander Makarov (http://rmcreative.ru/)
+- Vah <vahtenberg@gmail.com>
+- Shuen-Huei Guan <drake.guan@gmail.com>
+- Jason Diamond <jason@diamond.name>
+- Michal Gabrukiewicz <mgabru@gmail.com>
+- Ruslan Keba <rukeba@gmail.com>
+- Sergey Baranov <segyrn@yandex.ru>
+- Zaripov Yura <yur4ik7@ukr.net>
+- Oleg Volchkov <oleg@volchkov.net>
+- Vasily Mikhailitchenko <vaskas@programica.ru>
+- Jan Berkel <jan.berkel@gmail.com>
+- Vladimir Moskva <vladmos@gmail.com>
+- Loren Segal <lsegal@soen.ca>
+- Andrew Fedorov <dmmdrs@mail.ru>
diff --git a/deps/highlight.js/AUTHORS.ru.txt b/deps/highlight.js/AUTHORS.ru.txt
new file mode 100644
index 0000000..1e4f59b
--- /dev/null
+++ b/deps/highlight.js/AUTHORS.ru.txt
@@ -0,0 +1,37 @@
+Подсветка синтаксиса с автоопределением языка.
+
+URL: http://softwaremaniacs.org/soft/highlight/
+
+Первоначальный автор и ведущий проекта:
+Иван Сагалаев <Maniac@SoftwareManiacs.Org>
+
+Внесли свой вклад:
+
+- Петр Леонов <gojpeg@gmail.com>
+- Виктор Карамзин <Victor.Karamzin@enterra-inc.com>
+- Всеволод Соловьёв <vsevolod.solovyov@gmail.com>
+- Антон Ковалёв <anton@kovalyov.net>
+- Никита Ледяев <lenikita@yandex.ru>
+- Константин Евдокименко <qewerty@gmail.com>
+- Дмитрий Рудаков <dmitri@roudakov.ru>
+- Юрий Иванов <ivanov@supersoft.ru>
+- Владимир Ермаков <vooon341@mail.ru>
+- Владимир Губарьков <xonixx@gmail.com>
+- Брайан Бек <exogen@gmail.com>
+- MajestiC <majestic2k@gmail.com>
+- Василий Половнёв <vast@whiteants.net>
+- Владимир Епифанов <voldmar@voldmar.ru>
+- Александр Макаров (http://rmcreative.ru/)
+- Vah <vahtenberg@gmail.com>
+- Шуэн-Хуэй Гуан <drake.guan@gmail.com>
+- Джейсон Даймонд <jason@diamond.name>
+- Михал Габрукевич <mgabru@gmail.com>
+- Руслан Кеба <rukeba@gmail.com>
+- Сергей Баранов <segyrn@yandex.ru>
+- Зарипов Юра <yur4ik7@ukr.net>
+- Олег Волчков <oleg@volchkov.net>
+- Василий Михайличенко <vaskas@programica.ru>
+- Ян Беркель <jan.berkel@gmail.com>
+- Владимир Москва <vladmos@gmail.com>
+- Лорен Сегал <lsegal@soen.ca>
+- Андрей Фёдоров <dmmdrs@mail.ru>
diff --git a/deps/highlight.js/LICENSE b/deps/highlight.js/LICENSE
new file mode 100644
index 0000000..422deb7
--- /dev/null
+++ b/deps/highlight.js/LICENSE
@@ -0,0 +1,24 @@
+Copyright (c) 2006, Ivan Sagalaev
+All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of highlight.js nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/deps/highlight.js/export.html b/deps/highlight.js/export.html
new file mode 100644
index 0000000..db5b58e
--- /dev/null
+++ b/deps/highlight.js/export.html
@@ -0,0 +1,115 @@
+<!-- saved from url=(0013)about:internet -->
+<!-- ^^^ This is for IE not to show security warning for local files,
+see http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/sp2brows.mspx-->
+
+<!--
+Highlighted code export
+Copyright (c) Vladimir Gubarkov <xonixx@gmail.com>
+-->
+
+<html>
+ <head>
+ <title>Highlited code export</title>
+ <link rel="stylesheet" href="styles/default.css">
+ <meta charset="utf-8">
+ <style type="text/css">
+ #t1, #t2 { width: 100%;}
+ tr { vertical-align: top; }
+ address { margin-top: 4em; }
+ </style>
+ <script src="highlight.js"></script>
+ <script src="languages/cs.js"></script>
+ <script src="languages/python.js"></script>
+ <script src="languages/mel.js"></script>
+ <script src="languages/perl.js"></script>
+ <script src="languages/axapta.js"></script>
+ <script src="languages/cpp.js"></script>
+ <script src="languages/sql.js"></script>
+ <script src="languages/smalltalk.js"></script>
+ <script src="languages/profile.js"></script>
+ <script src="languages/bash.js"></script>
+ <script src="languages/html-xml.js"></script>
+ <script src="languages/renderman.js"></script>
+ <script src="languages/1c.js"></script>
+ <script src="languages/delphi.js"></script>
+ <script src="languages/dos.js"></script>
+ <script src="languages/django.js"></script>
+ <script src="languages/vbscript.js"></script>
+ <script src="languages/ini.js"></script>
+ <script src="languages/apache.js"></script>
+ <script src="languages/ruby.js"></script>
+ <script src="languages/css.js"></script>
+ <script src="languages/lisp.js"></script>
+ <script src="languages/java.js"></script>
+ <script src="languages/javascript.js"></script>
+ <script src="languages/php.js"></script>
+ <script src="languages/diff.js"></script>
+ <script src="languages/avrasm.js"></script>
+ <script src="languages/parser3.js"></script>
+ <script>hljs.initHighlightingOnLoad();</script>
+ </head>
+ <body>
+ <script type="text/javascript">
+ String.prototype.escape = function() {
+ return this.replace(/&/gm, '&amp;').replace(/</gm, '&lt;').replace(/>/gm, '&gt;');
+ }
+
+ function doIt() {
+ var viewDiv = document.getElementById("highlight-view");
+ var t1 = document.getElementById("t1");
+ var t2 = document.getElementById("t2");
+ var selector = document.getElementById("langSelector");
+ var selectedLang = selector.options[selector.selectedIndex].value.toLowerCase();
+ if(selectedLang) {
+ viewDiv.innerHTML = '<pre><code class="'+selectedLang+'">'+t1.value.escape()+"</code></pre>";
+ } else { // try auto
+ viewDiv.innerHTML = '<pre><code>' + t1.value.escape() + "</code></pre>";
+ }
+ hljs.highlightBlock(viewDiv.firstChild.firstChild);
+ t2.value = viewDiv.innerHTML;
+ }
+
+ function copyToBuffer(textToCopy) {
+ if (window.clipboardData) { // IE
+ window.clipboardData.setData("Text", textToCopy);
+ } else if (window.netscape) { // FF
+ // from http://developer.mozilla.org/en/docs/Using_the_Clipboard
+ netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
+ var gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper);
+ gClipboardHelper.copyString(textToCopy);
+ }
+ }
+ </script>
+ <script type="text/javascript">
+ var langSelectorHtml = '<label>Language <select id="langSelector">';
+ langSelectorHtml += '<option value="">Auto</option>';
+ for (var i in hljs.LANGUAGES) {
+ if (hljs.LANGUAGES.hasOwnProperty(i))
+ langSelectorHtml += '<option value=\"'+i+'\">'+i.charAt(0).toUpperCase()+i.substr(1)+'</option>';
+ }
+ langSelectorHtml += '</select></label>';
+ document.write(langSelectorHtml);
+ </script>
+ <table width="100%">
+ <tr>
+ <td><textarea rows="20" cols="50" id="t1"></textarea></td>
+ <td><textarea rows="20" cols="50" id="t2"></textarea></td>
+ </tr>
+ <tr>
+ <td>Write a code snippet</td>
+ <td>Get HTML to paste anywhere (for actual styles and colors see sample.css)</td>
+ </tr>
+ </table>
+ <table width="98%">
+ <tr>
+ <td><input type="button" value="Export &rarr;" onclick="doIt()"/></td>
+ <td align="right"><input type="button" value="Copy to buffer" onclick="copyToBuffer(document.getElementById('t2').value);"/></td>
+ </tr>
+ </table>
+ <div id="highlight-view"></div>
+ <address>
+ Export script: <a href="mailto:xonixx@gmail.com">Vladimir Gubarkov</a><br>
+ Highlighting: <a href="http://softwaremaniacs.org/soft/highlight/">highlight.js</a>
+ </address>
+ </body>
+</html>
diff --git a/deps/highlight.js/highlight.js b/deps/highlight.js/highlight.js
new file mode 100644
index 0000000..86b5b9c
--- /dev/null
+++ b/deps/highlight.js/highlight.js
@@ -0,0 +1,637 @@
+/*
+Syntax highlighting with language autodetection.
+http://softwaremaniacs.org/soft/highlight/
+*/
+
+this.hljs = new function() {
+ var LANGUAGES = {}
+ // selected_languages is used to support legacy mode of selecting languages
+ // available for highlighting by passing them as arguments into
+ // initHighlighting function. Currently the whole library is expected to
+ // contain only those language definitions that are actually get used.
+ var selected_languages = {};
+
+ /* Utility functions */
+
+ function escape(value) {
+ return value.replace(/&/gm, '&amp;').replace(/</gm, '&lt;').replace(/>/gm, '&gt;');
+ }
+
+ function contains(array, item) {
+ if (!array)
+ return false;
+ for (var i = 0; i < array.length; i++)
+ if (array[i] == item)
+ return true;
+ return false;
+ }
+
+ function langRe(language, value, global) {
+ var mode = 'm' + (language.case_insensitive ? 'i' : '') + (global ? 'g' : '');
+ return new RegExp(value, mode);
+ }
+
+ function findCode(pre) {
+ for (var i = 0; i < pre.childNodes.length; i++) {
+ node = pre.childNodes[i];
+ if (node.nodeName == 'CODE')
+ return node;
+ if (!(node.nodeType == 3 && node.nodeValue.match(/\s+/)))
+ return null;
+ }
+ }
+
+ function blockText(block) {
+ var result = '';
+ for (var i = 0; i < block.childNodes.length; i++)
+ if (block.childNodes[i].nodeType == 3)
+ result += block.childNodes[i].nodeValue;
+ else if (block.childNodes[i].nodeName == 'BR')
+ result += '\n';
+ else
+ result += blockText(block.childNodes[i]);
+ return result;
+ }
+
+ function blockLanguage(block) {
+ var classes = block.className.split(/\s+/)
+ classes = classes.concat(block.parentNode.className.split(/\s+/));
+ for (var i = 0; i < classes.length; i++) {
+ var class_ = classes[i].replace(/^language-/, '');
+ if (class_ == 'no-highlight') {
+ throw 'No highlight'
+ }
+ if (LANGUAGES[class_]) {
+ return class_;
+ }
+ }
+ }
+
+ /* Stream merging */
+
+ function nodeStream(node) {
+ var result = [];
+ (function (node, offset) {
+ for (var i = 0; i < node.childNodes.length; i++) {
+ if (node.childNodes[i].nodeType == 3)
+ offset += node.childNodes[i].nodeValue.length;
+ else if (node.childNodes[i].nodeName == 'BR')
+ offset += 1
+ else {
+ result.push({
+ event: 'start',
+ offset: offset,
+ node: node.childNodes[i]
+ });
+ offset = arguments.callee(node.childNodes[i], offset)
+ result.push({
+ event: 'stop',
+ offset: offset,
+ node: node.childNodes[i]
+ });
+ }
+ }
+ return offset;
+ })(node, 0);
+ return result;
+ }
+
+ function mergeStreams(stream1, stream2, value) {
+ var processed = 0;
+ var result = '';
+ var nodeStack = [];
+
+ function selectStream() {
+ if (stream1.length && stream2.length) {
+ if (stream1[0].offset != stream2[0].offset)
+ return (stream1[0].offset < stream2[0].offset) ? stream1 : stream2;
+ else
+ return (stream1[0].event == 'start' && stream2[0].event == 'stop') ? stream2 : stream1;
+ } else {
+ return stream1.length ? stream1 : stream2;
+ }
+ }
+
+ function open(node) {
+ var result = '<' + node.nodeName.toLowerCase();
+ for (var i = 0; i < node.attributes.length; i++) {
+ var attribute = node.attributes[i];
+ result += ' ' + attribute.nodeName.toLowerCase();
+ if (attribute.nodeValue != undefined) {
+ result += '="' + escape(attribute.nodeValue) + '"';
+ }
+ }
+ return result + '>';
+ }
+
+ function close(node) {
+ return '</' + node.nodeName.toLowerCase() + '>';
+ }
+
+ while (stream1.length || stream2.length) {
+ var current = selectStream().splice(0, 1)[0];
+ result += escape(value.substr(processed, current.offset - processed));
+ processed = current.offset;
+ if ( current.event == 'start') {
+ result += open(current.node);
+ nodeStack.push(current.node);
+ } else if (current.event == 'stop') {
+ var i = nodeStack.length;
+ do {
+ i--;
+ var node = nodeStack[i];
+ result += close(node);
+ } while (node != current.node);
+ nodeStack.splice(i, 1);
+ while (i < nodeStack.length) {
+ result += open(nodeStack[i]);
+ i++;
+ }
+ }
+ }
+ result += value.substr(processed);
+ return result;
+ }
+
+ /* Core highlighting function */
+
+ function highlight(language_name, value) {
+ function compileSubModes(mode, language) {
+ mode.sub_modes = [];
+ for (var i = 0; i < mode.contains.length; i++) {
+ for (var j = 0; j < language.modes.length; j++) {
+ if (language.modes[j].className == mode.contains[i]) {
+ mode.sub_modes[mode.sub_modes.length] = language.modes[j];
+ }
+ }
+ }
+ }
+
+ function subMode(lexem, mode) {
+ if (!mode.contains) {
+ return null;
+ }
+ if (!mode.sub_modes) {
+ compileSubModes(mode, language);
+ }
+ for (var i = 0; i < mode.sub_modes.length; i++) {
+ if (mode.sub_modes[i].beginRe.test(lexem)) {
+ return mode.sub_modes[i];
+ }
+ }
+ return null;
+ }
+
+ function endOfMode(mode_index, lexem) {
+ if (modes[mode_index].end && modes[mode_index].endRe.test(lexem))
+ return 1;
+ if (modes[mode_index].endsWithParent) {
+ var level = endOfMode(mode_index - 1, lexem);
+ return level ? level + 1 : 0;
+ }
+ return 0;
+ }
+
+ function isIllegal(lexem, mode) {
+ return mode.illegalRe && mode.illegalRe.test(lexem);
+ }
+
+ function compileTerminators(mode, language) {
+ var terminators = [];
+
+ function addTerminator(re) {
+ if (!contains(terminators, re)) {
+ terminators[terminators.length] = re;
+ }
+ }
+
+ if (mode.contains)
+ for (var i = 0; i < language.modes.length; i++) {
+ if (contains(mode.contains, language.modes[i].className)) {
+ addTerminator(language.modes[i].begin);
+ }
+ }
+
+ var index = modes.length - 1;
+ do {
+ if (modes[index].end) {
+ addTerminator(modes[index].end);
+ }
+ index--;
+ } while (modes[index + 1].endsWithParent);
+
+ if (mode.illegal) {
+ addTerminator(mode.illegal);
+ }
+
+ var terminator_re = '(' + terminators[0];
+ for (var i = 0; i < terminators.length; i++)
+ terminator_re += '|' + terminators[i];
+ terminator_re += ')';
+ return langRe(language, terminator_re);
+ }
+
+ function eatModeChunk(value, index) {
+ var mode = modes[modes.length - 1];
+ if (!mode.terminators) {
+ mode.terminators = compileTerminators(mode, language);
+ }
+ value = value.substr(index);
+ var match = mode.terminators.exec(value);
+ if (!match)
+ return [value, '', true];
+ if (match.index == 0)
+ return ['', match[0], false];
+ else
+ return [value.substr(0, match.index), match[0], false];
+ }
+
+ function keywordMatch(mode, match) {
+ var match_str = language.case_insensitive ? match[0].toLowerCase() : match[0]
+ for (var className in mode.keywordGroups) {
+ if (!mode.keywordGroups.hasOwnProperty(className))
+ continue;
+ var value = mode.keywordGroups[className].hasOwnProperty(match_str);
+ if (value)
+ return [className, value];
+ }
+ return false;
+ }
+
+ function processKeywords(buffer, mode) {
+ if (!mode.keywords || !mode.lexems)
+ return escape(buffer);
+ if (!mode.lexemsRe) {
+ var lexems_re = '(' + mode.lexems[0];
+ for (var i = 1; i < mode.lexems.length; i++)
+ lexems_re += '|' + mode.lexems[i];
+ lexems_re += ')';
+ mode.lexemsRe = langRe(language, lexems_re, true);
+ }
+ var result = '';
+ var last_index = 0;
+ mode.lexemsRe.lastIndex = 0;
+ var match = mode.lexemsRe.exec(buffer);
+ while (match) {
+ result += escape(buffer.substr(last_index, match.index - last_index));
+ var keyword_match = keywordMatch(mode, match);
+ if (keyword_match) {
+ keyword_count += keyword_match[1];
+ result += '<span class="'+ keyword_match[0] +'">' + escape(match[0]) + '</span>';
+ } else {
+ result += escape(match[0]);
+ }
+ last_index = mode.lexemsRe.lastIndex;
+ match = mode.lexemsRe.exec(buffer);
+ }
+ result += escape(buffer.substr(last_index, buffer.length - last_index));
+ return result;
+ }
+
+ function processBuffer(buffer, mode) {
+ if (mode.subLanguage && selected_languages[mode.subLanguage]) {
+ var result = highlight(mode.subLanguage, buffer);
+ keyword_count += result.keyword_count;
+ relevance += result.relevance;
+ return result.value;
+ } else {
+ return processKeywords(buffer, mode);
+ }
+ }
+
+ function startNewMode(mode, lexem) {
+ var markup = mode.noMarkup?'':'<span class="' + mode.displayClassName + '">';
+ if (mode.returnBegin) {
+ result += markup;
+ mode.buffer = '';
+ } else if (mode.excludeBegin) {
+ result += escape(lexem) + markup;
+ mode.buffer = '';
+ } else {
+ result += markup;
+ mode.buffer = lexem;
+ }
+ modes[modes.length] = mode;
+ }
+
+ function processModeInfo(buffer, lexem, end) {
+ var current_mode = modes[modes.length - 1];
+ if (end) {
+ result += processBuffer(current_mode.buffer + buffer, current_mode);
+ return false;
+ }
+
+ var new_mode = subMode(lexem, current_mode);
+ if (new_mode) {
+ result += processBuffer(current_mode.buffer + buffer, current_mode);
+ startNewMode(new_mode, lexem);
+ relevance += new_mode.relevance;
+ return new_mode.returnBegin;
+ }
+
+ var end_level = endOfMode(modes.length - 1, lexem);
+ if (end_level) {
+ var markup = current_mode.noMarkup?'':'</span>';
+ if (current_mode.returnEnd) {
+ result += processBuffer(current_mode.buffer + buffer, current_mode) + markup;
+ } else if (current_mode.excludeEnd) {
+ result += processBuffer(current_mode.buffer + buffer, current_mode) + markup + escape(lexem);
+ } else {
+ result += processBuffer(current_mode.buffer + buffer + lexem, current_mode) + markup;
+ }
+ while (end_level > 1) {
+ markup = modes[modes.length - 2].noMarkup?'':'</span>';
+ result += markup;
+ end_level--;
+ modes.length--;
+ }
+ modes.length--;
+ modes[modes.length - 1].buffer = '';
+ if (current_mode.starts) {
+ for (var i = 0; i < language.modes.length; i++) {
+ if (language.modes[i].className == current_mode.starts) {
+ startNewMode(language.modes[i], '');
+ break;
+ }
+ }
+ }
+ return current_mode.returnEnd;
+ }
+
+ if (isIllegal(lexem, current_mode))
+ throw 'Illegal';
+ }
+
+ var language = LANGUAGES[language_name];
+ var modes = [language.defaultMode];
+ var relevance = 0;
+ var keyword_count = 0;
+ var result = '';
+ try {
+ var index = 0;
+ language.defaultMode.buffer = '';
+ do {
+ var mode_info = eatModeChunk(value, index);
+ var return_lexem = processModeInfo(mode_info[0], mode_info[1], mode_info[2]);
+ index += mode_info[0].length;
+ if (!return_lexem) {
+ index += mode_info[1].length;
+ }
+ } while (!mode_info[2]);
+ if(modes.length > 1)
+ throw 'Illegal';
+ return {
+ relevance: relevance,
+ keyword_count: keyword_count,
+ value: result
+ }
+ } catch (e) {
+ if (e == 'Illegal') {
+ return {
+ relevance: 0,
+ keyword_count: 0,
+ value: escape(value)
+ }
+ } else {
+ throw e;
+ }
+ }
+ }
+
+ /* Initialization */
+
+ function compileModes() {
+ for (var i in LANGUAGES) {
+ if (!LANGUAGES.hasOwnProperty(i))
+ continue;
+ var language = LANGUAGES[i];
+ for (var j = 0; j < language.modes.length; j++) {
+ var mode = language.modes[j];
+ if (mode.begin)
+ mode.beginRe = langRe(language, '^' + mode.begin);
+ if (mode.end)
+ mode.endRe = langRe(language, '^' + mode.end);
+ if (mode.illegal)
+ mode.illegalRe = langRe(language, '^(?:' + mode.illegal + ')');
+ language.defaultMode.illegalRe = langRe(language, '^(?:' + language.defaultMode.illegal + ')');
+ if (mode.relevance == undefined) {
+ mode.relevance = 1;
+ }
+ if (!mode.displayClassName) {
+ mode.displayClassName = mode.className;
+ }
+ }
+ }
+ }
+
+ function compileKeywords() {
+
+ function compileModeKeywords(mode) {
+ if (!mode.keywordGroups) {
+ for (var key in mode.keywords) {
+ if (!mode.keywords.hasOwnProperty(key))
+ continue;
+ if (mode.keywords[key] instanceof Object)
+ mode.keywordGroups = mode.keywords;
+ else
+ mode.keywordGroups = {'keyword': mode.keywords};
+ break;
+ }
+ }
+ }
+
+ for (var i in LANGUAGES) {
+ if (!LANGUAGES.hasOwnProperty(i))
+ continue;
+ var language = LANGUAGES[i];
+ compileModeKeywords(language.defaultMode);
+ for (var j = 0; j < language.modes.length; j++) {
+ compileModeKeywords(language.modes[j]);
+ }
+ }
+ }
+
+ function initialize() {
+ if (initialize.called)
+ return;
+ initialize.called = true;
+ compileModes();
+ compileKeywords();
+ selected_languages = LANGUAGES;
+ }
+
+ /* Public library functions */
+
+ function highlightBlock(block, tabReplace) {
+ initialize();
+
+ try {
+ var text = blockText(block);
+ var language = blockLanguage(block);
+ } catch (e) {
+ if (e == 'No highlight')
+ return;
+ }
+
+ if (language) {
+ var result = highlight(language, text).value;
+ } else {
+ var max_relevance = 0;
+ for (var key in selected_languages) {
+ if (!selected_languages.hasOwnProperty(key))
+ continue;
+ var lang_result = highlight(key, text);
+ var relevance = lang_result.keyword_count + lang_result.relevance;
+ if (relevance > max_relevance) {
+ max_relevance = relevance;
+ var result = lang_result.value;
+ language = key;
+ }
+ }
+ }
+
+ if (result) {
+ var class_name = block.className;
+ if (!class_name.match(language)) {
+ class_name += ' ' + language;
+ }
+ var original = nodeStream(block);
+ if (original.length) {
+ var pre = document.createElement('pre');
+ pre.innerHTML = result;
+ result = mergeStreams(original, nodeStream(pre), text);
+ }
+ if (tabReplace) {
+ result = result.replace(/^((<[^>]+>|\t)+)/gm, function(match, p1, offset, s) {
+ return p1.replace(/\t/g, tabReplace);
+ })
+ }
+ // See these 4 lines? This is IE's notion of "block.innerHTML = result". Love this browser :-/
+ var container = document.createElement('div');
+ container.innerHTML = '<pre><code class="' + class_name + '">' + result + '</code></pre>';
+ var environment = block.parentNode.parentNode;
+ environment.replaceChild(container.firstChild, block.parentNode);
+ }
+ }
+
+ function highlightText(text, tabReplace) {
+ initialize();
+
+ var language = undefined,
+ max_relevance = key = 0,
+ lang_result, relevance, result;
+
+ for (key in selected_languages) {
+ if (!selected_languages.hasOwnProperty(key))
+ continue;
+ lang_result = highlight(key, text);
+ relevance = lang_result.keyword_count + lang_result.relevance;
+ if (relevance > max_relevance) {
+ max_relevance = relevance;
+ result = lang_result.value;
+ language = key;
+ }
+ }
+
+ if (result) {
+ if (tabReplace) {
+ result = result.replace(/^((<[^>]+>|\t)+)/gm, function(match, p1, offset, s) {
+ return p1.replace(/\t/g, tabReplace);
+ })
+ }
+ return result;
+ }
+ return text;
+ }
+
+
+ function initHighlighting() {
+ if (initHighlighting.called)
+ return;
+ initHighlighting.called = true;
+ initialize();
+ if (arguments.length) {
+ for (var i = 0; i < arguments.length; i++) {
+ if (LANGUAGES[arguments[i]]) {
+ selected_languages[arguments[i]] = LANGUAGES[arguments[i]];
+ }
+ }
+ }
+ var pres = document.getElementsByTagName('pre');
+ for (var i = 0; i < pres.length; i++) {
+ var code = findCode(pres[i]);
+ if (code)
+ highlightBlock(code, hljs.tabReplace);
+ }
+ }
+
+ function initHighlightingOnLoad() {
+ var original_arguments = arguments;
+ var handler = function(){initHighlighting.apply(null, original_arguments)};
+ if (window.addEventListener) {
+ window.addEventListener('DOMContentLoaded', handler, false);
+ window.addEventListener('load', handler, false);
+ } else if (window.attachEvent)
+ window.attachEvent('onload', handler);
+ else
+ window.onload = handler;
+ }
+
+ /* Interface definition */
+
+ this.LANGUAGES = LANGUAGES;
+ this.initHighlightingOnLoad = initHighlightingOnLoad;
+ this.highlightBlock = highlightBlock;
+ this.highlightText = highlightText;
+ this.initHighlighting = initHighlighting;
+ this.initialize = initialize;
+ this.highlight = highlight;
+
+ // Common regexps
+ this.IDENT_RE = '[a-zA-Z][a-zA-Z0-9_]*';
+ this.UNDERSCORE_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_]*';
+ this.NUMBER_RE = '\\b\\d+(\\.\\d+)?';
+ this.C_NUMBER_RE = '\\b(0x[A-Za-z0-9]+|\\d+(\\.\\d+)?)';
+ this.RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';
+
+ // Common modes
+ this.APOS_STRING_MODE = {
+ className: 'string',
+ begin: '\'', end: '\'',
+ illegal: '\\n',
+ contains: ['escape'],
+ relevance: 0
+ };
+ this.QUOTE_STRING_MODE = {
+ className: 'string',
+ begin: '"', end: '"',
+ illegal: '\\n',
+ contains: ['escape'],
+ relevance: 0
+ };
+ this.BACKSLASH_ESCAPE = {
+ className: 'escape',
+ begin: '\\\\.', end: '^', noMarkup: true,
+ relevance: 0
+ };
+ this.C_LINE_COMMENT_MODE = {
+ className: 'comment',
+ begin: '//', end: '$',
+ relevance: 0
+ };
+ this.C_BLOCK_COMMENT_MODE = {
+ className: 'comment',
+ begin: '/\\*', end: '\\*/'
+ };
+ this.HASH_COMMENT_MODE = {
+ className: 'comment',
+ begin: '#', end: '$'
+ };
+ this.C_NUMBER_MODE = {
+ className: 'number',
+ begin: this.C_NUMBER_RE, end: '^',
+ relevance: 0
+ };
+}();
+
+// var initHighlightingOnLoad = hljs.initHighlightingOnLoad;
diff --git a/deps/highlight.js/highlight.pack.js b/deps/highlight.js/highlight.pack.js
new file mode 100644
index 0000000..2e01853
--- /dev/null
+++ b/deps/highlight.js/highlight.pack.js
@@ -0,0 +1 @@
+var hljs=new function(){var q={};var a={};function o(c){return c.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;")}function l(t,s){if(!t){return false}for(var c=0;c<t.length;c++){if(t[c]==s){return true}}return false}function e(t,s,c){var u="m"+(t.cI?"i":"")+(c?"g":"");return new RegExp(s,u)}function k(s){for(var c=0;c<s.childNodes.length;c++){node=s.childNodes[c];if(node.nodeName=="CODE"){return node}if(!(node.nodeType==3&&node.nodeValue.match(/\s+/))){return null}}}function i(t){var s="";for(var c=0;c<t.childNodes.length;c++){if(t.childNodes[c].nodeType==3){s+=t.childNodes[c].nodeValue}else{if(t.childNodes[c].nodeName=="BR"){s+="\n"}else{s+=i(t.childNodes[c])}}}return s}function b(u){var s=u.className.split(/\s+/);s=s.concat(u.parentNode.className.split(/\s+/));for(var c=0;c<s.length;c++){var t=s[c].replace(/^language-/,"");if(t=="no-highlight"){throw"No highlight"}if(q[t]){return t}}}function d(c){var s=[];(function(u,v){for(var t=0;t<u.childNodes.length;t++){if(u.childNodes[t].nodeType==3){v+=u.childNodes[t].nodeValue.length}else{if(u.childNodes[t].nodeName=="BR"){v+=1}else{s.push({event:"start",offset:v,node:u.childNodes[t]});v=arguments.callee(u.childNodes[t],v);s.push({event:"stop",offset:v,node:u.childNodes[t]})}}}return v})(c,0);return s}function n(A,B,z){var t=0;var y="";var v=[];function w(){if(A.length&&B.length){if(A[0].offset!=B[0].offset){return(A[0].offset<B[0].offset)?A:B}else{return(A[0].event=="start"&&B[0].event=="stop")?B:A}}else{return A.length?A:B}}function u(F){var G="<"+F.nodeName.toLowerCase();for(var D=0;D<F.attributes.length;D++){var E=F.attributes[D];G+=" "+E.nodeName.toLowerCase();if(E.nodeValue!=undefined){G+='="'+o(E.nodeValue)+'"'}}return G+">"}function C(D){return"</"+D.nodeName.toLowerCase()+">"}while(A.length||B.length){var x=w().splice(0,1)[0];y+=o(z.substr(t,x.offset-t));t=x.offset;if(x.event=="start"){y+=u(x.node);v.push(x.node)}else{if(x.event=="stop"){var s=v.length;do{s--;var c=v[s];y+=C(c)}while(c!=x.node);v.splice(s,1);while(s<v.length){y+=u(v[s]);s++}}}}y+=z.substr(t);return y}function h(K,E){function L(Q,P){Q.sm=[];for(var O=0;O<Q.c.length;O++){for(var N=0;N<P.m.length;N++){if(P.m[N].cN==Q.c[O]){Q.sm[Q.sm.length]=P.m[N]}}}}function A(N,P){if(!P.c){return null}if(!P.sm){L(P,I)}for(var O=0;O<P.sm.length;O++){if(P.sm[O].bR.test(N)){return P.sm[O]}}return null}function x(O,N){if(D[O].e&&D[O].eR.test(N)){return 1}if(D[O].eW){var P=x(O-1,N);return P?P+1:0}return 0}function y(N,O){return O.iR&&O.iR.test(N)}function B(T,R){var P=[];function S(U){if(!l(P,U)){P[P.length]=U}}if(T.c){for(var O=0;O<R.m.length;O++){if(l(T.c,R.m[O].cN)){S(R.m[O].b)}}}var N=D.length-1;do{if(D[N].e){S(D[N].e)}N--}while(D[N+1].eW);if(T.i){S(T.i)}var Q="("+P[0];for(var O=0;O<P.length;O++){Q+="|"+P[O]}Q+=")";return e(R,Q)}function t(P,O){var Q=D[D.length-1];if(!Q.t){Q.t=B(Q,I)}P=P.substr(O);var N=Q.t.exec(P);if(!N){return[P,"",true]}if(N.index==0){return["",N[0],false]}else{return[P.substr(0,N.index),N[0],false]}}function s(R,N){var O=I.cI?N[0].toLowerCase():N[0];for(var Q in R.keywordGroups){if(!R.keywordGroups.hasOwnProperty(Q)){continue}var P=R.keywordGroups[Q].hasOwnProperty(O);if(P){return[Q,P]}}return false}function G(Q,T){if(!T.k||!T.l){return o(Q)}if(!T.lR){var S="("+T.l[0];for(var P=1;P<T.l.length;P++){S+="|"+T.l[P]}S+=")";T.lR=e(I,S,true)}var R="";var U=0;T.lR.lastIndex=0;var O=T.lR.exec(Q);while(O){R+=o(Q.substr(U,O.index-U));var N=s(T,O);if(N){u+=N[1];R+='<span class="'+N[0]+'">'+o(O[0])+"</span>"}else{R+=o(O[0])}U=T.lR.lastIndex;O=T.lR.exec(Q)}R+=o(Q.substr(U,Q.length-U));return R}function M(N,P){if(P.subLanguage&&a[P.subLanguage]){var O=h(P.subLanguage,N);u+=O.keyword_count;C+=O.r;return O.value}else{return G(N,P)}}function J(P,N){var O=P.nM?"":'<span class="'+P.displayClassName+'">';if(P.rB){c+=O;P.buffer=""}else{if(P.eB){c+=o(N)+O;P.buffer=""}else{c+=O;P.buffer=N}}D[D.length]=P}function F(S,O,T){var U=D[D.length-1];if(T){c+=M(U.buffer+S,U);return false}var P=A(O,U);if(P){c+=M(U.buffer+S,U);J(P,O);C+=P.r;return P.rB}var N=x(D.length-1,O);if(N){var R=U.nM?"":"</span>";if(U.rE){c+=M(U.buffer+S,U)+R}else{if(U.eE){c+=M(U.buffer+S,U)+R+o(O)}else{c+=M(U.buffer+S+O,U)+R}}while(N>1){R=D[D.length-2].nM?"":"</span>";c+=R;N--;D.length--}D.length--;D[D.length-1].buffer="";if(U.starts){for(var Q=0;Q<I.m.length;Q++){if(I.m[Q].cN==U.starts){J(I.m[Q],"");break}}}return U.rE}if(y(O,U)){throw"Illegal"}}var I=q[K];var D=[I.dM];var C=0;var u=0;var c="";try{var w=0;I.dM.buffer="";do{var z=t(E,w);var v=F(z[0],z[1],z[2]);w+=z[0].length;if(!v){w+=z[1].length}}while(!z[2]);if(D.length>1){throw"Illegal"}return{r:C,keyword_count:u,value:c}}catch(H){if(H=="Illegal"){return{r:0,keyword_count:0,value:o(E)}}else{throw H}}}function j(){for(var s in q){if(!q.hasOwnProperty(s)){continue}var t=q[s];for(var c=0;c<t.m.length;c++){var u=t.m[c];if(u.b){u.bR=e(t,"^"+u.b)}if(u.e){u.eR=e(t,"^"+u.e)}if(u.i){u.iR=e(t,"^(?:"+u.i+")")}t.dM.iR=e(t,"^(?:"+t.dM.i+")");if(u.r==undefined){u.r=1}if(!u.displayClassName){u.displayClassName=u.cN}}}}function g(){function t(w){if(!w.keywordGroups){for(var v in w.k){if(!w.k.hasOwnProperty(v)){continue}if(w.k[v] instanceof Object){w.keywordGroups=w.k}else{w.keywordGroups={keyword:w.k}}break}}}for(var s in q){if(!q.hasOwnProperty(s)){continue}var u=q[s];t(u.dM);for(var c=0;c<u.m.length;c++){t(u.m[c])}}}function f(){if(f.called){return}f.called=true;j();g();a=q}function r(y,C){f();try{var F=i(y);var v=b(y)}catch(z){if(z=="No highlight"){return}}if(v){var B=h(v,F).value}else{var D=0;for(var E in a){if(!a.hasOwnProperty(E)){continue}var t=h(E,F);var c=t.keyword_count+t.r;if(c>D){D=c;var B=t.value;v=E}}}if(B){var x=y.className;if(!x.match(v)){x+=" "+v}var s=d(y);if(s.length){var u=document.createElement("pre");u.innerHTML=B;B=n(s,d(u),F)}if(C){B=B.replace(/^((<[^>]+>|\t)+)/gm,function(G,J,I,H){return J.replace(/\t/g,C)})}var A=document.createElement("div");A.innerHTML='<pre><code class="'+x+'">'+B+"</code></pre>";var w=y.parentNode.parentNode;w.replaceChild(A.firstChild,y.parentNode)}}function m(){if(m.called){return}m.called=true;f();if(arguments.length){for(var c=0;c<arguments.length;c++){if(q[arguments[c]]){a[arguments[c]]=q[arguments[c]]}}}var t=document.getElementsByTagName("pre");for(var c=0;c<t.length;c++){var s=k(t[c]);if(s){r(s,hljs.tabReplace)}}}function p(){var c=arguments;var s=function(){m.apply(null,c)};if(window.addEventListener){window.addEventListener("DOMContentLoaded",s,false);window.addEventListener("load",s,false)}else{if(window.attachEvent){window.attachEvent("onload",s)}else{window.onload=s}}}this.LANGUAGES=q;this.initHighlightingOnLoad=p;this.highlightBlock=r;this.initHighlighting=m;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="\\b(0x[A-Za-z0-9]+|\\d+(\\.\\d+)?)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:["escape"],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:["escape"],r:0};this.BE={cN:"escape",b:"\\\\.",e:"^",nM:true,r:0};this.CLCM={cN:"comment",b:"//",e:"$",r:0};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.CNM={cN:"number",b:this.CNR,e:"^",r:0}}();var initHighlightingOnLoad=hljs.initHighlightingOnLoad;hljs.LANGUAGES.bash=function(){var a={"true":1,"false":1};return{dM:{l:[hljs.IR],c:["string","shebang","comment","number","test_condition","string","variable"],k:{keyword:{"if":1,then:1,"else":1,fi:1,"for":1,"break":1,"continue":1,"while":1,"in":1,"do":1,done:1,echo:1,exit:1,"return":1,set:1,declare:1},literal:a}},cI:false,m:[{cN:"shebang",b:"(#!\\/bin\\/bash)|(#!\\/bin\\/sh)",e:"^",r:10},hljs.HCM,{cN:"test_condition",b:"\\[ ",e:" \\]",c:["string","variable","number"],l:[hljs.IR],k:{literal:a},r:0},{cN:"test_condition",b:"\\[\\[ ",e:" \\]\\]",c:["string","variable","number"],l:[hljs.IR],k:{literal:a}},{cN:"variable",b:"\\$([a-zA-Z0-9_]+)\\b",e:"^"},{cN:"variable",b:"\\$\\{(([^}])|(\\\\}))+\\}",e:"^",c:["number"]},{cN:"string",b:'"',e:'"',i:"\\n",c:["escape","variable"],r:0},{cN:"string",b:'"',e:'"',i:"\\n",c:["escape","variable"],r:0},hljs.BE,hljs.CNM,{cN:"comment",b:"\\/\\/",e:"$",i:"."}]}}();hljs.LANGUAGES.cs={dM:{l:[hljs.UIR],c:["comment","string","number"],k:{"abstract":1,as:1,base:1,bool:1,"break":1,"byte":1,"case":1,"catch":1,"char":1,checked:1,"class":1,"const":1,"continue":1,decimal:1,"default":1,delegate:1,"do":1,"do":1,"double":1,"else":1,"enum":1,event:1,explicit:1,extern:1,"false":1,"finally":1,fixed:1,"float":1,"for":1,foreach:1,"goto":1,"if":1,implicit:1,"in":1,"int":1,"interface":1,internal:1,is:1,lock:1,"long":1,namespace:1,"new":1,"null":1,object:1,operator:1,out:1,override:1,params:1,"private":1,"protected":1,"public":1,readonly:1,ref:1,"return":1,sbyte:1,sealed:1,"short":1,sizeof:1,stackalloc:1,"static":1,string:1,struct:1,"switch":1,"this":1,"throw":1,"true":1,"try":1,"typeof":1,uint:1,ulong:1,unchecked:1,unsafe:1,ushort:1,using:1,virtual:1,"volatile":1,"void":1,"while":1,ascending:1,descending:1,from:1,get:1,group:1,into:1,join:1,let:1,orderby:1,partial:1,select:1,set:1,value:1,"var":1,where:1,yield:1}},m:[{cN:"comment",b:"///",e:"$",rB:true,c:["xmlDocTag"]},{cN:"xmlDocTag",b:"///|<!--|-->",e:"^"},{cN:"xmlDocTag",b:"</?",e:">"},{cN:"string",b:'@"',e:'"',c:["quoteQuote"]},{cN:"quoteQuote",b:'""',e:"^"},hljs.CLCM,hljs.CBLCLM,hljs.ASM,hljs.QSM,hljs.BE,hljs.CNM]};hljs.LANGUAGES.ruby=function(){var a="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var c="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var b=["comment","string","char","class","function","constant","symbol","number","variable","identifier","regexp_container"];var d={keyword:{and:1,"false":1,then:1,defined:1,module:1,"in":1,"return":1,redo:1,"if":1,BEGIN:1,retry:1,end:1,"for":1,"true":1,self:1,when:1,next:1,until:1,"do":1,begin:1,unless:1,END:1,rescue:1,nil:1,"else":1,"break":1,undef:1,not:1,"super":1,"class":1,"case":1,require:1,yield:1,alias:1,"while":1,ensure:1,elsif:1,or:1,def:1},keymethods:{__id__:1,__send__:1,abort:1,abs:1,"all?":1,allocate:1,ancestors:1,"any?":1,arity:1,assoc:1,at:1,at_exit:1,autoload:1,"autoload?":1,"between?":1,binding:1,binmode:1,"block_given?":1,call:1,callcc:1,caller:1,capitalize:1,"capitalize!":1,casecmp:1,"catch":1,ceil:1,center:1,chomp:1,"chomp!":1,chop:1,"chop!":1,chr:1,"class":1,class_eval:1,"class_variable_defined?":1,class_variables:1,clear:1,clone:1,close:1,close_read:1,close_write:1,"closed?":1,coerce:1,collect:1,"collect!":1,compact:1,"compact!":1,concat:1,"const_defined?":1,const_get:1,const_missing:1,const_set:1,constants:1,count:1,crypt:1,"default":1,default_proc:1,"delete":1,"delete!":1,delete_at:1,delete_if:1,detect:1,display:1,div:1,divmod:1,downcase:1,"downcase!":1,downto:1,dump:1,dup:1,each:1,each_byte:1,each_index:1,each_key:1,each_line:1,each_pair:1,each_value:1,each_with_index:1,"empty?":1,entries:1,eof:1,"eof?":1,"eql?":1,"equal?":1,"eval":1,exec:1,exit:1,"exit!":1,extend:1,fail:1,fcntl:1,fetch:1,fileno:1,fill:1,find:1,find_all:1,first:1,flatten:1,"flatten!":1,floor:1,flush:1,for_fd:1,foreach:1,fork:1,format:1,freeze:1,"frozen?":1,fsync:1,getc:1,gets:1,global_variables:1,grep:1,gsub:1,"gsub!":1,"has_key?":1,"has_value?":1,hash:1,hex:1,id:1,include:1,"include?":1,included_modules:1,index:1,indexes:1,indices:1,induced_from:1,inject:1,insert:1,inspect:1,instance_eval:1,instance_method:1,instance_methods:1,"instance_of?":1,"instance_variable_defined?":1,instance_variable_get:1,instance_variable_set:1,instance_variables:1,"integer?":1,intern:1,invert:1,ioctl:1,"is_a?":1,isatty:1,"iterator?":1,join:1,"key?":1,keys:1,"kind_of?":1,lambda:1,last:1,length:1,lineno:1,ljust:1,load:1,local_variables:1,loop:1,lstrip:1,"lstrip!":1,map:1,"map!":1,match:1,max:1,"member?":1,merge:1,"merge!":1,method:1,"method_defined?":1,method_missing:1,methods:1,min:1,module_eval:1,modulo:1,name:1,nesting:1,"new":1,next:1,"next!":1,"nil?":1,nitems:1,"nonzero?":1,object_id:1,oct:1,open:1,pack:1,partition:1,pid:1,pipe:1,pop:1,popen:1,pos:1,prec:1,prec_f:1,prec_i:1,print:1,printf:1,private_class_method:1,private_instance_methods:1,"private_method_defined?":1,private_methods:1,proc:1,protected_instance_methods:1,"protected_method_defined?":1,protected_methods:1,public_class_method:1,public_instance_methods:1,"public_method_defined?":1,public_methods:1,push:1,putc:1,puts:1,quo:1,raise:1,rand:1,rassoc:1,read:1,read_nonblock:1,readchar:1,readline:1,readlines:1,readpartial:1,rehash:1,reject:1,"reject!":1,remainder:1,reopen:1,replace:1,require:1,"respond_to?":1,reverse:1,"reverse!":1,reverse_each:1,rewind:1,rindex:1,rjust:1,round:1,rstrip:1,"rstrip!":1,scan:1,seek:1,select:1,send:1,set_trace_func:1,shift:1,singleton_method_added:1,singleton_methods:1,size:1,sleep:1,slice:1,"slice!":1,sort:1,"sort!":1,sort_by:1,split:1,sprintf:1,squeeze:1,"squeeze!":1,srand:1,stat:1,step:1,store:1,strip:1,"strip!":1,sub:1,"sub!":1,succ:1,"succ!":1,sum:1,superclass:1,swapcase:1,"swapcase!":1,sync:1,syscall:1,sysopen:1,sysread:1,sysseek:1,system:1,syswrite:1,taint:1,"tainted?":1,tell:1,test:1,"throw":1,times:1,to_a:1,to_ary:1,to_f:1,to_hash:1,to_i:1,to_int:1,to_io:1,to_proc:1,to_s:1,to_str:1,to_sym:1,tr:1,"tr!":1,tr_s:1,"tr_s!":1,trace_var:1,transpose:1,trap:1,truncate:1,"tty?":1,type:1,ungetc:1,uniq:1,"uniq!":1,unpack:1,unshift:1,untaint:1,untrace_var:1,upcase:1,"upcase!":1,update:1,upto:1,"value?":1,values:1,values_at:1,warn:1,write:1,write_nonblock:1,"zero?":1,zip:1}};return{dM:{l:[a],c:b,k:d},m:[{cN:"comment",b:"#",e:"$",c:["yardoctag"]},{cN:"yardoctag",b:"@[A-Za-z]+",e:"^"},{cN:"comment",b:"^\\=begin",e:"^\\=end",c:["yardoctag"],r:10},{cN:"comment",b:"^__END__",e:"\\n$"},{cN:"params",b:"\\(",e:"\\)",l:[a],k:d,c:b},{cN:"function",b:"\\bdef\\s+",e:" |$|;",l:[a],k:d,c:["ftitle","params","comment"]},{cN:"ftitle",displayClassName:"title",b:c,e:"^",l:[a],k:d},{cN:"class",b:"\\b(class|module)\\b",e:"$|;",l:[hljs.UIR],k:d,c:["title","inheritance","comment"],k:{"class":1,module:1}},{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",e:"^",r:0},{cN:"inheritance",b:"<\\s*",e:"^",c:["parent"]},{cN:"parent",b:"("+hljs.IR+"::)?"+hljs.IR,e:"^"},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",e:"^",r:0},{cN:"number",b:"\\?\\w",e:"^"},{cN:"string",b:"'",e:"'",c:["escape","subst"],r:0},{cN:"string",b:'"',e:'"',c:["escape","subst"],r:0},{cN:"string",b:"%[qw]?\\(",e:"\\)",c:["escape","subst"],r:10},{cN:"string",b:"%[qw]?\\[",e:"\\]",c:["escape","subst"],r:10},{cN:"string",b:"%[qw]?{",e:"}",c:["escape","subst"],r:10},{cN:"string",b:"%[qw]?<",e:">",c:["escape","subst"],r:10},{cN:"string",b:"%[qw]?/",e:"/",c:["escape","subst"],r:10},{cN:"string",b:"%[qw]?%",e:"%",c:["escape","subst"],r:10},{cN:"string",b:"%[qw]?-",e:"-",c:["escape","subst"],r:10},{cN:"string",b:"%[qw]?\\|",e:"\\|",c:["escape","subst"],r:10},{cN:"constant",b:"(::)?([A-Z]\\w*(::)?)+",e:"^",r:0},{cN:"symbol",b:":",e:"^",c:["string","identifier"]},{cN:"identifier",b:a,e:"^",l:[a],k:d,r:0},hljs.BE,{cN:"subst",b:"#\\{",e:"}",l:[a],k:d,c:b},{cN:"regexp_container",b:"("+hljs.RSR+")\\s*",e:"^",nM:true,c:["comment","regexp"],r:0},{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:["escape"]},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))",e:"^"}]}}();hljs.LANGUAGES.diff={cI:true,dM:{c:["chunk","header","addition","deletion","change"]},m:[{cN:"chunk",b:"^\\@\\@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +\\@\\@$",e:"^",r:10},{cN:"chunk",b:"^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$",e:"^",r:10},{cN:"chunk",b:"^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$",e:"^",r:10},{cN:"header",b:"Index: ",e:"$"},{cN:"header",b:"=====",e:"=====$"},{cN:"header",b:"^\\-\\-\\-",e:"$"},{cN:"header",b:"^\\*{3} ",e:"$"},{cN:"header",b:"^\\+\\+\\+",e:"$"},{cN:"header",b:"\\*{5}",e:"\\*{5}$"},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]};hljs.LANGUAGES.rib={dM:{l:[hljs.UIR],i:"</",c:["comment","string","number"],k:{keyword:{ArchiveRecord:1,AreaLightSource:1,Atmosphere:1,Attribute:1,AttributeBegin:1,AttributeEnd:1,Basis:1,Begin:1,Blobby:1,Bound:1,Clipping:1,ClippingPlane:1,Color:1,ColorSamples:1,ConcatTransform:1,Cone:1,CoordinateSystem:1,CoordSysTransform:1,CropWindow:1,Curves:1,Cylinder:1,DepthOfField:1,Detail:1,DetailRange:1,Disk:1,Displacement:1,Display:1,End:1,ErrorHandler:1,Exposure:1,Exterior:1,Format:1,FrameAspectRatio:1,FrameBegin:1,FrameEnd:1,GeneralPolygon:1,GeometricApproximation:1,Geometry:1,Hider:1,Hyperboloid:1,Identity:1,Illuminate:1,Imager:1,Interior:1,LightSource:1,MakeCubeFaceEnvironment:1,MakeLatLongEnvironment:1,MakeShadow:1,MakeTexture:1,Matte:1,MotionBegin:1,MotionEnd:1,NuPatch:1,ObjectBegin:1,ObjectEnd:1,ObjectInstance:1,Opacity:1,Option:1,Orientation:1,Paraboloid:1,Patch:1,PatchMesh:1,Perspective:1,PixelFilter:1,PixelSamples:1,PixelVariance:1,Points:1,PointsGeneralPolygons:1,PointsPolygons:1,Polygon:1,Procedural:1,Projection:1,Quantize:1,ReadArchive:1,RelativeDetail:1,ReverseOrientation:1,Rotate:1,Scale:1,ScreenWindow:1,ShadingInterpolation:1,ShadingRate:1,Shutter:1,Sides:1,Skew:1,SolidBegin:1,SolidEnd:1,Sphere:1,SubdivisionMesh:1,Surface:1,TextureCoordinates:1,Torus:1,Transform:1,TransformBegin:1,TransformEnd:1,TransformPoints:1,Translate:1,TrimCurve:1,WorldBegin:1,WorldEnd:1}}},m:[hljs.HCM,hljs.CNM,hljs.ASM,hljs.QSM,hljs.BE]};hljs.LANGUAGES.rsl={dM:{l:[hljs.UIR],i:"</",c:["comment","string","number","preprocessor","shader","shading"],k:{keyword:{"float":1,color:1,point:1,normal:1,vector:1,matrix:1,"while":1,"for":1,"if":1,"do":1,"return":1,"else":1,"break":1,extern:1,"continue":1},built_in:{abs:1,acos:1,ambient:1,area:1,asin:1,atan:1,atmosphere:1,attribute:1,calculatenormal:1,ceil:1,cellnoise:1,clamp:1,comp:1,concat:1,cos:1,degrees:1,depth:1,Deriv:1,diffuse:1,distance:1,Du:1,Dv:1,environment:1,exp:1,faceforward:1,filterstep:1,floor:1,format:1,fresnel:1,incident:1,length:1,lightsource:1,log:1,match:1,max:1,min:1,mod:1,noise:1,normalize:1,ntransform:1,opposite:1,option:1,phong:1,pnoise:1,pow:1,printf:1,ptlined:1,radians:1,random:1,reflect:1,refract:1,renderinfo:1,round:1,setcomp:1,setxcomp:1,setycomp:1,setzcomp:1,shadow:1,sign:1,sin:1,smoothstep:1,specular:1,specularbrdf:1,spline:1,sqrt:1,step:1,tan:1,texture:1,textureinfo:1,trace:1,transform:1,vtransform:1,xcomp:1,ycomp:1,zcomp:1}}},m:[{cN:"shader",b:"surface |displacement |light |volume |imager ",e:"\\(",l:[hljs.IR],k:{surface:1,displacement:1,light:1,volume:1,imager:1}},{cN:"shading",b:"illuminate|illuminance|gather",e:"\\(",l:[hljs.IR],k:{illuminate:1,illuminance:1,gather:1}},hljs.CLCM,hljs.CBLCLM,hljs.CNM,hljs.QSM,hljs.ASM,hljs.BE,{cN:"preprocessor",b:"#",e:"$"}]};hljs.XML_COMMENT={cN:"comment",b:"<!--",e:"-->"};hljs.XML_ATTR={cN:"attribute",b:"\\s[A-Za-z0-9\\._:-]+=",e:"^",c:["value"]};hljs.XML_VALUE_QUOT={cN:"value",b:'"',e:'"'};hljs.XML_VALUE_APOS={cN:"value",b:"'",e:"'"};hljs.LANGUAGES.xml={dM:{c:["pi","comment","cdata","tag"]},cI:true,m:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},hljs.XML_COMMENT,{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>"},{cN:"tag",b:"</?",e:">",c:["title","tag_internal"],r:1.5},{cN:"title",b:"[A-Za-z0-9\\._:-]+",e:"^",r:0},{cN:"tag_internal",b:"^",eW:true,nM:true,c:["attribute"],r:0,i:"[\\+\\.]"},hljs.XML_ATTR,hljs.XML_VALUE_QUOT,hljs.XML_VALUE_APOS]};hljs.HTML_TAGS={code:1,kbd:1,font:1,noscript:1,style:1,img:1,title:1,menu:1,tt:1,tr:1,param:1,li:1,tfoot:1,th:1,input:1,td:1,dl:1,blockquote:1,fieldset:1,big:1,dd:1,abbr:1,optgroup:1,dt:1,button:1,isindex:1,p:1,small:1,div:1,dir:1,em:1,frame:1,meta:1,sub:1,bdo:1,label:1,acronym:1,sup:1,body:1,xml:1,basefont:1,base:1,br:1,address:1,strong:1,legend:1,ol:1,script:1,caption:1,s:1,col:1,h2:1,h3:1,h1:1,h6:1,h4:1,h5:1,table:1,select:1,noframes:1,span:1,area:1,dfn:1,strike:1,cite:1,thead:1,head:1,option:1,form:1,hr:1,"var":1,link:1,b:1,colgroup:1,ul:1,applet:1,del:1,iframe:1,pre:1,frameset:1,ins:1,tbody:1,html:1,samp:1,map:1,object:1,a:1,xmlns:1,center:1,textarea:1,i:1,q:1,u:1};hljs.HTML_DOCTYPE={cN:"doctype",b:"<!DOCTYPE",e:">",r:10};hljs.HTML_ATTR={cN:"attribute",b:"\\s[a-zA-Z\\:_-]+=",e:"^",c:["value"]};hljs.HTML_SHORT_ATTR={cN:"attribute",b:" [a-zA-Z]+",e:"^"};hljs.HTML_VALUE={cN:"value",b:"[a-zA-Z0-9]+",e:"^"};hljs.LANGUAGES.html={dM:{c:["tag","comment","doctype","vbscript"]},cI:true,m:[hljs.XML_COMMENT,hljs.HTML_DOCTYPE,{cN:"tag",l:[hljs.IR],k:hljs.HTML_TAGS,b:"<style",e:">",c:["attribute"],i:"[\\+\\.]",starts:"css"},{cN:"tag",l:[hljs.IR],k:hljs.HTML_TAGS,b:"<script",e:">",c:["attribute"],i:"[\\+\\.]",starts:"javascript"},{cN:"tag",l:[hljs.IR],k:hljs.HTML_TAGS,b:"<[A-Za-z/]",e:">",c:["attribute"],i:"[\\+\\.]"},{cN:"css",e:"</style>",rE:true,subLanguage:"css"},{cN:"javascript",e:"<\/script>",rE:true,subLanguage:"javascript"},hljs.HTML_ATTR,hljs.HTML_SHORT_ATTR,hljs.XML_VALUE_QUOT,hljs.XML_VALUE_APOS,hljs.HTML_VALUE,{cN:"vbscript",b:"<%",e:"%>",subLanguage:"vbscript"}]};hljs.LANGUAGES.javascript={dM:{l:[hljs.UIR],c:["string","comment","number","regexp_container","function"],k:{keyword:{"in":1,"if":1,"for":1,"while":1,"finally":1,"var":1,"new":1,"function":1,"do":1,"return":1,"void":1,"else":1,"break":1,"catch":1,"instanceof":1,"with":1,"throw":1,"case":1,"default":1,"try":1,"this":1,"switch":1,"continue":1,"typeof":1,"delete":1},literal:{"true":1,"false":1,"null":1}}},m:[hljs.CLCM,hljs.CBLCLM,hljs.CNM,hljs.ASM,hljs.QSM,hljs.BE,{cN:"regexp_container",b:"("+hljs.RSR+"|case|return|throw)\\s*",e:"^",nM:true,l:[hljs.IR],k:{"return":1,"throw":1,"case":1},c:["comment","regexp"],r:0},{cN:"regexp",b:"/.*?[^\\\\/]/[gim]*",e:"^"},{cN:"function",b:"\\bfunction\\b",e:"{",l:[hljs.UIR],k:{"function":1},c:["title","params"]},{cN:"title",b:"[A-Za-z$_][0-9A-Za-z$_]*",e:"^"},{cN:"params",b:"\\(",e:"\\)",c:["string","comment"]}]};hljs.LANGUAGES.lua=function(){var a="\\[=*\\[",b="\\]=*\\]";return{dM:{l:[hljs.UIR],k:{keyword:{and:1,"break":1,"do":1,"else":1,elseif:1,end:1,"false":1,"for":1,"if":1,"in":1,local:1,nil:1,not:1,or:1,repeat:1,"return":1,then:1,"true":1,until:1,"while":1},built_in:{_G:1,_VERSION:1,assert:1,collectgarbage:1,dofile:1,error:1,getfenv:1,getmetatable:1,ipairs:1,load:1,loadfile:1,loadstring:1,module:1,next:1,pairs:1,pcall:1,print:1,rawequal:1,rawget:1,rawset:1,require:1,select:1,setfenv:1,setmetatable:1,tonumber:1,tostring:1,type:1,unpack:1,xpcall:1,coroutine:1,debug:1,io:1,math:1,os:1,"package":1,string:1,table:1}},c:["comment","function","number","string"]},m:[{cN:"comment",b:"--(?!"+a+")",e:"$"},{cN:"comment",b:"--"+a,e:b,c:["long_brackets"],r:10},{cN:"long_brackets",b:a,e:b,c:["long_brackets"],nM:true},{cN:"function",b:"\\bfunction\\b",e:"\\)",l:[hljs.UIR],k:{"function":1},c:["title","params","comment"]},{cN:"title",b:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*",e:"^"},{cN:"params",b:"\\(",eW:true,c:["comment"]},hljs.CNM,hljs.ASM,hljs.QSM,{cN:"string",b:a,e:b,c:["long_brackets"],r:10},hljs.BE]}}();hljs.LANGUAGES.css={dM:{c:["at_rule","id","class","attr_selector","pseudo","rules","comment"],k:hljs.HTML_TAGS,l:[hljs.IR],i:"="},cI:true,m:[{cN:"at_rule",b:"@",e:"[{;]",eE:true,l:[hljs.IR],k:{"import":1,page:1,media:1,charset:1,"font-face":1},c:["function","string","number","pseudo"]},{cN:"id",b:"\\#[A-Za-z0-9_-]+",e:"^"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",e:"^",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+",e:"^"},{cN:"rules",b:"{",e:"}",c:["rule","comment"],i:"[^\\s]"},{cN:"rule",b:"[A-Z\\_\\.\\-]+\\s*:",e:";",eW:true,l:["[A-Za-z-]+"],k:{"play-during":1,"counter-reset":1,"counter-increment":1,"min-height":1,quotes:1,"border-top":1,pitch:1,font:1,pause:1,"list-style-image":1,"border-width":1,cue:1,"outline-width":1,"border-left":1,elevation:1,richness:1,"speech-rate":1,"border-bottom":1,"border-spacing":1,background:1,"list-style-type":1,"text-align":1,"page-break-inside":1,orphans:1,"page-break-before":1,"text-transform":1,"line-height":1,"padding-left":1,"font-size":1,right:1,"word-spacing":1,"padding-top":1,"outline-style":1,bottom:1,content:1,"border-right-style":1,"padding-right":1,"border-left-style":1,"voice-family":1,"background-color":1,"border-bottom-color":1,"outline-color":1,"unicode-bidi":1,"max-width":1,"font-family":1,"caption-side":1,"border-right-width":1,"pause-before":1,"border-top-style":1,color:1,"border-collapse":1,"border-bottom-width":1,"float":1,height:1,"max-height":1,"margin-right":1,"border-top-width":1,speak:1,"speak-header":1,top:1,"cue-before":1,"min-width":1,width:1,"font-variant":1,"border-top-color":1,"background-position":1,"empty-cells":1,direction:1,"border-right":1,visibility:1,padding:1,"border-style":1,"background-attachment":1,overflow:1,"border-bottom-style":1,cursor:1,margin:1,display:1,"border-left-width":1,"letter-spacing":1,"vertical-align":1,clip:1,"border-color":1,"list-style":1,"padding-bottom":1,"pause-after":1,"speak-numeral":1,"margin-left":1,widows:1,border:1,"font-style":1,"border-left-color":1,"pitch-range":1,"background-repeat":1,"table-layout":1,"margin-bottom":1,"speak-punctuation":1,"font-weight":1,"border-right-color":1,"page-break-after":1,position:1,"white-space":1,"text-indent":1,"background-image":1,volume:1,stress:1,outline:1,clear:1,"z-index":1,"text-decoration":1,"margin-top":1,azimuth:1,"cue-after":1,left:1,"list-style-position":1},c:["value"]},hljs.CBLCLM,{cN:"value",b:"^",eW:true,eE:true,c:["function","number","hexcolor","string"]},{cN:"number",b:hljs.NR,e:"^"},{cN:"hexcolor",b:"\\#[0-9A-F]+",e:"^"},{cN:"function",b:hljs.IR+"\\(",e:"\\)",c:["params"]},{cN:"params",b:"^",eW:true,eE:true,c:["number","string"]},hljs.ASM,hljs.QSM]};hljs.LANGUAGES.lisp=function(){var a="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#]*";var b="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?";return{cI:true,dM:{l:[a],c:["literal","number","string","comment","quoted","list"],i:"[^\\s]"},m:[{cN:"string",b:'"',e:'"',c:["escape"],r:0},hljs.BE,{cN:"number",b:b,e:"^"},{cN:"number",b:"#b[0-1]+(/[0-1]+)?",e:"^"},{cN:"number",b:"#o[0-7]+(/[0-7]+)?",e:"^"},{cN:"number",b:"#x[0-9a-f]+(/[0-9a-f]+)?",e:"^"},{cN:"number",b:"#c\\("+b+" +"+b,e:"\\)"},{cN:"comment",b:";",e:"$"},{cN:"quoted",b:"['`]\\(",e:"\\)",c:["number","string","variable","keyword","quoted_list"]},{cN:"quoted",b:"\\(quote ",e:"\\)",c:["number","string","variable","keyword","quoted_list"],l:[a],k:{title:{quote:1}}},{cN:"quoted_list",b:"\\(",e:"\\)",c:["quoted_list","literal","number","string"]},{cN:"list",b:"\\(",e:"\\)",c:["title","body"]},{cN:"title",b:a,e:"^",eW:true},{cN:"body",b:"^",eW:true,eE:true,c:["quoted","list","literal","number","string","comment","variable","keyword"]},{cN:"keyword",b:"[:&]"+a,e:"^"},{cN:"variable",b:"\\*",e:"\\*"},{cN:"literal",b:"\\b(t{1}|nil)\\b",e:"^"}]}}();hljs.LANGUAGES.profile={dM:{l:[hljs.UIR],c:["number","builtin","filename","header","summary","string","function"]},m:[hljs.CNM,hljs.ASM,hljs.QSM,{cN:"summary",b:"function calls",e:"$",c:["number"],r:10},{cN:"header",b:"(ncalls|tottime|cumtime)",e:"$",l:[hljs.IR],k:{ncalls:1,tottime:10,cumtime:10,filename:1},r:10},{cN:"function",b:"\\(",e:"\\)",l:[hljs.UIR],c:["title"]},{cN:"title",b:hljs.UIR,e:"^"},{cN:"builtin",b:"{",e:"}",c:["string"],eB:true,eE:true},{cN:"filename",b:"(/w|[a-zA-Z_][\da-zA-Z_]+\\.[\da-zA-Z_]{1,3})",e:":",eE:true}]};hljs.LANGUAGES.java={dM:{l:[hljs.UIR],c:["javadoc","comment","string","class","number","annotation"],k:{"false":1,"synchronized":1,"int":1,"abstract":1,"float":1,"private":1,"char":1,"interface":1,"boolean":1,"static":1,"null":1,"if":1,"const":1,"for":1,"true":1,"while":1,"long":1,"throw":1,strictfp:1,"finally":1,"protected":1,"extends":1,"import":1,"native":1,"final":1,"implements":1,"return":1,"void":1,"enum":1,"else":1,"break":1,"transient":1,"new":1,"catch":1,"instanceof":1,"byte":1,"super":1,"class":1,"volatile":1,"case":1,assert:1,"short":1,"package":1,"default":1,"double":1,"public":1,"try":1,"this":1,"switch":1,"continue":1,"throws":1}},m:[{cN:"class",l:[hljs.UIR],b:"(class |interface )",e:"{",i:":",k:{"class":1,"interface":1},c:["inheritance","title"]},{cN:"inheritance",b:"(implements|extends)",e:"^",nM:true,l:[hljs.IR],k:{"extends":1,"implements":1},r:10},{cN:"title",b:hljs.UIR,e:"^"},{cN:"params",b:"\\(",e:"\\)",c:["string","annotation"]},hljs.CNM,hljs.ASM,hljs.QSM,hljs.BE,hljs.CLCM,{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:["javadoctag"],r:10},{cN:"javadoctag",b:"@[A-Za-z]+",e:"^"},hljs.CBLCLM,{cN:"annotation",b:"@[A-Za-z]+",e:"^"}]};hljs.LANGUAGES.php={dM:{l:[hljs.IR],c:["comment","number","string","variable","preprocessor"],k:{and:1,include_once:1,list:1,"abstract":1,global:1,"private":1,echo:1,"interface":1,as:1,"static":1,endswitch:1,array:1,"null":1,"if":1,endwhile:1,or:1,"const":1,"for":1,endforeach:1,self:1,"var":1,"while":1,isset:1,"public":1,"protected":1,exit:1,foreach:1,"throw":1,elseif:1,"extends":1,include:1,__FILE__:1,empty:1,require_once:1,"function":1,"do":1,xor:1,"return":1,"implements":1,parent:1,clone:1,use:1,__CLASS__:1,__LINE__:1,"else":1,"break":1,print:1,"eval":1,"new":1,"catch":1,__METHOD__:1,"class":1,"case":1,exception:1,php_user_filter:1,"default":1,die:1,require:1,__FUNCTION__:1,enddeclare:1,"final":1,"try":1,"this":1,"switch":1,"continue":1,endfor:1,endif:1,declare:1,unset:1}},cI:true,m:[hljs.CLCM,hljs.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:["phpdoc"]},{cN:"phpdoc",b:"\\s@[A-Za-z]+",e:"^",r:10},hljs.CNM,{cN:"string",b:"'",e:"'",c:["escape"],r:0},{cN:"string",b:'"',e:'"',c:["escape"],r:0},hljs.BE,{cN:"variable",b:"\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*",e:"^"},{cN:"preprocessor",b:"<\\?php",e:"^",r:10},{cN:"preprocessor",b:"\\?>",e:"^"}]};hljs.LANGUAGES["1c"]=function(){var a="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*";var c={"возврат":1,"дата":1,"для":1,"если":1,"и":1,"или":1,"иначе":1,"иначеесли":1,"исключение":1,"конецесли":1,"конецпопытки":1,"конецпроцедуры":1,"конецфункции":1,"конеццикла":1,"константа":1,"не":1,"перейти":1,"перем":1,"перечисление":1,"по":1,"пока":1,"попытка":1,"прервать":1,"продолжить":1,"процедура":1,"строка":1,"тогда":1,"фс":1,"функция":1,"цикл":1,"число":1,"экспорт":1};var b={ansitooem:1,oemtoansi:1,"ввестивидсубконто":1,"ввестидату":1,"ввестизначение":1,"ввестиперечисление":1,"ввестипериод":1,"ввестиплансчетов":1,"ввестистроку":1,"ввестичисло":1,"вопрос":1,"восстановитьзначение":1,"врег":1,"выбранныйплансчетов":1,"вызватьисключение":1,"датагод":1,"датамесяц":1,"датачисло":1,"добавитьмесяц":1,"завершитьработусистемы":1,"заголовоксистемы":1,"записьжурналарегистрации":1,"запуститьприложение":1,"зафиксироватьтранзакцию":1,"значениевстроку":1,"значениевстрокувнутр":1,"значениевфайл":1,"значениеизстроки":1,"значениеизстрокивнутр":1,"значениеизфайла":1,"имякомпьютера":1,"имяпользователя":1,"каталогвременныхфайлов":1,"каталогиб":1,"каталогпользователя":1,"каталогпрограммы":1,"кодсимв":1,"командасистемы":1,"конгода":1,"конецпериодаби":1,"конецрассчитанногопериодаби":1,"конецстандартногоинтервала":1,"конквартала":1,"конмесяца":1,"коннедели":1,"лев":1,"лог":1,"лог10":1,"макс":1,"максимальноеколичествосубконто":1,"мин":1,"монопольныйрежим":1,"названиеинтерфейса":1,"названиенабораправ":1,"назначитьвид":1,"назначитьсчет":1,"найти":1,"найтипомеченныенаудаление":1,"найтиссылки":1,"началопериодаби":1,"началостандартногоинтервала":1,"начатьтранзакцию":1,"начгода":1,"начквартала":1,"начмесяца":1,"начнедели":1,"номерднягода":1,"номерднянедели":1,"номернеделигода":1,"нрег":1,"обработкаожидания":1,"окр":1,"описаниеошибки":1,"основнойжурналрасчетов":1,"основнойплансчетов":1,"основнойязык":1,"открытьформу":1,"открытьформумодально":1,"отменитьтранзакцию":1,"очиститьокносообщений":1,"периодстр":1,"полноеимяпользователя":1,"получитьвремята":1,"получитьдатута":1,"получитьдокументта":1,"получитьзначенияотбора":1,"получитьпозициюта":1,"получитьпустоезначение":1,"получитьта":1,"прав":1,"праводоступа":1,"предупреждение":1,"префиксавтонумерации":1,"пустаястрока":1,"пустоезначение":1,"рабочаядаттьпустоезначение":1,"получитьта":1,"прав":1,"праводоступа":1,"предупреждение":1,"префиксавтонумерации":1,"пустаястрока":1,"пустоезначение":1,"рабочаядата":1,"разделительстраниц":1,"разделительстрок":1,"разм":1,"разобратьпозициюдокумента":1,"рассчитатьрегистрына":1,"рассчитатьрегистрыпо":1,"сигнал":1,"симв":1,"символтабуляции":1,"создатьобъект":1,"сокрл":1,"сокрлп":1,"сокрп":1," сообщить":1,"состояние":1,"сохранитьзначение":1,"сред":1,"статусвозврата":1,"стрдлина":1,"стрзаменить":1,"стрколичествострок":1,"стрполучитьстроку":1," стрчисловхождений":1,"сформироватьпозициюдокумента":1,"счетпокоду":1,"текущаядата":1,"текущеевремя":1,"типзначения":1,"типзначениястр":1,"удалитьобъекты":1,"установитьтана":1,"установитьтапо":1,"фиксшаблон":1,"формат":1,"цел":1,"шаблон":1};return{dM:{l:[a],c:["comment","string","function","preprocessor","number","date"],k:{keyword:c,built_in:b}},cI:true,m:[hljs.CLCM,{cN:"string",b:'"',e:'"',c:["dquote"],r:0},{cN:"string",b:'"',e:"$",c:["dquote"]},{cN:"string",b:"\\|",e:"$",c:["dquote"]},{cN:"string",b:"\\|",e:'"',c:["dquote"]},{cN:"date",b:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'",e:"^"},{cN:"dquote",b:'""',e:"^"},{cN:"number",b:hljs.NR,e:"^",r:0},{cN:"title",l:[a],b:a,e:"^"},{cN:"params",b:"\\(",e:"\\)",l:[a],k:{"знач":1},c:["string"]},{cN:"function",b:"(процедура|функция)",e:"$",l:[a],k:{"процедура":1,"экспорт":1,"функция":1},c:["title","tail","comment"],r:0},{cN:"tail",b:"^",eW:true,l:[a],c:["params","export"]},{cN:"export",b:"экспорт",eW:true,l:[a],k:{"экспорт":1},c:["comment"]},{cN:"preprocessor",b:"#",e:"$",l:[a]}]}}();hljs.LANGUAGES.python={dM:{l:[hljs.UIR],i:"(</|->)",c:["comment","string","function","class","number","decorator"],k:{keyword:{and:1,elif:1,is:1,global:1,as:1,"in":1,"if":1,from:1,raise:1,"for":1,except:1,"finally":1,print:1,"import":1,pass:1,"return":1,exec:1,"else":1,"break":1,not:1,"with":1,"class":1,assert:1,yield:1,"try":1,"while":1,"continue":1,del:1,or:1,def:1,lambda:1,nonlocal:10},built_in:{None:1,True:1,False:1,Ellipsis:1,NotImplemented:1}}},m:[{cN:"function",l:[hljs.UIR],b:"\\bdef ",e:":",i:"$",k:{def:1},c:["title","params"],r:10},{cN:"class",l:[hljs.UIR],b:"\\bclass ",e:":",i:"[${]",k:{"class":1},c:["title","params"],r:10},{cN:"title",b:hljs.UIR,e:"^"},{cN:"params",b:"\\(",e:"\\)",c:["string"]},hljs.HCM,hljs.CNM,{cN:"string",b:"u?r?'''",e:"'''",r:10},{cN:"string",b:'u?r?"""',e:'"""',r:10},hljs.ASM,hljs.QSM,hljs.BE,{cN:"string",b:"(u|r|ur)'",e:"'",c:["escape"],r:10},{cN:"string",b:'(u|r|ur)"',e:'"',c:["escape"],r:10},{cN:"decorator",b:"@",e:"$"}]};hljs.LANGUAGES.smalltalk=function(){var a="[a-z][a-zA-Z0-9_]*";return{dM:{l:[hljs.UIR],c:["comment","string","class","method","number","symbol","char","localvars","array"],k:{self:1,"super":1,nil:1,"true":1,"false":1,thisContext:1}},m:[{cN:"class",b:"\\b[A-Z][A-Za-z0-9_]*",e:"^",r:0},{cN:"symbol",b:"#"+hljs.UIR,e:"^"},hljs.CNM,hljs.ASM,{cN:"comment",b:'"',e:'"',r:0},{cN:"method",b:a+":",e:"^"},{cN:"char",b:"\\$.{1}",e:"^"},{cN:"localvars",b:"\\|\\s*(("+a+")\\s*)+\\|",e:"^",r:10},{cN:"array",b:"\\#\\(",e:"\\)",c:["string","char","number","symbol"]}]}}();hljs.LANGUAGES.tex={dM:{c:["parameter","command","special","formula","comment"]},m:[{cN:"parameter",b:"\\\\[a-zA-Zа-яА-я]+[\\*]? *= *-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",e:"^",rB:true,c:["command","number"],nM:true,r:10},{cN:"command",b:"\\\\[a-zA-Zа-яА-я]+[\\*]?",e:"^",r:10},{cN:"command",b:"\\\\[^a-zA-Zа-яА-я0-9]",e:"^",r:0},{cN:"comment",b:"%",e:"$",r:0},{cN:"special",b:"[{}\\[\\]\\&#~]",e:"^",r:0},{cN:"formula",b:"\\$\\$",e:"\\$\\$",c:["command","special"],r:0},{cN:"formula",b:"\\$",e:"\\$",c:["command","special"],r:0},{cN:"number",b:" *=",e:"-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",eB:true}]};hljs.LANGUAGES.sql={cI:true,dM:{c:["operator","comment"],i:"[^\\s]"},m:[{cN:"operator",b:"(begin|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma)\\b",e:";|$",c:["string","number","newline"],l:["[a-zA-Z][a-zA-Z0-9_\\.]*"],k:{keyword:{all:1,partial:1,global:1,month:1,current_timestamp:1,using:1,go:1,revoke:1,smallint:1,indicator:1,"end-exec":1,disconnect:1,zone:1,"with":1,character:1,assertion:1,to:1,add:1,current_user:1,usage:1,input:1,local:1,alter:1,match:1,collate:1,real:1,then:1,rollback:1,get:1,read:1,timestamp:1,session_user:1,not:1,integer:1,bit:1,unique:1,day:1,minute:1,desc:1,insert:1,execute:1,like:1,ilike:2,level:1,decimal:1,drop:1,"continue":1,isolation:1,found:1,where:1,constraints:1,domain:1,right:1,national:1,some:1,module:1,transaction:1,relative:1,second:1,connect:1,escape:1,close:1,system_user:1,"for":1,deferred:1,section:1,cast:1,current:1,sqlstate:1,allocate:1,intersect:1,deallocate:1,numeric:1,"public":1,preserve:1,full:1,"goto":1,initially:1,asc:1,no:1,key:1,output:1,collation:1,group:1,by:1,union:1,session:1,both:1,last:1,language:1,constraint:1,column:1,of:1,space:1,foreign:1,deferrable:1,prior:1,connection:1,unknown:1,action:1,commit:1,view:1,or:1,first:1,into:1,"float":1,year:1,primary:1,cascaded:1,except:1,restrict:1,set:1,references:1,names:1,table:1,outer:1,open:1,select:1,size:1,are:1,rows:1,from:1,prepare:1,distinct:1,leading:1,create:1,only:1,next:1,inner:1,authorization:1,schema:1,corresponding:1,option:1,declare:1,precision:1,immediate:1,"else":1,timezone_minute:1,external:1,varying:1,translation:1,"true":1,"case":1,exception:1,join:1,hour:1,"default":1,"double":1,scroll:1,value:1,cursor:1,descriptor:1,values:1,dec:1,fetch:1,procedure:1,"delete":1,and:1,"false":1,"int":1,is:1,describe:1,"char":1,as:1,at:1,"in":1,varchar:1,"null":1,trailing:1,any:1,absolute:1,current_time:1,end:1,grant:1,privileges:1,when:1,cross:1,check:1,write:1,current_date:1,pad:1,begin:1,temporary:1,exec:1,time:1,update:1,catalog:1,user:1,sql:1,date:1,on:1,identity:1,timezone_hour:1,natural:1,whenever:1,interval:1,work:1,order:1,cascade:1,diagnostics:1,nchar:1,having:1,left:1,call:1,"do":1,handler:1,load:1,replace:1,truncate:1,start:1,lock:1,show:1,pragma:1},aggregate:{count:1,sum:1,min:1,max:1,avg:1}}},{cN:"newline",b:"\\n",e:"^",nM:true},hljs.CNM,hljs.CBLCLM,{cN:"comment",b:"--",e:"$"},{cN:"string",b:"'",e:"'",c:["escape","squote"],r:0},{cN:"squote",b:"''",e:"^",nM:true},{cN:"string",b:'"',e:'"',c:["escape","dquote"],r:0},{cN:"dquote",b:'""',e:"^",nM:true},{cN:"string",b:"`",e:"`",c:["escape"]},hljs.BE]};hljs.LANGUAGES.ini={cI:true,dM:{c:["comment","title","setting"],i:"[^\\s]"},m:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9_\\[\\]]+[ \\t]*=[ \\t]*",e:"$",c:["value"]},{cN:"value",b:"^",eW:true,c:["string","number"],l:[hljs.IR],k:{on:1,off:1,"true":1,"false":1,yes:1,no:1}},hljs.QSM,hljs.BE,{cN:"number",b:"\\d+",e:"^"}]};hljs.LANGUAGES.axapta={dM:{l:[hljs.UIR],c:["comment","string","class","number","preprocessor"],k:{"false":1,"int":1,"abstract":1,"private":1,"char":1,"interface":1,"boolean":1,"static":1,"null":1,"if":1,"for":1,"true":1,"while":1,"long":1,"throw":1,"finally":1,"protected":1,"extends":1,"final":1,"implements":1,"return":1,"void":1,"enum":1,"else":1,"break":1,"new":1,"catch":1,"byte":1,"super":1,"class":1,"case":1,"short":1,"default":1,"double":1,"public":1,"try":1,"this":1,"switch":1,"continue":1,reverse:1,firstfast:1,firstonly:1,forupdate:1,nofetch:1,sum:1,avg:1,minof:1,maxof:1,count:1,order:1,group:1,by:1,asc:1,desc:1,index:1,hint:1,like:1,dispaly:1,edit:1,client:1,server:1,ttsbegin:1,ttscommit:1,str:1,real:1,date:1,container:1,anytype:1,common:1,div:1,mod:1}},m:[{cN:"class",l:[hljs.UIR],b:"(class |interface )",e:"{",i:":",k:{"class":1,"interface":1},c:["inheritance","title"]},{cN:"inheritance",b:"(implements|extends)",e:"^",l:[hljs.IR],k:{"extends":1,"implements":1},r:10},{cN:"title",b:hljs.UIR,e:"^"},{cN:"params",b:"\\(",e:"\\)",c:["string","annotation"]},hljs.CNM,hljs.ASM,hljs.QSM,hljs.BE,hljs.CLCM,hljs.CBLCLM,{cN:"preprocessor",b:"#",e:"$"}]};hljs.LANGUAGES.perl=function(){var b=["comment","string","number","regexp","sub","variable","operator","pod"];var a={getpwent:1,getservent:1,quotemeta:1,msgrcv:1,scalar:1,kill:1,dbmclose:1,undef:1,lc:1,ma:1,syswrite:1,tr:1,send:1,umask:1,sysopen:1,shmwrite:1,vec:1,qx:1,utime:1,local:1,oct:1,semctl:1,localtime:1,readpipe:1,"do":1,"return":1,format:1,read:1,sprintf:1,dbmopen:1,pop:1,getpgrp:1,not:1,getpwnam:1,rewinddir:1,qq:1,fileno:1,qw:1,endprotoent:1,wait:1,sethostent:1,bless:1,s:1,opendir:1,"continue":1,each:1,sleep:1,endgrent:1,shutdown:1,dump:1,chomp:1,connect:1,getsockname:1,die:1,socketpair:1,close:1,flock:1,exists:1,index:1,shmget:1,sub:1,"for":1,endpwent:1,redo:1,lstat:1,msgctl:1,setpgrp:1,abs:1,exit:1,select:1,print:1,ref:1,gethostbyaddr:1,unshift:1,fcntl:1,syscall:1,"goto":1,getnetbyaddr:1,join:1,gmtime:1,symlink:1,semget:1,splice:1,x:1,getpeername:1,recv:1,log:1,setsockopt:1,cos:1,last:1,reverse:1,gethostbyname:1,getgrnam:1,study:1,formline:1,endhostent:1,times:1,chop:1,length:1,gethostent:1,getnetent:1,pack:1,getprotoent:1,getservbyname:1,rand:1,mkdir:1,pos:1,chmod:1,y:1,substr:1,endnetent:1,printf:1,next:1,open:1,msgsnd:1,readdir:1,use:1,unlink:1,getsockopt:1,getpriority:1,rindex:1,wantarray:1,hex:1,system:1,getservbyport:1,endservent:1,"int":1,chr:1,untie:1,rmdir:1,prototype:1,tell:1,listen:1,fork:1,shmread:1,ucfirst:1,setprotoent:1,"else":1,sysseek:1,link:1,getgrgid:1,shmctl:1,waitpid:1,unpack:1,getnetbyname:1,reset:1,chdir:1,grep:1,split:1,require:1,caller:1,lcfirst:1,until:1,warn:1,"while":1,values:1,shift:1,telldir:1,getpwuid:1,my:1,getprotobynumber:1,"delete":1,and:1,sort:1,uc:1,defined:1,srand:1,accept:1,"package":1,seekdir:1,getprotobyname:1,semop:1,our:1,rename:1,seek:1,"if":1,q:1,chroot:1,sysread:1,setpwent:1,no:1,crypt:1,getc:1,chown:1,sqrt:1,write:1,setnetent:1,setpriority:1,foreach:1,tie:1,sin:1,msgget:1,map:1,stat:1,getlogin:1,unless:1,elsif:1,truncate:1,exec:1,keys:1,glob:1,tied:1,closedir:1,ioctl:1,socket:1,readlink:1,"eval":1,xor:1,readline:1,binmode:1,setservent:1,eof:1,ord:1,bind:1,alarm:1,pipe:1,atan2:1,getgrent:1,exp:1,time:1,push:1,setgrent:1,gt:1,lt:1,or:1,ne:1,m:1};return{dM:{l:[hljs.IR],c:b,k:a},m:[{cN:"variable",b:"\\$\\d",e:"^"},{cN:"variable",b:"[\\$\\%\\@\\*](\\^\\w\\b|#\\w+(\\:\\:\\w+)*|[^\\s\\w{]|{\\w+}|\\w+(\\:\\:\\w*)*)",e:"^"},{cN:"subst",b:"[$@]\\{",e:"}",l:[hljs.IR],k:a,c:b,r:10},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",e:"^",r:0},{cN:"string",b:"q[qwxr]?\\s*\\(",e:"\\)",c:["escape","subst","variable"],r:5},{cN:"string",b:"q[qwxr]?\\s*\\[",e:"\\]",c:["escape","subst","variable"],r:5},{cN:"string",b:"q[qwxr]?\\s*\\{",e:"\\}",c:["escape","subst","variable"],r:5},{cN:"string",b:"q[qwxr]?\\s*\\|",e:"\\|",c:["escape","subst","variable"],r:5},{cN:"string",b:"q[qwxr]?\\s*\\<",e:"\\>",c:["escape","subst","variable"],r:5},{cN:"string",b:"qw\\s+q",e:"q",c:["escape","subst","variable"],r:5},{cN:"string",b:"'",e:"'",c:["escape"],r:0},{cN:"string",b:'"',e:'"',c:["escape","subst","variable"],r:0},hljs.BE,{cN:"string",b:"`",e:"`",c:["escape"]},{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",e:"^",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:["escape"],r:0},{cN:"string",b:"{\\w+}",e:"^",r:0},{cN:"string",b:"-?\\w+\\s*\\=\\>",e:"^",r:0},{cN:"sub",b:"\\bsub\\b",e:"(\\s*\\(.*?\\))?[;{]",l:[hljs.IR],k:{sub:1},r:5},{cN:"operator",b:"-\\w\\b",e:"^",r:0},hljs.HCM,{cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5},{cN:"pod",b:"\\=\\w",e:"\\=cut"}]}}();hljs.LANGUAGES.scala={dM:{l:[hljs.UIR],c:["javadoc","comment","string","class","number","annotation"],k:{type:1,yield:1,lazy:1,override:1,def:1,"with":1,val:1,"var":1,"false":1,"true":1,sealed:1,"abstract":1,"private":1,trait:1,object:1,"null":1,"if":1,"for":1,"while":1,"throw":1,"finally":1,"protected":1,"extends":1,"import":1,"final":1,"return":1,"else":1,"break":1,"new":1,"catch":1,"super":1,"class":1,"case":1,"package":1,"default":1,"try":1,"this":1,match:1,"continue":1,"throws":1}},m:[{cN:"class",l:[hljs.UIR],b:"((case )?class |object |trait )",e:"({|$)",i:":",k:{"case":1,"class":1,trait:1,object:1},c:["inheritance","title","params"]},{cN:"inheritance",b:"(extends|with)",e:"^",nM:true,l:[hljs.IR],k:{"extends":1,"with":1},r:10},{cN:"title",b:hljs.UIR,e:"^"},{cN:"params",b:"\\(",e:"\\)",c:["string","annotation"]},hljs.CNM,hljs.ASM,hljs.QSM,hljs.BE,hljs.CLCM,{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:["javadoctag"],r:10},{cN:"javadoctag",b:"@[A-Za-z]+",e:"^"},hljs.CBLCLM,{cN:"annotation",b:"@[A-Za-z]+",e:"^"},{cN:"string",b:'u?r?"""',e:'"""',r:10}]};hljs.LANGUAGES.avrasm={cI:true,dM:{l:[hljs.IR],c:["comment","number","string","label","preprocessor","localvars"],i:"",k:{keyword:{adc:1,add:1,adiw:1,and:1,andi:1,asr:1,bclr:1,bld:1,brbc:1,brbs:1,brcc:1,brcs:1,"break":1,breq:1,brge:1,brhc:1,brhs:1,brid:1,brie:1,brlo:1,brlt:1,brmi:1,brne:1,brpl:1,brsh:1,brtc:1,brts:1,brvc:1,brvs:1,bset:1,bst:1,call:1,cbi:1,cbr:1,clc:1,clh:1,cli:1,cln:1,clr:1,cls:1,clt:1,clv:1,clz:1,com:1,cp:1,cpc:1,cpi:1,cpse:1,dec:1,eicall:1,eijmp:1,elpm:1,eor:1,fmul:1,fmuls:1,fmulsu:1,icall:1,ijmp:1,"in":1,inc:1,jmp:1,ld:1,ldd:1,ldi:1,lds:1,lpm:1,lsl:1,lsr:1,mov:1,movw:1,mul:1,muls:1,mulsu:1,neg:1,nop:1,or:1,ori:1,out:1,pop:1,push:1,rcall:1,ret:1,reti:1,rjmp:1,rol:1,ror:1,sbc:1,sbr:1,sbrc:1,sbrs:1,sec:1,seh:1,sbi:1,sbci:1,sbic:1,sbis:1,sbiw:1,sei:1,sen:1,ser:1,ses:1,set:1,sev:1,sez:1,sleep:1,spm:1,st:1,std:1,sts:1,sub:1,subi:1,swap:1,tst:1,wdr:1},built_in:{r0:1,r1:1,r2:1,r3:1,r4:1,r5:1,r6:1,r7:1,r8:1,r9:1,r10:1,r11:1,r12:1,r13:1,r14:1,r15:1,r16:1,r17:1,r18:1,r19:1,r20:1,r21:1,r22:1,r23:1,r24:1,r25:1,r26:1,r27:1,r28:1,r29:1,r30:1,r31:1,x:1,xh:1,xl:1,y:1,yh:1,yl:1,z:1,zh:1,zl:1,ucsr1c:1,udr1:1,ucsr1a:1,ucsr1b:1,ubrr1l:1,ubrr1h:1,ucsr0c:1,ubrr0h:1,tccr3c:1,tccr3a:1,tccr3b:1,tcnt3h:1,tcnt3l:1,ocr3ah:1,ocr3al:1,ocr3bh:1,ocr3bl:1,ocr3ch:1,ocr3cl:1,icr3h:1,icr3l:1,etimsk:1,etifr:1,tccr1c:1,ocr1ch:1,ocr1cl:1,twcr:1,twdr:1,twar:1,twsr:1,twbr:1,osccal:1,xmcra:1,xmcrb:1,eicra:1,spmcsr:1,spmcr:1,portg:1,ddrg:1,ping:1,portf:1,ddrf:1,sreg:1,sph:1,spl:1,xdiv:1,rampz:1,eicrb:1,eimsk:1,gimsk:1,gicr:1,eifr:1,gifr:1,timsk:1,tifr:1,mcucr:1,mcucsr:1,tccr0:1,tcnt0:1,ocr0:1,assr:1,tccr1a:1,tccr1b:1,tcnt1h:1,tcnt1l:1,ocr1ah:1,ocr1al:1,ocr1bh:1,ocr1bl:1,icr1h:1,icr1l:1,tccr2:1,tcnt2:1,ocr2:1,ocdr:1,wdtcr:1,sfior:1,eearh:1,eearl:1,eedr:1,eecr:1,porta:1,ddra:1,pina:1,portb:1,ddrb:1,pinb:1,portc:1,ddrc:1,pinc:1,portd:1,ddrd:1,pind:1,spdr:1,spsr:1,spcr:1,udr0:1,ucsr0a:1,ucsr0b:1,ubrr0l:1,acsr:1,admux:1,adcsr:1,adch:1,adcl:1,porte:1,ddre:1,pine:1,pinf:1}}},m:[hljs.CBLCLM,{cN:"comment",b:";",e:"$"},hljs.BE,hljs.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},hljs.CNM,{cN:"label",b:"^[A-Za-z0-9_.$]+:",e:"^"},{cN:"preprocessor",b:"#",e:"$"},{cN:"preprocessor",b:"\\.[a-zA-Z]+",e:"^"},{cN:"localvars",b:"@[0-9]+",e:"^"}]};hljs.LANGUAGES.nginx={dM:{c:["comment","directive"]},m:[hljs.HCM,{cN:"directive",b:hljs.UIR,e:";|{",rE:true,nM:true,c:["comment","parameters"],l:[hljs.UIR],k:{accept_mutex:1,accept_mutex_delay:1,access_log:1,add_after_body:1,add_before_body:1,add_header:1,addition_types:1,alias:1,allow:1,ancient_browser:1,ancient_browser:1,ancient_browser_value:1,ancient_browser_value:1,auth_basic:1,auth_basic_user_file:1,autoindex:1,autoindex_exact_size:1,autoindex_localtime:1,"break":1,charset:1,charset:1,charset_map:1,charset_map:1,charset_types:1,charset_types:1,client_body_buffer_size:1,client_body_in_file_only:1,client_body_in_single_buffer:1,client_body_temp_path:1,client_body_timeout:1,client_header_buffer_size:1,client_header_timeout:1,client_max_body_size:1,connection_pool_size:1,connections:1,create_full_put_path:1,daemon:1,dav_access:1,dav_methods:1,debug_connection:1,debug_points:1,default_type:1,deny:1,directio:1,directio_alignment:1,echo:1,echo_after_body:1,echo_before_body:1,echo_blocking_sleep:1,echo_duplicate:1,echo_end:1,echo_exec:1,echo_flush:1,echo_foreach_split:1,echo_location:1,echo_location_async:1,echo_read_request_body:1,echo_request_body:1,echo_reset_timer:1,echo_sleep:1,echo_subrequest:1,echo_subrequest_async:1,empty_gif:1,empty_gif:1,env:1,error_log:1,error_log:1,error_page:1,events:1,expires:1,fastcgi_bind:1,fastcgi_buffer_size:1,fastcgi_buffers:1,fastcgi_busy_buffers_size:1,fastcgi_cache:1,fastcgi_cache_key:1,fastcgi_cache_methods:1,fastcgi_cache_min_uses:1,fastcgi_cache_path:1,fastcgi_cache_use_stale:1,fastcgi_cache_valid:1,fastcgi_catch_stderr:1,fastcgi_connect_timeout:1,fastcgi_hide_header:1,fastcgi_ignore_client_abort:1,fastcgi_ignore_headers:1,fastcgi_index:1,fastcgi_intercept_errors:1,fastcgi_max_temp_file_size:1,fastcgi_next_upstream:1,fastcgi_param:1,fastcgi_pass:1,fastcgi_pass_header:1,fastcgi_pass_request_body:1,fastcgi_pass_request_headers:1,fastcgi_read_timeout:1,fastcgi_send_lowat:1,fastcgi_send_timeout:1,fastcgi_split_path_info:1,fastcgi_store:1,fastcgi_store_access:1,fastcgi_temp_file_write_size:1,fastcgi_temp_path:1,fastcgi_upstream_fail_timeout:1,fastcgi_upstream_max_fails:1,flv:1,geo:1,geo:1,geoip_city:1,geoip_country:1,gzip:1,gzip_buffers:1,gzip_comp_level:1,gzip_disable:1,gzip_hash:1,gzip_http_version:1,gzip_min_length:1,gzip_no_buffer:1,gzip_proxied:1,gzip_static:1,gzip_types:1,gzip_vary:1,gzip_window:1,http:1,"if":1,if_modified_since:1,ignore_invalid_headers:1,image_filter:1,image_filter_buffer:1,image_filter_jpeg_quality:1,image_filter_transparency:1,include:1,index:1,internal:1,ip_hash:1,js:1,js_load:1,js_require:1,js_utf8:1,keepalive_requests:1,keepalive_timeout:1,kqueue_changes:1,kqueue_events:1,large_client_header_buffers:1,limit_conn:1,limit_conn_log_level:1,limit_except:1,limit_rate:1,limit_rate_after:1,limit_req:1,limit_req_log_level:1,limit_req_zone:1,limit_zone:1,lingering_time:1,lingering_timeout:1,listen:1,location:1,lock_file:1,log_format:1,log_not_found:1,log_subrequest:1,map:1,map_hash_bucket_size:1,map_hash_max_size:1,master_process:1,memcached_bind:1,memcached_buffer_size:1,memcached_connect_timeout:1,memcached_next_upstream:1,memcached_pass:1,memcached_read_timeout:1,memcached_send_timeout:1,memcached_upstream_fail_timeout:1,memcached_upstream_max_fails:1,merge_slashes:1,min_delete_depth:1,modern_browser:1,modern_browser:1,modern_browser_value:1,modern_browser_value:1,more_clear_headers:1,more_clear_input_headers:1,more_set_headers:1,more_set_input_headers:1,msie_padding:1,msie_refresh:1,multi_accept:1,open_file_cache:1,open_file_cache_errors:1,open_file_cache_events:1,open_file_cache_min_uses:1,open_file_cache_retest:1,open_file_cache_valid:1,open_log_file_cache:1,optimize_server_names:1,output_buffers:1,override_charset:1,override_charset:1,perl:1,perl_modules:1,perl_require:1,perl_set:1,pid:1,port_in_redirect:1,post_action:1,postpone_gzipping:1,postpone_output:1,proxy_bind:1,proxy_buffer_size:1,proxy_buffering:1,proxy_buffers:1,proxy_busy_buffers_size:1,proxy_cache:1,proxy_cache_key:1,proxy_cache_methods:1,proxy_cache_min_uses:1,proxy_cache_path:1,proxy_cache_use_stale:1,proxy_cache_valid:1,proxy_connect_timeout:1,proxy_headers_hash_bucket_size:1,proxy_headers_hash_max_size:1,proxy_hide_header:1,proxy_ignore_client_abort:1,proxy_ignore_headers:1,proxy_intercept_errors:1,proxy_max_temp_file_size:1,proxy_method:1,proxy_next_upstream:1,proxy_pass:1,proxy_pass_header:1,proxy_pass_request_body:1,proxy_pass_request_headers:1,proxy_read_timeout:1,proxy_redirect:1,proxy_send_lowat:1,proxy_send_timeout:1,proxy_set_body:1,proxy_set_header:1,proxy_store:1,proxy_store_access:1,proxy_temp_file_write_size:1,proxy_temp_path:1,proxy_upstream_fail_timeout:1,proxy_upstream_max_fails:1,push_authorized_channels_only:1,push_channel_group:1,push_max_channel_id_length:1,push_max_channel_subscribers:1,push_max_message_buffer_length:1,push_max_reserved_memory:1,push_message_buffer_length:1,push_message_timeout:1,push_min_message_buffer_length:1,push_min_message_recipients:1,push_publisher:1,push_store_messages:1,push_subscriber:1,push_subscriber_concurrency:1,random_index:1,read_ahead:1,real_ip_header:1,recursive_error_pages:1,request_pool_size:1,reset_timedout_connection:1,resolver:1,resolver_timeout:1,"return":1,rewrite:1,rewrite_log:1,root:1,satisfy:1,satisfy_any:1,send_lowat:1,send_timeout:1,sendfile:1,sendfile_max_chunk:1,server:1,server:1,server_name:1,server_name_in_redirect:1,server_names_hash_bucket_size:1,server_names_hash_max_size:1,server_tokens:1,set:1,set_real_ip_from:1,source_charset:1,source_charset:1,ssi:1,ssi_ignore_recycled_buffers:1,ssi_min_file_chunk:1,ssi_silent_errors:1,ssi_types:1,ssi_value_length:1,ssl:1,ssl_certificate:1,ssl_certificate_key:1,ssl_ciphers:1,ssl_client_certificate:1,ssl_crl:1,ssl_dhparam:1,ssl_prefer_server_ciphers:1,ssl_protocols:1,ssl_session_cache:1,ssl_session_timeout:1,ssl_verify_client:1,ssl_verify_depth:1,sub_filter:1,sub_filter_once:1,sub_filter_types:1,tcp_nodelay:1,tcp_nopush:1,timer_resolution:1,try_files:1,types:1,types_hash_bucket_size:1,types_hash_max_size:1,underscores_in_headers:1,uninitialized_variable_warn:1,upstream:1,use:1,user:1,userid:1,userid:1,userid_domain:1,userid_domain:1,userid_expires:1,userid_expires:1,userid_mark:1,userid_name:1,userid_name:1,userid_p3p:1,userid_p3p:1,userid_path:1,userid_path:1,userid_service:1,userid_service:1,valid_referers:1,variables_hash_bucket_size:1,variables_hash_max_size:1,worker_connections:1,worker_cpu_affinity:1,worker_priority:1,worker_processes:1,worker_rlimit_core:1,worker_rlimit_nofile:1,worker_rlimit_sigpending:1,working_directory:1,xml_entities:1,xslt_stylesheet:1,xslt_types:1}},{cN:"parameters",b:"\\s",e:"[;{]",rB:true,rE:true,nM:true,c:["comment","string","regexp","number","variable","built_in"]},{cN:"variable",b:"\\$\\d+",e:"^"},{cN:"variable",b:"\\${",e:"}"},{cN:"variable",b:"[\\$\\@]"+hljs.UIR,e:"^",r:0},{cN:"built_in",b:"\\b(on|off|yes|no|true|false|none|blocked|debug|info|notice|warn|error|crit|select|permanent|redirect)\\b",e:"^"},{cN:"built_in",b:"\\b(kqueue|rtsig|epoll|poll)\\b|/dev/poll",e:"^"},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b",e:"^"},{cN:"number",b:"\\s\\d+[kKmMgGdshdwy]*\\b",e:"^",r:0},{cN:"string",b:'"',e:'"',c:["escape","variable"],r:0},{cN:"string",b:"'",e:"'",c:["escape","variable"],r:0},{cN:"string",b:"([a-z]+):/",e:"[;\\s]",rE:true},{cN:"regexp",b:"\\s\\^",e:"\\s|{|;",rE:true,c:["escape","variable"]},{cN:"regexp",b:"~\\*?\\s+",e:"\\s|{|;",rE:true,c:["escape","variable"]},{cN:"regexp",b:"\\*(\\.[a-z\\-]+)+",e:"^",c:["escape","variable"]},{cN:"regexp",b:"([a-z\\-]+\\.)+\\*",e:"^",c:["escape","variable"]},hljs.BE]};hljs.LANGUAGES.django={dM:{c:["tag","comment","doctype","template_comment","template_tag","variable"]},cI:true,m:[hljs.XML_COMMENT,hljs.HTML_DOCTYPE,{cN:"tag",l:[hljs.IR],k:hljs.HTML_TAGS,b:"<[A-Za-z/]",e:">",c:["attribute","template_comment","template_tag","variable"]},hljs.HTML_ATTR,hljs.HTML_SHORT_ATTR,{cN:"value",b:'"',e:'"',c:["template_comment","template_tag","variable"]},hljs.HTML_VALUE,{cN:"template_comment",b:"\\{\\%\\s*comment\\s*\\%\\}",e:"\\{\\%\\s*endcomment\\s*\\%\\}"},{cN:"template_comment",b:"\\{#",e:"#\\}"},{cN:"template_tag",b:"\\{\\%",e:"\\%\\}",l:[hljs.IR],k:{comment:1,endcomment:1,load:1,templatetag:1,ifchanged:1,endifchanged:1,"if":1,endif:1,firstof:1,"for":1,endfor:1,"in":1,ifnotequal:1,endifnotequal:1,widthratio:1,"extends":1,include:1,spaceless:1,endspaceless:1,regroup:1,by:1,as:1,ifequal:1,endifequal:1,ssi:1,now:1,"with":1,cycle:1,url:1,filter:1,endfilter:1,debug:1,block:1,endblock:1,"else":1},c:["filter"]},{cN:"variable",b:"\\{\\{",e:"\\}\\}",c:["filter"]},{cN:"filter",b:"\\|[A-Za-z]+\\:?",e:"^",eE:true,l:[hljs.IR],k:{truncatewords:1,removetags:1,linebreaksbr:1,yesno:1,get_digit:1,timesince:1,random:1,striptags:1,filesizeformat:1,escape:1,linebreaks:1,length_is:1,ljust:1,rjust:1,cut:1,urlize:1,fix_ampersands:1,title:1,floatformat:1,capfirst:1,pprint:1,divisibleby:1,add:1,make_list:1,unordered_list:1,urlencode:1,timeuntil:1,urlizetrunc:1,wordcount:1,stringformat:1,linenumbers:1,slice:1,date:1,dictsort:1,dictsortreversed:1,default_if_none:1,pluralize:1,lower:1,join:1,center:1,"default":1,truncatewords_html:1,upper:1,length:1,phone2numeric:1,wordwrap:1,time:1,addslashes:1,slugify:1,first:1},c:["argument"]},{cN:"argument",b:'"',e:'"'}]};hljs.LANGUAGES.delphi=function(){var a={and:1,safecall:1,cdecl:1,then:1,string:1,exports:1,library:1,not:1,pascal:1,set:1,virtual:1,file:1,"in":1,array:1,label:1,packed:1,"end.":1,index:1,"while":1,"const":1,raise:1,"for":1,to:1,implementation:1,"with":1,except:1,overload:1,destructor:1,downto:1,"finally":1,program:1,exit:1,unit:1,inherited:1,override:1,"if":1,type:1,until:1,"function":1,"do":1,begin:1,repeat:1,"goto":1,nil:1,far:1,initialization:1,object:1,"else":1,"var":1,uses:1,external:1,resourcestring:1,"interface":1,end:1,finalization:1,"class":1,asm:1,mod:1,"case":1,on:1,shr:1,shl:1,of:1,register:1,xorwrite:1,threadvar:1,"try":1,record:1,near:1,stored:1,constructor:1,stdcall:1,inline:1,div:1,out:1,or:1,procedure:1};var b={safecall:1,stdcall:1,pascal:1,stored:1,"const":1,implementation:1,finalization:1,except:1,to:1,"finally":1,program:1,inherited:1,override:1,then:1,exports:1,string:1,read:1,not:1,mod:1,shr:1,"try":1,div:1,shl:1,set:1,library:1,message:1,packed:1,index:1,"for":1,near:1,overload:1,label:1,downto:1,exit:1,"public":1,"goto":1,"interface":1,asm:1,on:1,of:1,constructor:1,or:1,"private":1,array:1,unit:1,raise:1,destructor:1,"var":1,type:1,until:1,"function":1,"else":1,external:1,"with":1,"case":1,"default":1,record:1,"while":1,"protected":1,property:1,procedure:1,published:1,and:1,cdecl:1,"do":1,threadvar:1,file:1,"in":1,"if":1,end:1,virtual:1,write:1,far:1,out:1,begin:1,repeat:1,nil:1,initialization:1,object:1,uses:1,resourcestring:1,"class":1,register:1,xorwrite:1,inline:1,"static":1};return{dM:{l:[hljs.IR],i:'("|\\$[G-Zg-z]|\\/\\*|</)',c:["comment","string","number","function","class"],k:a},cI:true,m:[{cN:"comment",b:"{",e:"}",r:0},{cN:"comment",b:"\\(\\*",e:"\\*\\)",r:10},hljs.CLCM,{cN:"number",b:hljs.NR,e:"^",r:0},{cN:"string",b:"'",e:"'",c:["quote"],r:0},{cN:"string",b:"(#\\d+)+",e:"^"},{cN:"quote",b:"''",e:"^",nM:true},{cN:"function",b:"function\\b",e:"[:;]",l:[hljs.IR],k:{"function":1},c:["title","params","comment"],r:0},{cN:"function",b:"(procedure|constructor|destructor)\\b",e:";",l:[hljs.IR],k:{constructor:1,destructor:1,procedure:1},c:["title","params","comment"],r:10},{cN:"title",b:hljs.IR,e:"^"},{cN:"params",b:"\\(",e:"\\)",l:[hljs.IR],k:a,c:["string"]},{cN:"class",b:"=\\bclass\\b",e:"end;",l:[hljs.IR],k:b,c:["string","comment","function"]}]}}();hljs.LANGUAGES.vbscript={dM:{l:[hljs.IR],c:["string","comment","number","built_in"],k:{keyword:{call:1,"class":1,"const":1,dim:1,"do":1,loop:1,erase:1,execute:1,executeglobal:1,exit:1,"for":1,each:1,next:1,"function":1,"if":1,then:1,"else":1,on:1,error:1,option:1,explicit:1,"new":1,"private":1,property:1,let:1,get:1,"public":1,randomize:1,redim:1,rem:1,select:1,"case":1,set:1,stop:1,sub:1,"while":1,wend:1,"with":1,end:1,to:1,elseif:1,is:1,or:1,xor:1,and:1,not:1,class_initialize:1,class_terminate:1,"default":1,preserve:1,"in":1,me:1,byval:1,byref:1,step:1,resume:1,"goto":1},built_in:{lcase:1,month:1,vartype:1,instrrev:1,ubound:1,setlocale:1,getobject:1,rgb:1,getref:1,string:1,weekdayname:1,rnd:1,dateadd:1,monthname:1,now:1,day:1,minute:1,isarray:1,cbool:1,round:1,formatcurrency:1,conversions:1,csng:1,timevalue:1,second:1,year:1,space:1,abs:1,clng:1,timeserial:1,fixs:1,len:1,asc:1,isempty:1,maths:1,dateserial:1,atn:1,timer:1,isobject:1,filter:1,weekday:1,datevalue:1,ccur:1,isdate:1,instr:1,datediff:1,formatdatetime:1,replace:1,isnull:1,right:1,sgn:1,array:1,snumeric:1,log:1,cdbl:1,hex:1,chr:1,lbound:1,msgbox:1,ucase:1,getlocale:1,cos:1,cdate:1,cbyte:1,rtrim:1,join:1,hour:1,oct:1,typename:1,trim:1,strcomp:1,"int":1,createobject:1,loadpicture:1,tan:1,formatnumber:1,mid:1,scriptenginebuildversion:1,scriptengine:1,split:1,scriptengineminorversion:1,cint:1,sin:1,datepart:1,ltrim:1,sqr:1,scriptenginemajorversion:1,time:1,derived:1,"eval":1,date:1,formatpercent:1,exp:1,inputbox:1,left:1,ascw:1,chrw:1,regexp:1,server:1,response:1,request:1,cstr:1,err:1},literal:{"true":1,"false":1,"null":1,nothing:1,empty:1}}},cI:true,m:[{cN:"string",b:'"',e:'"',i:"\\n",c:["escape"],r:0},{cN:"escape",b:'""',e:"^",nM:true},{cN:"comment",b:"'",e:"$"},hljs.CNM]};hljs.LANGUAGES.mel={dM:{l:[hljs.UIR],i:"</",c:["number","string","variable","comment"],k:{"int":1,"float":1,string:1,"float":1,vector:1,matrix:1,"if":1,"else":1,"switch":1,"case":1,"default":1,"while":1,"do":1,"for":1,"in":1,"break":1,"continue":1,exists:1,objExists:1,attributeExists:1,global:1,proc:1,"return":1,error:1,warning:1,trace:1,"catch":1,about:1,abs:1,addAttr:1,addAttributeEditorNodeHelp:1,addDynamic:1,addNewShelfTab:1,addPP:1,addPanelCategory:1,addPrefixToName:1,advanceToNextDrivenKey:1,affectedNet:1,affects:1,aimConstraint:1,air:1,alias:1,aliasAttr:1,align:1,alignCtx:1,alignCurve:1,alignSurface:1,allViewFit:1,ambientLight:1,angle:1,angleBetween:1,animCone:1,animCurveEditor:1,animDisplay:1,animView:1,annotate:1,appendStringArray:1,applicationName:1,applyAttrPreset:1,applyTake:1,arcLenDimContext:1,arcLengthDimension:1,arclen:1,arrayMapper:1,art3dPaintCtx:1,artAttrCtx:1,artAttrPaintVertexCtx:1,artAttrSkinPaintCtx:1,artAttrTool:1,artBuildPaintMenu:1,artFluidAttrCtx:1,artPuttyCtx:1,artSelectCtx:1,artSetPaintCtx:1,artUserPaintCtx:1,assignCommand:1,assignInputDevice:1,assignViewportFactories:1,attachCurve:1,attachDeviceAttr:1,attachSurface:1,attrColorSliderGrp:1,attrCompatibility:1,attrControlGrp:1,attrEnumOptionMenu:1,attrEnumOptionMenuGrp:1,attrFieldGrp:1,attrFieldSliderGrp:1,attrNavigationControlGrp:1,attrPresetEditWin:1,attributeExists:1,attributeInfo:1,attributeMenu:1,attributeQuery:1,autoKeyframe:1,autoPlace:1,bakeClip:1,bakeFluidShading:1,bakePartialHistory:1,bakeResults:1,bakeSimulation:1,basename:1,basenameEx:1,batchRender:1,bessel:1,bevel:1,bevelPlus:1,binMembership:1,bindSkin:1,blend2:1,blendShape:1,blendShapeEditor:1,blendShapePanel:1,blendTwoAttr:1,blindDataType:1,boneLattice:1,boundary:1,boxDollyCtx:1,boxZoomCtx:1,bufferCurve:1,buildBookmarkMenu:1,buildKeyframeMenu:1,button:1,buttonManip:1,CBG:1,cacheFile:1,cacheFileCombine:1,cacheFileMerge:1,cacheFileTrack:1,camera:1,cameraView:1,canCreateManip:1,canvas:1,capitalizeString:1,"catch":1,catchQuiet:1,ceil:1,changeSubdivComponentDisplayLevel:1,changeSubdivRegion:1,channelBox:1,character:1,characterMap:1,characterOutlineEditor:1,characterize:1,chdir:1,checkBox:1,checkBoxGrp:1,checkDefaultRenderGlobals:1,choice:1,circle:1,circularFillet:1,clamp:1,clear:1,clearCache:1,clip:1,clipEditor:1,clipEditorCurrentTimeCtx:1,clipSchedule:1,clipSchedulerOutliner:1,clipTrimBefore:1,closeCurve:1,closeSurface:1,cluster:1,cmdFileOutput:1,cmdScrollFieldExecuter:1,cmdScrollFieldReporter:1,cmdShell:1,coarsenSubdivSelectionList:1,collision:1,color:1,colorAtPoint:1,colorEditor:1,colorIndex:1,colorIndexSliderGrp:1,colorSliderButtonGrp:1,colorSliderGrp:1,columnLayout:1,commandEcho:1,commandLine:1,commandPort:1,compactHairSystem:1,componentEditor:1,compositingInterop:1,computePolysetVolume:1,condition:1,cone:1,confirmDialog:1,connectAttr:1,connectControl:1,connectDynamic:1,connectJoint:1,connectionInfo:1,constrain:1,constrainValue:1,constructionHistory:1,container:1,containsMultibyte:1,contextInfo:1,control:1,convertFromOldLayers:1,convertIffToPsd:1,convertLightmap:1,convertSolidTx:1,convertTessellation:1,convertUnit:1,copyArray:1,copyFlexor:1,copyKey:1,copySkinWeights:1,cos:1,cpButton:1,cpCache:1,cpClothSet:1,cpCollision:1,cpConstraint:1,cpConvClothToMesh:1,cpForces:1,cpGetSolverAttr:1,cpPanel:1,cpProperty:1,cpRigidCollisionFilter:1,cpSeam:1,cpSetEdit:1,cpSetSolverAttr:1,cpSolver:1,cpSolverTypes:1,cpTool:1,cpUpdateClothUVs:1,createDisplayLayer:1,createDrawCtx:1,createEditor:1,createLayeredPsdFile:1,createMotionField:1,createNewShelf:1,createNode:1,createRenderLayer:1,createSubdivRegion:1,cross:1,crossProduct:1,ctxAbort:1,ctxCompletion:1,ctxEditMode:1,ctxTraverse:1,currentCtx:1,currentTime:1,currentTimeCtx:1,currentUnit:1,currentUnit:1,curve:1,curveAddPtCtx:1,curveCVCtx:1,curveEPCtx:1,curveEditorCtx:1,curveIntersect:1,curveMoveEPCtx:1,curveOnSurface:1,curveSketchCtx:1,cutKey:1,cycleCheck:1,cylinder:1,dagPose:1,date:1,defaultLightListCheckBox:1,defaultNavigation:1,defineDataServer:1,defineVirtualDevice:1,deformer:1,deg_to_rad:1,"delete":1,deleteAttr:1,deleteShadingGroupsAndMaterials:1,deleteShelfTab:1,deleteUI:1,deleteUnusedBrushes:1,delrandstr:1,detachCurve:1,detachDeviceAttr:1,detachSurface:1,deviceEditor:1,devicePanel:1,dgInfo:1,dgdirty:1,dgeval:1,dgtimer:1,dimWhen:1,directKeyCtx:1,directionalLight:1,dirmap:1,dirname:1,disable:1,disconnectAttr:1,disconnectJoint:1,diskCache:1,displacementToPoly:1,displayAffected:1,displayColor:1,displayCull:1,displayLevelOfDetail:1,displayPref:1,displayRGBColor:1,displaySmoothness:1,displayStats:1,displayString:1,displaySurface:1,distanceDimContext:1,distanceDimension:1,doBlur:1,dolly:1,dollyCtx:1,dopeSheetEditor:1,dot:1,dotProduct:1,doubleProfileBirailSurface:1,drag:1,dragAttrContext:1,draggerContext:1,dropoffLocator:1,duplicate:1,duplicateCurve:1,duplicateSurface:1,dynCache:1,dynControl:1,dynExport:1,dynExpression:1,dynGlobals:1,dynPaintEditor:1,dynParticleCtx:1,dynPref:1,dynRelEdPanel:1,dynRelEditor:1,dynamicLoad:1,editAttrLimits:1,editDisplayLayerGlobals:1,editDisplayLayerMembers:1,editRenderLayerAdjustment:1,editRenderLayerGlobals:1,editRenderLayerMembers:1,editor:1,editorTemplate:1,effector:1,emit:1,emitter:1,enableDevice:1,encodeString:1,endString:1,endsWith:1,env:1,equivalent:1,equivalentTol:1,erf:1,error:1,"eval":1,"eval":1,evalDeferred:1,evalEcho:1,event:1,exactWorldBoundingBox:1,exclusiveLightCheckBox:1,exec:1,executeForEachObject:1,exists:1,exp:1,expression:1,expressionEditorListen:1,extendCurve:1,extendSurface:1,extrude:1,fcheck:1,fclose:1,feof:1,fflush:1,fgetline:1,fgetword:1,file:1,fileBrowserDialog:1,fileDialog:1,fileExtension:1,fileInfo:1,filetest:1,filletCurve:1,filter:1,filterCurve:1,filterExpand:1,filterStudioImport:1,findAllIntersections:1,findAnimCurves:1,findKeyframe:1,findMenuItem:1,findRelatedSkinCluster:1,finder:1,firstParentOf:1,fitBspline:1,flexor:1,floatEq:1,floatField:1,floatFieldGrp:1,floatScrollBar:1,floatSlider:1,floatSlider2:1,floatSliderButtonGrp:1,floatSliderGrp:1,floor:1,flow:1,fluidCacheInfo:1,fluidEmitter:1,fluidVoxelInfo:1,flushUndo:1,fmod:1,fontDialog:1,fopen:1,formLayout:1,format:1,fprint:1,frameLayout:1,fread:1,freeFormFillet:1,frewind:1,fromNativePath:1,fwrite:1,gamma:1,gauss:1,geometryConstraint:1,getApplicationVersionAsFloat:1,getAttr:1,getClassification:1,getDefaultBrush:1,getFileList:1,getFluidAttr:1,getInputDeviceRange:1,getMayaPanelTypes:1,getModifiers:1,getPanel:1,getParticleAttr:1,getPluginResource:1,getenv:1,getpid:1,glRender:1,glRenderEditor:1,globalStitch:1,gmatch:1,goal:1,gotoBindPose:1,grabColor:1,gradientControl:1,gradientControlNoAttr:1,graphDollyCtx:1,graphSelectContext:1,graphTrackCtx:1,gravity:1,grid:1,gridLayout:1,group:1,groupObjectsByName:1,HfAddAttractorToAS:1,HfAssignAS:1,HfBuildEqualMap:1,HfBuildFurFiles:1,HfBuildFurImages:1,HfCancelAFR:1,HfConnectASToHF:1,HfCreateAttractor:1,HfDeleteAS:1,HfEditAS:1,HfPerformCreateAS:1,HfRemoveAttractorFromAS:1,HfSelectAttached:1,HfSelectAttractors:1,HfUnAssignAS:1,hardenPointCurve:1,hardware:1,hardwareRenderPanel:1,headsUpDisplay:1,headsUpMessage:1,help:1,helpLine:1,hermite:1,hide:1,hilite:1,hitTest:1,hotBox:1,hotkey:1,hotkeyCheck:1,hsv_to_rgb:1,hudButton:1,hudSlider:1,hudSliderButton:1,hwReflectionMap:1,hwRender:1,hwRenderLoad:1,hyperGraph:1,hyperPanel:1,hyperShade:1,hypot:1,iconTextButton:1,iconTextCheckBox:1,iconTextRadioButton:1,iconTextRadioCollection:1,iconTextScrollList:1,iconTextStaticLabel:1,ikHandle:1,ikHandleCtx:1,ikHandleDisplayScale:1,ikSolver:1,ikSplineHandleCtx:1,ikSystem:1,ikSystemInfo:1,ikfkDisplayMethod:1,illustratorCurves:1,image:1,imfPlugins:1,inheritTransform:1,insertJoint:1,insertJointCtx:1,insertKeyCtx:1,insertKnotCurve:1,insertKnotSurface:1,instance:1,instanceable:1,instancer:1,intField:1,intFieldGrp:1,intScrollBar:1,intSlider:1,intSliderGrp:1,interToUI:1,internalVar:1,intersect:1,iprEngine:1,isAnimCurve:1,isConnected:1,isDirty:1,isParentOf:1,isSameObject:1,isTrue:1,isValidObjectName:1,isValidString:1,isValidUiName:1,isolateSelect:1,itemFilter:1,itemFilterAttr:1,itemFilterRender:1,itemFilterType:1,joint:1,jointCluster:1,jointCtx:1,jointDisplayScale:1,jointLattice:1,keyTangent:1,keyframe:1,keyframeOutliner:1,keyframeRegionCurrentTimeCtx:1,keyframeRegionDirectKeyCtx:1,keyframeRegionDollyCtx:1,keyframeRegionInsertKeyCtx:1,keyframeRegionMoveKeyCtx:1,keyframeRegionScaleKeyCtx:1,keyframeRegionSelectKeyCtx:1,keyframeRegionSetKeyCtx:1,keyframeRegionTrackCtx:1,keyframeStats:1,lassoContext:1,lattice:1,latticeDeformKeyCtx:1,launch:1,launchImageEditor:1,layerButton:1,layeredShaderPort:1,layeredTexturePort:1,layout:1,layoutDialog:1,lightList:1,lightListEditor:1,lightListPanel:1,lightlink:1,lineIntersection:1,linearPrecision:1,linstep:1,listAnimatable:1,listAttr:1,listCameras:1,listConnections:1,listDeviceAttachments:1,listHistory:1,listInputDeviceAxes:1,listInputDeviceButtons:1,listInputDevices:1,listMenuAnnotation:1,listNodeTypes:1,listPanelCategories:1,listRelatives:1,listSets:1,listTransforms:1,listUnselected:1,listerEditor:1,loadFluid:1,loadNewShelf:1,loadPlugin:1,loadPluginLanguageResources:1,loadPrefObjects:1,localizedPanelLabel:1,lockNode:1,loft:1,log:1,longNameOf:1,lookThru:1,ls:1,lsThroughFilter:1,lsType:1,lsUI:1,Mayatomr:1,mag:1,makeIdentity:1,makeLive:1,makePaintable:1,makeRoll:1,makeSingleSurface:1,makeTubeOn:1,makebot:1,manipMoveContext:1,manipMoveLimitsCtx:1,manipOptions:1,manipRotateContext:1,manipRotateLimitsCtx:1,manipScaleContext:1,manipScaleLimitsCtx:1,marker:1,match:1,max:1,memory:1,menu:1,menuBarLayout:1,menuEditor:1,menuItem:1,menuItemToShelf:1,menuSet:1,menuSetPref:1,messageLine:1,min:1,minimizeApp:1,mirrorJoint:1,modelCurrentTimeCtx:1,modelEditor:1,modelPanel:1,mouse:1,movIn:1,movOut:1,move:1,moveIKtoFK:1,moveKeyCtx:1,moveVertexAlongDirection:1,multiProfileBirailSurface:1,mute:1,nParticle:1,nameCommand:1,nameField:1,namespace:1,namespaceInfo:1,newPanelItems:1,newton:1,nodeCast:1,nodeIconButton:1,nodeOutliner:1,nodePreset:1,nodeType:1,noise:1,nonLinear:1,normalConstraint:1,normalize:1,nurbsBoolean:1,nurbsCopyUVSet:1,nurbsCube:1,nurbsEditUV:1,nurbsPlane:1,nurbsSelect:1,nurbsSquare:1,nurbsToPoly:1,nurbsToPolygonsPref:1,nurbsToSubdiv:1,nurbsToSubdivPref:1,nurbsUVSet:1,nurbsViewDirectionVector:1,objExists:1,objectCenter:1,objectLayer:1,objectType:1,objectTypeUI:1,obsoleteProc:1,oceanNurbsPreviewPlane:1,offsetCurve:1,offsetCurveOnSurface:1,offsetSurface:1,openGLExtension:1,openMayaPref:1,optionMenu:1,optionMenuGrp:1,optionVar:1,orbit:1,orbitCtx:1,orientConstraint:1,outlinerEditor:1,outlinerPanel:1,overrideModifier:1,paintEffectsDisplay:1,pairBlend:1,palettePort:1,paneLayout:1,panel:1,panelConfiguration:1,panelHistory:1,paramDimContext:1,paramDimension:1,paramLocator:1,parent:1,parentConstraint:1,particle:1,particleExists:1,particleInstancer:1,particleRenderInfo:1,partition:1,pasteKey:1,pathAnimation:1,pause:1,pclose:1,percent:1,performanceOptions:1,pfxstrokes:1,pickWalk:1,picture:1,pixelMove:1,planarSrf:1,plane:1,play:1,playbackOptions:1,playblast:1,plugAttr:1,plugNode:1,pluginInfo:1,pluginResourceUtil:1,pointConstraint:1,pointCurveConstraint:1,pointLight:1,pointMatrixMult:1,pointOnCurve:1,pointOnSurface:1,pointPosition:1,poleVectorConstraint:1,polyAppend:1,polyAppendFacetCtx:1,polyAppendVertex:1,polyAutoProjection:1,polyAverageNormal:1,polyAverageVertex:1,polyBevel:1,polyBlendColor:1,polyBlindData:1,polyBoolOp:1,polyBridgeEdge:1,polyCacheMonitor:1,polyCheck:1,polyChipOff:1,polyClipboard:1,polyCloseBorder:1,polyCollapseEdge:1,polyCollapseFacet:1,polyColorBlindData:1,polyColorDel:1,polyColorPerVertex:1,polyColorSet:1,polyCompare:1,polyCone:1,polyCopyUV:1,polyCrease:1,polyCreaseCtx:1,polyCreateFacet:1,polyCreateFacetCtx:1,polyCube:1,polyCut:1,polyCutCtx:1,polyCylinder:1,polyCylindricalProjection:1,polyDelEdge:1,polyDelFacet:1,polyDelVertex:1,polyDuplicateAndConnect:1,polyDuplicateEdge:1,polyEditUV:1,polyEditUVShell:1,polyEvaluate:1,polyExtrudeEdge:1,polyExtrudeFacet:1,polyExtrudeVertex:1,polyFlipEdge:1,polyFlipUV:1,polyForceUV:1,polyGeoSampler:1,polyHelix:1,polyInfo:1,polyInstallAction:1,polyLayoutUV:1,polyListComponentConversion:1,polyMapCut:1,polyMapDel:1,polyMapSew:1,polyMapSewMove:1,polyMergeEdge:1,polyMergeEdgeCtx:1,polyMergeFacet:1,polyMergeFacetCtx:1,polyMergeUV:1,polyMergeVertex:1,polyMirrorFace:1,polyMoveEdge:1,polyMoveFacet:1,polyMoveFacetUV:1,polyMoveUV:1,polyMoveVertex:1,polyNormal:1,polyNormalPerVertex:1,polyNormalizeUV:1,polyOptUvs:1,polyOptions:1,polyOutput:1,polyPipe:1,polyPlanarProjection:1,polyPlane:1,polyPlatonicSolid:1,polyPoke:1,polyPrimitive:1,polyPrism:1,polyProjection:1,polyPyramid:1,polyQuad:1,polyQueryBlindData:1,polyReduce:1,polySelect:1,polySelectConstraint:1,polySelectConstraintMonitor:1,polySelectCtx:1,polySelectEditCtx:1,polySeparate:1,polySetToFaceNormal:1,polySewEdge:1,polyShortestPathCtx:1,polySmooth:1,polySoftEdge:1,polySphere:1,polySphericalProjection:1,polySplit:1,polySplitCtx:1,polySplitEdge:1,polySplitRing:1,polySplitVertex:1,polyStraightenUVBorder:1,polySubdivideEdge:1,polySubdivideFacet:1,polyToSubdiv:1,polyTorus:1,polyTransfer:1,polyTriangulate:1,polyUVSet:1,polyUnite:1,polyWedgeFace:1,popen:1,popupMenu:1,pose:1,pow:1,preloadRefEd:1,print:1,progressBar:1,progressWindow:1,projFileViewer:1,projectCurve:1,projectTangent:1,projectionContext:1,projectionManip:1,promptDialog:1,propModCtx:1,propMove:1,psdChannelOutliner:1,psdEditTextureFile:1,psdExport:1,psdTextureFile:1,putenv:1,pwd:1,python:1,querySubdiv:1,quit:1,rad_to_deg:1,radial:1,radioButton:1,radioButtonGrp:1,radioCollection:1,radioMenuItemCollection:1,rampColorPort:1,rand:1,randomizeFollicles:1,randstate:1,rangeControl:1,readTake:1,rebuildCurve:1,rebuildSurface:1,recordAttr:1,recordDevice:1,redo:1,reference:1,referenceEdit:1,referenceQuery:1,refineSubdivSelectionList:1,refresh:1,refreshAE:1,registerPluginResource:1,rehash:1,reloadImage:1,removeJoint:1,removeMultiInstance:1,removePanelCategory:1,rename:1,renameAttr:1,renameSelectionList:1,renameUI:1,render:1,renderGlobalsNode:1,renderInfo:1,renderLayerButton:1,renderLayerParent:1,renderLayerPostProcess:1,renderLayerUnparent:1,renderManip:1,renderPartition:1,renderQualityNode:1,renderSettings:1,renderThumbnailUpdate:1,renderWindowEditor:1,renderWindowSelectContext:1,renderer:1,reorder:1,reorderDeformers:1,requires:1,reroot:1,resampleFluid:1,resetAE:1,resetPfxToPolyCamera:1,resetTool:1,resolutionNode:1,retarget:1,reverseCurve:1,reverseSurface:1,revolve:1,rgb_to_hsv:1,rigidBody:1,rigidSolver:1,roll:1,rollCtx:1,rootOf:1,rot:1,rotate:1,rotationInterpolation:1,roundConstantRadius:1,rowColumnLayout:1,rowLayout:1,runTimeCommand:1,runup:1,sampleImage:1,saveAllShelves:1,saveAttrPreset:1,saveFluid:1,saveImage:1,saveInitialState:1,saveMenu:1,savePrefObjects:1,savePrefs:1,saveShelf:1,saveToolSettings:1,scale:1,scaleBrushBrightness:1,scaleComponents:1,scaleConstraint:1,scaleKey:1,scaleKeyCtx:1,sceneEditor:1,sceneUIReplacement:1,scmh:1,scriptCtx:1,scriptEditorInfo:1,scriptJob:1,scriptNode:1,scriptTable:1,scriptToShelf:1,scriptedPanel:1,scriptedPanelType:1,scrollField:1,scrollLayout:1,sculpt:1,searchPathArray:1,seed:1,selLoadSettings:1,select:1,selectContext:1,selectCurveCV:1,selectKey:1,selectKeyCtx:1,selectKeyframeRegionCtx:1,selectMode:1,selectPref:1,selectPriority:1,selectType:1,selectedNodes:1,selectionConnection:1,separator:1,setAttr:1,setAttrEnumResource:1,setAttrMapping:1,setAttrNiceNameResource:1,setConstraintRestPosition:1,setDefaultShadingGroup:1,setDrivenKeyframe:1,setDynamic:1,setEditCtx:1,setEditor:1,setFluidAttr:1,setFocus:1,setInfinity:1,setInputDeviceMapping:1,setKeyCtx:1,setKeyPath:1,setKeyframe:1,setKeyframeBlendshapeTargetWts:1,setMenuMode:1,setNodeNiceNameResource:1,setNodeTypeFlag:1,setParent:1,setParticleAttr:1,setPfxToPolyCamera:1,setPluginResource:1,setProject:1,setStampDensity:1,setStartupMessage:1,setState:1,setToolTo:1,setUITemplate:1,setXformManip:1,sets:1,shadingConnection:1,shadingGeometryRelCtx:1,shadingLightRelCtx:1,shadingNetworkCompare:1,shadingNode:1,shapeCompare:1,shelfButton:1,shelfLayout:1,shelfTabLayout:1,shellField:1,shortNameOf:1,showHelp:1,showHidden:1,showManipCtx:1,showSelectionInTitle:1,showShadingGroupAttrEditor:1,showWindow:1,sign:1,simplify:1,sin:1,singleProfileBirailSurface:1,size:1,sizeBytes:1,skinCluster:1,skinPercent:1,smoothCurve:1,smoothTangentSurface:1,smoothstep:1,snap2to2:1,snapKey:1,snapMode:1,snapTogetherCtx:1,snapshot:1,soft:1,softMod:1,softModCtx:1,sort:1,sound:1,soundControl:1,source:1,spaceLocator:1,sphere:1,sphrand:1,spotLight:1,spotLightPreviewPort:1,spreadSheetEditor:1,spring:1,sqrt:1,squareSurface:1,srtContext:1,stackTrace:1,startString:1,startsWith:1,stitchAndExplodeShell:1,stitchSurface:1,stitchSurfacePoints:1,strcmp:1,stringArrayCatenate:1,stringArrayContains:1,stringArrayCount:1,stringArrayInsertAtIndex:1,stringArrayIntersector:1,stringArrayRemove:1,stringArrayRemoveAtIndex:1,stringArrayRemoveDuplicates:1,stringArrayRemoveExact:1,stringArrayToString:1,stringToStringArray:1,strip:1,stripPrefixFromName:1,stroke:1,subdAutoProjection:1,subdCleanTopology:1,subdCollapse:1,subdDuplicateAndConnect:1,subdEditUV:1,subdListComponentConversion:1,subdMapCut:1,subdMapSewMove:1,subdMatchTopology:1,subdMirror:1,subdToBlind:1,subdToPoly:1,subdTransferUVsToCache:1,subdiv:1,subdivCrease:1,subdivDisplaySmoothness:1,substitute:1,substituteAllString:1,substituteGeometry:1,substring:1,surface:1,surfaceSampler:1,surfaceShaderList:1,swatchDisplayPort:1,switchTable:1,symbolButton:1,symbolCheckBox:1,sysFile:1,system:1,tabLayout:1,tan:1,tangentConstraint:1,texLatticeDeformContext:1,texManipContext:1,texMoveContext:1,texMoveUVShellContext:1,texRotateContext:1,texScaleContext:1,texSelectContext:1,texSelectShortestPathCtx:1,texSmudgeUVContext:1,texWinToolCtx:1,text:1,textCurves:1,textField:1,textFieldButtonGrp:1,textFieldGrp:1,textManip:1,textScrollList:1,textToShelf:1,textureDisplacePlane:1,textureHairColor:1,texturePlacementContext:1,textureWindow:1,threadCount:1,threePointArcCtx:1,timeControl:1,timePort:1,timerX:1,toNativePath:1,toggle:1,toggleAxis:1,toggleWindowVisibility:1,tokenize:1,tokenizeList:1,tolerance:1,tolower:1,toolButton:1,toolCollection:1,toolDropped:1,toolHasOptions:1,toolPropertyWindow:1,torus:1,toupper:1,trace:1,track:1,trackCtx:1,transferAttributes:1,transformCompare:1,transformLimits:1,translator:1,trim:1,trunc:1,truncateFluidCache:1,truncateHairCache:1,tumble:1,tumbleCtx:1,turbulence:1,twoPointArcCtx:1,uiRes:1,uiTemplate:1,unassignInputDevice:1,undo:1,undoInfo:1,ungroup:1,uniform:1,unit:1,unloadPlugin:1,untangleUV:1,untitledFileName:1,untrim:1,upAxis:1,updateAE:1,userCtx:1,uvLink:1,uvSnapshot:1,validateShelfName:1,vectorize:1,view2dToolCtx:1,viewCamera:1,viewClipPlane:1,viewFit:1,viewHeadOn:1,viewLookAt:1,viewManip:1,viewPlace:1,viewSet:1,visor:1,volumeAxis:1,vortex:1,waitCursor:1,warning:1,webBrowser:1,webBrowserPrefs:1,whatIs:1,window:1,windowPref:1,wire:1,wireContext:1,workspace:1,wrinkle:1,wrinkleContext:1,writeTake:1,xbmLangPathList:1,xform:1}},m:[hljs.CNM,hljs.ASM,hljs.QSM,hljs.BE,{cN:"string",b:"`",e:"`",c:["escape"]},{cN:"variable",b:"\\$\\d",e:"^",r:5},{cN:"variable",b:"[\\$\\%\\@\\*](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)",e:"^"},hljs.CLCM,hljs.CBLCLM]};hljs.LANGUAGES.dos={cI:true,dM:{l:[hljs.IR],c:["envvar","number","comment"],k:{flow:{"if":1,"else":1,"goto":1,"for":1,"in":1,"do":1,call:1,exit:1,not:1,exist:1,errorlevel:1,defined:1,equ:1,neq:1,lss:1,leq:1,gtr:1,geq:1},keyword:{shift:1,cd:1,dir:1,echo:1,setlocal:1,endlocal:1,set:1,pause:1,copy:1},stream:{prn:1,nul:1,lpt3:1,lpt2:1,lpt1:1,con:1,com4:1,com3:1,com2:1,com1:1,aux:1},winutils:{ping:1,net:1,ipconfig:1,taskkill:1,xcopy:1,ren:1,del:1}}},m:[{cN:"number",b:"\\b\\d+",e:"^",r:0},{cN:"comment",b:"@?rem",e:"$"},{cN:"envvar",b:"%[^ ]+?%",e:"^"}]};hljs.LANGUAGES.apache={cI:true,dM:{l:[hljs.IR],c:["comment","sqbracket","cbracket","number","tag","string"],k:{keyword:{acceptfilter:1,acceptmutex:1,acceptpathinfo:1,accessfilename:1,action:1,addalt:1,addaltbyencoding:1,addaltbytype:1,addcharset:1,adddefaultcharset:1,adddescription:1,addencoding:1,addhandler:1,addicon:1,addiconbyencoding:1,addiconbytype:1,addinputfilter:1,addlanguage:1,addmoduleinfo:1,addoutputfilter:1,addoutputfilterbytype:1,addtype:1,alias:1,aliasmatch:1,allow:1,allowconnect:1,allowencodedslashes:1,allowoverride:1,anonymous:1,anonymous_logemail:1,anonymous_mustgiveemail:1,anonymous_nouserid:1,anonymous_verifyemail:1,authbasicauthoritative:1,authbasicprovider:1,authdbduserpwquery:1,authdbduserrealmquery:1,authdbmgroupfile:1,authdbmtype:1,authdbmuserfile:1,authdefaultauthoritative:1,authdigestalgorithm:1,authdigestdomain:1,authdigestnccheck:1,authdigestnonceformat:1,authdigestnoncelifetime:1,authdigestprovider:1,authdigestqop:1,authdigestshmemsize:1,authgroupfile:1,authldapbinddn:1,authldapbindpassword:1,authldapcharsetconfig:1,authldapcomparednonserver:1,authldapdereferencealiases:1,authldapgroupattribute:1,authldapgroupattributeisdn:1,authldapremoteuserattribute:1,authldapremoteuserisdn:1,authldapurl:1,authname:1,authnprovideralias:1,authtype:1,authuserfile:1,authzdbmauthoritative:1,authzdbmtype:1,authzdefaultauthoritative:1,authzgroupfileauthoritative:1,authzldapauthoritative:1,authzownerauthoritative:1,authzuserauthoritative:1,balancermember:1,browsermatch:1,browsermatchnocase:1,bufferedlogs:1,cachedefaultexpire:1,cachedirlength:1,cachedirlevels:1,cachedisable:1,cacheenable:1,cachefile:1,cacheignorecachecontrol:1,cacheignoreheaders:1,cacheignorenolastmod:1,cacheignorequerystring:1,cachelastmodifiedfactor:1,cachemaxexpire:1,cachemaxfilesize:1,cacheminfilesize:1,cachenegotiateddocs:1,cacheroot:1,cachestorenostore:1,cachestoreprivate:1,cgimapextension:1,charsetdefault:1,charsetoptions:1,charsetsourceenc:1,checkcaseonly:1,checkspelling:1,chrootdir:1,contentdigest:1,cookiedomain:1,cookieexpires:1,cookielog:1,cookiename:1,cookiestyle:1,cookietracking:1,coredumpdirectory:1,customlog:1,dav:1,davdepthinfinity:1,davgenericlockdb:1,davlockdb:1,davmintimeout:1,dbdexptime:1,dbdkeep:1,dbdmax:1,dbdmin:1,dbdparams:1,dbdpersist:1,dbdpreparesql:1,dbdriver:1,defaulticon:1,defaultlanguage:1,defaulttype:1,deflatebuffersize:1,deflatecompressionlevel:1,deflatefilternote:1,deflatememlevel:1,deflatewindowsize:1,deny:1,directoryindex:1,directorymatch:1,directoryslash:1,documentroot:1,dumpioinput:1,dumpiologlevel:1,dumpiooutput:1,enableexceptionhook:1,enablemmap:1,enablesendfile:1,errordocument:1,errorlog:1,example:1,expiresactive:1,expiresbytype:1,expiresdefault:1,extendedstatus:1,extfilterdefine:1,extfilteroptions:1,fileetag:1,filterchain:1,filterdeclare:1,filterprotocol:1,filterprovider:1,filtertrace:1,forcelanguagepriority:1,forcetype:1,forensiclog:1,gracefulshutdowntimeout:1,group:1,header:1,headername:1,hostnamelookups:1,identitycheck:1,identitychecktimeout:1,imapbase:1,imapdefault:1,imapmenu:1,include:1,indexheadinsert:1,indexignore:1,indexoptions:1,indexorderdefault:1,indexstylesheet:1,isapiappendlogtoerrors:1,isapiappendlogtoquery:1,isapicachefile:1,isapifakeasync:1,isapilognotsupported:1,isapireadaheadbuffer:1,keepalive:1,keepalivetimeout:1,languagepriority:1,ldapcacheentries:1,ldapcachettl:1,ldapconnectiontimeout:1,ldapopcacheentries:1,ldapopcachettl:1,ldapsharedcachefile:1,ldapsharedcachesize:1,ldaptrustedclientcert:1,ldaptrustedglobalcert:1,ldaptrustedmode:1,ldapverifyservercert:1,limitinternalrecursion:1,limitrequestbody:1,limitrequestfields:1,limitrequestfieldsize:1,limitrequestline:1,limitxmlrequestbody:1,listen:1,listenbacklog:1,loadfile:1,loadmodule:1,lockfile:1,logformat:1,loglevel:1,maxclients:1,maxkeepaliverequests:1,maxmemfree:1,maxrequestsperchild:1,maxrequestsperthread:1,maxspareservers:1,maxsparethreads:1,maxthreads:1,mcachemaxobjectcount:1,mcachemaxobjectsize:1,mcachemaxstreamingbuffer:1,mcacheminobjectsize:1,mcacheremovalalgorithm:1,mcachesize:1,metadir:1,metafiles:1,metasuffix:1,mimemagicfile:1,minspareservers:1,minsparethreads:1,mmapfile:1,mod_gzip_on:1,mod_gzip_add_header_count:1,mod_gzip_keep_workfiles:1,mod_gzip_dechunk:1,mod_gzip_min_http:1,mod_gzip_minimum_file_size:1,mod_gzip_maximum_file_size:1,mod_gzip_maximum_inmem_size:1,mod_gzip_temp_dir:1,mod_gzip_item_include:1,mod_gzip_item_exclude:1,mod_gzip_command_version:1,mod_gzip_can_negotiate:1,mod_gzip_handle_methods:1,mod_gzip_static_suffix:1,mod_gzip_send_vary:1,mod_gzip_update_static:1,modmimeusepathinfo:1,multiviewsmatch:1,namevirtualhost:1,noproxy:1,nwssltrustedcerts:1,nwsslupgradeable:1,options:1,order:1,passenv:1,pidfile:1,protocolecho:1,proxybadheader:1,proxyblock:1,proxydomain:1,proxyerroroverride:1,proxyftpdircharset:1,proxyiobuffersize:1,proxymaxforwards:1,proxypass:1,proxypassinterpolateenv:1,proxypassmatch:1,proxypassreverse:1,proxypassreversecookiedomain:1,proxypassreversecookiepath:1,proxypreservehost:1,proxyreceivebuffersize:1,proxyremote:1,proxyremotematch:1,proxyrequests:1,proxyset:1,proxystatus:1,proxytimeout:1,proxyvia:1,readmename:1,receivebuffersize:1,redirect:1,redirectmatch:1,redirectpermanent:1,redirecttemp:1,removecharset:1,removeencoding:1,removehandler:1,removeinputfilter:1,removelanguage:1,removeoutputfilter:1,removetype:1,requestheader:1,require:2,rewritebase:1,rewritecond:10,rewriteengine:1,rewritelock:1,rewritelog:1,rewriteloglevel:1,rewritemap:1,rewriteoptions:1,rewriterule:10,rlimitcpu:1,rlimitmem:1,rlimitnproc:1,satisfy:1,scoreboardfile:1,script:1,scriptalias:1,scriptaliasmatch:1,scriptinterpretersource:1,scriptlog:1,scriptlogbuffer:1,scriptloglength:1,scriptsock:1,securelisten:1,seerequesttail:1,sendbuffersize:1,serveradmin:1,serveralias:1,serverlimit:1,servername:1,serverpath:1,serverroot:1,serversignature:1,servertokens:1,setenv:1,setenvif:1,setenvifnocase:1,sethandler:1,setinputfilter:1,setoutputfilter:1,ssienableaccess:1,ssiendtag:1,ssierrormsg:1,ssistarttag:1,ssitimeformat:1,ssiundefinedecho:1,sslcacertificatefile:1,sslcacertificatepath:1,sslcadnrequestfile:1,sslcadnrequestpath:1,sslcarevocationfile:1,sslcarevocationpath:1,sslcertificatechainfile:1,sslcertificatefile:1,sslcertificatekeyfile:1,sslciphersuite:1,sslcryptodevice:1,sslengine:1,sslhonorciperorder:1,sslmutex:1,ssloptions:1,sslpassphrasedialog:1,sslprotocol:1,sslproxycacertificatefile:1,sslproxycacertificatepath:1,sslproxycarevocationfile:1,sslproxycarevocationpath:1,sslproxyciphersuite:1,sslproxyengine:1,sslproxymachinecertificatefile:1,sslproxymachinecertificatepath:1,sslproxyprotocol:1,sslproxyverify:1,sslproxyverifydepth:1,sslrandomseed:1,sslrequire:1,sslrequiressl:1,sslsessioncache:1,sslsessioncachetimeout:1,sslusername:1,sslverifyclient:1,sslverifydepth:1,startservers:1,startthreads:1,substitute:1,suexecusergroup:1,threadlimit:1,threadsperchild:1,threadstacksize:1,timeout:1,traceenable:1,transferlog:1,typesconfig:1,unsetenv:1,usecanonicalname:1,usecanonicalphysicalport:1,user:1,userdir:1,virtualdocumentroot:1,virtualdocumentrootip:1,virtualscriptalias:1,virtualscriptaliasip:1,win32disableacceptex:1,xbithack:1},literal:{on:1,off:1}}},m:[hljs.HCM,{cN:"tag",b:"</?",e:">"},{cN:"sqbracket",b:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["cbracket","number"]},{cN:"number",b:"[\\$%]\\d+",e:"^"},hljs.QSM,hljs.BE]};hljs.LANGUAGES.cpp=function(){var a={keyword:{"false":1,"int":1,"float":1,"while":1,"private":1,"char":1,"catch":1,"export":1,virtual:1,operator:2,sizeof:2,dynamic_cast:2,typedef:2,const_cast:2,"const":1,struct:1,"for":1,static_cast:2,union:1,namespace:1,unsigned:1,"long":1,"throw":1,"volatile":2,"static":1,"protected":1,bool:1,template:1,mutable:1,"if":1,"public":1,friend:2,"do":1,"return":1,"goto":1,auto:1,"void":2,"enum":1,"else":1,"break":1,"new":1,extern:1,using:1,"true":1,"class":1,asm:1,"case":1,typeid:1,"short":1,reinterpret_cast:2,"default":1,"double":1,register:1,explicit:1,signed:1,typename:1,"try":1,"this":1,"switch":1,"continue":1,wchar_t:1,inline:1,"delete":1},built_in:{std:1,string:1,cin:1,cout:1,cerr:1,clog:1,stringstream:1,istringstream:1,ostringstream:1,auto_ptr:1,deque:1,list:1,queue:1,stack:1,vector:1,map:1,set:1,bitset:1,multiset:1,multimap:1}};return{dM:{l:[hljs.UIR],i:"</",c:["comment","string","number","preprocessor","stl_container"],k:a},m:[hljs.CLCM,hljs.CBLCLM,hljs.CNM,hljs.QSM,hljs.BE,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},{cN:"preprocessor",b:"#",e:"$"},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap)\\s*<",e:">",c:["stl_container"],l:[hljs.UIR],k:a,r:10}]}}();hljs.LANGUAGES.parser3={dM:{c:["comment","preprocessor","title","variable","keyword","number"],subLanguage:"html"},cI:false,m:[{cN:"comment",b:"^#",e:"$"},{cN:"comment",c:["commented_block"],b:"\\^rem{",e:"}",r:10},{cN:"commented_block",c:["commented_block"],b:"{",e:"}",nM:true},{cN:"preprocessor",b:"^@(?:BASE|USE|CLASS|OPTIONS)$",e:"^",r:10},{cN:"title",b:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$",e:"^"},{cN:"variable",b:"\\$\\{?[\\w\\-\\.\\:]+\\}?",e:"^"},{cN:"keyword",b:"\\^[\\w\\-\\.\\:]+",e:"^"},{cN:"number",b:"\\^#[0-9a-fA-F]+",e:"^"},hljs.CNM]}; \ No newline at end of file
diff --git a/deps/highlight.js/highlight_src.js b/deps/highlight.js/highlight_src.js
new file mode 100644
index 0000000..be695d6
--- /dev/null
+++ b/deps/highlight.js/highlight_src.js
@@ -0,0 +1,603 @@
+/*
+Syntax highlighting with language autodetection.
+http://softwaremaniacs.org/soft/highlight/
+*/
+
+var hljs = new function() {
+ var LANGUAGES = {}
+ // selected_languages is used to support legacy mode of selecting languages
+ // available for highlighting by passing them as arguments into
+ // initHighlighting function. Currently the whole library is expected to
+ // contain only those language definitions that are actually get used.
+ var selected_languages = {};
+
+ /* Utility functions */
+
+ function escape(value) {
+ return value.replace(/&/gm, '&amp;').replace(/</gm, '&lt;').replace(/>/gm, '&gt;');
+ }
+
+ function contains(array, item) {
+ if (!array)
+ return false;
+ for (var i = 0; i < array.length; i++)
+ if (array[i] == item)
+ return true;
+ return false;
+ }
+
+ function langRe(language, value, global) {
+ var mode = 'm' + (language.case_insensitive ? 'i' : '') + (global ? 'g' : '');
+ return new RegExp(value, mode);
+ }
+
+ function findCode(pre) {
+ for (var i = 0; i < pre.childNodes.length; i++) {
+ node = pre.childNodes[i];
+ if (node.nodeName == 'CODE')
+ return node;
+ if (!(node.nodeType == 3 && node.nodeValue.match(/\s+/)))
+ return null;
+ }
+ }
+
+ function blockText(block) {
+ var result = '';
+ for (var i = 0; i < block.childNodes.length; i++)
+ if (block.childNodes[i].nodeType == 3)
+ result += block.childNodes[i].nodeValue;
+ else if (block.childNodes[i].nodeName == 'BR')
+ result += '\n';
+ else
+ result += blockText(block.childNodes[i]);
+ return result;
+ }
+
+ function blockLanguage(block) {
+ var classes = block.className.split(/\s+/)
+ classes = classes.concat(block.parentNode.className.split(/\s+/));
+ for (var i = 0; i < classes.length; i++) {
+ var class_ = classes[i].replace(/^language-/, '');
+ if (class_ == 'no-highlight') {
+ throw 'No highlight'
+ }
+ if (LANGUAGES[class_]) {
+ return class_;
+ }
+ }
+ }
+
+ /* Stream merging */
+
+ function nodeStream(node) {
+ var result = [];
+ (function (node, offset) {
+ for (var i = 0; i < node.childNodes.length; i++) {
+ if (node.childNodes[i].nodeType == 3)
+ offset += node.childNodes[i].nodeValue.length;
+ else if (node.childNodes[i].nodeName == 'BR')
+ offset += 1
+ else {
+ result.push({
+ event: 'start',
+ offset: offset,
+ node: node.childNodes[i]
+ });
+ offset = arguments.callee(node.childNodes[i], offset)
+ result.push({
+ event: 'stop',
+ offset: offset,
+ node: node.childNodes[i]
+ });
+ }
+ }
+ return offset;
+ })(node, 0);
+ return result;
+ }
+
+ function mergeStreams(stream1, stream2, value) {
+ var processed = 0;
+ var result = '';
+ var nodeStack = [];
+
+ function selectStream() {
+ if (stream1.length && stream2.length) {
+ if (stream1[0].offset != stream2[0].offset)
+ return (stream1[0].offset < stream2[0].offset) ? stream1 : stream2;
+ else
+ return (stream1[0].event == 'start' && stream2[0].event == 'stop') ? stream2 : stream1;
+ } else {
+ return stream1.length ? stream1 : stream2;
+ }
+ }
+
+ function open(node) {
+ var result = '<' + node.nodeName.toLowerCase();
+ for (var i = 0; i < node.attributes.length; i++) {
+ var attribute = node.attributes[i];
+ result += ' ' + attribute.nodeName.toLowerCase();
+ if (attribute.nodeValue != undefined) {
+ result += '="' + escape(attribute.nodeValue) + '"';
+ }
+ }
+ return result + '>';
+ }
+
+ function close(node) {
+ return '</' + node.nodeName.toLowerCase() + '>';
+ }
+
+ while (stream1.length || stream2.length) {
+ var current = selectStream().splice(0, 1)[0];
+ result += escape(value.substr(processed, current.offset - processed));
+ processed = current.offset;
+ if ( current.event == 'start') {
+ result += open(current.node);
+ nodeStack.push(current.node);
+ } else if (current.event == 'stop') {
+ var i = nodeStack.length;
+ do {
+ i--;
+ var node = nodeStack[i];
+ result += close(node);
+ } while (node != current.node);
+ nodeStack.splice(i, 1);
+ while (i < nodeStack.length) {
+ result += open(nodeStack[i]);
+ i++;
+ }
+ }
+ }
+ result += value.substr(processed);
+ return result;
+ }
+
+ /* Core highlighting function */
+
+ function highlight(language_name, value) {
+ function compileSubModes(mode, language) {
+ mode.sub_modes = [];
+ for (var i = 0; i < mode.contains.length; i++) {
+ for (var j = 0; j < language.modes.length; j++) {
+ if (language.modes[j].className == mode.contains[i]) {
+ mode.sub_modes[mode.sub_modes.length] = language.modes[j];
+ }
+ }
+ }
+ }
+
+ function subMode(lexem, mode) {
+ if (!mode.contains) {
+ return null;
+ }
+ if (!mode.sub_modes) {
+ compileSubModes(mode, language);
+ }
+ for (var i = 0; i < mode.sub_modes.length; i++) {
+ if (mode.sub_modes[i].beginRe.test(lexem)) {
+ return mode.sub_modes[i];
+ }
+ }
+ return null;
+ }
+
+ function endOfMode(mode_index, lexem) {
+ if (modes[mode_index].end && modes[mode_index].endRe.test(lexem))
+ return 1;
+ if (modes[mode_index].endsWithParent) {
+ var level = endOfMode(mode_index - 1, lexem);
+ return level ? level + 1 : 0;
+ }
+ return 0;
+ }
+
+ function isIllegal(lexem, mode) {
+ return mode.illegalRe && mode.illegalRe.test(lexem);
+ }
+
+ function compileTerminators(mode, language) {
+ var terminators = [];
+
+ function addTerminator(re) {
+ if (!contains(terminators, re)) {
+ terminators[terminators.length] = re;
+ }
+ }
+
+ if (mode.contains)
+ for (var i = 0; i < language.modes.length; i++) {
+ if (contains(mode.contains, language.modes[i].className)) {
+ addTerminator(language.modes[i].begin);
+ }
+ }
+
+ var index = modes.length - 1;
+ do {
+ if (modes[index].end) {
+ addTerminator(modes[index].end);
+ }
+ index--;
+ } while (modes[index + 1].endsWithParent);
+
+ if (mode.illegal) {
+ addTerminator(mode.illegal);
+ }
+
+ var terminator_re = '(' + terminators[0];
+ for (var i = 0; i < terminators.length; i++)
+ terminator_re += '|' + terminators[i];
+ terminator_re += ')';
+ return langRe(language, terminator_re);
+ }
+
+ function eatModeChunk(value, index) {
+ var mode = modes[modes.length - 1];
+ if (!mode.terminators) {
+ mode.terminators = compileTerminators(mode, language);
+ }
+ value = value.substr(index);
+ var match = mode.terminators.exec(value);
+ if (!match)
+ return [value, '', true];
+ if (match.index == 0)
+ return ['', match[0], false];
+ else
+ return [value.substr(0, match.index), match[0], false];
+ }
+
+ function keywordMatch(mode, match) {
+ var match_str = language.case_insensitive ? match[0].toLowerCase() : match[0]
+ for (var className in mode.keywordGroups) {
+ if (!mode.keywordGroups.hasOwnProperty(className))
+ continue;
+ var value = mode.keywordGroups[className].hasOwnProperty(match_str);
+ if (value)
+ return [className, value];
+ }
+ return false;
+ }
+
+ function processKeywords(buffer, mode) {
+ if (!mode.keywords || !mode.lexems)
+ return escape(buffer);
+ if (!mode.lexemsRe) {
+ var lexems_re = '(' + mode.lexems[0];
+ for (var i = 1; i < mode.lexems.length; i++)
+ lexems_re += '|' + mode.lexems[i];
+ lexems_re += ')';
+ mode.lexemsRe = langRe(language, lexems_re, true);
+ }
+ var result = '';
+ var last_index = 0;
+ mode.lexemsRe.lastIndex = 0;
+ var match = mode.lexemsRe.exec(buffer);
+ while (match) {
+ result += escape(buffer.substr(last_index, match.index - last_index));
+ var keyword_match = keywordMatch(mode, match);
+ if (keyword_match) {
+ keyword_count += keyword_match[1];
+ result += '<span class="'+ keyword_match[0] +'">' + escape(match[0]) + '</span>';
+ } else {
+ result += escape(match[0]);
+ }
+ last_index = mode.lexemsRe.lastIndex;
+ match = mode.lexemsRe.exec(buffer);
+ }
+ result += escape(buffer.substr(last_index, buffer.length - last_index));
+ return result;
+ }
+
+ function processBuffer(buffer, mode) {
+ if (mode.subLanguage && selected_languages[mode.subLanguage]) {
+ var result = highlight(mode.subLanguage, buffer);
+ keyword_count += result.keyword_count;
+ relevance += result.relevance;
+ return result.value;
+ } else {
+ return processKeywords(buffer, mode);
+ }
+ }
+
+ function startNewMode(mode, lexem) {
+ var markup = mode.noMarkup?'':'<span class="' + mode.displayClassName + '">';
+ if (mode.returnBegin) {
+ result += markup;
+ mode.buffer = '';
+ } else if (mode.excludeBegin) {
+ result += escape(lexem) + markup;
+ mode.buffer = '';
+ } else {
+ result += markup;
+ mode.buffer = lexem;
+ }
+ modes[modes.length] = mode;
+ }
+
+ function processModeInfo(buffer, lexem, end) {
+ var current_mode = modes[modes.length - 1];
+ if (end) {
+ result += processBuffer(current_mode.buffer + buffer, current_mode);
+ return false;
+ }
+
+ var new_mode = subMode(lexem, current_mode);
+ if (new_mode) {
+ result += processBuffer(current_mode.buffer + buffer, current_mode);
+ startNewMode(new_mode, lexem);
+ relevance += new_mode.relevance;
+ return new_mode.returnBegin;
+ }
+
+ var end_level = endOfMode(modes.length - 1, lexem);
+ if (end_level) {
+ var markup = current_mode.noMarkup?'':'</span>';
+ if (current_mode.returnEnd) {
+ result += processBuffer(current_mode.buffer + buffer, current_mode) + markup;
+ } else if (current_mode.excludeEnd) {
+ result += processBuffer(current_mode.buffer + buffer, current_mode) + markup + escape(lexem);
+ } else {
+ result += processBuffer(current_mode.buffer + buffer + lexem, current_mode) + markup;
+ }
+ while (end_level > 1) {
+ markup = modes[modes.length - 2].noMarkup?'':'</span>';
+ result += markup;
+ end_level--;
+ modes.length--;
+ }
+ modes.length--;
+ modes[modes.length - 1].buffer = '';
+ if (current_mode.starts) {
+ for (var i = 0; i < language.modes.length; i++) {
+ if (language.modes[i].className == current_mode.starts) {
+ startNewMode(language.modes[i], '');
+ break;
+ }
+ }
+ }
+ return current_mode.returnEnd;
+ }
+
+ if (isIllegal(lexem, current_mode))
+ throw 'Illegal';
+ }
+
+ var language = LANGUAGES[language_name];
+ var modes = [language.defaultMode];
+ var relevance = 0;
+ var keyword_count = 0;
+ var result = '';
+ try {
+ var index = 0;
+ language.defaultMode.buffer = '';
+ do {
+ var mode_info = eatModeChunk(value, index);
+ var return_lexem = processModeInfo(mode_info[0], mode_info[1], mode_info[2]);
+ index += mode_info[0].length;
+ if (!return_lexem) {
+ index += mode_info[1].length;
+ }
+ } while (!mode_info[2]);
+ if(modes.length > 1)
+ throw 'Illegal';
+ return {
+ relevance: relevance,
+ keyword_count: keyword_count,
+ value: result
+ }
+ } catch (e) {
+ if (e == 'Illegal') {
+ return {
+ relevance: 0,
+ keyword_count: 0,
+ value: escape(value)
+ }
+ } else {
+ throw e;
+ }
+ }
+ }
+
+ /* Initialization */
+
+ function compileModes() {
+ for (var i in LANGUAGES) {
+ if (!LANGUAGES.hasOwnProperty(i))
+ continue;
+ var language = LANGUAGES[i];
+ for (var j = 0; j < language.modes.length; j++) {
+ var mode = language.modes[j];
+ if (mode.begin)
+ mode.beginRe = langRe(language, '^' + mode.begin);
+ if (mode.end)
+ mode.endRe = langRe(language, '^' + mode.end);
+ if (mode.illegal)
+ mode.illegalRe = langRe(language, '^(?:' + mode.illegal + ')');
+ language.defaultMode.illegalRe = langRe(language, '^(?:' + language.defaultMode.illegal + ')');
+ if (mode.relevance == undefined) {
+ mode.relevance = 1;
+ }
+ if (!mode.displayClassName) {
+ mode.displayClassName = mode.className;
+ }
+ }
+ }
+ }
+
+ function compileKeywords() {
+
+ function compileModeKeywords(mode) {
+ if (!mode.keywordGroups) {
+ for (var key in mode.keywords) {
+ if (!mode.keywords.hasOwnProperty(key))
+ continue;
+ if (mode.keywords[key] instanceof Object)
+ mode.keywordGroups = mode.keywords;
+ else
+ mode.keywordGroups = {'keyword': mode.keywords};
+ break;
+ }
+ }
+ }
+
+ for (var i in LANGUAGES) {
+ if (!LANGUAGES.hasOwnProperty(i))
+ continue;
+ var language = LANGUAGES[i];
+ compileModeKeywords(language.defaultMode);
+ for (var j = 0; j < language.modes.length; j++) {
+ compileModeKeywords(language.modes[j]);
+ }
+ }
+ }
+
+ function initialize() {
+ if (initialize.called)
+ return;
+ initialize.called = true;
+ compileModes();
+ compileKeywords();
+ selected_languages = LANGUAGES;
+ }
+
+ /* Public library functions */
+
+ function highlightBlock(block, tabReplace) {
+ initialize();
+
+ try {
+ var text = blockText(block);
+ var language = blockLanguage(block);
+ } catch (e) {
+ if (e == 'No highlight')
+ return;
+ }
+
+ if (language) {
+ var result = highlight(language, text).value;
+ } else {
+ var max_relevance = 0;
+ for (var key in selected_languages) {
+ if (!selected_languages.hasOwnProperty(key))
+ continue;
+ var lang_result = highlight(key, text);
+ var relevance = lang_result.keyword_count + lang_result.relevance;
+ if (relevance > max_relevance) {
+ max_relevance = relevance;
+ var result = lang_result.value;
+ language = key;
+ }
+ }
+ }
+
+ if (result) {
+ var class_name = block.className;
+ if (!class_name.match(language)) {
+ class_name += ' ' + language;
+ }
+ var original = nodeStream(block);
+ if (original.length) {
+ var pre = document.createElement('pre');
+ pre.innerHTML = result;
+ result = mergeStreams(original, nodeStream(pre), text);
+ }
+ if (tabReplace) {
+ result = result.replace(/^((<[^>]+>|\t)+)/gm, function(match, p1, offset, s) {
+ return p1.replace(/\t/g, tabReplace);
+ })
+ }
+ // See these 4 lines? This is IE's notion of "block.innerHTML = result". Love this browser :-/
+ var container = document.createElement('div');
+ container.innerHTML = '<pre><code class="' + class_name + '">' + result + '</code></pre>';
+ var environment = block.parentNode.parentNode;
+ environment.replaceChild(container.firstChild, block.parentNode);
+ }
+ }
+
+ function initHighlighting() {
+ if (initHighlighting.called)
+ return;
+ initHighlighting.called = true;
+ initialize();
+ if (arguments.length) {
+ for (var i = 0; i < arguments.length; i++) {
+ if (LANGUAGES[arguments[i]]) {
+ selected_languages[arguments[i]] = LANGUAGES[arguments[i]];
+ }
+ }
+ }
+ var pres = document.getElementsByTagName('pre');
+ for (var i = 0; i < pres.length; i++) {
+ var code = findCode(pres[i]);
+ if (code)
+ highlightBlock(code, hljs.tabReplace);
+ }
+ }
+
+ function initHighlightingOnLoad() {
+ var original_arguments = arguments;
+ var handler = function(){initHighlighting.apply(null, original_arguments)};
+ if (window.addEventListener) {
+ window.addEventListener('DOMContentLoaded', handler, false);
+ window.addEventListener('load', handler, false);
+ } else if (window.attachEvent)
+ window.attachEvent('onload', handler);
+ else
+ window.onload = handler;
+ }
+
+ /* Interface definition */
+
+ this.LANGUAGES = LANGUAGES;
+ this.initHighlightingOnLoad = initHighlightingOnLoad;
+ this.highlightBlock = highlightBlock;
+ this.initHighlighting = initHighlighting;
+
+ // Common regexps
+ this.IDENT_RE = '[a-zA-Z][a-zA-Z0-9_]*';
+ this.UNDERSCORE_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_]*';
+ this.NUMBER_RE = '\\b\\d+(\\.\\d+)?';
+ this.C_NUMBER_RE = '\\b(0x[A-Za-z0-9]+|\\d+(\\.\\d+)?)';
+ this.RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';
+
+ // Common modes
+ this.APOS_STRING_MODE = {
+ className: 'string',
+ begin: '\'', end: '\'',
+ illegal: '\\n',
+ contains: ['escape'],
+ relevance: 0
+ };
+ this.QUOTE_STRING_MODE = {
+ className: 'string',
+ begin: '"', end: '"',
+ illegal: '\\n',
+ contains: ['escape'],
+ relevance: 0
+ };
+ this.BACKSLASH_ESCAPE = {
+ className: 'escape',
+ begin: '\\\\.', end: '^', noMarkup: true,
+ relevance: 0
+ };
+ this.C_LINE_COMMENT_MODE = {
+ className: 'comment',
+ begin: '//', end: '$',
+ relevance: 0
+ };
+ this.C_BLOCK_COMMENT_MODE = {
+ className: 'comment',
+ begin: '/\\*', end: '\\*/'
+ };
+ this.HASH_COMMENT_MODE = {
+ className: 'comment',
+ begin: '#', end: '$'
+ };
+ this.C_NUMBER_MODE = {
+ className: 'number',
+ begin: this.C_NUMBER_RE, end: '^',
+ relevance: 0
+ };
+}();
+
+var initHighlightingOnLoad = hljs.initHighlightingOnLoad;
diff --git a/deps/highlight.js/languages/1c.js b/deps/highlight.js/languages/1c.js
new file mode 100644
index 0000000..357b996
--- /dev/null
+++ b/deps/highlight.js/languages/1c.js
@@ -0,0 +1,99 @@
+/*
+Language: 1C
+Author: Yuri Ivanov <ivanov@supersoft.ru>
+Contributors: Sergey Baranov <segyrn@yandex.ru>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES["1c"] = function(){
+ var IDENT_RE_RU = '[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*';
+ var OneS_KEYWORDS = {'возврат':1,'дата':1,'для':1,'если':1,'и':1,'или':1,'иначе':1,'иначеесли':1,'исключение':1,'конецесли':1,'конецпопытки':1,'конецпроцедуры':1,'конецфункции':1,'конеццикла':1,'константа':1,'не':1,'перейти':1,'перем':1,'перечисление':1,'по':1,'пока':1,'попытка':1,'прервать':1,'продолжить':1,'процедура':1,'строка':1,'тогда':1,'фс':1,'функция':1,'цикл':1,'число':1,'экспорт':1};
+ var OneS_BUILT_IN = {'ansitooem':1,'oemtoansi':1,'ввестивидсубконто':1,'ввестидату':1,'ввестизначение':1,'ввестиперечисление':1,'ввестипериод':1,'ввестиплансчетов':1,'ввестистроку':1,'ввестичисло':1,'вопрос':1,'восстановитьзначение':1,'врег':1,'выбранныйплансчетов':1,'вызватьисключение':1,'датагод':1,'датамесяц':1,'датачисло':1,'добавитьмесяц':1,'завершитьработусистемы':1,'заголовоксистемы':1,'записьжурналарегистрации':1,'запуститьприложение':1,'зафиксироватьтранзакцию':1,'значениевстроку':1,'значениевстрокувнутр':1,'значениевфайл':1,'значениеизстроки':1,'значениеизстрокивнутр':1,'значениеизфайла':1,'имякомпьютера':1,'имяпользователя':1,'каталогвременныхфайлов':1,'каталогиб':1,'каталогпользователя':1,'каталогпрограммы':1,'кодсимв':1,'командасистемы':1,'конгода':1,'конецпериодаби':1,'конецрассчитанногопериодаби':1,'конецстандартногоинтервала':1,'конквартала':1,'конмесяца':1,'коннедели':1,'лев':1,'лог':1,'лог10':1,'макс':1,'максимальноеколичествосубконто':1,'мин':1,'монопольныйрежим':1,'названиеинтерфейса':1,'названиенабораправ':1,'назначитьвид':1,'назначитьсчет':1,'найти':1,'найтипомеченныенаудаление':1,'найтиссылки':1,'началопериодаби':1,'началостандартногоинтервала':1,'начатьтранзакцию':1,'начгода':1,'начквартала':1,'начмесяца':1,'начнедели':1,'номерднягода':1,'номерднянедели':1,'номернеделигода':1,'нрег':1,'обработкаожидания':1,'окр':1,'описаниеошибки':1,'основнойжурналрасчетов':1,'основнойплансчетов':1,'основнойязык':1,'открытьформу':1,'открытьформумодально':1,'отменитьтранзакцию':1,'очиститьокносообщений':1,'периодстр':1,'полноеимяпользователя':1,'получитьвремята':1,'получитьдатута':1,'получитьдокументта':1,'получитьзначенияотбора':1,'получитьпозициюта':1,'получитьпустоезначение':1,'получитьта':1,'прав':1,'праводоступа':1,'предупреждение':1,'префиксавтонумерации':1,'пустаястрока':1,'пустоезначение':1,'рабочаядаттьпустоезначение':1,'получитьта':1,'прав':1,'праводоступа':1,'предупреждение':1,'префиксавтонумерации':1,'пустаястрока':1,'пустоезначение':1,'рабочаядата':1,'разделительстраниц':1,'разделительстрок':1,'разм':1,'разобратьпозициюдокумента':1,'рассчитатьрегистрына':1,'рассчитатьрегистрыпо':1,'сигнал':1,'симв':1,'символтабуляции':1,'создатьобъект':1,'сокрл':1,'сокрлп':1,'сокрп':1,' сообщить':1,'состояние':1,'сохранитьзначение':1,'сред':1,'статусвозврата':1,'стрдлина':1,'стрзаменить':1,'стрколичествострок':1,'стрполучитьстроку':1,' стрчисловхождений':1,'сформироватьпозициюдокумента':1,'счетпокоду':1,'текущаядата':1,'текущеевремя':1,'типзначения':1,'типзначениястр':1,'удалитьобъекты':1,'установитьтана':1,'установитьтапо':1,'фиксшаблон':1,'формат':1,'цел':1,'шаблон':1};
+
+ return {
+ defaultMode: {
+ lexems: [IDENT_RE_RU],
+ contains: ['comment', 'string', 'function', 'preprocessor', 'number', 'date'],
+ keywords: {'keyword':OneS_KEYWORDS,'built_in':OneS_BUILT_IN}
+ },
+ case_insensitive: true,
+ modes: [
+ hljs.C_LINE_COMMENT_MODE,
+ {
+ className: 'string',
+ begin: '"', end: '"',
+ contains: ['dquote'],
+ relevance: 0
+ },
+ {
+ className: 'string',
+ begin: '"', end: '$',
+ contains: ['dquote']
+ },
+ {
+ className: 'string',
+ begin: '\\|', end: '$',
+ contains: ['dquote']
+ },
+ {
+ className: 'string',
+ begin: '\\|', end: '"',
+ contains: ['dquote']
+ },
+ {
+ className: 'date',
+ begin: '\'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})\'', end: '^'
+ },
+ {
+ className: 'dquote',
+ begin: '""', end: '^'
+ },
+ {
+ className: 'number',
+ begin: hljs.NUMBER_RE, end: '^',
+ relevance: 0
+ },
+ {
+ className: 'title',
+ lexems: [IDENT_RE_RU],
+ begin: IDENT_RE_RU, end: '^'
+ },
+ {
+ className: 'params',
+ begin: '\\(', end: '\\)',
+ lexems: [IDENT_RE_RU],
+ keywords: {'знач':1},
+ contains: ['string']
+ },
+ {
+ className: 'function',
+ begin: '(процедура|функция)', end: '$',
+ lexems: [IDENT_RE_RU],
+ keywords: {'процедура': 1, 'экспорт': 1, 'функция': 1},
+ contains: ['title','tail','comment'],
+ relevance: 0
+ },
+ {
+ className: 'tail',
+ begin: '^', endsWithParent: true,
+ lexems: [IDENT_RE_RU],
+ contains: ['params', 'export']
+ },
+ {
+ className: 'export',
+ begin: 'экспорт', endsWithParent: true,
+ lexems: [IDENT_RE_RU],
+ keywords: {'экспорт': 1},
+ contains: ['comment']
+ },
+ {
+ className: 'preprocessor',
+ begin: '#', end: '$',
+ lexems: [IDENT_RE_RU]
+ }
+ ]
+ };
+}();
+
+};
diff --git a/deps/highlight.js/languages/apache.js b/deps/highlight.js/languages/apache.js
new file mode 100644
index 0000000..bdbdef1
--- /dev/null
+++ b/deps/highlight.js/languages/apache.js
@@ -0,0 +1,446 @@
+/*
+Language: Apache
+Author: Ruslan Keba <rukeba@gmail.com>
+Website: http://rukeba.com/
+Description: language definition for Apache configuration files (httpd.conf & .htaccess)
+Version 1.1
+Date: 2008-12-27
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.apache =
+{
+ case_insensitive: true,
+ defaultMode: {
+ lexems: [hljs.IDENT_RE],
+ contains: ['comment', 'sqbracket', 'cbracket', 'number', 'tag', 'string'],
+ keywords: {
+ 'keyword': {
+ 'acceptfilter': 1,
+ 'acceptmutex': 1,
+ 'acceptpathinfo': 1,
+ 'accessfilename': 1,
+ 'action': 1,
+ 'addalt': 1,
+ 'addaltbyencoding': 1,
+ 'addaltbytype': 1,
+ 'addcharset': 1,
+ 'adddefaultcharset': 1,
+ 'adddescription': 1,
+ 'addencoding': 1,
+ 'addhandler': 1,
+ 'addicon': 1,
+ 'addiconbyencoding': 1,
+ 'addiconbytype': 1,
+ 'addinputfilter': 1,
+ 'addlanguage': 1,
+ 'addmoduleinfo': 1,
+ 'addoutputfilter': 1,
+ 'addoutputfilterbytype': 1,
+ 'addtype': 1,
+ 'alias': 1,
+ 'aliasmatch': 1,
+ 'allow': 1,
+ 'allowconnect': 1,
+ 'allowencodedslashes': 1,
+ 'allowoverride': 1,
+ 'anonymous': 1,
+ 'anonymous_logemail': 1,
+ 'anonymous_mustgiveemail': 1,
+ 'anonymous_nouserid': 1,
+ 'anonymous_verifyemail': 1,
+ 'authbasicauthoritative': 1,
+ 'authbasicprovider': 1,
+ 'authdbduserpwquery': 1,
+ 'authdbduserrealmquery': 1,
+ 'authdbmgroupfile': 1,
+ 'authdbmtype': 1,
+ 'authdbmuserfile': 1,
+ 'authdefaultauthoritative': 1,
+ 'authdigestalgorithm': 1,
+ 'authdigestdomain': 1,
+ 'authdigestnccheck': 1,
+ 'authdigestnonceformat': 1,
+ 'authdigestnoncelifetime': 1,
+ 'authdigestprovider': 1,
+ 'authdigestqop': 1,
+ 'authdigestshmemsize': 1,
+ 'authgroupfile': 1,
+ 'authldapbinddn': 1,
+ 'authldapbindpassword': 1,
+ 'authldapcharsetconfig': 1,
+ 'authldapcomparednonserver': 1,
+ 'authldapdereferencealiases': 1,
+ 'authldapgroupattribute': 1,
+ 'authldapgroupattributeisdn': 1,
+ 'authldapremoteuserattribute': 1,
+ 'authldapremoteuserisdn': 1,
+ 'authldapurl': 1,
+ 'authname': 1,
+ 'authnprovideralias': 1,
+ 'authtype': 1,
+ 'authuserfile': 1,
+ 'authzdbmauthoritative': 1,
+ 'authzdbmtype': 1,
+ 'authzdefaultauthoritative': 1,
+ 'authzgroupfileauthoritative': 1,
+ 'authzldapauthoritative': 1,
+ 'authzownerauthoritative': 1,
+ 'authzuserauthoritative': 1,
+ 'balancermember': 1,
+ 'browsermatch': 1,
+ 'browsermatchnocase': 1,
+ 'bufferedlogs': 1,
+ 'cachedefaultexpire': 1,
+ 'cachedirlength': 1,
+ 'cachedirlevels': 1,
+ 'cachedisable': 1,
+ 'cacheenable': 1,
+ 'cachefile': 1,
+ 'cacheignorecachecontrol': 1,
+ 'cacheignoreheaders': 1,
+ 'cacheignorenolastmod': 1,
+ 'cacheignorequerystring': 1,
+ 'cachelastmodifiedfactor': 1,
+ 'cachemaxexpire': 1,
+ 'cachemaxfilesize': 1,
+ 'cacheminfilesize': 1,
+ 'cachenegotiateddocs': 1,
+ 'cacheroot': 1,
+ 'cachestorenostore': 1,
+ 'cachestoreprivate': 1,
+ 'cgimapextension': 1,
+ 'charsetdefault': 1,
+ 'charsetoptions': 1,
+ 'charsetsourceenc': 1,
+ 'checkcaseonly': 1,
+ 'checkspelling': 1,
+ 'chrootdir': 1,
+ 'contentdigest': 1,
+ 'cookiedomain': 1,
+ 'cookieexpires': 1,
+ 'cookielog': 1,
+ 'cookiename': 1,
+ 'cookiestyle': 1,
+ 'cookietracking': 1,
+ 'coredumpdirectory': 1,
+ 'customlog': 1,
+ 'dav': 1,
+ 'davdepthinfinity': 1,
+ 'davgenericlockdb': 1,
+ 'davlockdb': 1,
+ 'davmintimeout': 1,
+ 'dbdexptime': 1,
+ 'dbdkeep': 1,
+ 'dbdmax': 1,
+ 'dbdmin': 1,
+ 'dbdparams': 1,
+ 'dbdpersist': 1,
+ 'dbdpreparesql': 1,
+ 'dbdriver': 1,
+ 'defaulticon': 1,
+ 'defaultlanguage': 1,
+ 'defaulttype': 1,
+ 'deflatebuffersize': 1,
+ 'deflatecompressionlevel': 1,
+ 'deflatefilternote': 1,
+ 'deflatememlevel': 1,
+ 'deflatewindowsize': 1,
+ 'deny': 1,
+ 'directoryindex': 1,
+ 'directorymatch': 1,
+ 'directoryslash': 1,
+ 'documentroot': 1,
+ 'dumpioinput': 1,
+ 'dumpiologlevel': 1,
+ 'dumpiooutput': 1,
+ 'enableexceptionhook': 1,
+ 'enablemmap': 1,
+ 'enablesendfile': 1,
+ 'errordocument': 1,
+ 'errorlog': 1,
+ 'example': 1,
+ 'expiresactive': 1,
+ 'expiresbytype': 1,
+ 'expiresdefault': 1,
+ 'extendedstatus': 1,
+ 'extfilterdefine': 1,
+ 'extfilteroptions': 1,
+ 'fileetag': 1,
+ 'filterchain': 1,
+ 'filterdeclare': 1,
+ 'filterprotocol': 1,
+ 'filterprovider': 1,
+ 'filtertrace': 1,
+ 'forcelanguagepriority': 1,
+ 'forcetype': 1,
+ 'forensiclog': 1,
+ 'gracefulshutdowntimeout': 1,
+ 'group': 1,
+ 'header': 1,
+ 'headername': 1,
+ 'hostnamelookups': 1,
+ 'identitycheck': 1,
+ 'identitychecktimeout': 1,
+ 'imapbase': 1,
+ 'imapdefault': 1,
+ 'imapmenu': 1,
+ 'include': 1,
+ 'indexheadinsert': 1,
+ 'indexignore': 1,
+ 'indexoptions': 1,
+ 'indexorderdefault': 1,
+ 'indexstylesheet': 1,
+ 'isapiappendlogtoerrors': 1,
+ 'isapiappendlogtoquery': 1,
+ 'isapicachefile': 1,
+ 'isapifakeasync': 1,
+ 'isapilognotsupported': 1,
+ 'isapireadaheadbuffer': 1,
+ 'keepalive': 1,
+ 'keepalivetimeout': 1,
+ 'languagepriority': 1,
+ 'ldapcacheentries': 1,
+ 'ldapcachettl': 1,
+ 'ldapconnectiontimeout': 1,
+ 'ldapopcacheentries': 1,
+ 'ldapopcachettl': 1,
+ 'ldapsharedcachefile': 1,
+ 'ldapsharedcachesize': 1,
+ 'ldaptrustedclientcert': 1,
+ 'ldaptrustedglobalcert': 1,
+ 'ldaptrustedmode': 1,
+ 'ldapverifyservercert': 1,
+ 'limitinternalrecursion': 1,
+ 'limitrequestbody': 1,
+ 'limitrequestfields': 1,
+ 'limitrequestfieldsize': 1,
+ 'limitrequestline': 1,
+ 'limitxmlrequestbody': 1,
+ 'listen': 1,
+ 'listenbacklog': 1,
+ 'loadfile': 1,
+ 'loadmodule': 1,
+ 'lockfile': 1,
+ 'logformat': 1,
+ 'loglevel': 1,
+ 'maxclients': 1,
+ 'maxkeepaliverequests': 1,
+ 'maxmemfree': 1,
+ 'maxrequestsperchild': 1,
+ 'maxrequestsperthread': 1,
+ 'maxspareservers': 1,
+ 'maxsparethreads': 1,
+ 'maxthreads': 1,
+ 'mcachemaxobjectcount': 1,
+ 'mcachemaxobjectsize': 1,
+ 'mcachemaxstreamingbuffer': 1,
+ 'mcacheminobjectsize': 1,
+ 'mcacheremovalalgorithm': 1,
+ 'mcachesize': 1,
+ 'metadir': 1,
+ 'metafiles': 1,
+ 'metasuffix': 1,
+ 'mimemagicfile': 1,
+ 'minspareservers': 1,
+ 'minsparethreads': 1,
+ 'mmapfile': 1,
+ 'mod_gzip_on': 1,
+ 'mod_gzip_add_header_count': 1,
+ 'mod_gzip_keep_workfiles': 1,
+ 'mod_gzip_dechunk': 1,
+ 'mod_gzip_min_http': 1,
+ 'mod_gzip_minimum_file_size': 1,
+ 'mod_gzip_maximum_file_size': 1,
+ 'mod_gzip_maximum_inmem_size': 1,
+ 'mod_gzip_temp_dir': 1,
+ 'mod_gzip_item_include': 1,
+ 'mod_gzip_item_exclude': 1,
+ 'mod_gzip_command_version': 1,
+ 'mod_gzip_can_negotiate': 1,
+ 'mod_gzip_handle_methods': 1,
+ 'mod_gzip_static_suffix': 1,
+ 'mod_gzip_send_vary': 1,
+ 'mod_gzip_update_static': 1,
+ 'modmimeusepathinfo': 1,
+ 'multiviewsmatch': 1,
+ 'namevirtualhost': 1,
+ 'noproxy': 1,
+ 'nwssltrustedcerts': 1,
+ 'nwsslupgradeable': 1,
+ 'options': 1,
+ 'order': 1,
+ 'passenv': 1,
+ 'pidfile': 1,
+ 'protocolecho': 1,
+ 'proxybadheader': 1,
+ 'proxyblock': 1,
+ 'proxydomain': 1,
+ 'proxyerroroverride': 1,
+ 'proxyftpdircharset': 1,
+ 'proxyiobuffersize': 1,
+ 'proxymaxforwards': 1,
+ 'proxypass': 1,
+ 'proxypassinterpolateenv': 1,
+ 'proxypassmatch': 1,
+ 'proxypassreverse': 1,
+ 'proxypassreversecookiedomain': 1,
+ 'proxypassreversecookiepath': 1,
+ 'proxypreservehost': 1,
+ 'proxyreceivebuffersize': 1,
+ 'proxyremote': 1,
+ 'proxyremotematch': 1,
+ 'proxyrequests': 1,
+ 'proxyset': 1,
+ 'proxystatus': 1,
+ 'proxytimeout': 1,
+ 'proxyvia': 1,
+ 'readmename': 1,
+ 'receivebuffersize': 1,
+ 'redirect': 1,
+ 'redirectmatch': 1,
+ 'redirectpermanent': 1,
+ 'redirecttemp': 1,
+ 'removecharset': 1,
+ 'removeencoding': 1,
+ 'removehandler': 1,
+ 'removeinputfilter': 1,
+ 'removelanguage': 1,
+ 'removeoutputfilter': 1,
+ 'removetype': 1,
+ 'requestheader': 1,
+ 'require': 2,
+ 'rewritebase': 1,
+ 'rewritecond': 10,
+ 'rewriteengine': 1,
+ 'rewritelock': 1,
+ 'rewritelog': 1,
+ 'rewriteloglevel': 1,
+ 'rewritemap': 1,
+ 'rewriteoptions': 1,
+ 'rewriterule': 10,
+ 'rlimitcpu': 1,
+ 'rlimitmem': 1,
+ 'rlimitnproc': 1,
+ 'satisfy': 1,
+ 'scoreboardfile': 1,
+ 'script': 1,
+ 'scriptalias': 1,
+ 'scriptaliasmatch': 1,
+ 'scriptinterpretersource': 1,
+ 'scriptlog': 1,
+ 'scriptlogbuffer': 1,
+ 'scriptloglength': 1,
+ 'scriptsock': 1,
+ 'securelisten': 1,
+ 'seerequesttail': 1,
+ 'sendbuffersize': 1,
+ 'serveradmin': 1,
+ 'serveralias': 1,
+ 'serverlimit': 1,
+ 'servername': 1,
+ 'serverpath': 1,
+ 'serverroot': 1,
+ 'serversignature': 1,
+ 'servertokens': 1,
+ 'setenv': 1,
+ 'setenvif': 1,
+ 'setenvifnocase': 1,
+ 'sethandler': 1,
+ 'setinputfilter': 1,
+ 'setoutputfilter': 1,
+ 'ssienableaccess': 1,
+ 'ssiendtag': 1,
+ 'ssierrormsg': 1,
+ 'ssistarttag': 1,
+ 'ssitimeformat': 1,
+ 'ssiundefinedecho': 1,
+ 'sslcacertificatefile': 1,
+ 'sslcacertificatepath': 1,
+ 'sslcadnrequestfile': 1,
+ 'sslcadnrequestpath': 1,
+ 'sslcarevocationfile': 1,
+ 'sslcarevocationpath': 1,
+ 'sslcertificatechainfile': 1,
+ 'sslcertificatefile': 1,
+ 'sslcertificatekeyfile': 1,
+ 'sslciphersuite': 1,
+ 'sslcryptodevice': 1,
+ 'sslengine': 1,
+ 'sslhonorciperorder': 1,
+ 'sslmutex': 1,
+ 'ssloptions': 1,
+ 'sslpassphrasedialog': 1,
+ 'sslprotocol': 1,
+ 'sslproxycacertificatefile': 1,
+ 'sslproxycacertificatepath': 1,
+ 'sslproxycarevocationfile': 1,
+ 'sslproxycarevocationpath': 1,
+ 'sslproxyciphersuite': 1,
+ 'sslproxyengine': 1,
+ 'sslproxymachinecertificatefile': 1,
+ 'sslproxymachinecertificatepath': 1,
+ 'sslproxyprotocol': 1,
+ 'sslproxyverify': 1,
+ 'sslproxyverifydepth': 1,
+ 'sslrandomseed': 1,
+ 'sslrequire': 1,
+ 'sslrequiressl': 1,
+ 'sslsessioncache': 1,
+ 'sslsessioncachetimeout': 1,
+ 'sslusername': 1,
+ 'sslverifyclient': 1,
+ 'sslverifydepth': 1,
+ 'startservers': 1,
+ 'startthreads': 1,
+ 'substitute': 1,
+ 'suexecusergroup': 1,
+ 'threadlimit': 1,
+ 'threadsperchild': 1,
+ 'threadstacksize': 1,
+ 'timeout': 1,
+ 'traceenable': 1,
+ 'transferlog': 1,
+ 'typesconfig': 1,
+ 'unsetenv': 1,
+ 'usecanonicalname': 1,
+ 'usecanonicalphysicalport': 1,
+ 'user': 1,
+ 'userdir': 1,
+ 'virtualdocumentroot': 1,
+ 'virtualdocumentrootip': 1,
+ 'virtualscriptalias': 1,
+ 'virtualscriptaliasip': 1,
+ 'win32disableacceptex': 1,
+ 'xbithack': 1
+ },
+ 'literal': {'on': 1, 'off': 1}
+ }
+ },
+ modes: [
+ hljs.HASH_COMMENT_MODE,
+ {
+ /* TODO: check tag content: Location, Files, VirtualHost, ... */
+ className: 'tag',
+ begin: '</?', end: '>'
+ },
+ {
+ className: 'sqbracket',
+ begin: '\\s\\[', end: '\\]$'
+ },
+ {
+ className: 'cbracket',
+ begin: '[\\$%]\\{', end: '\\}',
+ contains: ['cbracket', 'number']
+ },
+ {
+ className: 'number',
+ begin: '[\\$%]\\d+', end: '^'
+ },
+ hljs.QUOTE_STRING_MODE,
+ hljs.BACKSLASH_ESCAPE
+ ]
+};
+
+};
diff --git a/deps/highlight.js/languages/avrasm.js b/deps/highlight.js/languages/avrasm.js
new file mode 100644
index 0000000..04b6cfa
--- /dev/null
+++ b/deps/highlight.js/languages/avrasm.js
@@ -0,0 +1,92 @@
+/*
+Language: AVR Assembler
+Author: Vladimir Ermakov <vooon341@gmail.com>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.avrasm =
+{
+ case_insensitive: true,
+ defaultMode: {
+ lexems: [hljs.IDENT_RE],
+ contains: ['comment', 'number', 'string', 'label', 'preprocessor', 'localvars'],
+ illegal: '',
+ keywords: {
+ 'keyword': {
+ /* mnemonic */
+ 'adc': 1, 'add': 1 , 'adiw': 1 , 'and': 1 , 'andi': 1 , 'asr': 1 , 'bclr': 1 , 'bld': 1 , 'brbc': 1 , 'brbs': 1 , 'brcc': 1 ,
+ 'brcs': 1, 'break': 1, 'breq': 1, 'brge': 1, 'brhc': 1, 'brhs': 1, 'brid': 1, 'brie': 1, 'brlo': 1, 'brlt': 1, 'brmi': 1,
+ 'brne': 1, 'brpl': 1, 'brsh': 1, 'brtc': 1, 'brts': 1, 'brvc': 1, 'brvs': 1, 'bset': 1, 'bst': 1, 'call': 1, 'cbi': 1,
+ 'cbr': 1, 'clc': 1, 'clh': 1, 'cli': 1, 'cln': 1, 'clr': 1, 'cls': 1, 'clt': 1, 'clv': 1, 'clz': 1, 'com': 1, 'cp': 1,
+ 'cpc': 1, 'cpi': 1, 'cpse': 1, 'dec': 1, 'eicall': 1, 'eijmp': 1, 'elpm': 1, 'eor': 1, 'fmul': 1, 'fmuls': 1, 'fmulsu': 1,
+ 'icall': 1, 'ijmp': 1, 'in': 1, 'inc': 1, 'jmp': 1, 'ld': 1, 'ldd': 1, 'ldi': 1, 'lds': 1, 'lpm': 1, 'lsl': 1, 'lsr': 1,
+ 'mov': 1, 'movw': 1, 'mul': 1, 'muls': 1, 'mulsu': 1, 'neg': 1, 'nop': 1, 'or': 1, 'ori': 1, 'out': 1, 'pop': 1, 'push': 1,
+ 'rcall': 1, 'ret': 1, 'reti': 1, 'rjmp': 1, 'rol': 1, 'ror': 1, 'sbc': 1, 'sbr': 1, 'sbrc': 1, 'sbrs': 1, 'sec': 1, 'seh': 1,
+ 'sbi': 1, 'sbci': 1, 'sbic': 1, 'sbis': 1, 'sbiw': 1, 'sei': 1, 'sen': 1, 'ser': 1, 'ses': 1, 'set': 1, 'sev': 1, 'sez': 1,
+ 'sleep': 1, 'spm': 1, 'st': 1, 'std': 1, 'sts': 1, 'sub': 1, 'subi': 1, 'swap': 1, 'tst': 1, 'wdr': 1
+ },
+ 'built_in': {
+ /* general purpose registers */
+ 'r0': 1, 'r1': 1, 'r2': 1, 'r3': 1, 'r4': 1, 'r5': 1, 'r6': 1, 'r7': 1, 'r8': 1, 'r9': 1, 'r10': 1, 'r11': 1, 'r12': 1,
+ 'r13': 1, 'r14': 1, 'r15': 1, 'r16': 1, 'r17': 1, 'r18': 1, 'r19': 1, 'r20': 1, 'r21': 1, 'r22': 1, 'r23': 1, 'r24': 1,
+ 'r25': 1, 'r26': 1, 'r27': 1, 'r28': 1, 'r29': 1, 'r30': 1, 'r31': 1,
+ 'x': 1 /* R27:R26 */, 'xh': 1 /* R27 */, 'xl': 1 /* R26 */,
+ 'y': 1 /* R29:R28 */, 'yh': 1 /* R29 */, 'yl': 1 /* R28 */,
+ 'z': 1 /* R31:R30 */, 'zh': 1 /* R31 */, 'zl': 1 /* R30 */,
+ /* IO Registers (ATMega128) */
+ 'ucsr1c': 1, 'udr1': 1, 'ucsr1a': 1, 'ucsr1b': 1, 'ubrr1l': 1, 'ubrr1h': 1, 'ucsr0c': 1, 'ubrr0h': 1, 'tccr3c': 1,
+ 'tccr3a': 1, 'tccr3b': 1, 'tcnt3h': 1, 'tcnt3l': 1, 'ocr3ah': 1, 'ocr3al': 1, 'ocr3bh': 1, 'ocr3bl': 1, 'ocr3ch': 1,
+ 'ocr3cl': 1, 'icr3h': 1, 'icr3l': 1, 'etimsk': 1, 'etifr': 1, 'tccr1c': 1, 'ocr1ch': 1, 'ocr1cl': 1, 'twcr': 1,
+ 'twdr': 1, 'twar': 1, 'twsr': 1, 'twbr': 1, 'osccal': 1, 'xmcra': 1, 'xmcrb': 1, 'eicra': 1, 'spmcsr': 1, 'spmcr': 1,
+ 'portg': 1, 'ddrg': 1, 'ping': 1, 'portf': 1, 'ddrf': 1, 'sreg': 1, 'sph': 1, 'spl': 1, 'xdiv': 1, 'rampz': 1,
+ 'eicrb': 1, 'eimsk': 1, 'gimsk': 1, 'gicr': 1, 'eifr': 1, 'gifr': 1, 'timsk': 1, 'tifr': 1, 'mcucr': 1,
+ 'mcucsr': 1, 'tccr0': 1, 'tcnt0': 1, 'ocr0': 1, 'assr': 1, 'tccr1a': 1, 'tccr1b': 1, 'tcnt1h': 1, 'tcnt1l': 1,
+ 'ocr1ah': 1, 'ocr1al': 1, 'ocr1bh': 1, 'ocr1bl': 1, 'icr1h': 1, 'icr1l': 1, 'tccr2': 1, 'tcnt2': 1, 'ocr2': 1,
+ 'ocdr': 1, 'wdtcr': 1, 'sfior': 1, 'eearh': 1, 'eearl': 1, 'eedr': 1, 'eecr': 1, 'porta': 1, 'ddra': 1, 'pina': 1,
+ 'portb': 1, 'ddrb': 1, 'pinb': 1, 'portc': 1, 'ddrc': 1, 'pinc': 1, 'portd': 1, 'ddrd': 1, 'pind': 1, 'spdr': 1,
+ 'spsr': 1, 'spcr': 1, 'udr0': 1, 'ucsr0a': 1, 'ucsr0b': 1, 'ubrr0l': 1, 'acsr': 1, 'admux': 1, 'adcsr': 1, 'adch': 1,
+ 'adcl': 1, 'porte': 1, 'ddre': 1, 'pine': 1, 'pinf': 1
+ }
+ }
+ },
+
+ modes: [
+ hljs.C_BLOCK_COMMENT_MODE,
+ {
+ className: 'comment',
+ begin: ';', end: '$'
+ },
+ hljs.BACKSLASH_ESCAPE,
+ hljs.QUOTE_STRING_MODE,
+ {
+ className: 'string',
+ begin: '\'', end: '[^\\\\]\'',
+ illegal: '[^\\\\][^\']'
+ },
+ hljs.C_NUMBER_MODE,
+ /*{ // Hex: 0x00, $00; Oct: 0o00; Bin: 0b00000000; Dec: 0
+ // пока что-то не получается :(, буду использовать сишную моду.
+ className: 'number',
+ begin: '((0[xX]|\$)[A-Fa-f0-9]+|0[oO][0-7]+|0[bB][0-1]+|\\d+)', end: '^'
+ }*/
+ {
+ className: 'label',
+ begin: '^[A-Za-z0-9_.$]+:', end: '^'
+ },
+ {
+ className: 'preprocessor',
+ begin: '#', end: '$'
+ },
+ { // директивы «.include» «.macro» и т.д.
+ className: 'preprocessor',
+ begin: '\\.[a-zA-Z]+', end: '^'
+ },
+ { // подстановка в «.macro»
+ className: 'localvars',
+ begin: '@[0-9]+', end: '^'
+ }
+ ]
+};
+
+}; \ No newline at end of file
diff --git a/deps/highlight.js/languages/axapta.js b/deps/highlight.js/languages/axapta.js
new file mode 100644
index 0000000..f8356eb
--- /dev/null
+++ b/deps/highlight.js/languages/axapta.js
@@ -0,0 +1,56 @@
+/*
+Language: Axapta
+Author: Dmitri Roudakov <dmitri@roudakov.ru>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.axapta = {
+ defaultMode: {
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ contains: ['comment', 'string', 'class', 'number', 'preprocessor'],
+ keywords: {'false': 1, 'int': 1, 'abstract': 1, 'private': 1, 'char': 1, 'interface': 1, 'boolean': 1, 'static': 1, 'null': 1, 'if': 1, 'for': 1, 'true': 1, 'while': 1, 'long': 1, 'throw': 1, 'finally': 1, 'protected': 1, 'extends': 1, 'final': 1, 'implements': 1, 'return': 1, 'void': 1, 'enum': 1, 'else': 1, 'break': 1, 'new': 1, 'catch': 1, 'byte': 1, 'super': 1, 'class': 1, 'case': 1, 'short': 1, 'default': 1, 'double': 1, 'public': 1, 'try': 1, 'this': 1, 'switch': 1, 'continue': 1,
+ 'reverse':1, 'firstfast':1,'firstonly':1,'forupdate':1,'nofetch':1, 'sum':1, 'avg':1, 'minof':1, 'maxof':1, 'count':1, 'order':1, 'group':1, 'by':1, 'asc':1, 'desc':1, 'index':1, 'hint':1, 'like':1,
+ 'dispaly':1, 'edit':1, 'client':1, 'server':1, 'ttsbegin':1, 'ttscommit':1,
+ 'str':1, 'real':1, 'date':1, 'container':1, 'anytype':1, 'common':1, 'div':1,'mod':1
+ }
+ },
+ modes: [
+ {
+ className: 'class',
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ begin: '(class |interface )', end: '{',
+ illegal: ':',
+ keywords: {'class': 1, 'interface': 1},
+ contains: ['inheritance', 'title']
+ },
+ {
+ className: 'inheritance',
+ begin: '(implements|extends)', end: '^',
+ lexems: [hljs.IDENT_RE],
+ keywords: {'extends': 1, 'implements': 1},
+ relevance: 10
+ },
+ {
+ className: 'title',
+ begin: hljs.UNDERSCORE_IDENT_RE, end: '^'
+ },
+ {
+ className: 'params',
+ begin: '\\(', end: '\\)',
+ contains: ['string', 'annotation']
+ },
+ hljs.C_NUMBER_MODE,
+ hljs.APOS_STRING_MODE,
+ hljs.QUOTE_STRING_MODE,
+ hljs.BACKSLASH_ESCAPE,
+ hljs.C_LINE_COMMENT_MODE,
+ hljs.C_BLOCK_COMMENT_MODE,
+ {
+ className: 'preprocessor',
+ begin: '#', end: '$'
+ }
+ ]
+};
+
+}; \ No newline at end of file
diff --git a/deps/highlight.js/languages/bash.js b/deps/highlight.js/languages/bash.js
new file mode 100644
index 0000000..f8a1a60
--- /dev/null
+++ b/deps/highlight.js/languages/bash.js
@@ -0,0 +1,85 @@
+/*
+Language: Bash
+Author: vah <vahtenberg@gmail.com>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.bash = function(){
+ var BASH_LITERAL = {'true' : 1, 'false' : 1}
+ return {
+ defaultMode: {
+ lexems: [hljs.IDENT_RE],
+ contains: ['string', 'shebang', 'comment', 'number', 'test_condition', 'string', 'variable'],
+ keywords: {
+ 'keyword': {'if' : 1, 'then' : 1, 'else' : 1, 'fi' : 1, 'for' : 1, 'break' : 1, 'continue' : 1, 'while' : 1, 'in' : 1, 'do' : 1, 'done' : 1, 'echo' : 1, 'exit' : 1, 'return' : 1, 'set' : 1, 'declare' : 1},
+ 'literal': BASH_LITERAL
+ }
+ },
+ case_insensitive: false,
+ modes: [
+ {
+ className: 'shebang',
+ begin: '(#!\\/bin\\/bash)|(#!\\/bin\\/sh)',
+ end: '^',
+ relevance: 10
+ },
+ hljs.HASH_COMMENT_MODE,
+ {
+ className: 'test_condition',
+ begin: '\\[ ',
+ end: ' \\]',
+ contains: ['string', 'variable', 'number'],
+ lexems: [hljs.IDENT_RE],
+ keywords: {
+ 'literal': BASH_LITERAL
+ },
+ relevance: 0
+ },
+ {
+ className: 'test_condition',
+ begin: '\\[\\[ ',
+ end: ' \\]\\]',
+ contains: ['string', 'variable', 'number'],
+ lexems: [hljs.IDENT_RE],
+ keywords: {
+ 'literal': BASH_LITERAL
+ }
+ },
+ {
+ className: 'variable',
+ begin: '\\$([a-zA-Z0-9_]+)\\b',
+ end: '^'
+ },
+ {
+ className: 'variable',
+ begin: '\\$\\{(([^}])|(\\\\}))+\\}',
+ end: '^',
+ contains: ['number']
+ },
+ {
+ className: 'string',
+ begin: '"', end: '"',
+ illegal: '\\n',
+ contains: ['escape', 'variable'],
+ relevance: 0
+ },
+ {
+ className: 'string',
+ begin: '"', end: '"',
+ illegal: '\\n',
+ contains: ['escape', 'variable'],
+ relevance: 0
+ },
+ hljs.BACKSLASH_ESCAPE,
+ hljs.C_NUMBER_MODE,
+ {
+ className: 'comment',
+ begin: '\\/\\/', end: '$',
+ illegal: '.'
+ }
+ ]
+ };
+}();
+
+};
diff --git a/deps/highlight.js/languages/cpp.js b/deps/highlight.js/languages/cpp.js
new file mode 100644
index 0000000..1be3638
--- /dev/null
+++ b/deps/highlight.js/languages/cpp.js
@@ -0,0 +1,46 @@
+/*
+Language: C++
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.cpp = function(){
+ var CPP_KEYWORDS = {
+ 'keyword': {'false': 1, 'int': 1, 'float': 1, 'while': 1, 'private': 1, 'char': 1, 'catch': 1, 'export': 1, 'virtual': 1, 'operator': 2, 'sizeof': 2, 'dynamic_cast': 2, 'typedef': 2, 'const_cast': 2, 'const': 1, 'struct': 1, 'for': 1, 'static_cast': 2, 'union': 1, 'namespace': 1, 'unsigned': 1, 'long': 1, 'throw': 1, 'volatile': 2, 'static': 1, 'protected': 1, 'bool': 1, 'template': 1, 'mutable': 1, 'if': 1, 'public': 1, 'friend': 2, 'do': 1, 'return': 1, 'goto': 1, 'auto': 1, 'void': 2, 'enum': 1, 'else': 1, 'break': 1, 'new': 1, 'extern': 1, 'using': 1, 'true': 1, 'class': 1, 'asm': 1, 'case': 1, 'typeid': 1, 'short': 1, 'reinterpret_cast': 2, 'default': 1, 'double': 1, 'register': 1, 'explicit': 1, 'signed': 1, 'typename': 1, 'try': 1, 'this': 1, 'switch': 1, 'continue': 1, 'wchar_t': 1, 'inline': 1, 'delete': 1},
+ 'built_in': {'std': 1, 'string': 1, 'cin': 1, 'cout': 1, 'cerr': 1, 'clog': 1, 'stringstream': 1, 'istringstream': 1, 'ostringstream': 1, 'auto_ptr': 1, 'deque': 1, 'list': 1, 'queue': 1, 'stack': 1, 'vector': 1, 'map': 1, 'set': 1, 'bitset': 1, 'multiset': 1, 'multimap': 1}
+ };
+ return {
+ defaultMode: {
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ illegal: '</',
+ contains: ['comment', 'string', 'number', 'preprocessor', 'stl_container'],
+ keywords: CPP_KEYWORDS
+ },
+ modes: [
+ hljs.C_LINE_COMMENT_MODE,
+ hljs.C_BLOCK_COMMENT_MODE,
+ hljs.C_NUMBER_MODE,
+ hljs.QUOTE_STRING_MODE,
+ hljs.BACKSLASH_ESCAPE,
+ {
+ className: 'string',
+ begin: '\'', end: '[^\\\\]\'',
+ illegal: '[^\\\\][^\']'
+ },
+ {
+ className: 'preprocessor',
+ begin: '#', end: '$'
+ },
+ {
+ className: 'stl_container',
+ begin: '\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap)\\s*<', end: '>',
+ contains: ['stl_container'],
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ keywords: CPP_KEYWORDS,
+ relevance: 10
+ }
+ ]
+ };
+}();
+
+};
diff --git a/deps/highlight.js/languages/cs.js b/deps/highlight.js/languages/cs.js
new file mode 100644
index 0000000..3a9dcd0
--- /dev/null
+++ b/deps/highlight.js/languages/cs.js
@@ -0,0 +1,51 @@
+/*
+Language: C#
+Author: Jason Diamond <jason@diamond.name>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.cs = {
+ defaultMode: {
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ contains: ['comment', 'string', 'number'],
+ keywords: {
+ // Normal keywords.
+ 'abstract': 1, 'as': 1, 'base': 1, 'bool': 1, 'break': 1, 'byte': 1, 'case': 1, 'catch': 1, 'char': 1, 'checked': 1, 'class': 1, 'const': 1, 'continue': 1, 'decimal': 1, 'default': 1, 'delegate': 1, 'do': 1, 'do': 1, 'double': 1, 'else': 1, 'enum': 1, 'event': 1, 'explicit': 1, 'extern': 1, 'false': 1, 'finally': 1, 'fixed': 1, 'float': 1, 'for': 1, 'foreach': 1, 'goto': 1, 'if': 1, 'implicit': 1, 'in': 1, 'int': 1, 'interface': 1, 'internal': 1, 'is': 1, 'lock': 1, 'long': 1, 'namespace': 1, 'new': 1, 'null': 1, 'object': 1, 'operator': 1, 'out': 1, 'override': 1, 'params': 1, 'private': 1, 'protected': 1, 'public': 1, 'readonly': 1, 'ref': 1, 'return': 1, 'sbyte': 1, 'sealed': 1, 'short': 1, 'sizeof': 1, 'stackalloc': 1, 'static': 1, 'string': 1, 'struct': 1, 'switch': 1, 'this': 1, 'throw': 1, 'true': 1, 'try': 1, 'typeof': 1, 'uint': 1, 'ulong': 1, 'unchecked': 1, 'unsafe': 1, 'ushort': 1, 'using': 1, 'virtual': 1, 'volatile': 1, 'void': 1, 'while': 1,
+ // Contextual keywords.
+ 'ascending': 1, 'descending': 1, 'from': 1, 'get': 1, 'group': 1, 'into': 1, 'join': 1, 'let': 1, 'orderby': 1, 'partial': 1, 'select': 1, 'set': 1, 'value': 1, 'var': 1, 'where': 1, 'yield': 1
+ }
+ },
+ modes: [
+ {
+ className: 'comment',
+ begin: '///', end: '$', returnBegin: true,
+ contains: ['xmlDocTag']
+ },
+ {
+ className: 'xmlDocTag',
+ begin: '///|<!--|-->', end: '^'
+ },
+ {
+ className: 'xmlDocTag',
+ begin: '</?', end: '>'
+ },
+ {
+ className: 'string',
+ begin: '@"', end: '"',
+ contains: ['quoteQuote']
+ },
+ {
+ className: 'quoteQuote',
+ begin: '""', end: '^'
+ },
+ hljs.C_LINE_COMMENT_MODE,
+ hljs.C_BLOCK_COMMENT_MODE,
+ hljs.APOS_STRING_MODE,
+ hljs.QUOTE_STRING_MODE,
+ hljs.BACKSLASH_ESCAPE,
+ hljs.C_NUMBER_MODE
+ ]
+};
+
+};
diff --git a/deps/highlight.js/languages/css.js b/deps/highlight.js/languages/css.js
new file mode 100644
index 0000000..780a5b9
--- /dev/null
+++ b/deps/highlight.js/languages/css.js
@@ -0,0 +1,85 @@
+/*
+Language: CSS
+Requires: html-xml.js
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.css = {
+ defaultMode: {
+ contains: ['at_rule', 'id', 'class', 'attr_selector', 'pseudo', 'rules', 'comment'],
+ keywords: hljs.HTML_TAGS,
+ lexems: [hljs.IDENT_RE],
+ illegal: '='
+ },
+ case_insensitive: true,
+ modes: [
+ {
+ className: 'at_rule',
+ begin: '@', end: '[{;]',
+ excludeEnd: true,
+ lexems: [hljs.IDENT_RE],
+ keywords: {'import': 1, 'page': 1, 'media': 1, 'charset': 1, 'font-face': 1},
+ contains: ['function', 'string', 'number', 'pseudo']
+ },
+ {
+ className: 'id',
+ begin: '\\#[A-Za-z0-9_-]+', end: '^'
+ },
+ {
+ className: 'class',
+ begin: '\\.[A-Za-z0-9_-]+', end: '^',
+ relevance: 0
+ },
+ {
+ className: 'attr_selector',
+ begin: '\\[', end: '\\]',
+ illegal: '$'
+ },
+ {
+ className: 'pseudo',
+ begin: ':(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\"\\\']+', end: '^'
+ },
+ {
+ className: 'rules',
+ begin: '{', end: '}',
+ contains: ['rule', 'comment'],
+ illegal: '[^\\s]'
+ },
+ {
+ className: 'rule',
+ begin: '[A-Z\\_\\.\\-]+\\s*:', end: ';', endsWithParent: true,
+ lexems: ['[A-Za-z-]+'],
+ keywords: {'play-during': 1, 'counter-reset': 1, 'counter-increment': 1, 'min-height': 1, 'quotes': 1, 'border-top': 1, 'pitch': 1, 'font': 1, 'pause': 1, 'list-style-image': 1, 'border-width': 1, 'cue': 1, 'outline-width': 1, 'border-left': 1, 'elevation': 1, 'richness': 1, 'speech-rate': 1, 'border-bottom': 1, 'border-spacing': 1, 'background': 1, 'list-style-type': 1, 'text-align': 1, 'page-break-inside': 1, 'orphans': 1, 'page-break-before': 1, 'text-transform': 1, 'line-height': 1, 'padding-left': 1, 'font-size': 1, 'right': 1, 'word-spacing': 1, 'padding-top': 1, 'outline-style': 1, 'bottom': 1, 'content': 1, 'border-right-style': 1, 'padding-right': 1, 'border-left-style': 1, 'voice-family': 1, 'background-color': 1, 'border-bottom-color': 1, 'outline-color': 1, 'unicode-bidi': 1, 'max-width': 1, 'font-family': 1, 'caption-side': 1, 'border-right-width': 1, 'pause-before': 1, 'border-top-style': 1, 'color': 1, 'border-collapse': 1, 'border-bottom-width': 1, 'float': 1, 'height': 1, 'max-height': 1, 'margin-right': 1, 'border-top-width': 1, 'speak': 1, 'speak-header': 1, 'top': 1, 'cue-before': 1, 'min-width': 1, 'width': 1, 'font-variant': 1, 'border-top-color': 1, 'background-position': 1, 'empty-cells': 1, 'direction': 1, 'border-right': 1, 'visibility': 1, 'padding': 1, 'border-style': 1, 'background-attachment': 1, 'overflow': 1, 'border-bottom-style': 1, 'cursor': 1, 'margin': 1, 'display': 1, 'border-left-width': 1, 'letter-spacing': 1, 'vertical-align': 1, 'clip': 1, 'border-color': 1, 'list-style': 1, 'padding-bottom': 1, 'pause-after': 1, 'speak-numeral': 1, 'margin-left': 1, 'widows': 1, 'border': 1, 'font-style': 1, 'border-left-color': 1, 'pitch-range': 1, 'background-repeat': 1, 'table-layout': 1, 'margin-bottom': 1, 'speak-punctuation': 1, 'font-weight': 1, 'border-right-color': 1, 'page-break-after': 1, 'position': 1, 'white-space': 1, 'text-indent': 1, 'background-image': 1, 'volume': 1, 'stress': 1, 'outline': 1, 'clear': 1, 'z-index': 1, 'text-decoration': 1, 'margin-top': 1, 'azimuth': 1, 'cue-after': 1, 'left': 1, 'list-style-position': 1},
+ contains: ['value']
+ },
+ hljs.C_BLOCK_COMMENT_MODE,
+ {
+ className: 'value',
+ begin: '^', endsWithParent: true, excludeEnd: true,
+ contains: ['function', 'number', 'hexcolor', 'string']
+ },
+ {
+ className: 'number',
+ begin: hljs.NUMBER_RE, end: '^'
+ },
+ {
+ className: 'hexcolor',
+ begin: '\\#[0-9A-F]+', end: '^'
+ },
+ {
+ className: 'function',
+ begin: hljs.IDENT_RE + '\\(', end: '\\)',
+ contains: ['params']
+ },
+ {
+ className: 'params',
+ begin: '^', endsWithParent: true, excludeEnd: true,
+ contains: ['number', 'string']
+ },
+ hljs.APOS_STRING_MODE,
+ hljs.QUOTE_STRING_MODE
+ ]
+};
+
+}
diff --git a/deps/highlight.js/languages/delphi.js b/deps/highlight.js/languages/delphi.js
new file mode 100644
index 0000000..a599364
--- /dev/null
+++ b/deps/highlight.js/languages/delphi.js
@@ -0,0 +1,87 @@
+/*
+Language: Delphi
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.delphi = function(){
+ var DELPHI_KEYWORDS = {'and': 1, 'safecall': 1, 'cdecl': 1, 'then': 1, 'string': 1, 'exports': 1, 'library': 1, 'not': 1, 'pascal': 1, 'set': 1, 'virtual': 1, 'file': 1, 'in': 1, 'array': 1, 'label': 1, 'packed': 1, 'end.': 1, 'index': 1, 'while': 1, 'const': 1, 'raise': 1, 'for': 1, 'to': 1, 'implementation': 1, 'with': 1, 'except': 1, 'overload': 1, 'destructor': 1, 'downto': 1, 'finally': 1, 'program': 1, 'exit': 1, 'unit': 1, 'inherited': 1, 'override': 1, 'if': 1, 'type': 1, 'until': 1, 'function': 1, 'do': 1, 'begin': 1, 'repeat': 1, 'goto': 1, 'nil': 1, 'far': 1, 'initialization': 1, 'object': 1, 'else': 1, 'var': 1, 'uses': 1, 'external': 1, 'resourcestring': 1, 'interface': 1, 'end': 1, 'finalization': 1, 'class': 1, 'asm': 1, 'mod': 1, 'case': 1, 'on': 1, 'shr': 1, 'shl': 1, 'of': 1, 'register': 1, 'xorwrite': 1, 'threadvar': 1, 'try': 1, 'record': 1, 'near': 1, 'stored': 1, 'constructor': 1, 'stdcall': 1, 'inline': 1, 'div': 1, 'out': 1, 'or': 1, 'procedure': 1};
+ var DELPHI_CLASS_KEYWORDS = {'safecall': 1, 'stdcall': 1, 'pascal': 1, 'stored': 1, 'const': 1, 'implementation': 1, 'finalization': 1, 'except': 1, 'to': 1, 'finally': 1, 'program': 1, 'inherited': 1, 'override': 1, 'then': 1, 'exports': 1, 'string': 1, 'read': 1, 'not': 1, 'mod': 1, 'shr': 1, 'try': 1, 'div': 1, 'shl': 1, 'set': 1, 'library': 1, 'message': 1, 'packed': 1, 'index': 1, 'for': 1, 'near': 1, 'overload': 1, 'label': 1, 'downto': 1, 'exit': 1, 'public': 1, 'goto': 1, 'interface': 1, 'asm': 1, 'on': 1, 'of': 1, 'constructor': 1, 'or': 1, 'private': 1, 'array': 1, 'unit': 1, 'raise': 1, 'destructor': 1, 'var': 1, 'type': 1, 'until': 1, 'function': 1, 'else': 1, 'external': 1, 'with': 1, 'case': 1, 'default': 1, 'record': 1, 'while': 1, 'protected': 1, 'property': 1, 'procedure': 1, 'published': 1, 'and': 1, 'cdecl': 1, 'do': 1, 'threadvar': 1, 'file': 1, 'in': 1, 'if': 1, 'end': 1, 'virtual': 1, 'write': 1, 'far': 1, 'out': 1, 'begin': 1, 'repeat': 1, 'nil': 1, 'initialization': 1, 'object': 1, 'uses': 1, 'resourcestring': 1, 'class': 1, 'register': 1, 'xorwrite': 1, 'inline': 1, 'static': 1};
+ return {
+ defaultMode: {
+ lexems: [hljs.IDENT_RE],
+ illegal: '("|\\$[G-Zg-z]|\\/\\*|</)',
+ contains: ['comment', 'string', 'number', 'function', 'class'],
+ keywords: DELPHI_KEYWORDS
+ },
+ case_insensitive: true,
+ modes: [
+ {
+ className: 'comment',
+ begin: '{', end: '}',
+ relevance: 0
+ },
+ {
+ className: 'comment',
+ begin: '\\(\\*', end: '\\*\\)',
+ relevance: 10
+ },
+ hljs.C_LINE_COMMENT_MODE,
+ {
+ className: 'number',
+ begin: hljs.NUMBER_RE, end: '^',
+ relevance: 0
+ },
+ {
+ className: 'string',
+ begin: '\'', end: '\'',
+ contains: ['quote'],
+ relevance: 0
+ },
+ {
+ className: 'string',
+ begin: '(#\\d+)+', end: '^'
+ },
+ {
+ className: 'quote',
+ begin: '\'\'', end: '^', noMarkup: true
+ },
+ {
+ className: 'function',
+ begin: 'function\\b', end: '[:;]',
+ lexems: [hljs.IDENT_RE],
+ keywords: {'function': 1},
+ contains: ['title', 'params', 'comment'],
+ relevance: 0
+ },
+ {
+ className: 'function',
+ begin: '(procedure|constructor|destructor)\\b', end: ';',
+ lexems: [hljs.IDENT_RE],
+ keywords: {'constructor': 1, 'destructor': 1, 'procedure': 1},
+ contains: ['title', 'params', 'comment'],
+ relevance: 10
+ },
+ {
+ className: 'title',
+ begin: hljs.IDENT_RE, end: '^'
+ },
+ {
+ className: 'params',
+ begin: '\\(', end: '\\)',
+ lexems: [hljs.IDENT_RE],
+ keywords: DELPHI_KEYWORDS,
+ contains: ['string']
+ },
+ {
+ className: 'class',
+ begin: '=\\bclass\\b', end: 'end;',
+ lexems: [hljs.IDENT_RE],
+ keywords: DELPHI_CLASS_KEYWORDS,
+ contains: ['string', 'comment', 'function']
+ }
+ ]
+ };
+}();
+
+};
diff --git a/deps/highlight.js/languages/diff.js b/deps/highlight.js/languages/diff.js
new file mode 100644
index 0000000..252b4af
--- /dev/null
+++ b/deps/highlight.js/languages/diff.js
@@ -0,0 +1,69 @@
+/*
+Language: diff
+Description: Unified and context diff
+Author: Vasily Polovnyov <vast@whiteants.net>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.diff = {
+ case_insensitive: true,
+ defaultMode: {
+ contains: ['chunk', 'header', 'addition', 'deletion', 'change']
+ },
+ modes: [
+ {
+ className: 'chunk',
+ begin: '^\\@\\@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +\\@\\@$', end:'^',
+ relevance: 10
+ },
+ {
+ className: 'chunk',
+ begin: '^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$', end: '^',
+ relevance: 10
+ },
+ {
+ className: 'chunk',
+ begin: '^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$', end: '^',
+ relevance: 10
+ },
+ {
+ className: 'header',
+ begin: 'Index: ', end: '$'
+ },
+ {
+ className: 'header',
+ begin: '=====', end: '=====$'
+ },
+ {
+ className: 'header',
+ begin: '^\\-\\-\\-', end: '$'
+ },
+ {
+ className: 'header',
+ begin: '^\\*{3} ', end: '$'
+ },
+ {
+ className: 'header',
+ begin: '^\\+\\+\\+', end: '$'
+ },
+ {
+ className: 'header',
+ begin: '\\*{5}', end: '\\*{5}$'
+ },
+ {
+ className: 'addition',
+ begin: '^\\+', end: '$'
+ },
+ {
+ className: 'deletion',
+ begin: '^\\-', end: '$'
+ },
+ {
+ className: 'change',
+ begin: '^\\!', end: '$'
+ }
+ ]
+};
+
+};
diff --git a/deps/highlight.js/languages/django.js b/deps/highlight.js/languages/django.js
new file mode 100644
index 0000000..74978f4
--- /dev/null
+++ b/deps/highlight.js/languages/django.js
@@ -0,0 +1,65 @@
+/*
+Language: Django
+Requires: html-xml.js
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.django = {
+ defaultMode: {
+ contains: ['tag', 'comment', 'doctype', 'template_comment', 'template_tag', 'variable']
+ },
+ case_insensitive: true,
+ modes: [
+ hljs.XML_COMMENT,
+ hljs.HTML_DOCTYPE,
+ {
+ className: 'tag',
+ lexems: [hljs.IDENT_RE],
+ keywords: hljs.HTML_TAGS,
+ begin: '<[A-Za-z/]', end: '>',
+ contains: ['attribute', 'template_comment', 'template_tag', 'variable']
+ },
+ hljs.HTML_ATTR,
+ hljs.HTML_SHORT_ATTR,
+ {
+ className: 'value',
+ begin: '"', end: '"',
+ contains: ['template_comment', 'template_tag', 'variable']
+ },
+ hljs.HTML_VALUE,
+ {
+ className: 'template_comment',
+ begin: '\\{\\%\\s*comment\\s*\\%\\}', end: '\\{\\%\\s*endcomment\\s*\\%\\}'
+ },
+ {
+ className: 'template_comment',
+ begin: '\\{#', end: '#\\}'
+ },
+ {
+ className: 'template_tag',
+ begin: '\\{\\%', end: '\\%\\}',
+ lexems: [hljs.IDENT_RE],
+ keywords: {'comment': 1, 'endcomment': 1, 'load': 1, 'templatetag': 1, 'ifchanged': 1, 'endifchanged': 1, 'if': 1, 'endif': 1, 'firstof': 1, 'for': 1, 'endfor': 1, 'in': 1, 'ifnotequal': 1, 'endifnotequal': 1, 'widthratio': 1, 'extends': 1, 'include': 1, 'spaceless': 1, 'endspaceless': 1, 'regroup': 1, 'by': 1, 'as': 1, 'ifequal': 1, 'endifequal': 1, 'ssi': 1, 'now': 1, 'with': 1, 'cycle': 1, 'url': 1, 'filter': 1, 'endfilter': 1, 'debug': 1, 'block': 1, 'endblock': 1, 'else': 1},
+ contains: ['filter']
+ },
+ {
+ className: 'variable',
+ begin: '\\{\\{', end: '\\}\\}',
+ contains: ['filter']
+ },
+ {
+ className: 'filter',
+ begin: '\\|[A-Za-z]+\\:?', end: '^', excludeEnd: true,
+ lexems: [hljs.IDENT_RE],
+ keywords: {'truncatewords': 1, 'removetags': 1, 'linebreaksbr': 1, 'yesno': 1, 'get_digit': 1, 'timesince': 1, 'random': 1, 'striptags': 1, 'filesizeformat': 1, 'escape': 1, 'linebreaks': 1, 'length_is': 1, 'ljust': 1, 'rjust': 1, 'cut': 1, 'urlize': 1, 'fix_ampersands': 1, 'title': 1, 'floatformat': 1, 'capfirst': 1, 'pprint': 1, 'divisibleby': 1, 'add': 1, 'make_list': 1, 'unordered_list': 1, 'urlencode': 1, 'timeuntil': 1, 'urlizetrunc': 1, 'wordcount': 1, 'stringformat': 1, 'linenumbers': 1, 'slice': 1, 'date': 1, 'dictsort': 1, 'dictsortreversed': 1, 'default_if_none': 1, 'pluralize': 1, 'lower': 1, 'join': 1, 'center': 1, 'default': 1, 'truncatewords_html': 1, 'upper': 1, 'length': 1, 'phone2numeric': 1, 'wordwrap': 1, 'time': 1, 'addslashes': 1, 'slugify': 1, 'first': 1},
+ contains: ['argument']
+ },
+ {
+ className: 'argument',
+ begin: '"', end: '"'
+ }
+ ]
+};
+
+};
diff --git a/deps/highlight.js/languages/dos.js b/deps/highlight.js/languages/dos.js
new file mode 100644
index 0000000..0f48f8a
--- /dev/null
+++ b/deps/highlight.js/languages/dos.js
@@ -0,0 +1,37 @@
+/*
+Language: DOS .bat
+Author: Alexander Makarov (http://rmcreative.ru/)
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.dos = {
+ case_insensitive: true,
+ defaultMode: {
+ lexems: [hljs.IDENT_RE],
+ contains: ['envvar', 'number', 'comment'],
+ keywords: {
+ 'flow': {'if':1, 'else':1, 'goto':1, 'for':1, 'in':1, 'do':1, 'call':1, 'exit':1, 'not':1, 'exist':1, 'errorlevel':1, 'defined':1, 'equ':1, 'neq':1, 'lss':1, 'leq':1, 'gtr':1, 'geq':1},
+ 'keyword':{'shift':1, 'cd':1, 'dir':1, 'echo':1, 'setlocal':1, 'endlocal':1, 'set':1, 'pause':1, 'copy':1},
+ 'stream':{'prn':1, 'nul':1, 'lpt3':1, 'lpt2':1, 'lpt1':1, 'con':1, 'com4':1, 'com3':1, 'com2':1, 'com1':1, 'aux':1},
+ 'winutils':{'ping':1, 'net':1, 'ipconfig':1, 'taskkill':1, 'xcopy':1, 'ren':1, 'del':1}
+ }
+ },
+ modes: [
+ {
+ className: 'number',
+ begin: '\\b\\d+', end: '^',
+ relevance: 0
+ },
+ {
+ className: 'comment',
+ begin: '@?rem', end: '$'
+ },
+ {
+ className: 'envvar',
+ begin: '%[^ ]+?%', end: '^'
+ }
+ ]
+};
+
+}; \ No newline at end of file
diff --git a/deps/highlight.js/languages/html-xml.js b/deps/highlight.js/languages/html-xml.js
new file mode 100644
index 0000000..282c04c
--- /dev/null
+++ b/deps/highlight.js/languages/html-xml.js
@@ -0,0 +1,143 @@
+/*
+Language: HTML, XML
+*/
+
+this.lang = function(hljs){
+
+hljs.XML_COMMENT = {
+ className: 'comment',
+ begin: '<!--', end: '-->'
+};
+hljs.XML_ATTR = {
+ className: 'attribute',
+ begin: '\\s[A-Za-z0-9\\._:-]+=', end: '^',
+ contains: ['value']
+};
+hljs.XML_VALUE_QUOT = {
+ className: 'value',
+ begin: '"', end: '"'
+};
+hljs.XML_VALUE_APOS = {
+ className: 'value',
+ begin: '\'', end: '\''
+};
+
+
+hljs.LANGUAGES.xml = {
+ defaultMode: {
+ contains: ['pi', 'comment', 'cdata', 'tag']
+ },
+ case_insensitive: true,
+ modes: [
+ {
+ className: 'pi',
+ begin: '<\\?', end: '\\?>',
+ relevance: 10
+ },
+ hljs.XML_COMMENT,
+ {
+ className: 'cdata',
+ begin: '<\\!\\[CDATA\\[', end: '\\]\\]>'
+ },
+ {
+ className: 'tag',
+ begin: '</?', end: '>',
+ contains: ['title', 'tag_internal'],
+ relevance: 1.5
+ },
+ {
+ className: 'title',
+ begin: '[A-Za-z0-9\\._:-]+', end: '^',
+ relevance: 0
+ },
+ {
+ className: 'tag_internal',
+ begin: '^', endsWithParent: true, noMarkup: true,
+ contains: ['attribute'],
+ relevance: 0,
+ illegal: '[\\+\\.]'
+ },
+ hljs.XML_ATTR,
+ hljs.XML_VALUE_QUOT,
+ hljs.XML_VALUE_APOS
+ ]
+};
+
+hljs.HTML_TAGS = {'code': 1, 'kbd': 1, 'font': 1, 'noscript': 1, 'style': 1, 'img': 1, 'title': 1, 'menu': 1, 'tt': 1, 'tr': 1, 'param': 1, 'li': 1, 'tfoot': 1, 'th': 1, 'input': 1, 'td': 1, 'dl': 1, 'blockquote': 1, 'fieldset': 1, 'big': 1, 'dd': 1, 'abbr': 1, 'optgroup': 1, 'dt': 1, 'button': 1, 'isindex': 1, 'p': 1, 'small': 1, 'div': 1, 'dir': 1, 'em': 1, 'frame': 1, 'meta': 1, 'sub': 1, 'bdo': 1, 'label': 1, 'acronym': 1, 'sup': 1, 'body': 1, 'xml': 1, 'basefont': 1, 'base': 1, 'br': 1, 'address': 1, 'strong': 1, 'legend': 1, 'ol': 1, 'script': 1, 'caption': 1, 's': 1, 'col': 1, 'h2': 1, 'h3': 1, 'h1': 1, 'h6': 1, 'h4': 1, 'h5': 1, 'table': 1, 'select': 1, 'noframes': 1, 'span': 1, 'area': 1, 'dfn': 1, 'strike': 1, 'cite': 1, 'thead': 1, 'head': 1, 'option': 1, 'form': 1, 'hr': 1, 'var': 1, 'link': 1, 'b': 1, 'colgroup': 1, 'ul': 1, 'applet': 1, 'del': 1, 'iframe': 1, 'pre': 1, 'frameset': 1, 'ins': 1, 'tbody': 1, 'html': 1, 'samp': 1, 'map': 1, 'object': 1, 'a': 1, 'xmlns': 1, 'center': 1, 'textarea': 1, 'i': 1, 'q': 1, 'u': 1};
+hljs.HTML_DOCTYPE = {
+ className: 'doctype',
+ begin: '<!DOCTYPE', end: '>',
+ relevance: 10
+};
+hljs.HTML_ATTR = {
+ className: 'attribute',
+ begin: '\\s[a-zA-Z\\:_-]+=', end: '^',
+ contains: ['value']
+};
+hljs.HTML_SHORT_ATTR = {
+ className: 'attribute',
+ begin: ' [a-zA-Z]+', end: '^'
+};
+hljs.HTML_VALUE = {
+ className: 'value',
+ begin: '[a-zA-Z0-9]+', end: '^'
+};
+
+hljs.LANGUAGES.html = {
+ defaultMode: {
+ contains: ['tag', 'comment', 'doctype', 'vbscript']
+ },
+ case_insensitive: true,
+ modes: [
+ hljs.XML_COMMENT,
+ hljs.HTML_DOCTYPE,
+ {
+ className: 'tag',
+ lexems: [hljs.IDENT_RE],
+ keywords: hljs.HTML_TAGS,
+ begin: '<style', end: '>',
+ contains: ['attribute'],
+ illegal: '[\\+\\.]',
+ starts: 'css'
+ },
+ {
+ className: 'tag',
+ lexems: [hljs.IDENT_RE],
+ keywords: hljs.HTML_TAGS,
+ begin: '<script', end: '>',
+ contains: ['attribute'],
+ illegal: '[\\+\\.]',
+ starts: 'javascript'
+ },
+ {
+ className: 'tag',
+ lexems: [hljs.IDENT_RE],
+ keywords: hljs.HTML_TAGS,
+ begin: '<[A-Za-z/]', end: '>',
+ contains: ['attribute'],
+ illegal: '[\\+\\.]'
+ },
+ {
+ className: 'css',
+ end: '</style>', returnEnd: true,
+ subLanguage: 'css'
+ },
+ {
+ className: 'javascript',
+ end: '</script>', returnEnd: true,
+ subLanguage: 'javascript'
+ },
+ hljs.HTML_ATTR,
+ hljs.HTML_SHORT_ATTR,
+ hljs.XML_VALUE_QUOT,
+ hljs.XML_VALUE_APOS,
+ hljs.HTML_VALUE,
+ {
+ className: 'vbscript',
+ begin: '<%', end: '%>',
+ subLanguage: 'vbscript'
+ }
+ ]
+};
+
+};
diff --git a/deps/highlight.js/languages/ini.js b/deps/highlight.js/languages/ini.js
new file mode 100644
index 0000000..b128a82
--- /dev/null
+++ b/deps/highlight.js/languages/ini.js
@@ -0,0 +1,44 @@
+/*
+Language: Ini
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.ini =
+{
+ case_insensitive: true,
+ defaultMode: {
+ contains: ['comment', 'title', 'setting'],
+ illegal: '[^\\s]'
+ },
+ modes: [
+ {
+ className: 'comment',
+ begin: ';', end: '$'
+ },
+ {
+ className: 'title',
+ begin: '\\[', end: '\\]'
+ },
+ {
+ className: 'setting',
+ begin: '^[a-z0-9_\\[\\]]+[ \\t]*=[ \\t]*', end: '$',
+ contains: ['value']
+ },
+ {
+ className: 'value',
+ begin: '^', endsWithParent: true,
+ contains: ['string', 'number'],
+ lexems: [hljs.IDENT_RE],
+ keywords: {'on': 1, 'off': 1, 'true': 1, 'false': 1, 'yes': 1, 'no': 1}
+ },
+ hljs.QUOTE_STRING_MODE,
+ hljs.BACKSLASH_ESCAPE,
+ {
+ className: 'number',
+ begin: '\\d+', end: '^'
+ }
+ ]
+};
+
+};
diff --git a/deps/highlight.js/languages/java.js b/deps/highlight.js/languages/java.js
new file mode 100644
index 0000000..9493f08
--- /dev/null
+++ b/deps/highlight.js/languages/java.js
@@ -0,0 +1,62 @@
+/*
+Language: Java
+Author: Vsevolod Solovyov <vsevolod.solovyov@gmail.com>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.java = {
+ defaultMode: {
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ contains: ['javadoc', 'comment', 'string', 'class', 'number', 'annotation'],
+ keywords: {'false': 1, 'synchronized': 1, 'int': 1, 'abstract': 1, 'float': 1, 'private': 1, 'char': 1, 'interface': 1, 'boolean': 1, 'static': 1, 'null': 1, 'if': 1, 'const': 1, 'for': 1, 'true': 1, 'while': 1, 'long': 1, 'throw': 1, 'strictfp': 1, 'finally': 1, 'protected': 1, 'extends': 1, 'import': 1, 'native': 1, 'final': 1, 'implements': 1, 'return': 1, 'void': 1, 'enum': 1, 'else': 1, 'break': 1, 'transient': 1, 'new': 1, 'catch': 1, 'instanceof': 1, 'byte': 1, 'super': 1, 'class': 1, 'volatile': 1, 'case': 1, 'assert': 1, 'short': 1, 'package': 1, 'default': 1, 'double': 1, 'public': 1, 'try': 1, 'this': 1, 'switch': 1, 'continue': 1, 'throws': 1}
+ },
+ modes: [
+ {
+ className: 'class',
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ begin: '(class |interface )', end: '{',
+ illegal: ':',
+ keywords: {'class': 1, 'interface': 1},
+ contains: ['inheritance', 'title']
+ },
+ {
+ className: 'inheritance',
+ begin: '(implements|extends)', end: '^', noMarkup: true,
+ lexems: [hljs.IDENT_RE],
+ keywords: {'extends': 1, 'implements': 1},
+ relevance: 10
+ },
+ {
+ className: 'title',
+ begin: hljs.UNDERSCORE_IDENT_RE, end: '^'
+ },
+ {
+ className: 'params',
+ begin: '\\(', end: '\\)',
+ contains: ['string', 'annotation']
+ },
+ hljs.C_NUMBER_MODE,
+ hljs.APOS_STRING_MODE,
+ hljs.QUOTE_STRING_MODE,
+ hljs.BACKSLASH_ESCAPE,
+ hljs.C_LINE_COMMENT_MODE,
+ {
+ className: 'javadoc',
+ begin: '/\\*\\*', end: '\\*/',
+ contains: ['javadoctag'],
+ relevance: 10
+ },
+ {
+ className: 'javadoctag',
+ begin: '@[A-Za-z]+', end: '^'
+ },
+ hljs.C_BLOCK_COMMENT_MODE,
+ {
+ className: 'annotation',
+ begin: '@[A-Za-z]+', end: '^'
+ }
+ ]
+};
+
+};
diff --git a/deps/highlight.js/languages/javascript.js b/deps/highlight.js/languages/javascript.js
new file mode 100644
index 0000000..62b9c00
--- /dev/null
+++ b/deps/highlight.js/languages/javascript.js
@@ -0,0 +1,54 @@
+/*
+Language: Javascript
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.javascript = {
+ defaultMode: {
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ contains: ['string', 'comment', 'number', 'regexp_container', 'function'],
+ keywords: {
+ 'keyword': {'in': 1, 'if': 1, 'for': 1, 'while': 1, 'finally': 1, 'var': 1, 'new': 1, 'function': 1, 'do': 1, 'return': 1, 'void': 1, 'else': 1, 'break': 1, 'catch': 1, 'instanceof': 1, 'with': 1, 'throw': 1, 'case': 1, 'default': 1, 'try': 1, 'this': 1, 'switch': 1, 'continue': 1, 'typeof': 1, 'delete': 1},
+ 'literal': {'true': 1, 'false': 1, 'null': 1}
+ }
+ },
+ modes: [
+ hljs.C_LINE_COMMENT_MODE,
+ hljs.C_BLOCK_COMMENT_MODE,
+ hljs.C_NUMBER_MODE,
+ hljs.APOS_STRING_MODE,
+ hljs.QUOTE_STRING_MODE,
+ hljs.BACKSLASH_ESCAPE,
+ {
+ className: 'regexp_container',
+ begin: '(' + hljs.RE_STARTERS_RE + '|case|return|throw)\\s*', end: '^', noMarkup: true,
+ lexems: [hljs.IDENT_RE],
+ keywords: {'return': 1, 'throw': 1, 'case': 1},
+ contains: ['comment', 'regexp'],
+ relevance: 0
+ },
+ {
+ className: 'regexp',
+ begin: '/.*?[^\\\\/]/[gim]*', end: '^'
+ },
+ {
+ className: 'function',
+ begin: '\\bfunction\\b', end: '{',
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ keywords: {'function': 1},
+ contains: ['title', 'params']
+ },
+ {
+ className: 'title',
+ begin: '[A-Za-z$_][0-9A-Za-z$_]*', end: '^'
+ },
+ {
+ className: 'params',
+ begin: '\\(', end: '\\)',
+ contains: ['string', 'comment']
+ }
+ ]
+};
+
+};
diff --git a/deps/highlight.js/languages/lisp.js b/deps/highlight.js/languages/lisp.js
new file mode 100644
index 0000000..4cbe17b
--- /dev/null
+++ b/deps/highlight.js/languages/lisp.js
@@ -0,0 +1,99 @@
+/*
+Language: Lisp
+Description: Generic lisp syntax
+Author: Vasily Polovnyov <vast@whiteants.net>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.lisp = function(){
+ var LISP_IDENT_RE = '[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#]*'
+ var LISP_SIMPLE_NUMBER_RE = '(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?'
+ return {
+ case_insensitive: true,
+ defaultMode: {
+ lexems: [LISP_IDENT_RE],
+ contains: ['literal', 'number', 'string', 'comment', 'quoted', 'list'],
+ illegal: '[^\\s]'
+ },
+ modes: [
+ {
+ className: 'string',
+ begin: '"', end: '"',
+ contains: ['escape'],
+ relevance: 0
+ },
+ hljs.BACKSLASH_ESCAPE,
+ {
+ className: 'number',
+ begin: LISP_SIMPLE_NUMBER_RE, end: '^'
+ },
+ {
+ className: 'number',
+ begin: '#b[0-1]+(/[0-1]+)?', end: '^'
+ },
+ {
+ className: 'number',
+ begin: '#o[0-7]+(/[0-7]+)?', end: '^'
+ },
+ {
+ className: 'number',
+ begin: '#x[0-9a-f]+(/[0-9a-f]+)?', end: '^'
+ },
+ {
+ className: 'number',
+ begin: '#c\\(' + LISP_SIMPLE_NUMBER_RE + ' +' + LISP_SIMPLE_NUMBER_RE, end: '\\)'
+ },
+ {
+ className: 'comment',
+ begin: ';', end: '$'
+ },
+ {
+ className: 'quoted',
+ begin: '[\'`]\\(', end: '\\)',
+ contains: ['number', 'string', 'variable', 'keyword', 'quoted_list']
+ },
+ {
+ className: 'quoted',
+ begin: '\\(quote ', end: '\\)',
+ contains: ['number', 'string', 'variable', 'keyword', 'quoted_list'],
+ lexems: [LISP_IDENT_RE],
+ keywords: {'title': {'quote': 1}}
+ },
+ {
+ className: 'quoted_list',
+ begin: '\\(', end: '\\)',
+ contains: ['quoted_list', 'literal', 'number', 'string']
+ },
+ {
+ className: 'list',
+ begin: '\\(', end: '\\)',
+ contains: ['title','body']
+ },
+ {
+ className: 'title',
+ begin: LISP_IDENT_RE, end: '^',
+ endsWithParent: true
+ },
+ {
+ className: 'body',
+ begin: '^', endsWithParent: true, excludeEnd: true,
+ contains: ['quoted', 'list', 'literal', 'number', 'string', 'comment', 'variable', 'keyword']
+ },
+ {
+ className: 'keyword',
+ begin: '[:&]' + LISP_IDENT_RE, end: '^'
+ },
+ {
+ className: 'variable',
+ begin: '\\*', end: '\\*'
+ },
+ {
+ className: 'literal',
+ begin: '\\b(t{1}|nil)\\b', end: '^'
+ }
+ ]
+ };
+}();
+
+};
diff --git a/deps/highlight.js/languages/lua.js b/deps/highlight.js/languages/lua.js
new file mode 100644
index 0000000..0698353
--- /dev/null
+++ b/deps/highlight.js/languages/lua.js
@@ -0,0 +1,85 @@
+/*
+Language: Lua
+Author: Andrew Fedorov <dmmdrs@mail.ru>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.lua = function(){
+ var OPENING_LONG_BRACKET = '\\[=*\\[', CLOSING_LONG_BRACKET = '\\]=*\\]';
+ return {
+ defaultMode: {
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ keywords: {
+ 'keyword': {
+ 'and': 1, 'break': 1, 'do': 1, 'else': 1, 'elseif': 1, 'end': 1,
+ 'false': 1, 'for': 1, 'if': 1, 'in': 1, 'local': 1, 'nil': 1,
+ 'not': 1, 'or': 1, 'repeat': 1, 'return': 1, 'then': 1, 'true': 1,
+ 'until': 1, 'while': 1
+ },
+ 'built_in': {
+ '_G': 1, '_VERSION': 1, 'assert': 1, 'collectgarbage': 1, 'dofile': 1,
+ 'error': 1, 'getfenv': 1, 'getmetatable': 1, 'ipairs': 1, 'load': 1,
+ 'loadfile': 1, 'loadstring': 1, 'module': 1, 'next': 1, 'pairs': 1,
+ 'pcall': 1, 'print': 1, 'rawequal': 1, 'rawget': 1, 'rawset': 1,
+ 'require': 1, 'select': 1, 'setfenv': 1, 'setmetatable': 1,
+ 'tonumber': 1, 'tostring': 1, 'type': 1, 'unpack': 1, 'xpcall': 1,
+ 'coroutine': 1, 'debug': 1, 'io': 1, 'math': 1, 'os': 1, 'package': 1,
+ 'string': 1, 'table': 1
+ }
+ },
+ contains: ['comment', 'function', 'number', 'string']
+ },
+ modes: [
+ // comment
+ {
+ className: 'comment',
+ begin: '--(?!' + OPENING_LONG_BRACKET + ')', end: '$'
+ },
+ {
+ className: 'comment',
+ begin: '--' + OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
+ contains: ['long_brackets'],
+ relevance: 10
+ },
+ // long_brackets
+ {
+ className: 'long_brackets',
+ begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
+ contains: ['long_brackets'],
+ noMarkup: true
+ },
+ // function
+ {
+ className: 'function',
+ begin: '\\bfunction\\b', end: '\\)',
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ keywords: {'function': 1},
+ contains: ['title', 'params', 'comment']
+ },
+ {
+ className: 'title',
+ begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*', end: '^'
+ },
+ {
+ className: 'params',
+ begin: '\\(', endsWithParent: true,
+ contains: ['comment']
+ },
+ // number
+ hljs.C_NUMBER_MODE,
+ // string
+ hljs.APOS_STRING_MODE,
+ hljs.QUOTE_STRING_MODE,
+ {
+ className: 'string',
+ begin: OPENING_LONG_BRACKET, end: CLOSING_LONG_BRACKET,
+ contains: ['long_brackets'],
+ relevance: 10
+ },
+ hljs.BACKSLASH_ESCAPE
+ ]
+ };
+}();
+
+}; \ No newline at end of file
diff --git a/deps/highlight.js/languages/mel.js b/deps/highlight.js/languages/mel.js
new file mode 100644
index 0000000..478245a
--- /dev/null
+++ b/deps/highlight.js/languages/mel.js
@@ -0,0 +1,55 @@
+/*
+Language: MEL
+Description: Maya Embedded Language
+Author: Shuen-Huei Guan <drake.guan@gmail.com>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.mel = {
+ defaultMode: {
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ illegal: '</',
+ contains: ['number', 'string', 'variable', 'comment'],
+ keywords: {'int': 1, 'float': 1, 'string': 1, 'float': 1, 'vector': 1, 'matrix': 1,
+ 'if': 1, 'else': 1, 'switch': 1, 'case': 1, 'default': 1, 'while': 1, 'do': 1, 'for': 1, 'in': 1, 'break': 1, 'continue': 1,
+ 'exists': 1, 'objExists': 1, 'attributeExists': 1,
+ 'global': 1, 'proc': 1, 'return': 1,
+ 'error': 1, 'warning': 1, 'trace': 1, 'catch': 1,
+ 'about': 1, 'abs': 1, 'addAttr': 1, 'addAttributeEditorNodeHelp': 1, 'addDynamic': 1, 'addNewShelfTab': 1, 'addPP': 1, 'addPanelCategory': 1, 'addPrefixToName': 1, 'advanceToNextDrivenKey': 1, 'affectedNet': 1, 'affects': 1, 'aimConstraint': 1, 'air': 1, 'alias': 1, 'aliasAttr': 1, 'align': 1, 'alignCtx': 1, 'alignCurve': 1, 'alignSurface': 1, 'allViewFit': 1, 'ambientLight': 1, 'angle': 1, 'angleBetween': 1, 'animCone': 1, 'animCurveEditor': 1, 'animDisplay': 1, 'animView': 1, 'annotate': 1, 'appendStringArray': 1, 'applicationName': 1, 'applyAttrPreset': 1, 'applyTake': 1, 'arcLenDimContext': 1, 'arcLengthDimension': 1, 'arclen': 1, 'arrayMapper': 1, 'art3dPaintCtx': 1, 'artAttrCtx': 1, 'artAttrPaintVertexCtx': 1, 'artAttrSkinPaintCtx': 1, 'artAttrTool': 1, 'artBuildPaintMenu': 1, 'artFluidAttrCtx': 1, 'artPuttyCtx': 1, 'artSelectCtx': 1, 'artSetPaintCtx': 1, 'artUserPaintCtx': 1, 'assignCommand': 1, 'assignInputDevice': 1, 'assignViewportFactories': 1, 'attachCurve': 1, 'attachDeviceAttr': 1, 'attachSurface': 1, 'attrColorSliderGrp': 1, 'attrCompatibility': 1, 'attrControlGrp': 1, 'attrEnumOptionMenu': 1, 'attrEnumOptionMenuGrp': 1, 'attrFieldGrp': 1, 'attrFieldSliderGrp': 1, 'attrNavigationControlGrp': 1, 'attrPresetEditWin': 1, 'attributeExists': 1, 'attributeInfo': 1, 'attributeMenu': 1, 'attributeQuery': 1, 'autoKeyframe': 1, 'autoPlace': 1, 'bakeClip': 1, 'bakeFluidShading': 1, 'bakePartialHistory': 1, 'bakeResults': 1, 'bakeSimulation': 1, 'basename': 1, 'basenameEx': 1, 'batchRender': 1, 'bessel': 1, 'bevel': 1, 'bevelPlus': 1, 'binMembership': 1, 'bindSkin': 1, 'blend2': 1, 'blendShape': 1, 'blendShapeEditor': 1, 'blendShapePanel': 1, 'blendTwoAttr': 1, 'blindDataType': 1, 'boneLattice': 1, 'boundary': 1, 'boxDollyCtx': 1, 'boxZoomCtx': 1, 'bufferCurve': 1, 'buildBookmarkMenu': 1, 'buildKeyframeMenu': 1, 'button': 1, 'buttonManip': 1, 'CBG': 1, 'cacheFile': 1, 'cacheFileCombine': 1, 'cacheFileMerge': 1, 'cacheFileTrack': 1, 'camera': 1, 'cameraView': 1, 'canCreateManip': 1, 'canvas': 1, 'capitalizeString': 1, 'catch': 1, 'catchQuiet': 1, 'ceil': 1, 'changeSubdivComponentDisplayLevel': 1, 'changeSubdivRegion': 1, 'channelBox': 1, 'character': 1, 'characterMap': 1, 'characterOutlineEditor': 1, 'characterize': 1, 'chdir': 1, 'checkBox': 1, 'checkBoxGrp': 1, 'checkDefaultRenderGlobals': 1, 'choice': 1, 'circle': 1, 'circularFillet': 1, 'clamp': 1, 'clear': 1, 'clearCache': 1, 'clip': 1, 'clipEditor': 1, 'clipEditorCurrentTimeCtx': 1, 'clipSchedule': 1, 'clipSchedulerOutliner': 1, 'clipTrimBefore': 1, 'closeCurve': 1, 'closeSurface': 1, 'cluster': 1, 'cmdFileOutput': 1, 'cmdScrollFieldExecuter': 1, 'cmdScrollFieldReporter': 1, 'cmdShell': 1, 'coarsenSubdivSelectionList': 1, 'collision': 1, 'color': 1, 'colorAtPoint': 1, 'colorEditor': 1, 'colorIndex': 1, 'colorIndexSliderGrp': 1, 'colorSliderButtonGrp': 1, 'colorSliderGrp': 1, 'columnLayout': 1, 'commandEcho': 1, 'commandLine': 1, 'commandPort': 1, 'compactHairSystem': 1, 'componentEditor': 1, 'compositingInterop': 1, 'computePolysetVolume': 1, 'condition': 1, 'cone': 1, 'confirmDialog': 1, 'connectAttr': 1, 'connectControl': 1, 'connectDynamic': 1, 'connectJoint': 1, 'connectionInfo': 1, 'constrain': 1, 'constrainValue': 1, 'constructionHistory': 1, 'container': 1, 'containsMultibyte': 1, 'contextInfo': 1, 'control': 1, 'convertFromOldLayers': 1, 'convertIffToPsd': 1, 'convertLightmap': 1, 'convertSolidTx': 1, 'convertTessellation': 1, 'convertUnit': 1, 'copyArray': 1, 'copyFlexor': 1, 'copyKey': 1, 'copySkinWeights': 1, 'cos': 1, 'cpButton': 1, 'cpCache': 1, 'cpClothSet': 1, 'cpCollision': 1, 'cpConstraint': 1, 'cpConvClothToMesh': 1, 'cpForces': 1, 'cpGetSolverAttr': 1, 'cpPanel': 1, 'cpProperty': 1, 'cpRigidCollisionFilter': 1, 'cpSeam': 1, 'cpSetEdit': 1, 'cpSetSolverAttr': 1, 'cpSolver': 1, 'cpSolverTypes': 1, 'cpTool': 1, 'cpUpdateClothUVs': 1, 'createDisplayLayer': 1, 'createDrawCtx': 1, 'createEditor': 1, 'createLayeredPsdFile': 1, 'createMotionField': 1, 'createNewShelf': 1, 'createNode': 1, 'createRenderLayer': 1, 'createSubdivRegion': 1, 'cross': 1, 'crossProduct': 1, 'ctxAbort': 1, 'ctxCompletion': 1, 'ctxEditMode': 1, 'ctxTraverse': 1, 'currentCtx': 1, 'currentTime': 1, 'currentTimeCtx': 1, 'currentUnit': 1, 'currentUnit': 1, 'curve': 1, 'curveAddPtCtx': 1, 'curveCVCtx': 1, 'curveEPCtx': 1, 'curveEditorCtx': 1, 'curveIntersect': 1, 'curveMoveEPCtx': 1, 'curveOnSurface': 1, 'curveSketchCtx': 1, 'cutKey': 1, 'cycleCheck': 1, 'cylinder': 1, 'dagPose': 1, 'date': 1, 'defaultLightListCheckBox': 1, 'defaultNavigation': 1, 'defineDataServer': 1, 'defineVirtualDevice': 1, 'deformer': 1, 'deg_to_rad': 1, 'delete': 1, 'deleteAttr': 1, 'deleteShadingGroupsAndMaterials': 1, 'deleteShelfTab': 1, 'deleteUI': 1, 'deleteUnusedBrushes': 1, 'delrandstr': 1, 'detachCurve': 1, 'detachDeviceAttr': 1, 'detachSurface': 1, 'deviceEditor': 1, 'devicePanel': 1, 'dgInfo': 1, 'dgdirty': 1, 'dgeval': 1, 'dgtimer': 1, 'dimWhen': 1, 'directKeyCtx': 1, 'directionalLight': 1, 'dirmap': 1, 'dirname': 1, 'disable': 1, 'disconnectAttr': 1, 'disconnectJoint': 1, 'diskCache': 1, 'displacementToPoly': 1, 'displayAffected': 1, 'displayColor': 1, 'displayCull': 1, 'displayLevelOfDetail': 1, 'displayPref': 1, 'displayRGBColor': 1, 'displaySmoothness': 1, 'displayStats': 1, 'displayString': 1, 'displaySurface': 1, 'distanceDimContext': 1, 'distanceDimension': 1, 'doBlur': 1, 'dolly': 1, 'dollyCtx': 1, 'dopeSheetEditor': 1, 'dot': 1, 'dotProduct': 1, 'doubleProfileBirailSurface': 1, 'drag': 1, 'dragAttrContext': 1, 'draggerContext': 1, 'dropoffLocator': 1, 'duplicate': 1, 'duplicateCurve': 1, 'duplicateSurface': 1, 'dynCache': 1, 'dynControl': 1, 'dynExport': 1, 'dynExpression': 1, 'dynGlobals': 1, 'dynPaintEditor': 1, 'dynParticleCtx': 1, 'dynPref': 1, 'dynRelEdPanel': 1, 'dynRelEditor': 1, 'dynamicLoad': 1, 'editAttrLimits': 1, 'editDisplayLayerGlobals': 1, 'editDisplayLayerMembers': 1, 'editRenderLayerAdjustment': 1, 'editRenderLayerGlobals': 1, 'editRenderLayerMembers': 1, 'editor': 1, 'editorTemplate': 1, 'effector': 1, 'emit': 1, 'emitter': 1, 'enableDevice': 1, 'encodeString': 1, 'endString': 1, 'endsWith': 1, 'env': 1, 'equivalent': 1, 'equivalentTol': 1, 'erf': 1, 'error': 1, 'eval': 1, 'eval': 1, 'evalDeferred': 1, 'evalEcho': 1, 'event': 1, 'exactWorldBoundingBox': 1, 'exclusiveLightCheckBox': 1, 'exec': 1, 'executeForEachObject': 1, 'exists': 1, 'exp': 1, 'expression': 1, 'expressionEditorListen': 1, 'extendCurve': 1, 'extendSurface': 1, 'extrude': 1, 'fcheck': 1, 'fclose': 1, 'feof': 1, 'fflush': 1, 'fgetline': 1, 'fgetword': 1, 'file': 1, 'fileBrowserDialog': 1, 'fileDialog': 1, 'fileExtension': 1, 'fileInfo': 1, 'filetest': 1, 'filletCurve': 1, 'filter': 1, 'filterCurve': 1, 'filterExpand': 1, 'filterStudioImport': 1, 'findAllIntersections': 1, 'findAnimCurves': 1, 'findKeyframe': 1, 'findMenuItem': 1, 'findRelatedSkinCluster': 1, 'finder': 1, 'firstParentOf': 1, 'fitBspline': 1, 'flexor': 1, 'floatEq': 1, 'floatField': 1, 'floatFieldGrp': 1, 'floatScrollBar': 1, 'floatSlider': 1, 'floatSlider2': 1, 'floatSliderButtonGrp': 1, 'floatSliderGrp': 1, 'floor': 1, 'flow': 1, 'fluidCacheInfo': 1, 'fluidEmitter': 1, 'fluidVoxelInfo': 1, 'flushUndo': 1, 'fmod': 1, 'fontDialog': 1, 'fopen': 1, 'formLayout': 1, 'format': 1, 'fprint': 1, 'frameLayout': 1, 'fread': 1, 'freeFormFillet': 1, 'frewind': 1, 'fromNativePath': 1, 'fwrite': 1, 'gamma': 1, 'gauss': 1, 'geometryConstraint': 1, 'getApplicationVersionAsFloat': 1, 'getAttr': 1, 'getClassification': 1, 'getDefaultBrush': 1, 'getFileList': 1, 'getFluidAttr': 1, 'getInputDeviceRange': 1, 'getMayaPanelTypes': 1, 'getModifiers': 1, 'getPanel': 1, 'getParticleAttr': 1, 'getPluginResource': 1, 'getenv': 1, 'getpid': 1, 'glRender': 1, 'glRenderEditor': 1, 'globalStitch': 1, 'gmatch': 1, 'goal': 1, 'gotoBindPose': 1, 'grabColor': 1, 'gradientControl': 1, 'gradientControlNoAttr': 1, 'graphDollyCtx': 1, 'graphSelectContext': 1, 'graphTrackCtx': 1, 'gravity': 1, 'grid': 1, 'gridLayout': 1, 'group': 1, 'groupObjectsByName': 1, 'HfAddAttractorToAS': 1, 'HfAssignAS': 1, 'HfBuildEqualMap': 1, 'HfBuildFurFiles': 1, 'HfBuildFurImages': 1, 'HfCancelAFR': 1, 'HfConnectASToHF': 1, 'HfCreateAttractor': 1, 'HfDeleteAS': 1, 'HfEditAS': 1, 'HfPerformCreateAS': 1, 'HfRemoveAttractorFromAS': 1, 'HfSelectAttached': 1, 'HfSelectAttractors': 1, 'HfUnAssignAS': 1, 'hardenPointCurve': 1, 'hardware': 1, 'hardwareRenderPanel': 1, 'headsUpDisplay': 1, 'headsUpMessage': 1, 'help': 1, 'helpLine': 1, 'hermite': 1, 'hide': 1, 'hilite': 1, 'hitTest': 1, 'hotBox': 1, 'hotkey': 1, 'hotkeyCheck': 1, 'hsv_to_rgb': 1, 'hudButton': 1, 'hudSlider': 1, 'hudSliderButton': 1, 'hwReflectionMap': 1, 'hwRender': 1, 'hwRenderLoad': 1, 'hyperGraph': 1, 'hyperPanel': 1, 'hyperShade': 1, 'hypot': 1, 'iconTextButton': 1, 'iconTextCheckBox': 1, 'iconTextRadioButton': 1, 'iconTextRadioCollection': 1, 'iconTextScrollList': 1, 'iconTextStaticLabel': 1, 'ikHandle': 1, 'ikHandleCtx': 1, 'ikHandleDisplayScale': 1, 'ikSolver': 1, 'ikSplineHandleCtx': 1, 'ikSystem': 1, 'ikSystemInfo': 1, 'ikfkDisplayMethod': 1, 'illustratorCurves': 1, 'image': 1, 'imfPlugins': 1, 'inheritTransform': 1, 'insertJoint': 1, 'insertJointCtx': 1, 'insertKeyCtx': 1, 'insertKnotCurve': 1, 'insertKnotSurface': 1, 'instance': 1, 'instanceable': 1, 'instancer': 1, 'intField': 1, 'intFieldGrp': 1, 'intScrollBar': 1, 'intSlider': 1, 'intSliderGrp': 1, 'interToUI': 1, 'internalVar': 1, 'intersect': 1, 'iprEngine': 1, 'isAnimCurve': 1, 'isConnected': 1, 'isDirty': 1, 'isParentOf': 1, 'isSameObject': 1, 'isTrue': 1, 'isValidObjectName': 1, 'isValidString': 1, 'isValidUiName': 1, 'isolateSelect': 1, 'itemFilter': 1, 'itemFilterAttr': 1, 'itemFilterRender': 1, 'itemFilterType': 1, 'joint': 1, 'jointCluster': 1, 'jointCtx': 1, 'jointDisplayScale': 1, 'jointLattice': 1, 'keyTangent': 1, 'keyframe': 1, 'keyframeOutliner': 1, 'keyframeRegionCurrentTimeCtx': 1, 'keyframeRegionDirectKeyCtx': 1, 'keyframeRegionDollyCtx': 1, 'keyframeRegionInsertKeyCtx': 1, 'keyframeRegionMoveKeyCtx': 1, 'keyframeRegionScaleKeyCtx': 1, 'keyframeRegionSelectKeyCtx': 1, 'keyframeRegionSetKeyCtx': 1, 'keyframeRegionTrackCtx': 1, 'keyframeStats': 1, 'lassoContext': 1, 'lattice': 1, 'latticeDeformKeyCtx': 1, 'launch': 1, 'launchImageEditor': 1, 'layerButton': 1, 'layeredShaderPort': 1, 'layeredTexturePort': 1, 'layout': 1, 'layoutDialog': 1, 'lightList': 1, 'lightListEditor': 1, 'lightListPanel': 1, 'lightlink': 1, 'lineIntersection': 1, 'linearPrecision': 1, 'linstep': 1, 'listAnimatable': 1, 'listAttr': 1, 'listCameras': 1, 'listConnections': 1, 'listDeviceAttachments': 1, 'listHistory': 1, 'listInputDeviceAxes': 1, 'listInputDeviceButtons': 1, 'listInputDevices': 1, 'listMenuAnnotation': 1, 'listNodeTypes': 1, 'listPanelCategories': 1, 'listRelatives': 1, 'listSets': 1, 'listTransforms': 1, 'listUnselected': 1, 'listerEditor': 1, 'loadFluid': 1, 'loadNewShelf': 1, 'loadPlugin': 1, 'loadPluginLanguageResources': 1, 'loadPrefObjects': 1, 'localizedPanelLabel': 1, 'lockNode': 1, 'loft': 1, 'log': 1, 'longNameOf': 1, 'lookThru': 1, 'ls': 1, 'lsThroughFilter': 1, 'lsType': 1, 'lsUI': 1, 'Mayatomr': 1, 'mag': 1, 'makeIdentity': 1, 'makeLive': 1, 'makePaintable': 1, 'makeRoll': 1, 'makeSingleSurface': 1, 'makeTubeOn': 1, 'makebot': 1, 'manipMoveContext': 1, 'manipMoveLimitsCtx': 1, 'manipOptions': 1, 'manipRotateContext': 1, 'manipRotateLimitsCtx': 1, 'manipScaleContext': 1, 'manipScaleLimitsCtx': 1, 'marker': 1, 'match': 1, 'max': 1, 'memory': 1, 'menu': 1, 'menuBarLayout': 1, 'menuEditor': 1, 'menuItem': 1, 'menuItemToShelf': 1, 'menuSet': 1, 'menuSetPref': 1, 'messageLine': 1, 'min': 1, 'minimizeApp': 1, 'mirrorJoint': 1, 'modelCurrentTimeCtx': 1, 'modelEditor': 1, 'modelPanel': 1, 'mouse': 1, 'movIn': 1, 'movOut': 1, 'move': 1, 'moveIKtoFK': 1, 'moveKeyCtx': 1, 'moveVertexAlongDirection': 1, 'multiProfileBirailSurface': 1, 'mute': 1, 'nParticle': 1, 'nameCommand': 1, 'nameField': 1, 'namespace': 1, 'namespaceInfo': 1, 'newPanelItems': 1, 'newton': 1, 'nodeCast': 1, 'nodeIconButton': 1, 'nodeOutliner': 1, 'nodePreset': 1, 'nodeType': 1, 'noise': 1, 'nonLinear': 1, 'normalConstraint': 1, 'normalize': 1, 'nurbsBoolean': 1, 'nurbsCopyUVSet': 1, 'nurbsCube': 1, 'nurbsEditUV': 1, 'nurbsPlane': 1, 'nurbsSelect': 1, 'nurbsSquare': 1, 'nurbsToPoly': 1, 'nurbsToPolygonsPref': 1, 'nurbsToSubdiv': 1, 'nurbsToSubdivPref': 1, 'nurbsUVSet': 1, 'nurbsViewDirectionVector': 1, 'objExists': 1, 'objectCenter': 1, 'objectLayer': 1, 'objectType': 1, 'objectTypeUI': 1, 'obsoleteProc': 1, 'oceanNurbsPreviewPlane': 1, 'offsetCurve': 1, 'offsetCurveOnSurface': 1, 'offsetSurface': 1, 'openGLExtension': 1, 'openMayaPref': 1, 'optionMenu': 1, 'optionMenuGrp': 1, 'optionVar': 1, 'orbit': 1, 'orbitCtx': 1, 'orientConstraint': 1, 'outlinerEditor': 1, 'outlinerPanel': 1, 'overrideModifier': 1, 'paintEffectsDisplay': 1, 'pairBlend': 1, 'palettePort': 1, 'paneLayout': 1, 'panel': 1, 'panelConfiguration': 1, 'panelHistory': 1, 'paramDimContext': 1, 'paramDimension': 1, 'paramLocator': 1, 'parent': 1, 'parentConstraint': 1, 'particle': 1, 'particleExists': 1, 'particleInstancer': 1, 'particleRenderInfo': 1, 'partition': 1, 'pasteKey': 1, 'pathAnimation': 1, 'pause': 1, 'pclose': 1, 'percent': 1, 'performanceOptions': 1, 'pfxstrokes': 1, 'pickWalk': 1, 'picture': 1, 'pixelMove': 1, 'planarSrf': 1, 'plane': 1, 'play': 1, 'playbackOptions': 1, 'playblast': 1, 'plugAttr': 1, 'plugNode': 1, 'pluginInfo': 1, 'pluginResourceUtil': 1, 'pointConstraint': 1, 'pointCurveConstraint': 1, 'pointLight': 1, 'pointMatrixMult': 1, 'pointOnCurve': 1, 'pointOnSurface': 1, 'pointPosition': 1, 'poleVectorConstraint': 1, 'polyAppend': 1, 'polyAppendFacetCtx': 1, 'polyAppendVertex': 1, 'polyAutoProjection': 1, 'polyAverageNormal': 1, 'polyAverageVertex': 1, 'polyBevel': 1, 'polyBlendColor': 1, 'polyBlindData': 1, 'polyBoolOp': 1, 'polyBridgeEdge': 1, 'polyCacheMonitor': 1, 'polyCheck': 1, 'polyChipOff': 1, 'polyClipboard': 1, 'polyCloseBorder': 1, 'polyCollapseEdge': 1, 'polyCollapseFacet': 1, 'polyColorBlindData': 1, 'polyColorDel': 1, 'polyColorPerVertex': 1, 'polyColorSet': 1, 'polyCompare': 1, 'polyCone': 1, 'polyCopyUV': 1, 'polyCrease': 1, 'polyCreaseCtx': 1, 'polyCreateFacet': 1, 'polyCreateFacetCtx': 1, 'polyCube': 1, 'polyCut': 1, 'polyCutCtx': 1, 'polyCylinder': 1, 'polyCylindricalProjection': 1, 'polyDelEdge': 1, 'polyDelFacet': 1, 'polyDelVertex': 1, 'polyDuplicateAndConnect': 1, 'polyDuplicateEdge': 1, 'polyEditUV': 1, 'polyEditUVShell': 1, 'polyEvaluate': 1, 'polyExtrudeEdge': 1, 'polyExtrudeFacet': 1, 'polyExtrudeVertex': 1, 'polyFlipEdge': 1, 'polyFlipUV': 1, 'polyForceUV': 1, 'polyGeoSampler': 1, 'polyHelix': 1, 'polyInfo': 1, 'polyInstallAction': 1, 'polyLayoutUV': 1, 'polyListComponentConversion': 1, 'polyMapCut': 1, 'polyMapDel': 1, 'polyMapSew': 1, 'polyMapSewMove': 1, 'polyMergeEdge': 1, 'polyMergeEdgeCtx': 1, 'polyMergeFacet': 1, 'polyMergeFacetCtx': 1, 'polyMergeUV': 1, 'polyMergeVertex': 1, 'polyMirrorFace': 1, 'polyMoveEdge': 1, 'polyMoveFacet': 1, 'polyMoveFacetUV': 1, 'polyMoveUV': 1, 'polyMoveVertex': 1, 'polyNormal': 1, 'polyNormalPerVertex': 1, 'polyNormalizeUV': 1, 'polyOptUvs': 1, 'polyOptions': 1, 'polyOutput': 1, 'polyPipe': 1, 'polyPlanarProjection': 1, 'polyPlane': 1, 'polyPlatonicSolid': 1, 'polyPoke': 1, 'polyPrimitive': 1, 'polyPrism': 1, 'polyProjection': 1, 'polyPyramid': 1, 'polyQuad': 1, 'polyQueryBlindData': 1, 'polyReduce': 1, 'polySelect': 1, 'polySelectConstraint': 1, 'polySelectConstraintMonitor': 1, 'polySelectCtx': 1, 'polySelectEditCtx': 1, 'polySeparate': 1, 'polySetToFaceNormal': 1, 'polySewEdge': 1, 'polyShortestPathCtx': 1, 'polySmooth': 1, 'polySoftEdge': 1, 'polySphere': 1, 'polySphericalProjection': 1, 'polySplit': 1, 'polySplitCtx': 1, 'polySplitEdge': 1, 'polySplitRing': 1, 'polySplitVertex': 1, 'polyStraightenUVBorder': 1, 'polySubdivideEdge': 1, 'polySubdivideFacet': 1, 'polyToSubdiv': 1, 'polyTorus': 1, 'polyTransfer': 1, 'polyTriangulate': 1, 'polyUVSet': 1, 'polyUnite': 1, 'polyWedgeFace': 1, 'popen': 1, 'popupMenu': 1, 'pose': 1, 'pow': 1, 'preloadRefEd': 1, 'print': 1, 'progressBar': 1, 'progressWindow': 1, 'projFileViewer': 1, 'projectCurve': 1, 'projectTangent': 1, 'projectionContext': 1, 'projectionManip': 1, 'promptDialog': 1, 'propModCtx': 1, 'propMove': 1, 'psdChannelOutliner': 1, 'psdEditTextureFile': 1, 'psdExport': 1, 'psdTextureFile': 1, 'putenv': 1, 'pwd': 1, 'python': 1, 'querySubdiv': 1, 'quit': 1, 'rad_to_deg': 1, 'radial': 1, 'radioButton': 1, 'radioButtonGrp': 1, 'radioCollection': 1, 'radioMenuItemCollection': 1, 'rampColorPort': 1, 'rand': 1, 'randomizeFollicles': 1, 'randstate': 1, 'rangeControl': 1, 'readTake': 1, 'rebuildCurve': 1, 'rebuildSurface': 1, 'recordAttr': 1, 'recordDevice': 1, 'redo': 1, 'reference': 1, 'referenceEdit': 1, 'referenceQuery': 1, 'refineSubdivSelectionList': 1, 'refresh': 1, 'refreshAE': 1, 'registerPluginResource': 1, 'rehash': 1, 'reloadImage': 1, 'removeJoint': 1, 'removeMultiInstance': 1, 'removePanelCategory': 1, 'rename': 1, 'renameAttr': 1, 'renameSelectionList': 1, 'renameUI': 1, 'render': 1, 'renderGlobalsNode': 1, 'renderInfo': 1, 'renderLayerButton': 1, 'renderLayerParent': 1, 'renderLayerPostProcess': 1, 'renderLayerUnparent': 1, 'renderManip': 1, 'renderPartition': 1, 'renderQualityNode': 1, 'renderSettings': 1, 'renderThumbnailUpdate': 1, 'renderWindowEditor': 1, 'renderWindowSelectContext': 1, 'renderer': 1, 'reorder': 1, 'reorderDeformers': 1, 'requires': 1, 'reroot': 1, 'resampleFluid': 1, 'resetAE': 1, 'resetPfxToPolyCamera': 1, 'resetTool': 1, 'resolutionNode': 1, 'retarget': 1, 'reverseCurve': 1, 'reverseSurface': 1, 'revolve': 1, 'rgb_to_hsv': 1, 'rigidBody': 1, 'rigidSolver': 1, 'roll': 1, 'rollCtx': 1, 'rootOf': 1, 'rot': 1, 'rotate': 1, 'rotationInterpolation': 1, 'roundConstantRadius': 1, 'rowColumnLayout': 1, 'rowLayout': 1, 'runTimeCommand': 1, 'runup': 1, 'sampleImage': 1, 'saveAllShelves': 1, 'saveAttrPreset': 1, 'saveFluid': 1, 'saveImage': 1, 'saveInitialState': 1, 'saveMenu': 1, 'savePrefObjects': 1, 'savePrefs': 1, 'saveShelf': 1, 'saveToolSettings': 1, 'scale': 1, 'scaleBrushBrightness': 1, 'scaleComponents': 1, 'scaleConstraint': 1, 'scaleKey': 1, 'scaleKeyCtx': 1, 'sceneEditor': 1, 'sceneUIReplacement': 1, 'scmh': 1, 'scriptCtx': 1, 'scriptEditorInfo': 1, 'scriptJob': 1, 'scriptNode': 1, 'scriptTable': 1, 'scriptToShelf': 1, 'scriptedPanel': 1, 'scriptedPanelType': 1, 'scrollField': 1, 'scrollLayout': 1, 'sculpt': 1, 'searchPathArray': 1, 'seed': 1, 'selLoadSettings': 1, 'select': 1, 'selectContext': 1, 'selectCurveCV': 1, 'selectKey': 1, 'selectKeyCtx': 1, 'selectKeyframeRegionCtx': 1, 'selectMode': 1, 'selectPref': 1, 'selectPriority': 1, 'selectType': 1, 'selectedNodes': 1, 'selectionConnection': 1, 'separator': 1, 'setAttr': 1, 'setAttrEnumResource': 1, 'setAttrMapping': 1, 'setAttrNiceNameResource': 1, 'setConstraintRestPosition': 1, 'setDefaultShadingGroup': 1, 'setDrivenKeyframe': 1, 'setDynamic': 1, 'setEditCtx': 1, 'setEditor': 1, 'setFluidAttr': 1, 'setFocus': 1, 'setInfinity': 1, 'setInputDeviceMapping': 1, 'setKeyCtx': 1, 'setKeyPath': 1, 'setKeyframe': 1, 'setKeyframeBlendshapeTargetWts': 1, 'setMenuMode': 1, 'setNodeNiceNameResource': 1, 'setNodeTypeFlag': 1, 'setParent': 1, 'setParticleAttr': 1, 'setPfxToPolyCamera': 1, 'setPluginResource': 1, 'setProject': 1, 'setStampDensity': 1, 'setStartupMessage': 1, 'setState': 1, 'setToolTo': 1, 'setUITemplate': 1, 'setXformManip': 1, 'sets': 1, 'shadingConnection': 1, 'shadingGeometryRelCtx': 1, 'shadingLightRelCtx': 1, 'shadingNetworkCompare': 1, 'shadingNode': 1, 'shapeCompare': 1, 'shelfButton': 1, 'shelfLayout': 1, 'shelfTabLayout': 1, 'shellField': 1, 'shortNameOf': 1, 'showHelp': 1, 'showHidden': 1, 'showManipCtx': 1, 'showSelectionInTitle': 1, 'showShadingGroupAttrEditor': 1, 'showWindow': 1, 'sign': 1, 'simplify': 1, 'sin': 1, 'singleProfileBirailSurface': 1, 'size': 1, 'sizeBytes': 1, 'skinCluster': 1, 'skinPercent': 1, 'smoothCurve': 1, 'smoothTangentSurface': 1, 'smoothstep': 1, 'snap2to2': 1, 'snapKey': 1, 'snapMode': 1, 'snapTogetherCtx': 1, 'snapshot': 1, 'soft': 1, 'softMod': 1, 'softModCtx': 1, 'sort': 1, 'sound': 1, 'soundControl': 1, 'source': 1, 'spaceLocator': 1, 'sphere': 1, 'sphrand': 1, 'spotLight': 1, 'spotLightPreviewPort': 1, 'spreadSheetEditor': 1, 'spring': 1, 'sqrt': 1, 'squareSurface': 1, 'srtContext': 1, 'stackTrace': 1, 'startString': 1, 'startsWith': 1, 'stitchAndExplodeShell': 1, 'stitchSurface': 1, 'stitchSurfacePoints': 1, 'strcmp': 1, 'stringArrayCatenate': 1, 'stringArrayContains': 1, 'stringArrayCount': 1, 'stringArrayInsertAtIndex': 1, 'stringArrayIntersector': 1, 'stringArrayRemove': 1, 'stringArrayRemoveAtIndex': 1, 'stringArrayRemoveDuplicates': 1, 'stringArrayRemoveExact': 1, 'stringArrayToString': 1, 'stringToStringArray': 1, 'strip': 1, 'stripPrefixFromName': 1, 'stroke': 1, 'subdAutoProjection': 1, 'subdCleanTopology': 1, 'subdCollapse': 1, 'subdDuplicateAndConnect': 1, 'subdEditUV': 1, 'subdListComponentConversion': 1, 'subdMapCut': 1, 'subdMapSewMove': 1, 'subdMatchTopology': 1, 'subdMirror': 1, 'subdToBlind': 1, 'subdToPoly': 1, 'subdTransferUVsToCache': 1, 'subdiv': 1, 'subdivCrease': 1, 'subdivDisplaySmoothness': 1, 'substitute': 1, 'substituteAllString': 1, 'substituteGeometry': 1, 'substring': 1, 'surface': 1, 'surfaceSampler': 1, 'surfaceShaderList': 1, 'swatchDisplayPort': 1, 'switchTable': 1, 'symbolButton': 1, 'symbolCheckBox': 1, 'sysFile': 1, 'system': 1, 'tabLayout': 1, 'tan': 1, 'tangentConstraint': 1, 'texLatticeDeformContext': 1, 'texManipContext': 1, 'texMoveContext': 1, 'texMoveUVShellContext': 1, 'texRotateContext': 1, 'texScaleContext': 1, 'texSelectContext': 1, 'texSelectShortestPathCtx': 1, 'texSmudgeUVContext': 1, 'texWinToolCtx': 1, 'text': 1, 'textCurves': 1, 'textField': 1, 'textFieldButtonGrp': 1, 'textFieldGrp': 1, 'textManip': 1, 'textScrollList': 1, 'textToShelf': 1, 'textureDisplacePlane': 1, 'textureHairColor': 1, 'texturePlacementContext': 1, 'textureWindow': 1, 'threadCount': 1, 'threePointArcCtx': 1, 'timeControl': 1, 'timePort': 1, 'timerX': 1, 'toNativePath': 1, 'toggle': 1, 'toggleAxis': 1, 'toggleWindowVisibility': 1, 'tokenize': 1, 'tokenizeList': 1, 'tolerance': 1, 'tolower': 1, 'toolButton': 1, 'toolCollection': 1, 'toolDropped': 1, 'toolHasOptions': 1, 'toolPropertyWindow': 1, 'torus': 1, 'toupper': 1, 'trace': 1, 'track': 1, 'trackCtx': 1, 'transferAttributes': 1, 'transformCompare': 1, 'transformLimits': 1, 'translator': 1, 'trim': 1, 'trunc': 1, 'truncateFluidCache': 1, 'truncateHairCache': 1, 'tumble': 1, 'tumbleCtx': 1, 'turbulence': 1, 'twoPointArcCtx': 1, 'uiRes': 1, 'uiTemplate': 1, 'unassignInputDevice': 1, 'undo': 1, 'undoInfo': 1, 'ungroup': 1, 'uniform': 1, 'unit': 1, 'unloadPlugin': 1, 'untangleUV': 1, 'untitledFileName': 1, 'untrim': 1, 'upAxis': 1, 'updateAE': 1, 'userCtx': 1, 'uvLink': 1, 'uvSnapshot': 1, 'validateShelfName': 1, 'vectorize': 1, 'view2dToolCtx': 1, 'viewCamera': 1, 'viewClipPlane': 1, 'viewFit': 1, 'viewHeadOn': 1, 'viewLookAt': 1, 'viewManip': 1, 'viewPlace': 1, 'viewSet': 1, 'visor': 1, 'volumeAxis': 1, 'vortex': 1, 'waitCursor': 1, 'warning': 1, 'webBrowser': 1, 'webBrowserPrefs': 1, 'whatIs': 1, 'window': 1, 'windowPref': 1, 'wire': 1, 'wireContext': 1, 'workspace': 1, 'wrinkle': 1, 'wrinkleContext': 1, 'writeTake': 1, 'xbmLangPathList': 1, 'xform': 1
+ }
+ },
+ modes: [
+ // number
+ hljs.C_NUMBER_MODE,
+ // string
+ hljs.APOS_STRING_MODE,
+ hljs.QUOTE_STRING_MODE,
+ hljs.BACKSLASH_ESCAPE,
+ {
+ className: 'string',
+ begin: '`', end: '`',
+ contains: ['escape']
+ },
+ // variable
+ {
+ className: 'variable',
+ begin: '\\$\\d', end: '^',
+ relevance: 5
+ },
+ {
+ className: 'variable',
+ begin: '[\\$\\%\\@\\*](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)', end: '^'
+ },
+ // array, $a[3] = {"a","b","c"}, $b[3] = {1,2,3}
+ // vector, $test = <<3.0, 7.7, 9.1>>
+ // matrix, matrix $a3[3][4] = <<2.5, 4.5, 3.25, 8.05; ... >>
+ // param, -name ... -radius ...
+ // operator, () [] ! ++ -- * / % ^ + - < <= > >= == != && || ? : = += -= *= /=
+ // comment
+ hljs.C_LINE_COMMENT_MODE,
+ hljs.C_BLOCK_COMMENT_MODE
+ ]
+};
+
+};
diff --git a/deps/highlight.js/languages/nginx.js b/deps/highlight.js/languages/nginx.js
new file mode 100644
index 0000000..cbd7452
--- /dev/null
+++ b/deps/highlight.js/languages/nginx.js
@@ -0,0 +1,102 @@
+/*
+Language: nginx
+Author: Peter Leonov <gojpeg@yandex.ru>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.nginx = {
+ defaultMode: {
+ contains: ['comment', 'directive']
+ },
+ modes: [
+ hljs.HASH_COMMENT_MODE,
+ {
+ className: 'directive',
+ begin: hljs.UNDERSCORE_IDENT_RE, end: ';|{', returnEnd: true, noMarkup: true,
+ contains: ['comment', 'parameters'],
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ keywords: {accept_mutex: 1, accept_mutex_delay: 1, access_log: 1, add_after_body: 1, add_before_body: 1, add_header: 1, addition_types: 1, alias: 1, allow: 1, ancient_browser: 1, ancient_browser: 1, ancient_browser_value: 1, ancient_browser_value: 1, auth_basic: 1, auth_basic_user_file: 1, autoindex: 1, autoindex_exact_size: 1, autoindex_localtime: 1, 'break': 1, charset: 1, charset: 1, charset_map: 1, charset_map: 1, charset_types: 1, charset_types: 1, client_body_buffer_size: 1, client_body_in_file_only: 1, client_body_in_single_buffer: 1, client_body_temp_path: 1, client_body_timeout: 1, client_header_buffer_size: 1, client_header_timeout: 1, client_max_body_size: 1, connection_pool_size: 1, connections: 1, create_full_put_path: 1, daemon: 1, dav_access: 1, dav_methods: 1, debug_connection: 1, debug_points: 1, default_type: 1, deny: 1, directio: 1, directio_alignment: 1, echo: 1, echo_after_body: 1, echo_before_body: 1, echo_blocking_sleep: 1, echo_duplicate: 1, echo_end: 1, echo_exec: 1, echo_flush: 1, echo_foreach_split: 1, echo_location: 1, echo_location_async: 1, echo_read_request_body: 1, echo_request_body: 1, echo_reset_timer: 1, echo_sleep: 1, echo_subrequest: 1, echo_subrequest_async: 1, empty_gif: 1, empty_gif: 1, env: 1, error_log: 1, error_log: 1, error_page: 1, events: 1, expires: 1, fastcgi_bind: 1, fastcgi_buffer_size: 1, fastcgi_buffers: 1, fastcgi_busy_buffers_size: 1, fastcgi_cache: 1, fastcgi_cache_key: 1, fastcgi_cache_methods: 1, fastcgi_cache_min_uses: 1, fastcgi_cache_path: 1, fastcgi_cache_use_stale: 1, fastcgi_cache_valid: 1, fastcgi_catch_stderr: 1, fastcgi_connect_timeout: 1, fastcgi_hide_header: 1, fastcgi_ignore_client_abort: 1, fastcgi_ignore_headers: 1, fastcgi_index: 1, fastcgi_intercept_errors: 1, fastcgi_max_temp_file_size: 1, fastcgi_next_upstream: 1, fastcgi_param: 1, fastcgi_pass: 1, fastcgi_pass_header: 1, fastcgi_pass_request_body: 1, fastcgi_pass_request_headers: 1, fastcgi_read_timeout: 1, fastcgi_send_lowat: 1, fastcgi_send_timeout: 1, fastcgi_split_path_info: 1, fastcgi_store: 1, fastcgi_store_access: 1, fastcgi_temp_file_write_size: 1, fastcgi_temp_path: 1, fastcgi_upstream_fail_timeout: 1, fastcgi_upstream_max_fails: 1, flv: 1, geo: 1, geo: 1, geoip_city: 1, geoip_country: 1, gzip: 1, gzip_buffers: 1, gzip_comp_level: 1, gzip_disable: 1, gzip_hash: 1, gzip_http_version: 1, gzip_min_length: 1, gzip_no_buffer: 1, gzip_proxied: 1, gzip_static: 1, gzip_types: 1, gzip_vary: 1, gzip_window: 1, http: 1, 'if': 1, if_modified_since: 1, ignore_invalid_headers: 1, image_filter: 1, image_filter_buffer: 1, image_filter_jpeg_quality: 1, image_filter_transparency: 1, include: 1, index: 1, internal: 1, ip_hash: 1, js: 1, js_load: 1, js_require: 1, js_utf8: 1, keepalive_requests: 1, keepalive_timeout: 1, kqueue_changes: 1, kqueue_events: 1, large_client_header_buffers: 1, limit_conn: 1, limit_conn_log_level: 1, limit_except: 1, limit_rate: 1, limit_rate_after: 1, limit_req: 1, limit_req_log_level: 1, limit_req_zone: 1, limit_zone: 1, lingering_time: 1, lingering_timeout: 1, listen: 1, location: 1, lock_file: 1, log_format: 1, log_not_found: 1, log_subrequest: 1, map: 1, map_hash_bucket_size: 1, map_hash_max_size: 1, master_process: 1, memcached_bind: 1, memcached_buffer_size: 1, memcached_connect_timeout: 1, memcached_next_upstream: 1, memcached_pass: 1, memcached_read_timeout: 1, memcached_send_timeout: 1, memcached_upstream_fail_timeout: 1, memcached_upstream_max_fails: 1, merge_slashes: 1, min_delete_depth: 1, modern_browser: 1, modern_browser: 1, modern_browser_value: 1, modern_browser_value: 1, more_clear_headers: 1, more_clear_input_headers: 1, more_set_headers: 1, more_set_input_headers: 1, msie_padding: 1, msie_refresh: 1, multi_accept: 1, open_file_cache: 1, open_file_cache_errors: 1, open_file_cache_events: 1, open_file_cache_min_uses: 1, open_file_cache_retest: 1, open_file_cache_valid: 1, open_log_file_cache: 1, optimize_server_names: 1, output_buffers: 1, override_charset: 1, override_charset: 1, perl: 1, perl_modules: 1, perl_require: 1, perl_set: 1, pid: 1, port_in_redirect: 1, post_action: 1, postpone_gzipping: 1, postpone_output: 1, proxy_bind: 1, proxy_buffer_size: 1, proxy_buffering: 1, proxy_buffers: 1, proxy_busy_buffers_size: 1, proxy_cache: 1, proxy_cache_key: 1, proxy_cache_methods: 1, proxy_cache_min_uses: 1, proxy_cache_path: 1, proxy_cache_use_stale: 1, proxy_cache_valid: 1, proxy_connect_timeout: 1, proxy_headers_hash_bucket_size: 1, proxy_headers_hash_max_size: 1, proxy_hide_header: 1, proxy_ignore_client_abort: 1, proxy_ignore_headers: 1, proxy_intercept_errors: 1, proxy_max_temp_file_size: 1, proxy_method: 1, proxy_next_upstream: 1, proxy_pass: 1, proxy_pass_header: 1, proxy_pass_request_body: 1, proxy_pass_request_headers: 1, proxy_read_timeout: 1, proxy_redirect: 1, proxy_send_lowat: 1, proxy_send_timeout: 1, proxy_set_body: 1, proxy_set_header: 1, proxy_store: 1, proxy_store_access: 1, proxy_temp_file_write_size: 1, proxy_temp_path: 1, proxy_upstream_fail_timeout: 1, proxy_upstream_max_fails: 1, push_authorized_channels_only: 1, push_channel_group: 1, push_max_channel_id_length: 1, push_max_channel_subscribers: 1, push_max_message_buffer_length: 1, push_max_reserved_memory: 1, push_message_buffer_length: 1, push_message_timeout: 1, push_min_message_buffer_length: 1, push_min_message_recipients: 1, push_publisher: 1, push_store_messages: 1, push_subscriber: 1, push_subscriber_concurrency: 1, random_index: 1, read_ahead: 1, real_ip_header: 1, recursive_error_pages: 1, request_pool_size: 1, reset_timedout_connection: 1, resolver: 1, resolver_timeout: 1, 'return': 1, rewrite: 1, rewrite_log: 1, root: 1, satisfy: 1, satisfy_any: 1, send_lowat: 1, send_timeout: 1, sendfile: 1, sendfile_max_chunk: 1, server: 1, server: 1, server_name: 1, server_name_in_redirect: 1, server_names_hash_bucket_size: 1, server_names_hash_max_size: 1, server_tokens: 1, 'set': 1, set_real_ip_from: 1, source_charset: 1, source_charset: 1, ssi: 1, ssi_ignore_recycled_buffers: 1, ssi_min_file_chunk: 1, ssi_silent_errors: 1, ssi_types: 1, ssi_value_length: 1, ssl: 1, ssl_certificate: 1, ssl_certificate_key: 1, ssl_ciphers: 1, ssl_client_certificate: 1, ssl_crl: 1, ssl_dhparam: 1, ssl_prefer_server_ciphers: 1, ssl_protocols: 1, ssl_session_cache: 1, ssl_session_timeout: 1, ssl_verify_client: 1, ssl_verify_depth: 1, sub_filter: 1, sub_filter_once: 1, sub_filter_types: 1, tcp_nodelay: 1, tcp_nopush: 1, timer_resolution: 1, try_files: 1, types: 1, types_hash_bucket_size: 1, types_hash_max_size: 1, underscores_in_headers: 1, uninitialized_variable_warn: 1, upstream: 1, use: 1, user: 1, userid: 1, userid: 1, userid_domain: 1, userid_domain: 1, userid_expires: 1, userid_expires: 1, userid_mark: 1, userid_name: 1, userid_name: 1, userid_p3p: 1, userid_p3p: 1, userid_path: 1, userid_path: 1, userid_service: 1, userid_service: 1, valid_referers: 1, variables_hash_bucket_size: 1, variables_hash_max_size: 1, worker_connections: 1, worker_cpu_affinity: 1, worker_priority: 1, worker_processes: 1, worker_rlimit_core: 1, worker_rlimit_nofile: 1, worker_rlimit_sigpending: 1, working_directory: 1, xml_entities: 1, xslt_stylesheet: 1, xslt_types: 1}
+ },
+ {
+ className: 'parameters',
+ begin: '\\s', end: '[;{]', returnBegin: true, returnEnd: true, noMarkup: true,
+ contains: ['comment', 'string', 'regexp', 'number', 'variable', 'built_in']
+ },
+ // variables (like in perl)
+ {
+ className: 'variable',
+ begin: '\\$\\d+', end: '^'
+ },
+ {
+ className: 'variable',
+ begin: '\\${', end: '}'
+ },
+ {
+ className: 'variable',
+ begin: '[\\$\\@]' + hljs.UNDERSCORE_IDENT_RE, end: '^',
+ relevance: 0
+ },
+ {
+ className: 'built_in',
+ begin: '\\b(on|off|yes|no|true|false|none|blocked|debug|info|notice|warn|error|crit|select|permanent|redirect)\\b', end: '^'
+ },
+ {
+ className: 'built_in',
+ begin: '\\b(kqueue|rtsig|epoll|poll)\\b|/dev/poll', end: '^'
+ },
+ // IP
+ {
+ className: 'number',
+ begin: '\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b', end: '^'
+ },
+ // units
+ {
+ className: 'number',
+ begin: '\\s\\d+[kKmMgGdshdwy]*\\b', end: '^',
+ relevance: 0
+ },
+ {
+ className: 'string',
+ begin: '"', end: '"',
+ contains: ['escape', 'variable'],
+ relevance: 0
+ },
+ {
+ className: 'string',
+ begin: "'", end: "'",
+ contains: ['escape', 'variable'],
+ relevance: 0
+ },
+ {
+ className: 'string',
+ begin: '([a-z]+):/', end: '[;\\s]', returnEnd: true
+ },
+ {
+ className: 'regexp',
+ begin: "\\s\\^", end: "\\s|{|;", returnEnd: true,
+ contains: ['escape', 'variable']
+ },
+ // regexp locations (~, ~*)
+ {
+ className: 'regexp',
+ begin: "~\\*?\\s+", end: "\\s|{|;", returnEnd: true,
+ contains: ['escape', 'variable']
+ },
+ // *.example.com
+ {
+ className: 'regexp',
+ begin: "\\*(\\.[a-z\\-]+)+", end: "^",
+ contains: ['escape', 'variable']
+ },
+ // sub.example.*
+ {
+ className: 'regexp',
+ begin: "([a-z\\-]+\\.)+\\*", end: "^",
+ contains: ['escape', 'variable']
+ },
+ hljs.BACKSLASH_ESCAPE
+ ]
+};
+
+}; \ No newline at end of file
diff --git a/deps/highlight.js/languages/parser3.js b/deps/highlight.js/languages/parser3.js
new file mode 100644
index 0000000..657a20b
--- /dev/null
+++ b/deps/highlight.js/languages/parser3.js
@@ -0,0 +1,58 @@
+/*
+Language: Parser3
+Requires: html-xml.js
+Author: Oleg Volchkov <oleg@volchkov.net>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.parser3 = {
+ defaultMode: {
+ contains: ['comment', 'preprocessor', 'title', 'variable', 'keyword', 'number'],
+ subLanguage: 'html'
+ },
+ case_insensitive: false,
+
+ modes: [
+ {
+ className: 'comment',
+ begin: '^#', end: '$'
+ },
+ {
+ className: 'comment',
+ contains: ['commented_block'],
+ begin: '\\^rem{', end: '}',
+ relevance: 10
+ },
+ {
+ className: 'commented_block',
+ contains: ['commented_block'],
+ begin: '{', end: '}',
+ noMarkup: true
+ },
+ {
+ className: 'preprocessor',
+ begin: '^@(?:BASE|USE|CLASS|OPTIONS)$', end: '^',
+ relevance: 10
+ },
+ {
+ className: 'title',
+ begin: '@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$', end: '^'
+ },
+ {
+ className: 'variable',
+ begin: '\\$\\{?[\\w\\-\\.\\:]+\\}?', end: '^'
+ },
+ {
+ className: 'keyword',
+ begin: '\\^[\\w\\-\\.\\:]+', end: '^'
+ },
+ {
+ className: 'number',
+ begin: '\\^#[0-9a-fA-F]+', end: '^'
+ },
+ hljs.C_NUMBER_MODE
+ ]
+};
+
+};
diff --git a/deps/highlight.js/languages/perl.js b/deps/highlight.js/languages/perl.js
new file mode 100644
index 0000000..39fec19
--- /dev/null
+++ b/deps/highlight.js/languages/perl.js
@@ -0,0 +1,156 @@
+/*
+Language: Perl
+Author: Peter Leonov <gojpeg@yandex.ru>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.perl = function(){
+ var PERL_DEFAULT_CONTAINS = ['comment', 'string', 'number', 'regexp', 'sub', 'variable', 'operator', 'pod'];
+ var PERL_KEYWORDS = {'getpwent': 1, 'getservent': 1, 'quotemeta': 1, 'msgrcv': 1, 'scalar': 1, 'kill': 1, 'dbmclose': 1, 'undef': 1, 'lc': 1, 'ma': 1, 'syswrite': 1, 'tr': 1, 'send': 1, 'umask': 1, 'sysopen': 1, 'shmwrite': 1, 'vec': 1, 'qx': 1, 'utime': 1, 'local': 1, 'oct': 1, 'semctl': 1, 'localtime': 1, 'readpipe': 1, 'do': 1, 'return': 1, 'format': 1, 'read': 1, 'sprintf': 1, 'dbmopen': 1, 'pop': 1, 'getpgrp': 1, 'not': 1, 'getpwnam': 1, 'rewinddir': 1, 'qq': 1, 'fileno': 1, 'qw': 1, 'endprotoent': 1, 'wait': 1, 'sethostent': 1, 'bless': 1, 's': 1, 'opendir': 1, 'continue': 1, 'each': 1, 'sleep': 1, 'endgrent': 1, 'shutdown': 1, 'dump': 1, 'chomp': 1, 'connect': 1, 'getsockname': 1, 'die': 1, 'socketpair': 1, 'close': 1, 'flock': 1, 'exists': 1, 'index': 1, 'shmget': 1, 'sub': 1, 'for': 1, 'endpwent': 1, 'redo': 1, 'lstat': 1, 'msgctl': 1, 'setpgrp': 1, 'abs': 1, 'exit': 1, 'select': 1, 'print': 1, 'ref': 1, 'gethostbyaddr': 1, 'unshift': 1, 'fcntl': 1, 'syscall': 1, 'goto': 1, 'getnetbyaddr': 1, 'join': 1, 'gmtime': 1, 'symlink': 1, 'semget': 1, 'splice': 1, 'x': 1, 'getpeername': 1, 'recv': 1, 'log': 1, 'setsockopt': 1, 'cos': 1, 'last': 1, 'reverse': 1, 'gethostbyname': 1, 'getgrnam': 1, 'study': 1, 'formline': 1, 'endhostent': 1, 'times': 1, 'chop': 1, 'length': 1, 'gethostent': 1, 'getnetent': 1, 'pack': 1, 'getprotoent': 1, 'getservbyname': 1, 'rand': 1, 'mkdir': 1, 'pos': 1, 'chmod': 1, 'y': 1, 'substr': 1, 'endnetent': 1, 'printf': 1, 'next': 1, 'open': 1, 'msgsnd': 1, 'readdir': 1, 'use': 1, 'unlink': 1, 'getsockopt': 1, 'getpriority': 1, 'rindex': 1, 'wantarray': 1, 'hex': 1, 'system': 1, 'getservbyport': 1, 'endservent': 1, 'int': 1, 'chr': 1, 'untie': 1, 'rmdir': 1, 'prototype': 1, 'tell': 1, 'listen': 1, 'fork': 1, 'shmread': 1, 'ucfirst': 1, 'setprotoent': 1, 'else': 1, 'sysseek': 1, 'link': 1, 'getgrgid': 1, 'shmctl': 1, 'waitpid': 1, 'unpack': 1, 'getnetbyname': 1, 'reset': 1, 'chdir': 1, 'grep': 1, 'split': 1, 'require': 1, 'caller': 1, 'lcfirst': 1, 'until': 1, 'warn': 1, 'while': 1, 'values': 1, 'shift': 1, 'telldir': 1, 'getpwuid': 1, 'my': 1, 'getprotobynumber': 1, 'delete': 1, 'and': 1, 'sort': 1, 'uc': 1, 'defined': 1, 'srand': 1, 'accept': 1, 'package': 1, 'seekdir': 1, 'getprotobyname': 1, 'semop': 1, 'our': 1, 'rename': 1, 'seek': 1, 'if': 1, 'q': 1, 'chroot': 1, 'sysread': 1, 'setpwent': 1, 'no': 1, 'crypt': 1, 'getc': 1, 'chown': 1, 'sqrt': 1, 'write': 1, 'setnetent': 1, 'setpriority': 1, 'foreach': 1, 'tie': 1, 'sin': 1, 'msgget': 1, 'map': 1, 'stat': 1, 'getlogin': 1, 'unless': 1, 'elsif': 1, 'truncate': 1, 'exec': 1, 'keys': 1, 'glob': 1, 'tied': 1, 'closedir': 1, 'ioctl': 1, 'socket': 1, 'readlink': 1, 'eval': 1, 'xor': 1, 'readline': 1, 'binmode': 1, 'setservent': 1, 'eof': 1, 'ord': 1, 'bind': 1, 'alarm': 1, 'pipe': 1, 'atan2': 1, 'getgrent': 1, 'exp': 1, 'time': 1, 'push': 1, 'setgrent': 1, 'gt': 1, 'lt': 1, 'or': 1, 'ne': 1, 'm': 1};
+ return {
+ defaultMode: {
+ lexems: [hljs.IDENT_RE],
+ contains: PERL_DEFAULT_CONTAINS,
+ keywords: PERL_KEYWORDS
+ },
+ modes: [
+
+ // variables
+ {
+ className: 'variable',
+ begin: '\\$\\d', end: '^'
+ },
+ {
+ className: 'variable',
+ begin: '[\\$\\%\\@\\*](\\^\\w\\b|#\\w+(\\:\\:\\w+)*|[^\\s\\w{]|{\\w+}|\\w+(\\:\\:\\w*)*)', end: '^'
+ },
+
+ // numbers and strings
+ {
+ className: 'subst',
+ begin: '[$@]\\{', end: '\}',
+ lexems: [hljs.IDENT_RE],
+ keywords: PERL_KEYWORDS,
+ contains: PERL_DEFAULT_CONTAINS,
+ relevance: 10
+ },
+ {
+ className: 'number',
+ begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b', end: '^',
+ relevance: 0
+ },
+ {
+ className: 'string',
+ begin: 'q[qwxr]?\\s*\\(', end: '\\)',
+ contains: ['escape', 'subst', 'variable'],
+ relevance: 5
+ },
+ {
+ className: 'string',
+ begin: 'q[qwxr]?\\s*\\[', end: '\\]',
+ contains: ['escape', 'subst', 'variable'],
+ relevance: 5
+ },
+ {
+ className: 'string',
+ begin: 'q[qwxr]?\\s*\\{', end: '\\}',
+ contains: ['escape', 'subst', 'variable'],
+ relevance: 5
+ },
+ {
+ className: 'string',
+ begin: 'q[qwxr]?\\s*\\|', end: '\\|',
+ contains: ['escape', 'subst', 'variable'],
+ relevance: 5
+ },
+ {
+ className: 'string',
+ begin: 'q[qwxr]?\\s*\\<', end: '\\>',
+ contains: ['escape', 'subst', 'variable'],
+ relevance: 5
+ },
+ {
+ className: 'string',
+ begin: 'qw\\s+q', end: 'q',
+ contains: ['escape', 'subst', 'variable'],
+ relevance: 5
+ },
+ {
+ className: 'string',
+ begin: '\'', end: '\'',
+ contains: ['escape'],
+ relevance: 0
+ },
+ {
+ className: 'string',
+ begin: '"', end: '"',
+ contains: ['escape','subst','variable'],
+ relevance: 0
+ },
+ hljs.BACKSLASH_ESCAPE,
+ {
+ className: 'string',
+ begin: '`', end: '`',
+ contains: ['escape']
+ },
+
+ // regexps
+ {
+ className: 'regexp',
+ begin: '(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*', end: '^',
+ relevance: 10
+ },
+ {
+ className: 'regexp',
+ begin: '(m|qr)?/', end: '/[a-z]*',
+ contains: ['escape'],
+ relevance: 0 // allows empty "//" which is a common comment delimiter in other languages
+ },
+
+ // bareword context
+ {
+ className: 'string',
+ begin: '{\\w+}', end: '^',
+ relevance: 0
+ },
+ {
+ className: 'string',
+ begin: '\-?\\w+\\s*\\=\\>', end: '^',
+ relevance: 0
+ },
+
+ // subroutines
+ {
+ className: 'sub',
+ begin: '\\bsub\\b', end: '(\\s*\\(.*?\\))?[;{]',
+ lexems: [hljs.IDENT_RE],
+ keywords: {'sub':1},
+ relevance: 5
+ },
+
+ // operators
+ {
+ className: 'operator',
+ begin: '-\\w\\b', end: '^',
+ relevance: 0
+ },
+
+ // comments
+ hljs.HASH_COMMENT_MODE,
+ {
+ className: 'comment',
+ begin: '^(__END__|__DATA__)', end: '\\n$',
+ relevance: 5
+ },
+ // pod
+ {
+ className: 'pod',
+ begin: '\\=\\w', end: '\\=cut'
+ }
+
+ ]
+ };
+}();
+
+}; \ No newline at end of file
diff --git a/deps/highlight.js/languages/php.js b/deps/highlight.js/languages/php.js
new file mode 100644
index 0000000..2269ad9
--- /dev/null
+++ b/deps/highlight.js/languages/php.js
@@ -0,0 +1,58 @@
+/*
+Language: PHP
+Author: Victor Karamzin <Victor.Karamzin@enterra-inc.com>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.php = {
+ defaultMode: {
+ lexems: [hljs.IDENT_RE],
+ contains: ['comment', 'number', 'string', 'variable', 'preprocessor'],
+ keywords: {'and': 1, 'include_once': 1, 'list': 1, 'abstract': 1, 'global': 1, 'private': 1, 'echo': 1, 'interface': 1, 'as': 1, 'static': 1, 'endswitch': 1, 'array': 1, 'null': 1, 'if': 1, 'endwhile': 1, 'or': 1, 'const': 1, 'for': 1, 'endforeach': 1, 'self': 1, 'var': 1, 'while': 1, 'isset': 1, 'public': 1, 'protected': 1, 'exit': 1, 'foreach': 1, 'throw': 1, 'elseif': 1, 'extends': 1, 'include': 1, '__FILE__': 1, 'empty': 1, 'require_once': 1, 'function': 1, 'do': 1, 'xor': 1, 'return': 1, 'implements': 1, 'parent': 1, 'clone': 1, 'use': 1, '__CLASS__': 1, '__LINE__': 1, 'else': 1, 'break': 1, 'print': 1, 'eval': 1, 'new': 1, 'catch': 1, '__METHOD__': 1, 'class': 1, 'case': 1, 'exception': 1, 'php_user_filter': 1, 'default': 1, 'die': 1, 'require': 1, '__FUNCTION__': 1, 'enddeclare': 1, 'final': 1, 'try': 1, 'this': 1, 'switch': 1, 'continue': 1, 'endfor': 1, 'endif': 1, 'declare': 1, 'unset': 1}
+ },
+ case_insensitive: true,
+ modes: [
+ hljs.C_LINE_COMMENT_MODE,
+ hljs.HASH_COMMENT_MODE,
+ {
+ className: 'comment',
+ begin: '/\\*', end: '\\*/',
+ contains: ['phpdoc']
+ },
+ {
+ className: 'phpdoc',
+ begin: '\\s@[A-Za-z]+', end: '^',
+ relevance: 10
+ },
+ hljs.C_NUMBER_MODE,
+ {
+ className: 'string',
+ begin: '\'', end: '\'',
+ contains: ['escape'],
+ relevance: 0
+ },
+ {
+ className: 'string',
+ begin: '"', end: '"',
+ contains: ['escape'],
+ relevance: 0
+ },
+ hljs.BACKSLASH_ESCAPE,
+ {
+ className: 'variable',
+ begin: '\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*', end: '^'
+ },
+ {
+ className: 'preprocessor',
+ begin: '<\\?php', end: '^',
+ relevance: 10
+ },
+ {
+ className: 'preprocessor',
+ begin: '\\?>', end: '^'
+ }
+ ]
+};
+
+};
diff --git a/deps/highlight.js/languages/profile.js b/deps/highlight.js/languages/profile.js
new file mode 100644
index 0000000..6c43df2
--- /dev/null
+++ b/deps/highlight.js/languages/profile.js
@@ -0,0 +1,55 @@
+/*
+Language: Python profile
+Description: Python profiler results
+Author: Brian Beck <exogen@gmail.com>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.profile = {
+ defaultMode: {
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ contains: ['number', 'builtin', 'filename', 'header', 'summary', 'string', 'function']
+ },
+ modes: [
+ hljs.C_NUMBER_MODE,
+ hljs.APOS_STRING_MODE,
+ hljs.QUOTE_STRING_MODE,
+ {
+ className: 'summary',
+ begin: 'function calls', end: '$',
+ contains: ['number'],
+ relevance: 10
+ },
+ {
+ className: 'header',
+ begin: '(ncalls|tottime|cumtime)', end: '$',
+ lexems: [hljs.IDENT_RE],
+ keywords: {'ncalls': 1, 'tottime': 10, 'cumtime': 10, 'filename': 1},
+ relevance: 10
+ },
+ {
+ className: 'function',
+ begin: '\\(', end: '\\)',
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ contains: ['title']
+ },
+ {
+ className: 'title',
+ begin: hljs.UNDERSCORE_IDENT_RE, end: '^'
+ },
+ {
+ className: 'builtin',
+ begin: '{', end: '}',
+ contains: ['string'],
+ excludeBegin: true, excludeEnd: true
+ },
+ {
+ className: 'filename',
+ begin: '(/\w|[a-zA-Z_][\da-zA-Z_]+\\.[\da-zA-Z_]{1,3})', end: ':',
+ excludeEnd: true
+ }
+ ]
+};
+
+};
diff --git a/deps/highlight.js/languages/python.js b/deps/highlight.js/languages/python.js
new file mode 100644
index 0000000..013e3ed
--- /dev/null
+++ b/deps/highlight.js/languages/python.js
@@ -0,0 +1,79 @@
+/*
+Language: Python
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.python = {
+ defaultMode: {
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ illegal: '(</|->)',
+ contains: ['comment', 'string', 'function', 'class', 'number', 'decorator'],
+ keywords: {
+ 'keyword': {'and': 1, 'elif': 1, 'is': 1, 'global': 1, 'as': 1, 'in': 1, 'if': 1, 'from': 1, 'raise': 1, 'for': 1, 'except': 1, 'finally': 1, 'print': 1, 'import': 1, 'pass': 1, 'return': 1, 'exec': 1, 'else': 1, 'break': 1, 'not': 1, 'with': 1, 'class': 1, 'assert': 1, 'yield': 1, 'try': 1, 'while': 1, 'continue': 1, 'del': 1, 'or': 1, 'def': 1, 'lambda': 1, 'nonlocal': 10},
+ 'built_in': {'None': 1, 'True': 1, 'False': 1, 'Ellipsis': 1, 'NotImplemented': 1}
+ }
+ },
+ modes: [
+ {
+ className: 'function',
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ begin: '\\bdef ', end: ':',
+ illegal: '$',
+ keywords: {'def': 1},
+ contains: ['title', 'params'],
+ relevance: 10
+ },
+ {
+ className: 'class',
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ begin: '\\bclass ', end: ':',
+ illegal: '[${]',
+ keywords: {'class': 1},
+ contains: ['title', 'params'],
+ relevance: 10
+ },
+ {
+ className: 'title',
+ begin: hljs.UNDERSCORE_IDENT_RE, end: '^'
+ },
+ {
+ className: 'params',
+ begin: '\\(', end: '\\)',
+ contains: ['string']
+ },
+ hljs.HASH_COMMENT_MODE,
+ hljs.C_NUMBER_MODE,
+ {
+ className: 'string',
+ begin: 'u?r?\'\'\'', end: '\'\'\'',
+ relevance: 10
+ },
+ {
+ className: 'string',
+ begin: 'u?r?"""', end: '"""',
+ relevance: 10
+ },
+ hljs.APOS_STRING_MODE,
+ hljs.QUOTE_STRING_MODE,
+ hljs.BACKSLASH_ESCAPE,
+ {
+ className: 'string',
+ begin: '(u|r|ur)\'', end: '\'',
+ contains: ['escape'],
+ relevance: 10
+ },
+ {
+ className: 'string',
+ begin: '(u|r|ur)"', end: '"',
+ contains: ['escape'],
+ relevance: 10
+ },
+ {
+ className: 'decorator',
+ begin: '@', end: '$'
+ }
+ ]
+};
+
+};
diff --git a/deps/highlight.js/languages/renderman.js b/deps/highlight.js/languages/renderman.js
new file mode 100644
index 0000000..9241fa4
--- /dev/null
+++ b/deps/highlight.js/languages/renderman.js
@@ -0,0 +1,243 @@
+/*
+Language: RenderMan
+Description: RenderMan Languages RIB and RSL
+Author: Konstantin Evdokimenko <qewerty@gmail.com>
+Contributors: Shuen-Huei Guan <drake.guan@gmail.com>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.rib = {
+ defaultMode: {
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ illegal: '</',
+ contains: ['comment', 'string', 'number'],
+ keywords: {
+ 'keyword': {
+ 'ArchiveRecord': 1,
+ 'AreaLightSource': 1,
+ 'Atmosphere': 1,
+ 'Attribute': 1,
+ 'AttributeBegin': 1,
+ 'AttributeEnd': 1,
+ 'Basis': 1,
+ 'Begin': 1,
+ 'Blobby': 1,
+ 'Bound': 1,
+ 'Clipping': 1,
+ 'ClippingPlane': 1,
+ 'Color': 1,
+ 'ColorSamples': 1,
+ 'ConcatTransform': 1,
+ 'Cone': 1,
+ 'CoordinateSystem': 1,
+ 'CoordSysTransform': 1,
+ 'CropWindow': 1,
+ 'Curves': 1,
+ 'Cylinder': 1,
+ 'DepthOfField': 1,
+ 'Detail': 1,
+ 'DetailRange': 1,
+ 'Disk': 1,
+ 'Displacement': 1,
+ 'Display': 1,
+ 'End': 1,
+ 'ErrorHandler': 1,
+ 'Exposure': 1,
+ 'Exterior': 1,
+ 'Format': 1,
+ 'FrameAspectRatio': 1,
+ 'FrameBegin': 1,
+ 'FrameEnd': 1,
+ 'GeneralPolygon': 1,
+ 'GeometricApproximation': 1,
+ 'Geometry': 1,
+ 'Hider': 1,
+ 'Hyperboloid': 1,
+ 'Identity': 1,
+ 'Illuminate': 1,
+ 'Imager': 1,
+ 'Interior': 1,
+ 'LightSource': 1,
+ 'MakeCubeFaceEnvironment': 1,
+ 'MakeLatLongEnvironment': 1,
+ 'MakeShadow': 1,
+ 'MakeTexture': 1,
+ 'Matte': 1,
+ 'MotionBegin': 1,
+ 'MotionEnd': 1,
+ 'NuPatch': 1,
+ 'ObjectBegin': 1,
+ 'ObjectEnd': 1,
+ 'ObjectInstance': 1,
+ 'Opacity': 1,
+ 'Option': 1,
+ 'Orientation': 1,
+ 'Paraboloid': 1,
+ 'Patch': 1,
+ 'PatchMesh': 1,
+ 'Perspective': 1,
+ 'PixelFilter': 1,
+ 'PixelSamples': 1,
+ 'PixelVariance': 1,
+ 'Points': 1,
+ 'PointsGeneralPolygons': 1,
+ 'PointsPolygons': 1,
+ 'Polygon': 1,
+ 'Procedural': 1,
+ 'Projection': 1,
+ 'Quantize': 1,
+ 'ReadArchive': 1,
+ 'RelativeDetail': 1,
+ 'ReverseOrientation': 1,
+ 'Rotate': 1,
+ 'Scale': 1,
+ 'ScreenWindow': 1,
+ 'ShadingInterpolation': 1,
+ 'ShadingRate': 1,
+ 'Shutter': 1,
+ 'Sides': 1,
+ 'Skew': 1,
+ 'SolidBegin': 1,
+ 'SolidEnd': 1,
+ 'Sphere': 1,
+ 'SubdivisionMesh': 1,
+ 'Surface': 1,
+ 'TextureCoordinates': 1,
+ 'Torus': 1,
+ 'Transform': 1,
+ 'TransformBegin': 1,
+ 'TransformEnd': 1,
+ 'TransformPoints': 1,
+ 'Translate': 1,
+ 'TrimCurve': 1,
+ 'WorldBegin': 1,
+ 'WorldEnd': 1
+ }
+ }
+ },
+ modes: [
+ hljs.HASH_COMMENT_MODE,
+ hljs.C_NUMBER_MODE,
+ hljs.APOS_STRING_MODE,
+ hljs.QUOTE_STRING_MODE,
+ hljs.BACKSLASH_ESCAPE
+ ]
+};
+
+hljs.LANGUAGES.rsl = {
+ defaultMode: {
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ illegal: '</',
+ contains: ['comment', 'string', 'number', 'preprocessor',
+ 'shader', 'shading'],
+ keywords: {
+ 'keyword': {'float': 1, 'color': 1, 'point': 1, 'normal': 1, 'vector': 1,
+ 'matrix': 1, 'while': 1, 'for': 1, 'if': 1, 'do': 1,
+ 'return': 1, 'else': 1, 'break': 1, 'extern': 1, 'continue': 1},
+ 'built_in': {
+ 'abs': 1,
+ 'acos': 1,
+ 'ambient': 1,
+ 'area': 1,
+ 'asin': 1,
+ 'atan': 1,
+ 'atmosphere': 1,
+ 'attribute': 1,
+ 'calculatenormal': 1,
+ 'ceil': 1,
+ 'cellnoise': 1,
+ 'clamp': 1,
+ 'comp': 1,
+ 'concat': 1,
+ 'cos': 1,
+ 'degrees': 1,
+ 'depth': 1,
+ 'Deriv': 1,
+ 'diffuse': 1,
+ 'distance': 1,
+ 'Du': 1,
+ 'Dv': 1,
+ 'environment': 1,
+ 'exp': 1,
+ 'faceforward': 1,
+ 'filterstep': 1,
+ 'floor': 1,
+ 'format': 1,
+ 'fresnel': 1,
+ 'incident': 1,
+ 'length': 1,
+ 'lightsource': 1,
+ 'log': 1,
+ 'match': 1,
+ 'max': 1,
+ 'min': 1,
+ 'mod': 1,
+ 'noise': 1,
+ 'normalize': 1,
+ 'ntransform': 1,
+ 'opposite': 1,
+ 'option': 1,
+ 'phong': 1,
+ 'pnoise': 1,
+ 'pow': 1,
+ 'printf': 1,
+ 'ptlined': 1,
+ 'radians': 1,
+ 'random': 1,
+ 'reflect': 1,
+ 'refract': 1,
+ 'renderinfo': 1,
+ 'round': 1,
+ 'setcomp': 1,
+ 'setxcomp': 1,
+ 'setycomp': 1,
+ 'setzcomp': 1,
+ 'shadow': 1,
+ 'sign': 1,
+ 'sin': 1,
+ 'smoothstep': 1,
+ 'specular': 1,
+ 'specularbrdf': 1,
+ 'spline': 1,
+ 'sqrt': 1,
+ 'step': 1,
+ 'tan': 1,
+ 'texture': 1,
+ 'textureinfo': 1,
+ 'trace': 1,
+ 'transform': 1,
+ 'vtransform': 1,
+ 'xcomp': 1,
+ 'ycomp': 1,
+ 'zcomp': 1
+ }
+ }
+ },
+ modes: [
+ {
+ className: 'shader',
+ begin: 'surface |displacement |light |volume |imager ', end: '\\(',
+ lexems: [hljs.IDENT_RE],
+ keywords: {'surface': 1, 'displacement': 1, 'light': 1, 'volume': 1, 'imager': 1}
+ },
+ {
+ className: 'shading',
+ begin: 'illuminate|illuminance|gather', end: '\\(',
+ lexems: [hljs.IDENT_RE],
+ keywords: {'illuminate': 1, 'illuminance': 1, 'gather': 1}
+ },
+ hljs.C_LINE_COMMENT_MODE,
+ hljs.C_BLOCK_COMMENT_MODE,
+ hljs.C_NUMBER_MODE,
+ hljs.QUOTE_STRING_MODE,
+ hljs.APOS_STRING_MODE,
+ hljs.BACKSLASH_ESCAPE,
+ {
+ className: 'preprocessor',
+ begin: '#', end: '$'
+ }
+ ]
+};
+
+};
diff --git a/deps/highlight.js/languages/ruby.js b/deps/highlight.js/languages/ruby.js
new file mode 100644
index 0000000..90306c0
--- /dev/null
+++ b/deps/highlight.js/languages/ruby.js
@@ -0,0 +1,199 @@
+/*
+Language: Ruby
+Author: Anton Kovalyov <anton@kovalyov.net>
+Contributors: Peter Leonov <gojpeg@yandex.ru>, Vasily Polovnyov <vast@whiteants.net>, Loren Segal <lsegal@soen.ca>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.ruby = function(){
+ var RUBY_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?';
+ var RUBY_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?';
+ var RUBY_DEFAULT_CONTAINS = ['comment', 'string', 'char', 'class', 'function', 'constant', 'symbol', 'number', 'variable', 'identifier', 'regexp_container']
+ var RUBY_KEYWORDS = {
+ 'keyword': {'and': 1, 'false': 1, 'then': 1, 'defined': 1, 'module': 1, 'in': 1, 'return': 1, 'redo': 1, 'if': 1, 'BEGIN': 1, 'retry': 1, 'end': 1, 'for': 1, 'true': 1, 'self': 1, 'when': 1, 'next': 1, 'until': 1, 'do': 1, 'begin': 1, 'unless': 1, 'END': 1, 'rescue': 1, 'nil': 1, 'else': 1, 'break': 1, 'undef': 1, 'not': 1, 'super': 1, 'class': 1, 'case': 1, 'require': 1, 'yield': 1, 'alias': 1, 'while': 1, 'ensure': 1, 'elsif': 1, 'or': 1, 'def': 1},
+ 'keymethods': {'__id__': 1, '__send__': 1, 'abort': 1, 'abs': 1, 'all?': 1, 'allocate': 1, 'ancestors': 1, 'any?': 1, 'arity': 1, 'assoc': 1, 'at': 1, 'at_exit': 1, 'autoload': 1, 'autoload?': 1, 'between?': 1, 'binding': 1, 'binmode': 1, 'block_given?': 1, 'call': 1, 'callcc': 1, 'caller': 1, 'capitalize': 1, 'capitalize!': 1, 'casecmp': 1, 'catch': 1, 'ceil': 1, 'center': 1, 'chomp': 1, 'chomp!': 1, 'chop': 1, 'chop!': 1, 'chr': 1, 'class': 1, 'class_eval': 1, 'class_variable_defined?': 1, 'class_variables': 1, 'clear': 1, 'clone': 1, 'close': 1, 'close_read': 1, 'close_write': 1, 'closed?': 1, 'coerce': 1, 'collect': 1, 'collect!': 1, 'compact': 1, 'compact!': 1, 'concat': 1, 'const_defined?': 1, 'const_get': 1, 'const_missing': 1, 'const_set': 1, 'constants': 1, 'count': 1, 'crypt': 1, 'default': 1, 'default_proc': 1, 'delete': 1, 'delete!': 1, 'delete_at': 1, 'delete_if': 1, 'detect': 1, 'display': 1, 'div': 1, 'divmod': 1, 'downcase': 1, 'downcase!': 1, 'downto': 1, 'dump': 1, 'dup': 1, 'each': 1, 'each_byte': 1, 'each_index': 1, 'each_key': 1, 'each_line': 1, 'each_pair': 1, 'each_value': 1, 'each_with_index': 1, 'empty?': 1, 'entries': 1, 'eof': 1, 'eof?': 1, 'eql?': 1, 'equal?': 1, 'eval': 1, 'exec': 1, 'exit': 1, 'exit!': 1, 'extend': 1, 'fail': 1, 'fcntl': 1, 'fetch': 1, 'fileno': 1, 'fill': 1, 'find': 1, 'find_all': 1, 'first': 1, 'flatten': 1, 'flatten!': 1, 'floor': 1, 'flush': 1, 'for_fd': 1, 'foreach': 1, 'fork': 1, 'format': 1, 'freeze': 1, 'frozen?': 1, 'fsync': 1, 'getc': 1, 'gets': 1, 'global_variables': 1, 'grep': 1, 'gsub': 1, 'gsub!': 1, 'has_key?': 1, 'has_value?': 1, 'hash': 1, 'hex': 1, 'id': 1, 'include': 1, 'include?': 1, 'included_modules': 1, 'index': 1, 'indexes': 1, 'indices': 1, 'induced_from': 1, 'inject': 1, 'insert': 1, 'inspect': 1, 'instance_eval': 1, 'instance_method': 1, 'instance_methods': 1, 'instance_of?': 1, 'instance_variable_defined?': 1, 'instance_variable_get': 1, 'instance_variable_set': 1, 'instance_variables': 1, 'integer?': 1, 'intern': 1, 'invert': 1, 'ioctl': 1, 'is_a?': 1, 'isatty': 1, 'iterator?': 1, 'join': 1, 'key?': 1, 'keys': 1, 'kind_of?': 1, 'lambda': 1, 'last': 1, 'length': 1, 'lineno': 1, 'ljust': 1, 'load': 1, 'local_variables': 1, 'loop': 1, 'lstrip': 1, 'lstrip!': 1, 'map': 1, 'map!': 1, 'match': 1, 'max': 1, 'member?': 1, 'merge': 1, 'merge!': 1, 'method': 1, 'method_defined?': 1, 'method_missing': 1, 'methods': 1, 'min': 1, 'module_eval': 1, 'modulo': 1, 'name': 1, 'nesting': 1, 'new': 1, 'next': 1, 'next!': 1, 'nil?': 1, 'nitems': 1, 'nonzero?': 1, 'object_id': 1, 'oct': 1, 'open': 1, 'pack': 1, 'partition': 1, 'pid': 1, 'pipe': 1, 'pop': 1, 'popen': 1, 'pos': 1, 'prec': 1, 'prec_f': 1, 'prec_i': 1, 'print': 1, 'printf': 1, 'private_class_method': 1, 'private_instance_methods': 1, 'private_method_defined?': 1, 'private_methods': 1, 'proc': 1, 'protected_instance_methods': 1, 'protected_method_defined?': 1, 'protected_methods': 1, 'public_class_method': 1, 'public_instance_methods': 1, 'public_method_defined?': 1, 'public_methods': 1, 'push': 1, 'putc': 1, 'puts': 1, 'quo': 1, 'raise': 1, 'rand': 1, 'rassoc': 1, 'read': 1, 'read_nonblock': 1, 'readchar': 1, 'readline': 1, 'readlines': 1, 'readpartial': 1, 'rehash': 1, 'reject': 1, 'reject!': 1, 'remainder': 1, 'reopen': 1, 'replace': 1, 'require': 1, 'respond_to?': 1, 'reverse': 1, 'reverse!': 1, 'reverse_each': 1, 'rewind': 1, 'rindex': 1, 'rjust': 1, 'round': 1, 'rstrip': 1, 'rstrip!': 1, 'scan': 1, 'seek': 1, 'select': 1, 'send': 1, 'set_trace_func': 1, 'shift': 1, 'singleton_method_added': 1, 'singleton_methods': 1, 'size': 1, 'sleep': 1, 'slice': 1, 'slice!': 1, 'sort': 1, 'sort!': 1, 'sort_by': 1, 'split': 1, 'sprintf': 1, 'squeeze': 1, 'squeeze!': 1, 'srand': 1, 'stat': 1, 'step': 1, 'store': 1, 'strip': 1, 'strip!': 1, 'sub': 1, 'sub!': 1, 'succ': 1, 'succ!': 1, 'sum': 1, 'superclass': 1, 'swapcase': 1, 'swapcase!': 1, 'sync': 1, 'syscall': 1, 'sysopen': 1, 'sysread': 1, 'sysseek': 1, 'system': 1, 'syswrite': 1, 'taint': 1, 'tainted?': 1, 'tell': 1, 'test': 1, 'throw': 1, 'times': 1, 'to_a': 1, 'to_ary': 1, 'to_f': 1, 'to_hash': 1, 'to_i': 1, 'to_int': 1, 'to_io': 1, 'to_proc': 1, 'to_s': 1, 'to_str': 1, 'to_sym': 1, 'tr': 1, 'tr!': 1, 'tr_s': 1, 'tr_s!': 1, 'trace_var': 1, 'transpose': 1, 'trap': 1, 'truncate': 1, 'tty?': 1, 'type': 1, 'ungetc': 1, 'uniq': 1, 'uniq!': 1, 'unpack': 1, 'unshift': 1, 'untaint': 1, 'untrace_var': 1, 'upcase': 1, 'upcase!': 1, 'update': 1, 'upto': 1, 'value?': 1, 'values': 1, 'values_at': 1, 'warn': 1, 'write': 1, 'write_nonblock': 1, 'zero?': 1, 'zip': 1}
+ }
+ return {
+ defaultMode: {
+ lexems: [RUBY_IDENT_RE],
+ contains: RUBY_DEFAULT_CONTAINS,
+ keywords: RUBY_KEYWORDS
+ },
+ modes: [
+ {
+ className: 'comment',
+ begin: '#', end: '$',
+ contains: ['yardoctag']
+ },
+ {
+ className: 'yardoctag',
+ begin: '@[A-Za-z]+', end: '^'
+ },
+ {
+ className: 'comment',
+ begin: '^\\=begin', end: '^\\=end',
+ contains: ['yardoctag'],
+ relevance: 10
+ },
+ {
+ className: 'comment',
+ begin: '^__END__', end: '\\n$'
+ },
+ {
+ className: 'params',
+ begin: '\\(', end: '\\)',
+ lexems: [RUBY_IDENT_RE],
+ keywords: RUBY_KEYWORDS,
+ contains: RUBY_DEFAULT_CONTAINS
+ },
+ {
+ className: 'function',
+ begin: '\\bdef\\s+', end: ' |$|;',
+ lexems: [RUBY_IDENT_RE],
+ keywords: RUBY_KEYWORDS,
+ contains: ['ftitle', 'params', 'comment']
+ },
+ {
+ className: 'ftitle', displayClassName: 'title',
+ begin: RUBY_METHOD_RE, end: '^',
+ lexems: [RUBY_IDENT_RE],
+ keywords: RUBY_KEYWORDS
+ },
+ {
+ className: 'class',
+ begin: '\\b(class|module)\\b', end: '$|;',
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ keywords: RUBY_KEYWORDS,
+ contains: ['title', 'inheritance', 'comment'],
+ keywords: {'class': 1, 'module': 1}
+ },
+ {
+ className: 'title',
+ begin: '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?', end: '^',
+ relevance: 0
+ },
+ {
+ className: 'inheritance',
+ begin: '<\\s*', end: '^',
+ contains: ['parent']
+ },
+ {
+ className: 'parent',
+ begin: '(' + hljs.IDENT_RE + '::)?' + hljs.IDENT_RE, end: '^'
+ },
+ {
+ className: 'number',
+ begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b', end: '^',
+ relevance: 0
+ },
+ {
+ className: 'number',
+ begin: '\\?\\w', end: '^'
+ },
+ {
+ className: 'string',
+ begin: '\'', end: '\'',
+ contains: ['escape', 'subst'],
+ relevance: 0
+ },
+ {
+ className: 'string',
+ begin: '"', end: '"',
+ contains: ['escape', 'subst'],
+ relevance: 0
+ },
+ {
+ className: 'string',
+ begin: '%[qw]?\\(', end: '\\)',
+ contains: ['escape', 'subst'],
+ relevance: 10
+ },
+ {
+ className: 'string',
+ begin: '%[qw]?\\[', end: '\\]',
+ contains: ['escape', 'subst'],
+ relevance: 10
+ },
+ {
+ className: 'string',
+ begin: '%[qw]?{', end: '}',
+ contains: ['escape', 'subst'],
+ relevance: 10
+ },
+ {
+ className: 'string',
+ begin: '%[qw]?<', end: '>',
+ contains: ['escape', 'subst'],
+ relevance: 10
+ },
+ {
+ className: 'string',
+ begin: '%[qw]?/', end: '/',
+ contains: ['escape', 'subst'],
+ relevance: 10
+ },
+ {
+ className: 'string',
+ begin: '%[qw]?%', end: '%',
+ contains: ['escape', 'subst'],
+ relevance: 10
+ },
+ {
+ className: 'string',
+ begin: '%[qw]?-', end: '-',
+ contains: ['escape', 'subst'],
+ relevance: 10
+ },
+ {
+ className: 'string',
+ begin: '%[qw]?\\|', end: '\\|',
+ contains: ['escape', 'subst'],
+ relevance: 10
+ },
+ {
+ className: 'constant',
+ begin: '(::)?([A-Z]\\w*(::)?)+', end: '^',
+ relevance: 0
+ },
+ {
+ className: 'symbol',
+ begin: ':', end: '^',
+ contains: ['string', 'identifier']
+ },
+ {
+ className: 'identifier',
+ begin: RUBY_IDENT_RE, end: '^',
+ lexems: [RUBY_IDENT_RE],
+ keywords: RUBY_KEYWORDS,
+ relevance: 0
+ },
+ hljs.BACKSLASH_ESCAPE,
+ {
+ className: 'subst',
+ begin: '#\\{', end: '}',
+ lexems: [RUBY_IDENT_RE],
+ keywords: RUBY_KEYWORDS,
+ contains: RUBY_DEFAULT_CONTAINS
+ },
+ {
+ className: 'regexp_container',
+ begin: '(' + hljs.RE_STARTERS_RE + ')\\s*', end: '^', noMarkup: true,
+ contains: ['comment', 'regexp'],
+ relevance: 0
+ },
+ {
+ className: 'regexp',
+ begin: '/', end: '/[a-z]*',
+ illegal: '\\n',
+ contains: ['escape']
+ },
+ {
+ className: 'variable',
+ begin: '(\\$\\W)|((\\$|\\@\\@?)(\\w+))', end: '^'
+ }
+ ]
+ };
+}();
+
+};
diff --git a/deps/highlight.js/languages/scala.js b/deps/highlight.js/languages/scala.js
new file mode 100644
index 0000000..2853683
--- /dev/null
+++ b/deps/highlight.js/languages/scala.js
@@ -0,0 +1,67 @@
+/*
+Language: Scala
+Author: Jan Berkel <jan.berkel@gmail.com>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.scala = {
+ defaultMode: {
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ contains: ['javadoc', 'comment', 'string', 'class', 'number', 'annotation'],
+ keywords: { 'type': 1, 'yield': 1, 'lazy': 1, 'override': 1, 'def': 1, 'with': 1, 'val':1, 'var': 1, 'false': 1, 'true': 1, 'sealed': 1, 'abstract': 1, 'private': 1, 'trait': 1, 'object': 1, 'null': 1, 'if': 1, 'for': 1, 'while': 1, 'throw': 1, 'finally': 1, 'protected': 1, 'extends': 1, 'import': 1, 'final': 1, 'return': 1, 'else': 1, 'break': 1, 'new': 1, 'catch': 1, 'super': 1, 'class': 1, 'case': 1,'package': 1, 'default': 1, 'try': 1, 'this': 1, 'match': 1, 'continue': 1, 'throws': 1}
+ },
+ modes: [
+ {
+ className: 'class',
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ begin: '((case )?class |object |trait )', end: '({|$)',
+ illegal: ':',
+ keywords: {'case' : 1, 'class': 1, 'trait': 1, 'object': 1},
+ contains: ['inheritance', 'title', 'params']
+ },
+ {
+ className: 'inheritance',
+ begin: '(extends|with)', end: '^', noMarkup: true,
+ lexems: [hljs.IDENT_RE],
+ keywords: {'extends': 1, 'with': 1},
+ relevance: 10
+ },
+ {
+ className: 'title',
+ begin: hljs.UNDERSCORE_IDENT_RE, end: '^'
+ },
+ {
+ className: 'params',
+ begin: '\\(', end: '\\)',
+ contains: ['string', 'annotation']
+ },
+ hljs.C_NUMBER_MODE,
+ hljs.APOS_STRING_MODE,
+ hljs.QUOTE_STRING_MODE,
+ hljs.BACKSLASH_ESCAPE,
+ hljs.C_LINE_COMMENT_MODE,
+ {
+ className: 'javadoc',
+ begin: '/\\*\\*', end: '\\*/',
+ contains: ['javadoctag'],
+ relevance: 10
+ },
+ {
+ className: 'javadoctag',
+ begin: '@[A-Za-z]+', end: '^'
+ },
+ hljs.C_BLOCK_COMMENT_MODE,
+ {
+ className: 'annotation',
+ begin: '@[A-Za-z]+', end: '^'
+ },
+ {
+ className: 'string',
+ begin: 'u?r?"""', end: '"""',
+ relevance: 10
+ }
+ ]
+};
+
+};
diff --git a/deps/highlight.js/languages/smalltalk.js b/deps/highlight.js/languages/smalltalk.js
new file mode 100644
index 0000000..884e180
--- /dev/null
+++ b/deps/highlight.js/languages/smalltalk.js
@@ -0,0 +1,56 @@
+/*
+Language: Smalltalk
+Author: Vladimir Gubarkov <xonixx@gmail.com>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.smalltalk = function(){
+ var VAR_IDENT_RE = '[a-z][a-zA-Z0-9_]*';
+ return {
+ defaultMode: {
+ lexems: [hljs.UNDERSCORE_IDENT_RE],
+ contains: ['comment', 'string', 'class', 'method',
+ 'number', 'symbol', 'char', 'localvars', 'array'],
+ keywords: {'self': 1, 'super': 1, 'nil': 1, 'true': 1, 'false': 1, 'thisContext': 1} // only 6
+ },
+ modes: [
+ {
+ className: 'class',
+ begin: '\\b[A-Z][A-Za-z0-9_]*', end: '^',
+ relevance: 0
+ },
+ {
+ className: 'symbol',
+ begin: '#' + hljs.UNDERSCORE_IDENT_RE, end: '^'
+ },
+ hljs.C_NUMBER_MODE,
+ hljs.APOS_STRING_MODE,
+ {
+ className: 'comment',
+ begin: '"', end: '"',
+ relevance: 0
+ },
+ {
+ className: 'method',
+ begin: VAR_IDENT_RE + ':', end:'^'
+ },
+ {
+ className: 'char',
+ begin: '\\$.{1}', end: '^'
+ },
+ {
+ className: 'localvars',
+ begin: '\\|\\s*((' + VAR_IDENT_RE + ')\\s*)+\\|', end: '^',
+ relevance: 10
+ },
+ {
+ className: 'array',
+ begin: '\\#\\(', end: '\\)',
+ contains: ['string', 'char', 'number', 'symbol']
+ }
+ ]
+ };
+}();
+
+}; \ No newline at end of file
diff --git a/deps/highlight.js/languages/sql.js b/deps/highlight.js/languages/sql.js
new file mode 100644
index 0000000..bc518ab
--- /dev/null
+++ b/deps/highlight.js/languages/sql.js
@@ -0,0 +1,110 @@
+/*
+Language: SQL
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.sql =
+{
+ case_insensitive: true,
+ defaultMode:
+ {
+ contains: ['operator', 'comment'],
+ illegal: '[^\\s]'
+ },
+
+ modes: [
+ {
+ className: 'operator',
+ begin: '(begin|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma)\\b', end: ';|$',
+ contains: ['string', 'number', 'newline'],
+ lexems: ['[a-zA-Z][a-zA-Z0-9_\\.]*'],
+ keywords: {
+ 'keyword': {
+ 'all': 1, 'partial': 1, 'global': 1, 'month': 1,
+ 'current_timestamp': 1, 'using': 1, 'go': 1, 'revoke': 1,
+ 'smallint': 1, 'indicator': 1, 'end-exec': 1, 'disconnect': 1,
+ 'zone': 1, 'with': 1, 'character': 1, 'assertion': 1, 'to': 1,
+ 'add': 1, 'current_user': 1, 'usage': 1, 'input': 1, 'local': 1,
+ 'alter': 1, 'match': 1, 'collate': 1, 'real': 1, 'then': 1,
+ 'rollback': 1, 'get': 1, 'read': 1, 'timestamp': 1,
+ 'session_user': 1, 'not': 1, 'integer': 1, 'bit': 1, 'unique': 1,
+ 'day': 1, 'minute': 1, 'desc': 1, 'insert': 1, 'execute': 1,
+ 'like': 1, 'ilike': 2, 'level': 1, 'decimal': 1, 'drop': 1,
+ 'continue': 1, 'isolation': 1, 'found': 1, 'where': 1,
+ 'constraints': 1, 'domain': 1, 'right': 1, 'national': 1, 'some': 1,
+ 'module': 1, 'transaction': 1, 'relative': 1, 'second': 1,
+ 'connect': 1, 'escape': 1, 'close': 1, 'system_user': 1, 'for': 1,
+ 'deferred': 1, 'section': 1, 'cast': 1, 'current': 1, 'sqlstate': 1,
+ 'allocate': 1, 'intersect': 1, 'deallocate': 1, 'numeric': 1,
+ 'public': 1, 'preserve': 1, 'full': 1, 'goto': 1, 'initially': 1,
+ 'asc': 1, 'no': 1, 'key': 1, 'output': 1, 'collation': 1, 'group': 1,
+ 'by': 1, 'union': 1, 'session': 1, 'both': 1, 'last': 1,
+ 'language': 1, 'constraint': 1, 'column': 1, 'of': 1, 'space': 1,
+ 'foreign': 1, 'deferrable': 1, 'prior': 1, 'connection': 1,
+ 'unknown': 1, 'action': 1, 'commit': 1, 'view': 1, 'or': 1,
+ 'first': 1, 'into': 1, 'float': 1, 'year': 1, 'primary': 1,
+ 'cascaded': 1, 'except': 1, 'restrict': 1, 'set': 1, 'references': 1,
+ 'names': 1, 'table': 1, 'outer': 1, 'open': 1, 'select': 1,
+ 'size': 1, 'are': 1, 'rows': 1, 'from': 1, 'prepare': 1,
+ 'distinct': 1, 'leading': 1, 'create': 1, 'only': 1, 'next': 1,
+ 'inner': 1, 'authorization': 1, 'schema': 1, 'corresponding': 1,
+ 'option': 1, 'declare': 1, 'precision': 1, 'immediate': 1, 'else': 1,
+ 'timezone_minute': 1, 'external': 1, 'varying': 1, 'translation': 1,
+ 'true': 1, 'case': 1, 'exception': 1, 'join': 1, 'hour': 1,
+ 'default': 1, 'double': 1, 'scroll': 1, 'value': 1, 'cursor': 1,
+ 'descriptor': 1, 'values': 1, 'dec': 1, 'fetch': 1, 'procedure': 1,
+ 'delete': 1, 'and': 1, 'false': 1, 'int': 1, 'is': 1, 'describe': 1,
+ 'char': 1, 'as': 1, 'at': 1, 'in': 1, 'varchar': 1, 'null': 1,
+ 'trailing': 1, 'any': 1, 'absolute': 1, 'current_time': 1, 'end': 1,
+ 'grant': 1, 'privileges': 1, 'when': 1, 'cross': 1, 'check': 1,
+ 'write': 1, 'current_date': 1, 'pad': 1, 'begin': 1, 'temporary': 1,
+ 'exec': 1, 'time': 1, 'update': 1, 'catalog': 1, 'user': 1, 'sql': 1,
+ 'date': 1, 'on': 1, 'identity': 1, 'timezone_hour': 1, 'natural': 1,
+ 'whenever': 1, 'interval': 1, 'work': 1, 'order': 1, 'cascade': 1,
+ 'diagnostics': 1, 'nchar': 1, 'having': 1, 'left': 1, 'call': 1,
+ 'do': 1, 'handler': 1, 'load': 1, 'replace': 1, 'truncate': 1,
+ 'start': 1, 'lock': 1, 'show': 1, 'pragma': 1},
+ 'aggregate': {'count': 1, 'sum': 1, 'min': 1, 'max': 1, 'avg': 1}
+ }
+ },
+ {
+ className: 'newline',
+ begin: '\\n', end: '^', noMarkup: true
+ },
+ hljs.C_NUMBER_MODE,
+ hljs.C_BLOCK_COMMENT_MODE,
+ {
+ className: 'comment',
+ begin: '--', end: '$'
+ },
+ {
+ className: 'string',
+ begin: '\'', end: '\'',
+ contains: ['escape', 'squote'],
+ relevance: 0
+ },
+ {
+ className: 'squote',
+ begin: '\'\'', end: '^', noMarkup: true
+ },
+ {
+ className: 'string',
+ begin: '"', end: '"',
+ contains: [ 'escape', 'dquote'],
+ relevance: 0
+ },
+ {
+ className: 'dquote',
+ begin: '""', end: '^', noMarkup: true
+ },
+ {
+ className: 'string',
+ begin: '`', end: '`',
+ contains: ['escape']
+ },
+ hljs.BACKSLASH_ESCAPE
+ ]
+};
+
+};
diff --git a/deps/highlight.js/languages/tex.js b/deps/highlight.js/languages/tex.js
new file mode 100644
index 0000000..a0b1fcc
--- /dev/null
+++ b/deps/highlight.js/languages/tex.js
@@ -0,0 +1,62 @@
+/*
+Language: TeX
+Author: Vladimir Moskva <vladmos@gmail.com>
+Website: http://fulc.ru/
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.tex = {
+ defaultMode: {
+ contains: ['parameter', 'command', 'special', 'formula', 'comment']
+ },
+ modes: [
+ {
+ className: 'parameter',
+ begin: '\\\\[a-zA-Zа-яА-я]+[\\*]? *= *-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?', end: '^',
+ returnBegin: true,
+ contains: ['command', 'number'],
+ noMarkup: true,
+ relevance: 10
+ },
+ {
+ className: 'command',
+ begin: '\\\\[a-zA-Zа-яА-я]+[\\*]?', end: '^',
+ relevance: 10
+ },
+ {
+ className: 'command',
+ begin: '\\\\[^a-zA-Zа-яА-я0-9]', end: '^',
+ relevance: 0
+ },
+ {
+ className: 'comment',
+ begin: '%', end: '$',
+ relevance: 0
+ },
+ {
+ className: 'special',
+ begin: '[{}\\[\\]\\&#~]', end: '^',
+ relevance: 0
+ },
+ {
+ className: 'formula',
+ begin: '\\$\\$', end: '\\$\\$',
+ contains: ['command', 'special'],
+ relevance: 0
+ },
+ {
+ className: 'formula',
+ begin: '\\$', end: '\\$',
+ contains: ['command', 'special'],
+ relevance: 0
+ },
+ {
+ className: 'number',
+ begin: ' *=', end: '-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?',
+ excludeBegin: true
+ }
+ ]
+};
+
+};
diff --git a/deps/highlight.js/languages/vbscript.js b/deps/highlight.js/languages/vbscript.js
new file mode 100644
index 0000000..d9ab524
--- /dev/null
+++ b/deps/highlight.js/languages/vbscript.js
@@ -0,0 +1,40 @@
+/*
+Language: VBScript
+Author: Nikita Ledyaev <lenikita@yandex.ru>
+Contributors: Michal Gabrukiewicz <mgabru@gmail.com>
+*/
+
+this.lang = function(hljs){
+
+hljs.LANGUAGES.vbscript = {
+ defaultMode: {
+ lexems: [hljs.IDENT_RE],
+ contains: ['string', 'comment', 'number', 'built_in'],
+ keywords: {
+ 'keyword': {'call' : 1,'class' : 1,'const' : 1,'dim' : 1,'do' : 1,'loop' : 1,'erase' : 1,'execute' : 1,'executeglobal' : 1,'exit' : 1,'for' : 1,'each' : 1,'next' : 1,'function' : 1,'if' : 1,'then' : 1,'else' : 1,'on' : 1, 'error' : 1,'option' : 1, 'explicit' : 1, 'new': 1, 'private' : 1,'property' : 1,'let' : 1,'get' : 1,'public' : 1,'randomize' : 1,'redim' : 1,'rem' : 1,'select' : 1,'case' : 1,'set' : 1,'stop' : 1,'sub' : 1,'while' : 1,'wend' : 1,'with' : 1, 'end' : 1, 'to' : 1, 'elseif': 1, 'is': 1, 'or': 1, 'xor': 1, 'and': 1, 'not': 1, 'class_initialize': 1, 'class_terminate': 1, 'default': 1, 'preserve': 1, 'in': 1, 'me': 1, 'byval': 1, 'byref': 1, 'step': 1, 'resume': 1, 'goto': 1},
+ 'built_in': {'lcase': 1, 'month': 1, 'vartype': 1, 'instrrev': 1, 'ubound': 1, 'setlocale': 1, 'getobject': 1, 'rgb': 1, 'getref': 1, 'string': 1, 'weekdayname': 1, 'rnd': 1, 'dateadd': 1, 'monthname': 1, 'now': 1, 'day': 1, 'minute': 1, 'isarray': 1, 'cbool': 1, 'round': 1, 'formatcurrency': 1, 'conversions': 1, 'csng': 1, 'timevalue': 1, 'second': 1, 'year': 1, 'space': 1, 'abs': 1, 'clng': 1, 'timeserial': 1, 'fixs': 1, 'len': 1, 'asc': 1, 'isempty': 1, 'maths': 1, 'dateserial': 1, 'atn': 1, 'timer': 1, 'isobject': 1, 'filter': 1, 'weekday': 1, 'datevalue': 1, 'ccur': 1, 'isdate': 1, 'instr': 1, 'datediff': 1, 'formatdatetime': 1, 'replace': 1, 'isnull': 1, 'right': 1, 'sgn': 1, 'array': 1, 'snumeric': 1, 'log': 1, 'cdbl': 1, 'hex': 1, 'chr': 1, 'lbound': 1, 'msgbox': 1, 'ucase': 1, 'getlocale': 1, 'cos': 1, 'cdate': 1, 'cbyte': 1, 'rtrim': 1, 'join': 1, 'hour': 1, 'oct': 1, 'typename': 1, 'trim': 1, 'strcomp': 1, 'int': 1, 'createobject': 1, 'loadpicture': 1, 'tan': 1, 'formatnumber': 1, 'mid': 1, 'scriptenginebuildversion': 1, 'scriptengine': 1, 'split': 1, 'scriptengineminorversion': 1, 'cint': 1, 'sin': 1, 'datepart': 1, 'ltrim': 1, 'sqr': 1, 'scriptenginemajorversion': 1, 'time': 1, 'derived': 1, 'eval': 1, 'date': 1, 'formatpercent': 1, 'exp': 1, 'inputbox': 1, 'left': 1, 'ascw': 1, 'chrw': 1, 'regexp': 1, 'server': 1, 'response': 1, 'request': 1, 'cstr': 1, 'err': 1},
+ 'literal': {'true': 1, 'false': 1, 'null': 1, 'nothing': 1, 'empty': 1}
+ }
+ },
+ case_insensitive: true,
+ modes: [
+ { // can't use standard QUOTE_STRING_MODE since it's compiled with its own escape and doesn't use the local one
+ className: 'string',
+ begin: '"', end: '"',
+ illegal: '\\n',
+ contains: ['escape'],
+ relevance: 0
+ },
+ {
+ className: 'escape',
+ begin: '""', end: '^', noMarkup: true
+ },
+ {
+ className: 'comment',
+ begin: '\'', end: '$'
+ },
+ hljs.C_NUMBER_MODE
+ ]
+};
+
+};
diff --git a/deps/highlight.js/readme.eng.txt b/deps/highlight.js/readme.eng.txt
new file mode 100644
index 0000000..45510c4
--- /dev/null
+++ b/deps/highlight.js/readme.eng.txt
@@ -0,0 +1,486 @@
+# Highlight.js
+
+Highlight.js highlights syntax in code examples on blogs, forums and
+in fact on any web pages. It's very easy to use because it works
+automatically: finds blocks of code, detects a language, highlights it.
+
+Autodetection can be fine tuned when it fails by itself (see "Heuristics").
+
+
+## Installation and usage
+
+Downloaded package includes file "highlight.pack.js" which is a full compressed
+version of the library intended to use in production. All uncompressed source
+files are also available, feel free to look into them!
+
+The script is installed by linking to a single file and making a single
+initialization call:
+
+ <script type="text/javascript" src="highlight.pack.js"></script>
+ <script type="text/javascript">
+ hljs.initHighlightingOnLoad();
+ </script>
+
+Also you can replaces TAB ('\x09') characters used for indentation in your code
+with some fixed number of spaces or with a `<span>` to set them special styling:
+
+ <script type="text/javascript">
+ hljs.tabReplace = ' '; // 4 spaces
+ // ... or
+ hljs.tabReplace = '<span class="indent">\t</span>';
+
+ hljs.initHighlightingOnLoad();
+ </script>
+
+Then the script looks in your page for fragments `<pre><code>...</code></pre>`
+that are used traditionally to mark up code examples. Their content is
+marked up by logical pieces with defined class names.
+
+
+### Custom initialization
+
+If you use different markup for code blocks you can initialize them manually
+with `highlightBlock(code, tabReplace)` function. It takes a DOM element
+containing the code to highlight and optionally a string with which to replace
+TAB characters.
+
+Initialization using for example jQuery might look like this:
+
+ $(document).ready(function() {
+ $('pre code').each(function(i, e) {hljs.highlightBlock(e, ' ')});
+ });
+
+
+### Styling
+
+Elements of code marked up with classes can be styled as desired:
+
+ .comment {
+ color: gray;
+ }
+
+ .keyword {
+ font-weight: bold;
+ }
+
+ .python .string {
+ color: blue;
+ }
+
+ .html .atribute .value {
+ color: green;
+ }
+
+Highligt.js comes with several style themes located in "styles" directory that
+can be used directly or as a base for your own experiments.
+
+A full list of available classes is below ("Languages").
+
+
+## Export
+
+File export.html contains a little program that shows and allows to copy and paste
+an HTML code generated by the highlighter for any code snippet. This can be useful
+in situations when one can't use the script itself on a site.
+
+
+## Languages
+
+This is a full list of available classes corresponding to languages'
+syntactic structures. In parentheses after language names are identifiers
+used as class names in `<code>` element.
+
+Python ("python"):
+
+ keyword keyword
+ built_in built-in objects (None, False, True and Ellipsis)
+ number number
+ string string (of any type)
+ comment comment
+ decorator @-decorator for functions
+ function function header "def some_name(...):"
+ class class header "class SomeName(...):"
+ title name of a function or a class inside a header
+ params everything inside parentheses in a function's or class' header
+
+Python profiler results ("profile"):
+
+ number number
+ string string
+ builtin builtin function entry
+ filename filename in an entry
+ summary profiling summary
+ header header of table of results
+ keyword column header
+ function function name in an entry (including parentheses)
+ title actual name of a function in an entry (excluding parentheses)
+
+Ruby ("ruby"):
+
+ keyword keyword
+ string string
+ subst in-string substitution (#{...})
+ comment comment
+ yardoctag YARD tag
+ function function header "def some_name(...):"
+ class class header "class SomeName(...):"
+ title name of a function or a class inside a header
+ parent name of a parent class
+ symbol symbol
+ instancevar instance variable
+
+Perl ("perl"):
+
+ keyword keyword
+ comment comment
+ number number
+ string string
+ regexp regular expression
+ sub subroutine header (from "sub" till "{")
+ variable variable starting with "$", "%", "@"
+ operator operator
+ pod plain old doc
+
+PHP ("php"):
+
+ keyword keyword
+ number number
+ string string (of any type)
+ comment comment
+ phpdoc phpdoc params in comments
+ variable variable starting with "$"
+ preprocessor preprocessor marks: "<?php" and "?>"
+
+Scala ("scala"):
+
+ keyword keyword
+ number number
+ string string
+ comment comment
+ annotaion annotation
+ javadoc javadoc comment
+ javadoctag @-tag in javadoc
+ class class header
+ title class name inside a header
+ params everything in parentheses inside a class header
+ inheritance keywords "extends" and "with" inside class header
+
+XML ("xml"):
+
+ tag any tag from "<" till ">"
+ comment comment
+ pi processing instruction (<? ... ?>)
+ cdata CDATA section
+ attribute attribute
+ value attribute's value
+
+HTML ("html"):
+
+ keyword HTML tag
+ tag any tag from "<" till ">"
+ comment comment
+ doctype <!DOCTYPE ... > declaration
+ attribute tag's attribute with or without value
+ value attribute's value
+
+CSS ("css"):
+
+ keyword HTML tag when in selectors, CSS keyword when in rules
+ id #some_name in selectors
+ class .some_name in selectors
+ at_rule @-rule till first "{" or ";"
+ attr_selector attribute selector (square brackets in a[href^=http://])
+ pseudo pseudo classes and elemens (:after, ::after etc.)
+ comment comment
+ rules everything from "{" till "}"
+ value property's value inside a rule, from ":" till ";" or
+ till the end of rule block
+ number number within a value
+ string string within a value
+ hexcolor hex color (#FFFFFF) within a value
+ function CSS function within a value
+ params everything between "(" and ")" within a function
+
+Django ("django"):
+
+ keyword HTML tag in HTML, default tags and default filters in templates
+ tag any tag from "<" till ">"
+ comment comment
+ doctype <!DOCTYPE ... > declaration
+ attribute tag's attribute with or withou value
+ value attribute's value
+ template_tag template tag {% .. %}
+ variable template variable {{ .. }}
+ template_comment template comment, both {# .. #} and {% comment %}
+ filter filter from "|" till the next filter or the end of tag
+ argument filter argument
+
+Javascript ("javascript"):
+
+ keyword keyword
+ comment comment
+ number number
+ literal special literal: "true", "false" and "null"
+ string string
+ regexp regular expression
+ function header of a function
+ title name of a function inside a header
+ params everything inside parentheses in a function's header
+
+VBScript ("vbscript"):
+
+ keyword keyword
+ number number
+ string string
+ comment comment
+ built_in built-in function
+
+Lua ("lua"):
+
+ keyword keyword
+ number number
+ string string
+ comment comment
+ built_in built-in operator
+ function header of a function
+ title name of a function inside a header
+ params everything inside parentheses in a function's header
+ long_brackets multiline string in [=[ .. ]=]
+
+Delphi ("delphi"):
+
+ keyword keyword
+ comment comment (of any type)
+ number number
+ string string
+ function header of a function, procedure, constructor and destructor
+ title name of a function, procedure, constructor or destructor
+ inside a header
+ params everything inside parentheses in a function's header
+ class class' body from "= class" till "end;"
+
+Java ("java"):
+
+ keyword keyword
+ number number
+ string string
+ comment commment
+ annotaion annotation
+ javadoc javadoc comment
+ class class header from "class" till "{"
+ title class name inside a header
+ params everything in parentheses inside a class header
+ inheritance keywords "extends" and "implements" inside class header
+
+C++ ("cpp"):
+
+ keyword keyword
+ number number
+ string string and character
+ comment comment
+ preprocessor preprocessor directive
+ stl_container instantiation of STL containers ("vector<...>")
+
+C# ("cs"):
+
+ keyword keyword
+ number number
+ string string
+ comment commment
+ xmlDocTag xmldoc tag ("///", "<!--", "-->", "<..>")
+
+RenderMan RSL ("rsl"):
+
+ keyword keyword
+ number number
+ string string (including @"..")
+ comment comment
+ preprocessor preprocessor directive
+ shader sahder keywords
+ shading shading keywords
+ built_in built-in function
+
+RenderMan RIB ("rib"):
+
+ keyword keyword
+ number number
+ string string
+ comment comment
+ commands command
+
+Maya Embedded Language ("mel"):
+
+ keyword keyword
+ number number
+ string string
+ comment comment
+ variable variable
+
+SQL ("sql"):
+
+ keyword keyword (mostly SQL'92 and SQL'99)
+ number number
+ string string (of any type: "..", '..', `..`)
+ comment comment
+ aggregate aggregate function
+
+Smalltalk ("smalltalk"):
+
+ keyword keyword
+ number number
+ string string
+ comment commment
+ symbol symbol
+ array array
+ class name of a class
+ char char
+ localvars block of local variables
+
+Lisp ("lisp"):
+
+ keyword keyword
+ number number
+ string string
+ comment commment
+ variable variable
+ literal b, t and nil
+ list non-quoted list
+ title first symbol in a non-quoted list
+ body remainder of the non-quoted list
+ quoted_list quoted list, both "(quote .. )" and "'(..)"
+
+Ini ("ini"):
+
+ title title of a section
+ value value of a setting of any type
+ string string
+ number number
+ keyword boolean value keyword
+
+Apache ("apache"):
+
+ keyword keyword
+ number number
+ comment commment
+ literal On and Off
+ sqbracket variables in rewrites "%{..}"
+ cbracket options in rewrites "[..]"
+ tag begin and end of a configuration section
+
+Nginx ("nginx"):
+
+ keyword keyword
+ string string
+ number number
+ comment comment
+ built_in built-in constant
+ variable $-variable
+
+DOS ("dos"):
+
+ keyword keyword
+ flow batch control keyword
+ stream DOS special files ("con", "prn", ...)
+ winutils some commands (see dos.js specifically)
+ envvar environment variables
+
+Bash ("bash"):
+
+ keyword keyword
+ string string
+ number number
+ comment comment
+ literal special literal: "true" и "false"
+ variable variable
+ shebang script interpreter header
+
+Diff ("diff"):
+
+ header file header
+ chunk chunk header within a file
+ addition added lines
+ deletion deleted lines
+ change changed lines
+
+Axapta ("axapta"):
+
+ keyword keyword
+ number number
+ string string
+ comment commment
+ class class header from "class" till "{"
+ title class name inside a header
+ params everything in parentheses inside a class header
+ inheritance keywords "extends" and "implements" inside class header
+ preprocessor preprocessor directive
+
+1C ("1c"):
+
+ keyword keyword
+ number number
+ date date
+ string string
+ comment commment
+ function header of function or procudure
+ title function name inside a header
+ params everything in parentheses inside a function header
+ preprocessor preprocessor directive
+
+AVR assembler ("avrasm"):
+
+ keyword keyword
+ built_in pre-defined register
+ number number
+ string string
+ comment commment
+ label label
+ preprocessor preprocessor directive
+ localvars substitution in .macro
+
+Parser3 ("parser3"):
+
+ keyword keyword
+ number number
+ comment commment
+ variable variable starting with "$"
+ preprocessor preprocessor directive
+ title user-defined name starting with "@"
+
+TeX ("tex"):
+
+ comment comment
+ number number
+ command command
+ parameter parameter
+ formula formula
+ special special symbol
+
+
+## Heuristics
+
+Autodetection of a code's language is done with a simple heuristics:
+the program tries to highlight a fragment with all available languages and
+counts all syntactic structures that it finds along the way. The language
+with greatest count wins.
+
+This means that in short fragments the probability of an error is high
+(and it really happens sometimes). In this cases you can set the fragment's
+language explicitly by assigning a class to the `<code>` element:
+
+ <pre><code class="html">...</code></pre>
+
+You can use class names recommended in HTML5: "language-html",
+"language-php". Classes also can be assigned to the `<pre>` element.
+
+To disable highlighting of a fragment altogether use "no-highlight" class:
+
+ <pre><code class="no-highlight">...</code></pre>
+
+## Contacts
+
+Version: 5.11
+URL: http://softwaremaniacs.org/soft/highlight/en/
+Author: Ivan Sagalaev (Maniac@SoftwareManiacs.Org)
+
+For the license terms see LICENSE files.
+For the list of contributors see AUTHORS.en.txt file.
diff --git a/deps/highlight.js/readme.rus.txt b/deps/highlight.js/readme.rus.txt
new file mode 100644
index 0000000..8e21518
--- /dev/null
+++ b/deps/highlight.js/readme.rus.txt
@@ -0,0 +1,494 @@
+# Highlight.js
+
+Highlight.js нужен для подсветки синтаксиса в примерах кода в блогах,
+форумах и вообще на любых веб-страницах. Пользоваться им очень просто,
+потому что работает он автоматически: сам находит блоки кода, сам
+определяет язык, сам подсвечивает.
+
+Автоопределением языка можно управлять, когда оно не справляется само (см.
+дальше "Эвристика").
+
+
+## Подключение и использование
+
+В загруженном архиве лежит файл "highlight.pack.js" -- полная сжатая версия
+библиотеки для работы. Все несжатые исходные файлы также есть в пакете, поэтому
+не стесняйтесь в них смотреть!
+
+Скрипт подключается одним файлом и одним вызовом инициализирующей
+функции:
+
+ <script type="text/javascript" src="highlight.pack.js"></script>
+ <script type="text/javascript">
+ hljs.initHighlightingOnLoad();
+ </script>
+
+Также вы можете заменить символы TAB ('\x09'), используемые для отступов, на
+фиксированное количество пробелов или на отдельный `<span>`, чтобы задать ему
+какой-нибудь специальный стиль:
+
+ <script type="text/javascript">
+ hljs.tabReplace = ' '; // 4 spaces
+ // ... or
+ hljs.tabReplace = '<span class="indent">\t</span>';
+
+ hljs.initHighlightingOnLoad();
+ </script>
+
+Дальше скрипт ищет на странице конструкции `<pre><code>...</code></pre>`,
+которые традиционно используются для написания кода, и код в них
+размечается на куски, помеченные разными значениями классов.
+
+
+### Инициализация вручную
+
+Если вы используете другие теги для блоков кода, вы можете инициализировать их
+явно с помощью функции `highlightBlock(code, tabReplace)`. Она принимает
+DOM-элемент с текстом расцвечиваемого кода и опционально - строчку для замены
+символов TAB.
+
+Например с использованием jQuery код инициализации может выглядеть так:
+
+ $(document).ready(function() {
+ $('pre code').each(function(i, e) {hljs.highlightBlock(e, ' ')});
+ });
+
+
+### Выбор стилей
+
+Размеченным классами элементам кода можно задать желаемые стили например так:
+
+ .comment {
+ color: gray;
+ }
+
+ .keyword {
+ font-weight: bold;
+ }
+
+ .python .string {
+ color: blue;
+ }
+
+ .html .atribute .value {
+ color: green;
+ }
+
+В комплекте с highlight.js идут несколько стилевых тем в директории styles,
+которые можно использовать напрямую или как основу для собственных экспериментов.
+
+Полный список классов для разных языков приведен ниже ("Языки").
+
+
+## Экспорт
+
+В файле export.html находится небольшая программка, которая показывает и дает
+скопировать непосредственно HTML-код подсветки для любого заданного фрагмента кода.
+Это может понадобится например на сайте, на котором нельзя подключить сам скрипт
+highlight.js.
+
+
+## Языки
+
+В списке приведены все языки, которые знает библиотека с классами,
+соответствующими различным синтаксическим частям. В скобках после
+названий языков указаны идентификаторы языков, используемые в качестве
+классов элемента `<code>`.
+
+Python ("python"):
+
+ keyword ключевое слово языка
+ built_in стандартные значения (None, False, True и Ellipsis)
+ number число
+ string строка (любого типа)
+ comment комментарий
+ decorator @-декоратор функции
+ function заголовок функции "def some_name(...):"
+ class заголовок класса "class SomeName(...):"
+ title название функции или класса внутри заголовка
+ params все, что в скобках внутри заголовка функции или класса
+
+Результаты профайлинга Питона ("profile"):
+
+ number число
+ string строка
+ builtin встроенная функция в строке результата
+ filename имя файла в строке результата
+ summary итоговые результаты профилирования
+ header заголовок таблицы результатов
+ keyword название колонки в заголовке
+ function название функции в строке результата (включая скобки)
+ title само название функци в строке результата (без скобок)
+
+Ruby ("ruby"):
+
+ keyword ключевое слово языка
+ string строка
+ subst внутристроковая подстановка (#{...})
+ comment комментарий
+ yardoctag тег YARD
+ function заголовок функции "def ..."
+ class заголовок класса "class ..."
+ title название функции или класса внутри заголовка
+ parent название родительского класса
+ symbol символ
+ instancevar переменная класса
+
+Perl ("perl"):
+
+ keyword ключевое слово языка
+ comment комментарий
+ number число
+ string строка
+ regexp регулярное выражение
+ sub заголовок процедуры (от "sub" до "{")
+ variable переменная, начинающаяся с "$", "%", "@"
+ operator оператор
+ pod документация (plain old doc)
+
+PHP ("php"):
+
+ keyword ключевое слово языка
+ number число
+ string строка (любого типа)
+ comment комментарий
+ phpdoc параметры phpdoc в комментарии
+ variable переменная, начинающаяся с "$"
+ preprocessor метки препроцессора: "<?php" and "?>"
+
+Scala ("scala"):
+
+ keyword ключевое слово языка
+ number число
+ string строка
+ comment комментарий
+ annotaion аннотация
+ javadoc javadoc-комментарии
+ javadoctag @-тег в javadoc
+ class заголовок класса
+ title название класса внутри заголовка
+ params все, что в скобках внутри заголовка класса
+ inheritance слова "extends" и "with" внутри заголовка класса
+
+XML ("xml"):
+
+ tag любой открывающий или закрывающий тег от "<" до ">"
+ comment комментарий
+ pi инструкции обработки (<? ... ?>)
+ cdata раздел CDATA
+ attribute атрибут
+ value значение атрибута
+
+HTML ("html"):
+
+ keyword тег языка HTML
+ tag любой открывающий или закрывающий тег от "<" до ">"
+ comment комментарий
+ doctype объявление <!DOCTYPE ... >
+ attribute атрибут внутри тега со значением или без
+ value значение атрибута
+
+CSS ("css"):
+
+ keyword тег языка HTML в селекторах или свойство CSS в правилах
+ id #some_name в селекторах
+ class .some_name в селекторах
+ at_rule @-rule до первого "{" или ";"
+ attr_selector селектор атрибутов (квадатные скобоки в a[href^=http://])
+ pseudo псевдо-классы и элементы (:after, ::after и т.д.)
+ comment комментарий
+ rules все от "{" до "}"
+ value значение свойства внутри правила, все от ":" до ";" или
+ до конца блока правил
+ number число внутри значения
+ string строка внутри значения
+ hexcolor шестнадцатеричный цвет (#FFFFFF) внутри значения
+ function CSS-функция внутри значения
+ params все от "(" до ")" внутри функции
+
+Django ("django"):
+
+ keyword тег HTML в HTML, встроенные шаблонные теги и фильтры в шаблонах
+ tag любой открывающий или закрывающий тег от "<" до ">"
+ comment комментарий
+ doctype объявление <!DOCTYPE ... >
+ attribute атрибут внутри тега со значением или без
+ value значение атрибута
+ template_tag шаблонный тег {% .. %}
+ variable шаблонная переменная {{ .. }}
+ template_comment шаблонный комментарий, и {# .. #}, и {% comment %}
+ filter фильтр от "|" до следующего фильтра или до конца тега
+ argument аргумент фильтра
+
+Javascript ("javascript"):
+
+ keyword ключевое слово языка
+ comment комментарий
+ number число
+ literal специальное слово: "true", "false" и "null"
+ string строка
+ regexp регулярное выражение
+ function заголовок функции
+ title название функции внутри заголовка
+ params все, что в скобках внутри заголовка функции
+
+VBScript ("vbscript"):
+
+ keyword ключевое слово языка
+ comment комментарий
+ number число
+ string строка
+ built_in встроенная функция
+
+Lua ("lua"):
+
+ keyword ключевое слово языка
+ number число
+ string строка
+ comment комментарий
+ built_in встроенный оператор
+ function заголовок функции
+ title название функции внутри заголовка
+ params все, что в скобках внутри заголовка функции
+ long_brackets многострочная строка в [=[ .. ]=]
+
+Delphi ("delphi"):
+
+ keyword ключевое слово языка
+ comment комментарий (любого типа)
+ number число
+ string строка
+ function заголовок функции, процедуры, конструктора или деструктора
+ title название функции, процедуры, конструктора или деструктора
+ внутри заголовка
+ params все, что в скобках внутри заголовка функций
+ class тело класса от "= class" до "end;"
+
+Java ("java"):
+
+ keyword ключевое слово языка
+ number число
+ string строка
+ comment комментарий
+ annotaion аннотация
+ javadoc javadoc-комментарии
+ class заголовок класса от "class" до "{"
+ title название класса внутри заголовка
+ params все, что в скобках внутри заголовка класса
+ inheritance слова "extends" и "implements" внутри заголовка класса
+
+C++ ("cpp"):
+
+ keyword ключевое слово языка
+ built_in тип из стандартной библиотеки (включая STL)
+ number число
+ string строка и одиночный символ
+ comment комментарий
+ preprocessor директива препроцессора
+ stl_container инстанцирование STL-контейнеров ("vector<...>")
+
+C# ("cs"):
+
+ keyword ключевое слово языка
+ number число
+ string строка (включая @"..")
+ comment комментарий
+ xmlDocTag тег в xmldoc ("///", "<!--", "-->", "<..>")
+
+RenderMan RSL ("rsl"):
+
+ keyword ключевое слово языка
+ number число
+ string строка
+ comment комментарий
+ preprocessor директива препроцессора
+ shader ключевое слово шейдеров
+ shading ключевое слово затенений
+ built_in встроенная функция
+
+RenderMan RIB ("rib"):
+
+ keyword ключевое слово языка
+ number число
+ string строка
+ comment комментарий
+ commands команда
+
+Maya Embedded Language ("mel"):
+
+ keyword ключевое слово языка
+ number число
+ string строка
+ comment комментарий
+ variable переменная
+
+SQL ("sql"):
+
+ keyword ключевое слово (в основном из SQL'92 и SQL'99)
+ number число
+ string строка (любого типа: "..", '..', `..`)
+ comment комментарий
+ aggregate агрегатная функция
+
+Smalltalk ("smalltalk"):
+
+ keyword ключевое слово
+ number число
+ string строка
+ comment комментарий
+ symbol символ
+ array массив
+ class имя класса
+ char буква
+ localvars блок локальных переменных
+
+Lisp ("lisp"):
+
+ keyword ключевое слово
+ number число
+ string строка
+ comment комментарий
+ variable переменная
+ literal b, t и nil
+ list неквотированный список
+ title первый символ неквотированного списка
+ body остаток неквотированного списка
+ quoted_list квотированный список: и "(quote .. )", и "'(..)"
+
+Ini ("ini"):
+
+ title заголовок секции
+ value значение настройки любого типа
+ string строка
+ number число
+ keyword ключевое слово булевского значения
+
+Apache ("apache"):
+
+ keyword ключевое слово
+ number число
+ comment комментарий
+ literal "On" и "Off"
+ sqbracket переменная в rewrite'ах "%{..}"
+ cbracket опции в rewrite'ах "[..]"
+ tag начало и конец раздела конфига
+
+Nginx ("nginx"):
+
+ keyword ключевое слово
+ string строка
+ number число
+ comment комментарий
+ built_in встроенная константа
+ variable $-переменная
+
+DOS ("dos"):
+
+ keyword ключевое слово
+ flow команда .bat-файла
+ stream специальные файлы DOS ("con", "prn", ...)
+ winutils некоторые (см. dos.js за списком)
+ envvar переменная окружения
+
+Bash ("bash"):
+
+ keyword ключевое слово
+ string строка
+ number число
+ comment комментарий
+ literal специальное слово: "true" и "false"
+ variable переменная
+ shebang заголовок интерпретатора скрипта
+
+Diff ("diff"):
+
+ header заголовок файла
+ chunk заголовок куска внутри файла
+ addition добавленные строки
+ deletion удаленные строки
+ change измененные строки
+
+Axapta ("axapta"):
+
+ keyword ключевое слово языка
+ number число
+ string строка
+ comment комментарий
+ class заголовок класса от "class" до "{"
+ title название класса внутри заголовка
+ params все, что в скобках внутри заголовка класса
+ inheritance слова "extends" и "implements" внутри заголовка класса
+ preprocessor директива препроцессора
+
+1С ("1c"):
+
+ keyword ключевое слово языка
+ number число
+ date дата
+ string строка
+ comment комментарий
+ function заголовок функции или процедуры
+ title название функции внутри заголовка
+ params все, что в скобках внутри заголовка функции
+ preprocessor директива препроцессора
+
+AVR ассемблер ("avrasm"):
+
+ keyword ключевое слово языка
+ built_in предопределенный регистр
+ number число
+ string строка
+ comment комментарий
+ label метка
+ preprocessor директива препроцессора
+ localvars подстановка в .macro
+
+Parser3 ("parser3"):
+
+ keyword ключевое слово языка
+ number число
+ comment комментарий
+ variable переменная, начинающаяся с "$"
+ preprocessor директива препроцессора
+ title пользовательское имя, начинающееся с "@"
+
+TeX ("tex"):
+
+ comment комментарий
+ number число
+ command команда
+ parameter параметр
+ formula формула
+ special специальный символ
+
+
+## Эвристика
+
+Определение языка, на котором написан фрагмент, делается с помощью
+довольно простой эвристики: программа пытается расцветить фрагмент всеми
+языками подряд, и для каждого языка считает количество подошедших
+синтаксически конструкций и ключевых слов. Для какого языка нашлось больше,
+тот и выбирается.
+
+Это означает, что в коротких фрагментах высока вероятность ошибки, что
+периодически и случается. Чтобы указать язык фрагмента явно, надо написать
+его название в виде класса к элементу `<code>`:
+
+ <pre><code class="html">...</code></pre>
+
+Можно использовать рекомендованные в HTML5 названия классов:
+"language-html", "language-php". Также можно назначать классы на элемент
+`<pre>`.
+
+Чтобы запретить расцветку фрагмента вообще, используется класс "no-highlight":
+
+ <pre><code class="no-highlight">...</code></pre>
+
+## Координаты
+
+Версия: 5.11
+URL: http://softwaremaniacs.org/soft/highlight/
+Автор: Иван Сагалаев (Maniac@SoftwareManiacs.Org)
+
+Лицензионное соглашение читайте в файле LICENSE.
+Список соавторов читайте в файле AUTHORS.ru.txt
diff --git a/deps/highlight.js/styles/ascetic.css b/deps/highlight.js/styles/ascetic.css
new file mode 100644
index 0000000..8c79034
--- /dev/null
+++ b/deps/highlight.js/styles/ascetic.css
@@ -0,0 +1,45 @@
+/*
+
+Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
+
+*/
+
+pre code {
+ display: block;
+ background: white; color: black;
+ border: solid #CCC 1px;
+}
+
+pre .string,
+pre .attribute .value,
+pre .filter .argument,
+pre .addition,
+pre .change,
+pre .apache .tag,
+pre .apache .cbracket,
+pre .nginx .built_in,
+pre .tex .formula {
+ color: #888;
+}
+
+pre .comment,
+pre .template_comment,
+pre .shebang,
+pre .doctype,
+pre .pi,
+pre .javadoc,
+pre .deletion,
+pre .apache .sqbracket {
+ color: #CCC;
+}
+
+pre .keyword,
+pre .tag .title,
+pre .ini .title,
+pre .winutils,
+pre .flow,
+pre .lisp .title,
+pre .apache .tag,
+pre .tex .command {
+ font-weight: bold;
+}
diff --git a/deps/highlight.js/styles/brown_paper.css b/deps/highlight.js/styles/brown_paper.css
new file mode 100644
index 0000000..a969fc5
--- /dev/null
+++ b/deps/highlight.js/styles/brown_paper.css
@@ -0,0 +1,113 @@
+/*
+
+Brown Paper style from goldblog.com.ua (c) Zaripov Yura <yur4ik7@ukr.net>
+
+*/
+
+pre code[class]:after {
+ content: 'highlight: ' attr(class);
+ display: block; text-align: right;
+ font-size: smaller;
+ color: #2c2c2c; background: transparent;
+ border-top: solid 1px black;
+ padding-top: 0.5em;
+}
+
+pre code {
+ display: block;
+ background:#b7a68e url(./brown_papersq.png);
+ padding-left:10px;
+ padding-top:10px;
+}
+
+pre .keyword,
+pre .literal,
+pre .change,
+pre .winutils,
+pre .flow,
+pre .lisp .title,
+pre .tex .special {
+ color:#005599;
+ font-weight:bold;
+}
+
+pre code,
+pre .ruby .subst {
+ color: #363C69;
+}
+
+pre .string,
+pre .function .title,
+pre .class .title,
+pre .ini .title,
+pre .tag .attribute .value,
+pre .css .rules .value,
+pre .preprocessor,
+pre .ruby .symbol,
+pre .ruby .symbol .string,
+pre .ruby .symbol .keyword,
+pre .ruby .symbol .keymethods,
+pre .ruby .instancevar,
+pre .ruby .class .parent,
+pre .built_in,
+pre .sql .aggregate,
+pre .django .template_tag,
+pre .django .variable,
+pre .smalltalk .class,
+pre .javadoc,
+pre .ruby .string,
+pre .django .filter .argument,
+pre .smalltalk .localvars,
+pre .smalltalk .array,
+pre .attr_selector,
+pre .pseudo,
+pre .addition,
+pre .stream,
+pre .envvar,
+pre .apache .tag,
+pre .apache .cbracket,
+pre .tex .number {
+ color: #2C009F;
+}
+
+pre .comment,
+pre .java .annotation,
+pre .python .decorator,
+pre .template_comment,
+pre .pi,
+pre .doctype,
+pre .deletion,
+pre .shebang,
+pre .apache .sqbracket,
+pre .nginx .built_in,
+pre .tex .formula {
+ color: #802022;
+}
+
+pre .keyword,
+pre .literal,
+pre .css .id,
+pre .phpdoc,
+pre .function .title,
+pre .class .title,
+pre .vbscript .built_in,
+pre .sql .aggregate,
+pre .rsl .built_in,
+pre .smalltalk .class,
+pre .xml .tag .title,
+pre .diff .header,
+pre .chunk,
+pre .winutils,
+pre .bash .variable,
+pre .lisp .title,
+pre .apache .tag,
+pre .tex .command {
+ font-weight: bold;
+}
+
+pre .html .css,
+pre .html .javascript,
+pre .html .vbscript,
+pre .tex .formula {
+ opacity: 0.8;
+}
diff --git a/deps/highlight.js/styles/brown_papersq.png b/deps/highlight.js/styles/brown_papersq.png
new file mode 100644
index 0000000..3813903
--- /dev/null
+++ b/deps/highlight.js/styles/brown_papersq.png
Binary files differ
diff --git a/deps/highlight.js/styles/dark.css b/deps/highlight.js/styles/dark.css
new file mode 100644
index 0000000..0ac41cb
--- /dev/null
+++ b/deps/highlight.js/styles/dark.css
@@ -0,0 +1,109 @@
+/*
+
+Dark style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
+
+*/
+
+pre code[class]:after {
+ content: 'highlight: ' attr(class);
+ display: block; text-align: right;
+ font-size: smaller;
+ color: #CCC; background: white;
+ border-top: solid 1px black;
+ padding-top: 0.5em;
+}
+
+pre code {
+ display: block;
+ background: #444;
+}
+
+pre .keyword,
+pre .literal,
+pre .change,
+pre .winutils,
+pre .flow,
+pre .lisp .title,
+pre .tex .special {
+ color: white;
+}
+
+pre code,
+pre .ruby .subst {
+ color: #DDD;
+}
+
+pre .string,
+pre .function .title,
+pre .class .title,
+pre .ini .title,
+pre .tag .attribute .value,
+pre .css .rules .value,
+pre .preprocessor,
+pre .ruby .symbol,
+pre .ruby .symbol .string,
+pre .ruby .symbol .keyword,
+pre .ruby .symbol .keymethods,
+pre .ruby .instancevar,
+pre .ruby .class .parent,
+pre .built_in,
+pre .sql .aggregate,
+pre .django .template_tag,
+pre .django .variable,
+pre .smalltalk .class,
+pre .javadoc,
+pre .ruby .string,
+pre .django .filter .argument,
+pre .smalltalk .localvars,
+pre .smalltalk .array,
+pre .attr_selector,
+pre .pseudo,
+pre .addition,
+pre .stream,
+pre .envvar,
+pre .apache .tag,
+pre .apache .cbracket,
+pre .tex .command {
+ color: #D88;
+}
+
+pre .comment,
+pre .java .annotation,
+pre .python .decorator,
+pre .template_comment,
+pre .pi,
+pre .doctype,
+pre .deletion,
+pre .shebang,
+pre .apache .sqbracket,
+pre .tex .formula {
+ color: #777;
+}
+
+pre .keyword,
+pre .literal,
+pre .css .id,
+pre .phpdoc,
+pre .function .title,
+pre .class .title,
+pre .vbscript .built_in,
+pre .sql .aggregate,
+pre .rsl .built_in,
+pre .smalltalk .class,
+pre .xml .tag .title,
+pre .diff .header,
+pre .chunk,
+pre .winutils,
+pre .bash .variable,
+pre .lisp .title,
+pre .apache .tag,
+pre .tex .special {
+ font-weight: bold;
+}
+
+pre .html .css,
+pre .html .javascript,
+pre .html .vbscript,
+pre .tex .formula {
+ opacity: 0.5;
+}
diff --git a/deps/highlight.js/styles/default.css b/deps/highlight.js/styles/default.css
new file mode 100644
index 0000000..327fa8d
--- /dev/null
+++ b/deps/highlight.js/styles/default.css
@@ -0,0 +1,123 @@
+/*
+
+Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
+
+*/
+
+pre code[class]:after {
+ content: 'highlight: ' attr(class);
+ display: block; text-align: right;
+ font-size: smaller;
+ color: #CCC; background: white;
+ border-top: solid 1px;
+ padding-top: 0.5em;
+}
+
+pre code {
+ display: block;
+ background: #F0F0F0;
+}
+
+pre code,
+pre .ruby .subst,
+pre .xml .title,
+pre .lisp .title {
+ color: black;
+}
+
+pre .string,
+pre .title,
+pre .constant,
+pre .parent,
+pre .tag .attribute .value,
+pre .rules .value,
+pre .rules .value .number,
+pre .preprocessor,
+pre .ruby .symbol,
+pre .ruby .symbol .string,
+pre .ruby .symbol .keyword,
+pre .ruby .symbol .keymethods,
+pre .instancevar,
+pre .aggregate,
+pre .template_tag,
+pre .django .variable,
+pre .smalltalk .class,
+pre .addition,
+pre .flow,
+pre .stream,
+pre .bash .variable,
+pre .apache .tag,
+pre .apache .cbracket,
+pre .tex .command,
+pre .tex .special {
+ color: #800;
+}
+
+pre .comment,
+pre .annotation,
+pre .template_comment,
+pre .diff .header,
+pre .chunk {
+ color: #888;
+}
+
+pre .number,
+pre .date,
+pre .regexp,
+pre .literal,
+pre .smalltalk .symbol,
+pre .smalltalk .char,
+pre .change {
+ color: #080;
+}
+
+pre .label,
+pre .javadoc,
+pre .ruby .string,
+pre .decorator,
+pre .filter .argument,
+pre .localvars,
+pre .array,
+pre .attr_selector,
+pre .pseudo,
+pre .pi,
+pre .doctype,
+pre .deletion,
+pre .envvar,
+pre .shebang,
+pre .apache .sqbracket,
+pre .nginx .built_in,
+pre .tex .formula {
+ color: #88F;
+}
+
+pre .javadoctag,
+pre .phpdoc,
+pre .yardoctag {
+ font-weight: bold;
+}
+
+pre .keyword,
+pre .id,
+pre .phpdoc,
+pre .title,
+pre .built_in,
+pre .aggregate,
+pre .smalltalk .class,
+pre .winutils,
+pre .bash .variable,
+pre .apache .tag,
+pre .tex .command {
+ font-weight: bold;
+}
+
+pre .nginx .built_in {
+ font-weight: normal;
+}
+
+pre .html .css,
+pre .html .javascript,
+pre .html .vbscript,
+pre .tex .formula {
+ opacity: 0.5;
+}
diff --git a/deps/highlight.js/styles/far.css b/deps/highlight.js/styles/far.css
new file mode 100644
index 0000000..f34847d
--- /dev/null
+++ b/deps/highlight.js/styles/far.css
@@ -0,0 +1,123 @@
+/*
+
+FAR Style (c) MajestiC <majestic2k@gmail.com>
+
+*/
+
+pre code[class]:after {
+ content: 'highlight: ' attr(class);
+ display: block; text-align: right;
+ font-size: smaller;
+ color: #CCC; background: white;
+ border-top: solid 1px;
+ padding-top: 0.5em;
+}
+
+pre code {
+ display: block;
+ background: #000080;
+}
+
+pre code,
+.ruby .subst {
+ color: #0FF;
+}
+
+pre .string,
+pre .ruby .string,
+pre .function .title,
+pre .class .title,
+pre .ini .title,
+pre .tag .attribute .value,
+pre .css .rules .value,
+pre .css .rules .value .number,
+pre .preprocessor,
+pre .ruby .symbol,
+pre .ruby .symbol .string,
+pre .ruby .symbol .keyword,
+pre .ruby .symbol .keymethods,
+pre .built_in,
+pre .sql .aggregate,
+pre .django .template_tag,
+pre .django .variable,
+pre .smalltalk .class,
+pre .addition,
+pre .apache .tag,
+pre .apache .cbracket,
+pre .tex .command {
+ color: #FF0;
+}
+
+pre .keyword,
+pre .css .id,
+pre .function .title,
+pre .class .title,
+pre .ini .title,
+pre .vbscript .built_in,
+pre .sql .aggregate,
+pre .rsl .built_in,
+pre .smalltalk .class,
+pre .xml .tag .title,
+pre .winutils,
+pre .flow,
+pre .lisp .title,
+pre .change,
+pre .envvar,
+pre .bash .variable,
+pre .tex .special {
+ color: #FFF;
+}
+
+pre .comment,
+pre .phpdoc,
+pre .javadoc,
+pre .java .annotation,
+pre .template_comment,
+pre .deletion,
+pre .apache .sqbracket,
+pre .tex .formula {
+ color: #888;
+}
+
+pre .number,
+pre .date,
+pre .regexp,
+pre .literal,
+pre .smalltalk .symbol,
+pre .smalltalk .char {
+ color: #0F0;
+}
+
+pre .python .decorator,
+pre .django .filter .argument,
+pre .smalltalk .localvars,
+pre .smalltalk .array,
+pre .attr_selector,
+pre .pseudo,
+pre .xml .pi,
+pre .diff .header,
+pre .chunk,
+pre .shebang,
+pre .nginx .built_in {
+ color: #008080;
+}
+
+pre .keyword,
+pre .css .id,
+pre .function .title,
+pre .class .title,
+pre .ini .title,
+pre .vbscript .built_in,
+pre .sql .aggregate,
+pre .rsl .built_in,
+pre .smalltalk .class,
+pre .xml .tag .title,
+pre .winutils,
+pre .flow,
+pre .lisp .title,
+pre .apache .tag,
+pre .nginx .built_in,
+pre .tex .command,
+pre .tex .special {
+ font-weight: bold;
+}
diff --git a/deps/highlight.js/styles/github.css b/deps/highlight.js/styles/github.css
new file mode 100644
index 0000000..cd4b1cb
--- /dev/null
+++ b/deps/highlight.js/styles/github.css
@@ -0,0 +1,128 @@
+/*
+
+github.com style (c) Vasily Polovnyov <vast@whiteants.net>
+
+*/
+
+pre code {
+ display: block;
+ color: #000;
+ background: #f8f8ff
+}
+
+pre .comment,
+pre .template_comment,
+pre .diff .header,
+pre .javadoc {
+ color: #998;
+ font-style: italic
+}
+
+pre .keyword,
+pre .css .rule .keyword,
+pre .winutils,
+pre .javascript .title,
+pre .lisp .title,
+pre .subst {
+ color: #000;
+ font-weight: bold
+}
+
+pre .number,
+pre .hexcolor {
+ color: #40a070
+}
+
+pre .string,
+pre .attribute .value,
+pre .phpdoc,
+pre .tex .formula {
+ color: #d14
+}
+
+pre .title,
+pre .id {
+ color: #900;
+ font-weight: bold
+}
+
+pre .javascript .title,
+pre .lisp .title,
+pre .subst {
+ font-weight: normal
+}
+
+pre .class .title,
+pre .tex .command {
+ color: #458;
+ font-weight: bold
+}
+
+pre .tag,
+pre .css .keyword,
+pre .html .keyword,
+pre .tag .title,
+pre .django .tag .keyword {
+ color: #000080;
+ font-weight: normal
+}
+
+pre .attribute,
+pre .variable,
+pre .instancevar,
+pre .lisp .body {
+ color: #008080
+}
+
+pre .regexp {
+ color: #009926
+}
+
+pre .class {
+ color: #458;
+ font-weight: bold
+}
+
+pre .symbol,
+pre .ruby .symbol .string,
+pre .ruby .symbol .keyword,
+pre .ruby .symbol .keymethods,
+pre .lisp .keyword,
+pre .tex .special {
+ color: #990073
+}
+
+pre .builtin,
+pre .built_in,
+pre .lisp .title {
+ color: #0086b3
+}
+
+pre .preprocessor,
+pre .pi,
+pre .doctype,
+pre .shebang,
+pre .cdata {
+ color: #999;
+ font-weight: bold
+}
+
+pre .deletion {
+ background: #fdd
+}
+
+pre .addition {
+ background: #dfd
+}
+
+pre .diff .change {
+ background: #0086b3
+}
+
+pre .chunk {
+ color: #aaa
+}
+
+pre .tex .formula {
+ opacity: 0.5;
+}
diff --git a/deps/highlight.js/styles/idea.css b/deps/highlight.js/styles/idea.css
new file mode 100644
index 0000000..8121f4a
--- /dev/null
+++ b/deps/highlight.js/styles/idea.css
@@ -0,0 +1,117 @@
+/*
+
+Intellij Idea-like styling (c) Vasily Polovnyov <vast@whiteants.net>
+
+*/
+
+pre code {
+ display: block;
+ color: #000;
+ background: #fff;
+}
+
+pre .subst,
+pre .title {
+ font-weight: normal;
+ color: #000;
+}
+
+pre .comment,
+pre .template_comment,
+pre .javadoc,
+pre .diff .header {
+ color: #808080;
+ font-style: italic;
+}
+
+pre .annotation,
+pre .decorator,
+pre .preprocessor,
+pre .doctype,
+pre .pi,
+pre .chunk,
+pre .shebang,
+pre .apache .cbracket {
+ color: #808000;
+}
+
+pre .tag,
+pre .pi {
+ background: #efefef;
+}
+
+pre .tag .title,
+pre .id,
+pre .attr_selector,
+pre .pseudo,
+pre .literal,
+pre .keyword,
+pre .hexcolor,
+pre .css .function,
+pre .ini .title,
+pre .css .class,
+pre .list .title,
+pre .tex .command {
+ font-weight: bold;
+ color: #000080;
+}
+
+pre .attribute,
+pre .rules .keyword,
+pre .number,
+pre .date,
+pre .regexp,
+pre .tex .special {
+ font-weight: bold;
+ color: #0000ff;
+}
+
+pre .number,
+pre .regexp {
+ font-weight: normal;
+}
+
+pre .string,
+pre .value,
+pre .filter .argument,
+pre .css .function .params,
+pre .apache .tag {
+ color: #008000;
+ font-weight: bold;
+}
+
+pre .symbol,
+pre .ruby .symbol .string,
+pre .ruby .symbol .keyword,
+pre .ruby .symbol .keymethods,
+pre .char,
+pre .tex .formula {
+ color: #000;
+ background: #d0eded;
+ font-style: italic;
+}
+
+pre .phpdoc,
+pre .yardoctag,
+pre .javadoctag {
+ text-decoration: underline;
+}
+
+pre .variable,
+pre .envvar,
+pre .apache .sqbracket,
+pre .nginx .built_in {
+ color: #660e7a;
+}
+
+pre .addition {
+ background: #baeeba;
+}
+
+pre .deletion {
+ background: #ffc8bd;
+}
+
+pre .diff .change {
+ background: #bccff9;
+}
diff --git a/deps/highlight.js/styles/ir_black.css b/deps/highlight.js/styles/ir_black.css
new file mode 100644
index 0000000..495c2e0
--- /dev/null
+++ b/deps/highlight.js/styles/ir_black.css
@@ -0,0 +1,105 @@
+/*
+ IR_Black style (c) Vasily Mikhailitchenko <vaskas@programica.ru>
+*/
+
+pre code {
+ color: #f8f8f8;
+}
+
+pre {
+ background: #000;
+}
+
+pre .shebang,
+pre .comment,
+pre .template_comment,
+pre .javadoc {
+ color: #7c7c7c;
+}
+
+pre .keyword,
+pre .tag,
+pre .ruby .function .keyword,
+pre .tex .command {
+ color: #96CBFE;
+}
+
+pre .function .keyword,
+pre .sub .keyword,
+pre .method,
+pre .list .title {
+ color: #FFFFB6;
+}
+
+pre .string,
+pre .attribute .value,
+pre .cdata,
+pre .filter .argument,
+pre .attr_selector,
+pre .apache .cbracket,
+pre .date {
+ color: #A8FF60;
+}
+
+pre .subst {
+ color: #DAEFA3;
+}
+
+pre .regexp {
+ color: #E9C062;
+}
+
+pre .function .title,
+pre .sub .identifier,
+pre .pi,
+pre .decorator,
+pre .ini .title,
+pre .tex .special {
+ color: #FFFFB6;
+}
+
+pre .class .title,
+pre .constant,
+pre .smalltalk .class,
+pre .javadoctag,
+pre .yardoctag,
+pre .phpdoc,
+pre .nginx .built_in {
+ color: #FFFFB6;
+}
+
+pre .symbol,
+pre .ruby .symbol .string,
+pre .ruby .symbol .keyword,
+pre .ruby .symbol .keymethods,
+pre .number,
+pre .variable,
+pre .vbscript,
+pre .literal {
+ color: #C6C5FE;
+}
+
+pre .css .keyword {
+ color: #96CBFE;
+}
+
+pre .css .rule .keyword,
+pre .css .id {
+ color: #FFFFB6;
+}
+
+pre .css .class {
+ color: #FFF;
+}
+
+pre .hexcolor {
+ color: #C6C5FE;
+}
+
+pre .number {
+ color:#FF73FD;
+}
+
+pre .tex .formula {
+ opacity: 0.7;
+}
diff --git a/deps/highlight.js/styles/magula.css b/deps/highlight.js/styles/magula.css
new file mode 100644
index 0000000..22e6135
--- /dev/null
+++ b/deps/highlight.js/styles/magula.css
@@ -0,0 +1,117 @@
+/*
+Description: Magula style for highligh.js
+Author: Ruslan Keba <rukeba@gmail.com>
+Website: http://rukeba.com/
+Version: 1.0
+Date: 2009-01-03
+Music: Aphex Twin / Xtal
+*/
+
+pre {
+ margin: .5em; padding: .5em;
+ background-color: #f4f4f4;
+}
+
+pre code,
+pre .ruby .subst,
+pre .lisp .title {
+ color: black;
+}
+
+pre .string,
+pre .title,
+pre .parent,
+pre .tag .attribute .value,
+pre .rules .value,
+pre .rules .value .number,
+pre .preprocessor,
+pre .ruby .symbol,
+pre .ruby .symbol .string,
+pre .ruby .symbol .keyword,
+pre .ruby .symbol .keymethods,
+pre .instancevar,
+pre .aggregate,
+pre .template_tag,
+pre .django .variable,
+pre .smalltalk .class,
+pre .addition,
+pre .flow,
+pre .stream,
+pre .bash .variable,
+pre .apache .cbracket {
+ color: #050;
+}
+
+pre .comment,
+pre .annotation,
+pre .template_comment,
+pre .diff .header,
+pre .chunk {
+ color: #777;
+}
+
+pre .number,
+pre .date,
+pre .regexp,
+pre .literal,
+pre .smalltalk .symbol,
+pre .smalltalk .char,
+pre .change,
+pre .tex .special {
+ color: #800;
+}
+
+pre .label,
+pre .javadoc,
+pre .ruby .string,
+pre .decorator,
+pre .filter .argument,
+pre .localvars,
+pre .array,
+pre .attr_selector,
+pre .pseudo,
+pre .pi,
+pre .doctype,
+pre .deletion,
+pre .envvar,
+pre .shebang,
+pre .apache .sqbracket,
+pre .nginx .built_in,
+pre .tex .formula {
+ color: #00e;
+}
+
+pre .keyword,
+pre .id,
+pre .phpdoc,
+pre .title,
+pre .built_in,
+pre .aggregate,
+pre .smalltalk .class,
+pre .winutils,
+pre .bash .variable,
+pre .apache .tag,
+pre .xml .tag,
+pre .xml .title,
+pre .tex .command {
+ font-weight: bold;
+ color: navy;
+}
+
+pre .nginx .built_in {
+ font-weight: normal;
+}
+
+pre .html .css,
+pre .html .javascript,
+pre .html .vbscript,
+pre .tex .formula {
+ opacity: 0.5;
+}
+
+/* --- */
+pre .apache .tag {
+ font-weight: bold;
+ color: blue;
+}
+
diff --git a/deps/highlight.js/styles/school_book.css b/deps/highlight.js/styles/school_book.css
new file mode 100644
index 0000000..4741b0a
--- /dev/null
+++ b/deps/highlight.js/styles/school_book.css
@@ -0,0 +1,117 @@
+/*
+
+School Book style from goldblog.com.ua (c) Zaripov Yura <yur4ik7@ukr.net>
+
+*/
+
+pre code[class]:after {
+ content: 'highlight: ' attr(class);
+ display: block; text-align: right;
+ color: #CCC; background: transparent;
+ padding-top: 0.5em;
+}
+
+pre code {
+ display: block;
+ margin-left:30px;
+ margin-top:15px;
+ font-size: 11px !important;
+ line-height:16px !important;
+}
+
+pre{
+ background:#f6f6ae url(./school_book.png);
+ border-top: solid 2px #d2e8b9;
+ border-bottom: solid 1px #d2e8b9;
+}
+
+pre .keyword,
+pre .literal,
+pre .change,
+pre .winutils,
+pre .flow,
+pre .lisp .title,
+pre .tex .special {
+ color:#005599;
+ font-weight:bold;
+}
+
+pre code,
+pre .ruby .subst {
+ color: #3E5915;
+}
+
+pre .string,
+pre .function .title,
+pre .class .title,
+pre .ini .title,
+pre .tag .attribute .value,
+pre .css .rules .value,
+pre .preprocessor,
+pre .ruby .symbol,
+pre .ruby .symbol .string,
+pre .ruby .symbol .keyword,
+pre .ruby .symbol .keymethods,
+pre .ruby .instancevar,
+pre .ruby .class .parent,
+pre .built_in,
+pre .sql .aggregate,
+pre .django .template_tag,
+pre .django .variable,
+pre .smalltalk .class,
+pre .javadoc,
+pre .ruby .string,
+pre .django .filter .argument,
+pre .smalltalk .localvars,
+pre .smalltalk .array,
+pre .attr_selector,
+pre .pseudo,
+pre .addition,
+pre .stream,
+pre .envvar,
+pre .apache .tag,
+pre .apache .cbracket,
+pre .nginx .built_in,
+pre .tex .command {
+ color: #2C009F;
+}
+
+pre .comment,
+pre .java .annotation,
+pre .python .decorator,
+pre .template_comment,
+pre .pi,
+pre .doctype,
+pre .deletion,
+pre .shebang,
+pre .apache .sqbracket {
+ color: #E60415;
+}
+
+pre .keyword,
+pre .literal,
+pre .css .id,
+pre .phpdoc,
+pre .function .title,
+pre .class .title,
+pre .vbscript .built_in,
+pre .sql .aggregate,
+pre .rsl .built_in,
+pre .smalltalk .class,
+pre .xml .tag .title,
+pre .diff .header,
+pre .chunk,
+pre .winutils,
+pre .bash .variable,
+pre .lisp .title,
+pre .apache .tag,
+pre .tex .command {
+ font-weight: bold;
+}
+
+pre .html .css,
+pre .html .javascript,
+pre .html .vbscript,
+pre .tex .formula {
+ opacity: 0.5;
+}
diff --git a/deps/highlight.js/styles/school_book.png b/deps/highlight.js/styles/school_book.png
new file mode 100644
index 0000000..956e979
--- /dev/null
+++ b/deps/highlight.js/styles/school_book.png
Binary files differ
diff --git a/deps/highlight.js/styles/sunburst.css b/deps/highlight.js/styles/sunburst.css
new file mode 100644
index 0000000..0b8b02b
--- /dev/null
+++ b/deps/highlight.js/styles/sunburst.css
@@ -0,0 +1,148 @@
+/*
+
+Sunburst-like style (c) Vasily Polovnyov <vast@whiteants.net>
+
+*/
+
+pre code {
+ font: 1em / 1.3em 'Lucida Console', 'courier new', monospace;
+ color: #f8f8f8;
+}
+
+pre {
+ background: #000;
+}
+
+pre .comment,
+pre .template_comment,
+pre .javadoc {
+ color: #aeaeae;
+ font-style: italic;
+}
+
+pre .keyword,
+pre .ruby .function .keyword {
+ color: #E28964;
+}
+
+pre .function .keyword,
+pre .sub .keyword,
+pre .method,
+pre .list .title {
+ color: #99CF50;
+}
+
+pre .string,
+pre .attribute .value,
+pre .cdata,
+pre .filter .argument,
+pre .attr_selector,
+pre .apache .cbracket,
+pre .date,
+pre .tex .command {
+ color: #65B042;
+}
+
+pre .subst {
+ color: #DAEFA3;
+}
+
+pre .regexp {
+ color: #E9C062;
+}
+
+pre .function .title,
+pre .sub .identifier,
+pre .pi,
+pre .tag,
+pre .tag .keyword,
+pre .decorator,
+pre .ini .title,
+pre .shebang {
+ color: #89BDFF;
+}
+
+pre .class .title,
+pre .smalltalk .class,
+pre .javadoctag,
+pre .yardoctag,
+pre .phpdoc {
+ text-decoration: underline;
+}
+
+pre .symbol,
+pre .ruby .symbol .string,
+pre .ruby .symbol .keyword,
+pre .ruby .symbol .keymethods,
+pre .number {
+ color: #3387CC;
+}
+
+pre .params,
+pre .variable {
+ color: #3E87E3;
+}
+
+pre .css .keyword,
+pre .pseudo,
+pre .tex .special {
+ color: #CDA869;
+}
+
+pre .css .class {
+ color: #9B703F;
+}
+
+pre .rules .keyword {
+ color: #C5AF75;
+}
+
+pre .rules .value {
+ color: #CF6A4C;
+}
+
+pre .css .id {
+ color: #8B98AB;
+}
+
+pre .annotation,
+pre .apache .sqbracket,
+pre .nginx .built_in {
+ color: #9B859D;
+}
+
+pre .preprocessor {
+ color: #8996A8;
+}
+
+pre .hexcolor,
+pre .css .value .number {
+ color: #DD7B3B;
+}
+
+pre .css .function {
+ color: #DAD085;
+}
+
+pre .diff .header,
+pre .chunk,
+pre .tex .formula {
+ background-color: #0E2231;
+ color: #F8F8F8;
+ font-style: italic;
+}
+
+pre .diff .change {
+ background-color: #4A410D;
+ color: #F8F8F8;
+}
+
+pre .addition {
+ background-color: #253B22;
+ color: #F8F8F8;
+}
+
+pre .deletion {
+ background-color: #420E09;
+ color: #F8F8F8;
+}
diff --git a/deps/highlight.js/styles/vs.css b/deps/highlight.js/styles/vs.css
new file mode 100644
index 0000000..4210ad7
--- /dev/null
+++ b/deps/highlight.js/styles/vs.css
@@ -0,0 +1,75 @@
+/*
+
+Visual Studio-like style based on original C# coloring by Jason Diamond <jason@diamond.name>
+
+*/
+pre .comment,
+pre .annotation,
+pre .template_comment,
+pre .diff .header,
+pre .chunk,
+pre .apache .cbracket {
+ color: rgb(0, 128, 0);
+}
+
+pre .keyword,
+pre .id,
+pre .title,
+pre .built_in,
+pre .aggregate,
+pre .smalltalk .class,
+pre .winutils,
+pre .bash .variable,
+pre .tex .command {
+ color: rgb(0, 0, 255);
+}
+
+pre .string,
+pre .title,
+pre .parent,
+pre .tag .attribute .value,
+pre .rules .value,
+pre .rules .value .number,
+pre .ruby .symbol,
+pre .ruby .symbol .string,
+pre .ruby .symbol .keyword,
+pre .ruby .symbol .keymethods,
+pre .instancevar,
+pre .aggregate,
+pre .template_tag,
+pre .django .variable,
+pre .addition,
+pre .flow,
+pre .stream,
+pre .apache .tag,
+pre .date,
+pre .tex .formula {
+ color: rgb(163, 21, 21);
+}
+
+pre .ruby .string,
+pre .decorator,
+pre .filter .argument,
+pre .localvars,
+pre .array,
+pre .attr_selector,
+pre .pseudo,
+pre .pi,
+pre .doctype,
+pre .deletion,
+pre .envvar,
+pre .shebang,
+pre .preprocessor,
+pre .userType,
+pre .apache .sqbracket,
+pre .nginx .built_in,
+pre .tex .special {
+ color: rgb(43, 145, 175);
+}
+
+pre .phpdoc,
+pre .javadoc,
+pre .xmlDocTag {
+ color: rgb(128, 128, 128);
+}
+
diff --git a/deps/highlight.js/styles/zenburn.css b/deps/highlight.js/styles/zenburn.css
new file mode 100644
index 0000000..9bdd090
--- /dev/null
+++ b/deps/highlight.js/styles/zenburn.css
@@ -0,0 +1,121 @@
+/*
+
+Zenburn style from voldmar.ru (c) Vladimir Epifanov <voldmar@voldmar.ru>
+based on dark.css by Ivan Sagalaev
+
+*/
+
+pre code[class]:after {
+ content: 'highlight: ' attr(class);
+ display: block; text-align: right;
+ font-size: smaller;
+ color: #CCC; background: white;
+ border-top: solid 1px black;
+ padding-top: 0.5em;
+}
+
+pre code {
+ display: block;
+ background: #3F3F3F;
+ color: #DCDCDC;
+}
+
+pre .keyword,
+pre .tag,
+pre .django .tag,
+pre .django .keyword,
+pre .css .class,
+pre .css .id,
+pre .lisp .title {
+ color: #E3CEAB;
+}
+
+pre .django .template_tag,
+pre .django .variable,
+pre .django .filter .argument {
+ color: #DCDCDC;
+}
+
+pre .number,
+pre .date {
+ color: #8CD0D3;
+}
+
+pre .dos .envvar,
+pre .dos .stream,
+pre .variable,
+pre .apache .sqbracket {
+ color: #EFDCBC;
+}
+
+pre .dos .flow,
+pre .diff .change,
+pre .python .exception,
+pre .python .built_in,
+pre .literal,
+pre .tex .special {
+ color: #EFEFAF;
+}
+
+pre .diff .chunk,
+pre .ruby .subst {
+ color: #8F8F8F;
+}
+
+pre .dos .keyword,
+pre .python .decorator,
+pre .class .title,
+pre .function .title,
+pre .ini .title,
+pre .diff .header,
+pre .ruby .class .parent,
+pre .apache .tag,
+pre .nginx .built_in,
+pre .tex .command {
+ color: #efef8f;
+}
+
+pre .dos .winutils,
+pre .ruby .symbol,
+pre .ruby .symbol .string,
+pre .ruby .symbol .keyword,
+pre .ruby .symbol .keymethods,
+pre .ruby .string,
+pre .ruby .instancevar {
+ color: #DCA3A3;
+}
+
+pre .diff .deletion,
+pre .string,
+pre .tag .attribute .value,
+pre .preprocessor,
+pre .built_in,
+pre .sql .aggregate,
+pre .javadoc,
+pre .smalltalk .class,
+pre .smalltalk .localvars,
+pre .smalltalk .array,
+pre .css .rules .value,
+pre .attr_selector,
+pre .pseudo,
+pre .apache .cbracket,
+pre .tex .formula {
+ color: #CC9393;
+}
+
+pre .shebang,
+pre .diff .addition,
+pre .comment,
+pre .java .annotation,
+pre .template_comment,
+pre .pi,
+pre .doctype {
+ color: #7F9F7F;
+}
+
+pre .html .css,
+pre .html .javascript,
+pre .tex .formula {
+ opacity: 0.5;
+}
+
diff --git a/deps/highlight.js/test.html b/deps/highlight.js/test.html
new file mode 100644
index 0000000..6acf217
--- /dev/null
+++ b/deps/highlight.js/test.html
@@ -0,0 +1,1196 @@
+<!DOCTYPE html>
+<head>
+ <title>Highlight</title>
+ <meta charset="utf-8">
+
+ <link rel="stylesheet" title="Default" href="styles/default.css">
+ <link rel="alternate stylesheet" title="Dark" href="styles/dark.css">
+ <link rel="alternate stylesheet" title="FAR" href="styles/far.css">
+ <link rel="alternate stylesheet" title="IDEA" href="styles/idea.css">
+ <link rel="alternate stylesheet" title="Sunburst" href="styles/sunburst.css">
+ <link rel="alternate stylesheet" title="Zenburn" href="styles/zenburn.css">
+ <link rel="alternate stylesheet" title="Visual Studio" href="styles/vs.css">
+ <link rel="alternate stylesheet" title="Ascetic" href="styles/ascetic.css">
+ <link rel="alternate stylesheet" title="Magula" href="styles/magula.css">
+ <link rel="alternate stylesheet" title="GitHub" href="styles/github.css">
+ <link rel="alternate stylesheet" title="Brown Paper" href="styles/brown_paper.css">
+ <link rel="alternate stylesheet" title="School Book" href="styles/school_book.css">
+ <link rel="alternate stylesheet" title="IR_Black" href="styles/ir_black.css">
+ <style>
+ h2 {
+ font: bold 100% Arial, sans-serif;
+ margin-top: 2em;
+ margin-bottom: 0.5em;
+ }
+ table {
+ width: 100%;
+ }
+ th {
+ width: 10em; font-weight: normal;
+ }
+ td, th {
+ vertical-align: top;
+ text-align: left;
+ }
+ pre {
+ margin-top: 0;
+ }
+ ul#switch {
+ padding: 0;
+ margin: 0 0 0 -0.5em;
+ }
+ ul#switch li {
+ border-bottom: 1px dashed blue;
+ display: inline;
+ padding: 0;
+ margin: 0.5em;
+ cursor: pointer;
+ }
+ ul#switch li.current {
+ border-bottom: none;
+ cursor: default;
+ }
+ </style>
+
+ <!--
+ Don't include languages as individual files in production environment.
+ Instead use <script src="highlight.pack.js"></script> with highlight.pack.js
+ containing all the languages you've chosen when downloading the library
+ -->
+ <script src="highlight.js"></script>
+ <script src="languages/cs.js"></script>
+ <script src="languages/python.js"></script>
+ <script src="languages/mel.js"></script>
+ <script src="languages/perl.js"></script>
+ <script src="languages/axapta.js"></script>
+ <script src="languages/cpp.js"></script>
+ <script src="languages/sql.js"></script>
+ <script src="languages/smalltalk.js"></script>
+ <script src="languages/profile.js"></script>
+ <script src="languages/bash.js"></script>
+ <script src="languages/lua.js"></script>
+ <script src="languages/html-xml.js"></script>
+ <script src="languages/renderman.js"></script>
+ <script src="languages/1c.js"></script>
+ <script src="languages/delphi.js"></script>
+ <script src="languages/dos.js"></script>
+ <script src="languages/django.js"></script>
+ <script src="languages/vbscript.js"></script>
+ <script src="languages/ini.js"></script>
+ <script src="languages/apache.js"></script>
+ <script src="languages/nginx.js"></script>
+ <script src="languages/ruby.js"></script>
+ <script src="languages/css.js"></script>
+ <script src="languages/lisp.js"></script>
+ <script src="languages/java.js"></script>
+ <script src="languages/javascript.js"></script>
+ <script src="languages/php.js"></script>
+ <script src="languages/diff.js"></script>
+ <script src="languages/avrasm.js"></script>
+ <script src="languages/parser3.js"></script>
+ <script src="languages/scala.js"></script>
+ <script src="languages/tex.js"></script>
+ <script>
+ hljs.tabReplace = ' ';
+ hljs.initHighlightingOnLoad();
+ </script>
+
+ <script>
+ // A stylesheet switcher for the test page. Not part of the highlight.js itself
+ // (c) Vladimir Epifanov <voldmar@voldmar.ru>
+ (function(container_id) {
+ if (window.addEventListener) {
+ var attach = function(el, ev, handler) {
+ el.addEventListener(ev, handler, false);
+ }
+ } else if (window.attachEvent) {
+ var attach = function(el, ev, handler) {
+ el.attachEvent('on' + ev, handler);
+ }
+ } else {
+ var attach = function(el, ev, handler) {
+ ev['on' + ev] = handler;
+ }
+ }
+
+
+ attach(window, 'load', function() {
+ var current = null;
+
+ var info = {};
+ var links = document.getElementsByTagName('link');
+ var ul = document.createElement('ul')
+
+ for (var i = 0; (link = links[i]); i++) {
+ if (link.getAttribute('rel').indexOf('style') != -1
+ && link.title) {
+
+ var title = link.title;
+
+ info[title] = {
+ 'link': link,
+ 'li': document.createElement('li')
+ }
+
+ ul.appendChild(info[title].li)
+ info[title].li.title = title;
+
+ info[title].link.disabled = true;
+
+ info[title].li.appendChild(document.createTextNode(title));
+ attach(info[title].li, 'click', (function (el) {
+ return function() {
+ current.li.className = '';
+ current.link.disabled = true;
+ current = el;
+ current.li.className = 'current';
+ current.link.disabled = false;
+ }})(info[title]));
+ }
+ }
+
+ current = info['Default']
+ current.li.className = 'current';
+ current.link.disabled = false;
+
+ ul.id = 'switch';
+ container = document.getElementById(container_id);
+ container.appendChild(ul);
+ });
+
+ })('styleswitcher');
+ </script>
+<body>
+
+<p>This page is a demo/test showing all languages supported by <a href="http://softwaremaniacs.org/soft/highlight/">highlight.js</a>.
+Most of the code doesn't work :-).
+<p>You can see this page in several different styles bundled with the library or
+write your own (and contribute it back!)
+
+<div id="styleswitcher"></div>
+
+<h2>Automatically detected languages</h2>
+
+<table>
+ <tr>
+ <th>Python
+ <td>
+<pre>
+<code>@requires_authorization
+def somefunc(param1, param2):
+ r'''A docstring'''
+ if param1 > param2: # interesting
+ print 'Gre\'ater'
+ print ''
+ return (param2 - param1 + 1) or None
+
+class SomeClass:<br> pass
+</code></pre>
+
+ <tr>
+ <th>Python's profiler output
+ <td>
+<pre><code> 261917242 function calls in 686.251 CPU seconds
+
+ ncalls tottime filename:lineno(function)
+ 152824 513.894 {method 'sort' of 'list' objects}
+ 129590630 83.894 rrule.py:842(__cmp__)
+ 129590630 82.439 {cmp}
+ 153900 1.296 rrule.py:399(_iter)
+304393/151570 0.963 rrule.py:102(_iter_cached)
+</code></pre>
+
+ <tr>
+ <th>Ruby
+ <td>
+<pre><code>class A &lt; B; def self.create(object = User) object end end
+class Zebra; def inspect; "X#{2 + self.object_id}" end end
+
+module ABC::DEF
+ include Comparable
+
+ # @param test
+ # @return [String] nothing
+ def foo(test)
+ Thread.new do |blockvar|
+ ABC::DEF.reverse(:a_symbol, :'a symbol' + 'test' + test)
+ end.join
+ end
+
+ def [](index) self[index] end
+ def ==(other) other == self end
+end
+
+anIdentifier = an_identifier
+Constant = 1
+</code></pre>
+
+ <tr>
+ <th>Perl
+ <td>
+<pre><code># loads object
+sub load
+{
+ my $flds = $c-&gt;db_load($id,@_) || do {
+ Carp::carp "Can`t load (class: $c, id: $id): '$!'"; return undef
+ };
+ my $o = $c-&gt;_perl_new();
+ $id12 = $id;
+ $o-&gt;{'ID'} = $id12 + 123;
+ $o-&gt;{'PAPA'} = $flds-&gt;{'PAPA'};
+ #$o-&gt;{'SHCUT'} = $flds-&gt;{'SHCUT'};
+ my $p = $o-&gt;props;
+ my $vt;
+ $string =~ m/^sought_text$/;
+ for my $key (keys %$p)
+ {
+ if(${$vt.'::property'}) {
+ $o-&gt;{$key . '_real'} = $flds-&gt;{$key};
+ tie $o-&gt;{$key}, 'CMSBuilder::Property', $o, $key;
+ } else {
+ $o-&gt;{$key} = $flds-&gt;{$key};
+ }
+ }
+ $o-&gt;save if delete $o-&gt;{'_save_after_load'};
+ return $o;
+}
+</code></pre>
+
+ <tr>
+ <th>PHP
+ <td>
+<pre><code>require_once 'Zend.php';
+require_once 'Zend/Uri/Exception.php';
+require_once 'Zend/Uri/Http.php';
+require_once 'Zend/Uri/Mailto.php';
+
+abstract class Zend_Uri
+{
+
+ /**
+ * Return a string representation of this URI.
+ *
+ * @see getUri()
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this-&gt;getUri();
+ }
+
+ static public function factory($uri = 'http')
+ {
+ $uri = explode(':', $uri, 2);
+ $scheme = strtolower($uri[0]);
+ $schemeSpecific = isset($uri[1]) ? $uri[1] : '';
+
+ // Security check: $scheme is used to load a class file,
+ // so only alphanumerics are allowed.
+ if (!ctype_alnum($scheme)) {
+ throw new Zend_Uri_Exception('Illegal scheme');
+ }
+ }
+}
+</code></pre>
+
+ <tr>
+ <th>Scala
+ <td>
+<pre><code>object abstractTypes extends Application {
+ abstract class SeqBuffer {
+ type T; val element: Seq[T]; def length = element.length
+ }
+}
+
+/** Turn command line arguments to uppercase */
+object Main {
+ def main(args: Array[String]) {
+ val res = for (a &lt;- args) yield a.toUpperCase
+ println("Arguments: " + res.toString)
+ }
+}
+
+/** Maps are easy to use in Scala. */
+object Maps {
+ val colors = Map("red" -> 0xFF0000,
+ "turquoise" -> 0x00FFFF,
+ "black" -> 0x000000,
+ "orange" -> 0xFF8040,
+ "brown" -> 0x804000)
+ def main(args: Array[String]) {
+ for (name &lt;- args) println(
+ colors.get(name) match {
+ case Some(code) =>
+ name + " has code: " + code
+ case None =&gt;
+ "Unknown color: " + name
+ }
+ )
+ }
+}
+</code></pre>
+
+ <tr>
+ <th>XML
+ <td>
+<pre><code>&lt;?xml version="1.0"?&gt;
+&lt;response value="ok" xml:lang="en"&gt;
+ &lt;text&gt;Ok&lt;/text&gt;
+ &lt;comment html_allowed="true"/&gt;
+ &lt;ns1:description&gt;&lt;![CDATA[
+ CDATA is &lt;not&gt; magical.
+ ]]&gt;&lt;/ns1:description&gt;
+ &lt;a&gt;&lt;/a&gt; &lt;a/&gt;
+&lt;/response&gt;
+</code></pre>
+
+ <tr>
+ <th>HTML (with inline css and javascript)
+ <td>
+<pre><code>&lt;head&gt;
+ &lt;title&gt;Title&lt;/title&gt;
+
+ &lt;style&gt;
+ body {
+ width: 500px;
+ }
+ &lt;/style&gt;
+
+ &lt;script&gt;
+ function someFunction() {
+ return true;
+ }
+ &lt;/script&gt;
+
+&lt;body&gt;
+ &lt;p class="something" id='12'&gt;Something&lt;/p&gt;
+ &lt;p class=something&gt;Something&lt;/p&gt;
+ &lt;!-- comment --&gt;
+ &lt;p class&gt;Something&lt;/p&gt;
+ &lt;p class="something" title="p"&gt;Something&lt;/p&gt;
+&lt;/body&gt;
+</code></pre>
+
+ <tr>
+ <th>Django templates
+ <td>
+<pre><code>{% if articles|length %}
+{% for article in articles %}
+
+{# Striped table #}
+&lt;tr class="{% cycle odd,even %}"&gt;
+ &lt;td&gt;{{ article|default:"Hi... "|escape }}&lt;/td&gt;
+ &lt;td&gt;{{ article.date|date:"d.m.Y" }}&lt;/td&gt;
+&lt;/tr&gt;
+
+{% endfor %}
+{% endif %}
+
+{% comment %}
+Comments may be long and
+multiline.
+{% endcomment %}
+</code></pre>
+
+ <tr>
+ <th>CSS
+ <td>
+<pre><code>body,
+html {
+ font: Tahoma, Arial, san-serif;
+ background: url('hatch.png');
+}
+
+@import url('print.css');
+
+@media screen and (-webkit-min-device-pixel-ratio: 0) {
+ @page :left {
+ body:first-of-type pre::after {
+ content: 'highlight: ' attr(class);
+ }
+}
+
+#content {
+ width: 100%; /* wide enough */
+ height: 100%
+}
+
+p[lang=ru] {
+ color: #F0F0F0; background: white;
+}
+</code></pre>
+
+ <tr>
+ <th>Javascript
+ <td>
+<pre><code>function $initHighlight(block) {
+ if (block.className.search(/\bno\-highlight\b/) != -1)
+ return false;
+ try {
+ blockText(block);
+ } catch (e) {
+ if (e == 'Complex markup')
+ return;
+ }//try
+ var classes = block.className.split(/\s+/);
+ for (var i = 0 / 2; i &lt; classes.length; i++) { // "0 / 2" should not be parsed as regexp start
+ if (LANGUAGES[classes[i]]) {
+ highlightLanguage(block, classes[i]);
+ return;
+ }//if
+ }//for
+ highlightAuto(block);
+}//initHighlight</code></pre>
+
+ <tr>
+ <th>VBScript
+ <td>
+<pre><code>' creating configuration storage and initializing with default values
+Set cfg = CreateObject("Scripting.Dictionary")
+
+' reading ini file
+for i = 0 to ubound(ini_strings)
+ s = trim(ini_strings(i))
+
+ ' skipping empty strings and comments
+ if mid(s, 1, 1) &lt;&gt; "#" and len(s) > 0 then
+ ' obtaining key and value
+ parts = split(s, "=", -1, 1)
+
+ if ubound(parts)+1 = 2 then
+ parts(0) = trim(parts(0))
+ parts(1) = trim(parts(1))
+
+ ' reading configuration and filenames
+ select case lcase(parts(0))
+ case "uncompressed""_postfix" cfg.item("uncompressed""_postfix") = parts(1)
+ case "f"
+ options = split(parts(1), "|", -1, 1)
+ if ubound(options)+1 = 2 then
+ ' 0: filename, 1: options
+ ff.add trim(options(0)), trim(options(1))
+ end if
+ end select
+ end if
+ end if
+next</code></pre>
+
+ <tr>
+ <th>Lua
+ <td>
+<pre><code>--[[
+Simple signal/slot implementation
+]]
+local signal_mt = {
+ __index = {
+ register = table.insert
+ }
+}
+function signal_mt.__index:emit(... --[[ Comment in params ]])
+ for _, slot in ipairs(self) do
+ slot(self, ...)
+ end
+end
+local function create_signal()
+ return setmetatable({}, signal_mt)
+end
+
+-- Signal test
+local signal = create_signal()
+signal:register(function (signal, ...)
+ print(...)
+end)
+signal:emit('Answer to Life, the Universe, and Everything:', 42)
+
+--[==[ [=[ [[
+Nested ]]
+multi-line ]=]
+comment ]==]
+[==[ Nested
+[=[ multi-line
+[[ string
+]] ]=] ]==]
+</code></pre>
+
+ <tr>
+ <th>Delphi
+ <td>
+<pre><code>TList=Class(TObject)
+Private
+ Some: String;
+Public
+ Procedure Inside;
+End;{TList}
+
+Procedure CopyFile(InFileName,var OutFileName:String);
+Const
+ BufSize=4096; (* Huh? *)
+Var
+ InFile,OutFile:TStream;
+ Buffer:Array[1..BufSize] Of Byte;
+ ReadBufSize:Integer;
+Begin
+ InFile:=Nil;
+ OutFile:=Nil;
+ Try
+ InFile:=TFileStream.Create(InFileName,fmOpenRead);
+ OutFile:=TFileStream.Create(OutFileName,fmCreate);
+ Repeat
+ ReadBufSize:=InFile.Read(Buffer,BufSize);
+ OutFile.Write(Buffer,ReadBufSize);
+ Until ReadBufSize&lt;&gt;BufSize;
+ Log('File '''+InFileName+''' copied'#13#10);
+ Finally
+ InFile.Free;
+ OutFile.Free;
+ End;{Try}
+End;{CopyFile}
+</code></pre>
+
+ <tr>
+ <th>Java
+ <td>
+<pre><code>package l2f.gameserver.model;
+
+import java.util.ArrayList;
+
+/**
+ * Mother class of all character objects of the world (PC, NPC...)&lt;BR&gt;&lt;BR&gt;
+ *
+ */
+public abstract class L2Character extends L2Object
+{
+ protected static final Logger _log = Logger.getLogger(L2Character.class.getName());
+
+ public static final Short ABNORMAL_EFFECT_BLEEDING = 0x0001; // not sure
+ public static final Short ABNORMAL_EFFECT_POISON = 0x0002;
+
+ public void detachAI() {
+ _ai = null;
+ //jbf = null;
+ if (1 > 5) {
+ return;
+ }
+ }
+
+ public void moveTo(int x, int y, int z) {
+ moveTo(x, y, z, 0);
+ }
+
+ /** Task of AI notification */
+ @SuppressWarnings( { "nls", "unqualified-field-access", "boxing" })
+ public class NotifyAITask implements Runnable {
+ private final CtrlEvent _evt;
+
+ public void run() {
+ try {
+ getAI().notifyEvent(_evt, null, null);
+ } catch (Throwable t) {
+ _log.warning("Exception " + t);
+ t.printStackTrace();
+ }
+ }
+ }
+
+}
+</code></pre>
+
+ <tr>
+ <th>C++
+ <td>
+<pre><code>#include &lt;iostream&gt;
+
+int main(int argc, char *argv[]) {
+
+ /* An annoying "Hello World" example */
+ for (unsigned i = 0; i &lt; 0xFFFF; i++)
+ cout &lt;&lt; "Hello, World!" &lt;&lt; endl;
+
+ char c = '\n'; // just a test
+ map &lt;string, vector&lt;string&gt; &gt; m;
+ m["key"] = "\\\\"; // yeah, I know it's an error
+}
+</code></pre>
+
+ <tr>
+ <th>C#
+ <td>
+<pre><code>using System;
+
+public class Program
+{
+ /// &lt;summary&gt;The entry point to the program.&lt;/summary&gt;
+ /// &lt;remarks&gt;
+ /// Using the Visual Studio style, the tags in this comment
+ /// should be grey, but this text should be green.
+ /// This comment should be green on the inside:
+ /// &lt;!-- I'm green! --&gt;
+ /// &lt;/remarks&gt;
+ public static int Main(string[] args)
+ {
+ Console.WriteLine("Hello, World!");
+ string s = @"This
+""string""
+spans
+multiple
+lines!";
+ return 0;
+ }
+}
+</code></pre>
+
+ <tr>
+ <th>RenderMan RSL
+ <td>
+<pre><code>#define TEST_DEFINE 3.14
+/* plastic surface shader
+ *
+ * Pixie is:
+ * (c) Copyright 1999-2003 Okan Arikan. All rights reserved.
+ */
+
+surface plastic (float Ka = 1, Kd = 0.5, Ks = 0.5, roughness = 0.1;
+ color specularcolor = 1;) {
+ normal Nf = faceforward (normalize(N),I);
+ Ci = Cs * (Ka*ambient() + Kd*diffuse(Nf)) + specularcolor * Ks *
+ specular(Nf,-normalize(I),roughness);
+ Oi = Os;
+ Ci *= Oi;
+}
+</code></pre>
+
+ <tr>
+ <th>RenderMan RIB
+ <td>
+<pre><code>FrameBegin 0
+Display "Scene" "framebuffer" "rgb"
+Option "searchpath" "shader" "+&:/home/kew"
+Option "trace" "int maxdepth" [4]
+Attribute "visibility" "trace" [1]
+Attribute "irradiance" "maxerror" [0.1]
+Attribute "visibility" "transmission" "opaque"
+Format 640 480 1.0
+ShadingRate 2
+PixelFilter "catmull-rom" 1 1
+PixelSamples 4 4
+Projection "perspective" "fov" 49.5502811377
+Scale 1 1 -1
+
+WorldBegin
+
+ReadArchive "Lamp.002_Light/instance.rib"
+Surface "plastic"
+ReadArchive "Cube.004_Mesh/instance.rib"
+# ReadArchive "Sphere.010_Mesh/instance.rib"
+# ReadArchive "Sphere.009_Mesh/instance.rib"
+ReadArchive "Sphere.006_Mesh/instance.rib"
+
+WorldEnd
+FrameEnd
+</code></pre>
+
+ <tr>
+ <th>MEL (Maya Embedded Language)
+ <td>
+<pre><code class="mel">proc string[] getSelectedLights()
+
+{
+ string $selectedLights[];
+
+ string $select[] = `ls -sl -dag -leaf`;
+
+ for ( $shape in $select )
+ {
+ // Determine if this is a light.
+ //
+ string $class[] = getClassification( `nodeType $shape` );
+
+
+ if ( ( `size $class` ) > 0 &amp;&amp; ( "light" == $class[0] ) )
+ {
+ $selectedLights[ `size $selectedLights` ] = $shape;
+ }
+ }
+
+ // Result is an array of all lights included in
+
+ // current selection list.
+ return $selectedLights;
+}
+</code></pre>
+
+ <tr>
+ <th>SQL
+ <td>
+<pre><code>BEGIN;
+CREATE TABLE "cicero_topic" (
+ "id" serial NOT NULL PRIMARY KEY,
+ "forum_id" integer NOT NULL,
+ "subject" varchar(255) NOT NULL,
+ "created" timestamp with time zone NOT NULL
+);
+ALTER TABLE "cicero_topic"
+ADD CONSTRAINT forum_id_refs_id_4be56999
+FOREIGN KEY ("forum_id")
+REFERENCES "cicero_forum" ("id")
+DEFERRABLE INITIALLY DEFERRED;
+
+-- Initials
+insert into "cicero_forum"
+ ("slug", "name", "group", "ordering")
+values
+ ('test', 'Forum for te''sting', 'Test', 0);
+
+-- Test
+select count(*) from cicero_forum;
+
+COMMIT;
+</code></pre>
+
+ <tr>
+ <th>SmallTalk
+ <td>
+<pre><code>Object>>method: num
+ "comment 123"
+ | var1 var2 |
+ (1 to: num) do: [:i | |var| ^i].
+ Klass with: var1.
+ Klass new.
+ arr := #('123' 123.345 #hello Transcript var $@).
+ arr := #().
+ var2 = arr at: 3.
+ ^ self abc
+
+heapExample
+ "HeapTest new heapExample"
+ "Multiline
+ decription"
+ | n rnd array time sorted |
+ n := 5000.
+ "# of elements to sort"
+ rnd := Random new.
+ array := (1 to: n)
+ collect: [:i | rnd next].
+ "First, the heap version"
+ time := Time
+ millisecondsToRun: [sorted := Heap withAll: array.
+ 1
+ to: n
+ do: [:i |
+ sorted removeFirst.
+ sorted add: rnd next]].
+ Transcript cr; show: 'Time for Heap: ' , time printString , ' msecs'.
+ "The quicksort version"
+ time := Time
+ millisecondsToRun: [sorted := SortedCollection withAll: array.
+ 1
+ to: n
+ do: [:i |
+ sorted removeFirst.
+ sorted add: rnd next]].
+ Transcript cr; show: 'Time for SortedCollection: ' , time printString , ' msecs'
+</code></pre>
+
+ <tr>
+ <th>Lisp
+ <th><pre><code>(defun prompt-for-cd ()
+ "Prompts
+ for CD"
+ (prompt-read "Title" 1.53 1 2/4 1.7 1.7e0 2.9E-4 +42 -7 #b001 #b001/100 #o777 #O777 #xabc55 #c(0 -5.6))
+ (prompt-read "Artist" &amp;rest)
+ (or (parse-integer (prompt-read "Rating") :junk-allowed t) 0)
+ (if x (format t "yes") (format t "no" nil) ;and here comment
+ )
+ ;; second line comment
+ '(+ 1 2)
+ (defvar *lines*) ; list of all lines
+ (position-if-not #'sys::whitespacep line :start beg))
+ (quote (privet 1 2 3))
+ '(hello world)
+ (* 5 7)
+ (1 2 34 5)
+ (:use "aaaa")
+ (let ((x 10) (y 20))
+ (print (+ x y))
+ )</code></pre>
+
+ <tr>
+ <th>Ini file
+ <td>
+<pre><code>;Settings relating to the location and loading of the database
+[Database]
+ProfileDir=.
+ShowProfileMgr=smart
+Profile1_Name[] = "\|/_-=MegaDestoyer=-_\|/"
+DefaultProfile=True
+AutoCreate = no
+
+[AutoExec]
+Use="prompt"
+Glob=autoexec_*.ini
+AskAboutIgnoredPlugins=0
+</code></pre>
+
+ <tr>
+ <th>Apache
+ <td>
+<pre><code># rewrite`s rules for wordpress pretty url
+LoadModule rewrite_module modules/mod_rewrite.so
+RewriteCond %{REQUEST_FILENAME} !-f
+RewriteCond %{REQUEST_FILENAME} !-d
+RewriteRule . index.php [NC,L]
+
+ExpiresActive On
+ExpiresByType application/x-javascript "access plus 1 days"
+
+&lt;Location /maps/&gt;
+ RewriteMap map txt:map.txt
+ RewriteMap lower int:tolower
+ RewriteCond %{REQUEST_URI} ^/([^/.]+)\.html$ [NC]
+ RewriteCond ${map:${lower:%1}|NOT_FOUND} !NOT_FOUND
+ RewriteRule .? /index.php?q=${map:${lower:%1}} [NC,L]
+&lt;/Location&gt;
+</code></pre>
+
+ <tr>
+ <th>nginx
+ <td>
+<pre><code>user www www;
+worker_processes 2;
+pid /var/run/nginx.pid;
+error_log /var/log/nginx.error_log debug | info | notice | warn | error | crit;
+
+events {
+ connections 2000;
+ use kqueue | rtsig | epoll | /dev/poll | select | poll;
+}
+
+http {
+ log_format main '$remote_addr - $remote_user [$time_local] '
+ '"$request" $status $bytes_sent '
+ '"$http_referer" "$http_user_agent" '
+ '"$gzip_ratio"';
+
+ send_timeout 3m;
+ client_header_buffer_size 1k;
+
+ gzip on;
+ gzip_min_length 1100;
+
+ #lingering_time 30;
+
+ server {
+ listen one.example.com;
+ server_name one.example.com www.one.example.com;
+ access_log /var/log/nginx.access_log main;
+
+ location / {
+ proxy_pass http://127.0.0.1/;
+ proxy_redirect off;
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ charset koi8-r;
+ }
+
+ location ~* \.(jpg|jpeg|gif)$ {
+ root /spool/www;
+ }
+ }
+}
+</code></pre>
+
+ <tr>
+ <th>Diff
+ <td>
+<pre><code>Index: languages/ini.js
+===================================================================
+--- languages/ini.js (revision 199)
++++ languages/ini.js (revision 200)
+@@ -1,8 +1,7 @@
+ hljs.LANGUAGES.ini =
+ {
+ case_insensitive: true,
+- defaultMode:
+- {
++ defaultMode: {
+ contains: ['comment', 'title', 'setting'],
+ illegal: '[^\\s]'
+ },
+
+*** /path/to/original timestamp
+--- /path/to/new timestamp
+***************
+*** 1,3 ****
+--- 1,9 ----
++ This is an important
++ notice! It should
++ therefore be located at
++ the beginning of this
++ document!
+
+! compress the size of the
+! changes.
+
+ It is important to spell
+</code></pre>
+
+ <tr>
+ <th>DOS batch files
+ <td>
+<pre><code>cd \
+copy a b
+ping 192.168.0.1
+@rem ping 192.168.0.1
+net stop sharedaccess
+del %tmp% /f /s /q
+del %temp% /f /s /q
+ipconfig /flushdns
+taskkill /F /IM JAVA.EXE /T
+
+cd Photoshop/Adobe Photoshop CS3/AMT/
+if exist application.sif (
+ ren application.sif _application.sif
+) else (
+ ren _application.sif application.sif
+)
+
+taskkill /F /IM proquota.exe /T
+
+sfc /SCANNOW
+
+set path = test
+
+xcopy %1\*.* %2
+</code></pre>
+
+ <tr>
+ <th>Bash
+ <td>
+<pre><code>#!/bin/bash
+
+###### BEGIN CONFIG
+ACCEPTED_HOSTS="/root/.hag_accepted.conf"
+BE_VERBOSE=false
+###### END CONFIG
+
+if [ "$UID" -ne 0 ]
+then
+ echo "Superuser rights is required"
+ exit 2
+fi
+
+genApacheConf(){
+ if [[ "$2" = "www" ]]
+ then
+ full_domain=$1
+ else
+ full_domain=$2.$1
+ fi
+ host_root="${APACHE_HOME_DIR}$1/$2"
+ echo -e "# Host $1/$2 :"
+}
+</code></pre>
+
+ <tr>
+ <th>Axapta
+ <td>
+<pre><code>class ExchRateLoadBatch extends RunBaseBatch {
+ ExchRateLoad rbc;
+ container currencies;
+ boolean actual;
+ boolean overwrite;
+ date beg;
+ date end;
+
+ #define.CurrentVersion(5)
+
+ #localmacro.CurrentList
+ currencies,
+ actual,
+ beg,
+ end
+ #endmacro
+}
+
+public boolean unpack(container packedClass) {
+ container base;
+ boolean ret;
+ Integer version = runbase::getVersion(packedClass);
+
+ switch (version) {
+ case #CurrentVersion:
+ [version, #CurrentList] = packedClass;
+ return true;
+ default:
+ return false;
+ }
+ return ret;
+}
+</code></pre>
+
+ <tr>
+ <th>1С
+ <td>
+<pre><code>
+#Если Клиент Тогда
+Перем СимвольныйКодКаталога = "ля-ля-ля"; //комментарий
+Функция Сообщить(Знач ТекстСообщения, ТекстСообщения2) Экспорт //комментарий к функции
+ x=ТекстСообщения+ТекстСообщения2+"
+ |строка1
+ |строка2
+ |строка3";
+КонецФункции
+#КонецЕсли
+
+// Процедура ПриНачалеРаботыСистемы
+//
+Процедура ПриНачалеРаботыСистемы()
+ Обработки.Помощник.ПолучитьФорму("Форма").Открыть();
+ d = '21.01.2008'
+КонецПроцедуры
+</code></pre>
+
+ <tr>
+ <th>AVR Assembler
+ <td>
+<pre><code>;* Title: Block Copy Routines
+;* Version: 1.1
+
+.include "8515def.inc"
+
+ rjmp RESET ;reset handle
+
+.def flashsize=r16 ;size of block to be copied
+
+flash2ram:
+ lpm ;get constant
+ st Y+,r0 ;store in SRAM and increment Y-pointer
+ adiw ZL,1 ;increment Z-pointer
+ dec flashsize
+ brne flash2ram ;if not end of table, loop more
+ ret
+
+.def ramtemp =r1 ;temporary storage register
+.def ramsize =r16 ;size of block to be copied
+</code></pre>
+
+ <tr>
+ <th>Parser 3
+ <td>
+<pre><code>@CLASS
+base
+
+@USE
+module.p
+
+@BASE
+class
+
+# Comment for code
+@create[aParam1;aParam2][local1;local2]
+ ^connect[mysql://host/database?ClientCharset=windows-1251]
+ ^for[i](1;10){
+ &lt;p class=&quot;paragraph&quot;&gt;^eval($i+10)&lt;/p&gt;
+ ^connect[mysql://host/database]{
+ $tab[^table::sql{select * from `table` where a='1'}]
+ $var_Name[some${value}]
+ }
+ }
+
+ ^rem{
+ Multiline comment with code: $var
+ ^while(true){
+ ^for[i](1;10){
+ ^sleep[]
+ }
+ }
+ }
+ ^taint[^#0A]
+
+@GET_base[]
+## Comment for code
+ # Isn't comment
+ $result[$.hash_item1[one] $.hash_item2[two]]
+</code></pre>
+
+ <tr>
+ <th>TeX
+ <td>
+<pre>
+<code>\documentclass{article}
+\usepackage[koi8-r]{inputenc}
+\hoffset=0pt
+\voffset=.3em
+\tolerance=400
+\newcommand{\eTiX}{\TeX}
+\begin{document}
+\section*{Highlight.js}
+\begin{table}[c|c]
+$\frac 12\, + \, \frac 1{x^3}\text{Hello \! world}$ & \textbf{Goodbye\~ world} \\\eTiX $ \pi=400 $
+\end{table}
+Ch\'erie, \c{c}a ne me pla\^\i t pas! % comment \b
+G\"otterd\"ammerung~45\%=34.
+$$
+ \int\limits_{0}^{\pi}\frac{4}{x-7}=3
+$$
+\end{document}
+</code></pre>
+</table>
+
+<h2>Special tests</h2>
+
+<table>
+ <tr>
+ <th>Explicit Python highlighting
+ <td>
+<pre><code class="python">for x in [1, 2, 3]:
+ count(x)
+</code></pre>
+
+ <tr>
+ <th>Language set on &lt;pre&gt;
+ <td>
+<pre class="python"><code>for x in [1, 2, 3]:
+ count(x)
+</code></pre>
+
+ <tr>
+ <th>HTML5-style language class (language-python)
+ <td>
+<pre class="python"><code>for x in [1, 2, 3]:
+ count(x)
+</code></pre>
+
+ <tr>
+ <th>Replacing TAB with 4 spaces
+ <td>
+<pre><code class="python">for x in [1, 2, 3]:
+ count(x)
+</code></pre>
+
+ <tr>
+ <th>Custom markup
+ <td>
+<pre><code>&lt;<a href="http://dev.w3.org/html5/spec/Overview.html#the-div-element">div</a> id="contents"&gt;
+ <del>&lt;p&gt;Hello, World!</del>
+&lt;/div&gt;
+</code></pre>
+
+ <tr>
+ <th>Custom markup + TAB replacement
+ <td>
+<pre><code class="python">for x in [1, 2, 3]:
+<span style="background:yellow"> </span>count(x)
+ if x == 3:
+ <span style="background:yellow"> </span>count(x + 1)
+</code></pre>
+
+ <tr>
+ <th>Disabled highlighting
+ <td>
+<pre><code class="no-highlight">&lt;div id="contents"&gt;
+ &lt;p&gt;Hello, World!
+&lt;/div&gt;
+</code></pre>
+
+</table>
diff --git a/lib/highlight.js b/lib/highlight.js
new file mode 100644
index 0000000..ae9a331
--- /dev/null
+++ b/lib/highlight.js
@@ -0,0 +1,54 @@
+// load syntax highlighter
+var hljs = require(__dirname + "/../deps/highlight.js/highlight.js").hljs;
+
+// load langs
+require(__dirname + "/../deps/highlight.js/languages/cs.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/python.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/mel.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/perl.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/axapta.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/cpp.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/sql.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/smalltalk.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/profile.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/bash.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/lua.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/html-xml.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/renderman.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/1c.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/delphi.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/dos.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/django.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/vbscript.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/ini.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/apache.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/nginx.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/ruby.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/css.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/lisp.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/java.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/javascript.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/php.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/diff.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/avrasm.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/parser3.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/scala.js").lang(hljs);
+require(__dirname + "/../deps/highlight.js/languages/tex.js").lang(hljs);
+
+hljs.initialize();
+
+var highlight = function(code, language) {
+ if (language == 'plain') {
+ return code;
+ }
+
+ if (language && hljs.LANGUAGES[language]) {
+ return hljs.highlight(language, code).value;
+ }
+
+ return hljs.highlightText(code);
+}
+
+module.exports = {
+ highlight: highlight
+};
diff --git a/lib/main.js b/lib/main.js
new file mode 100644
index 0000000..6e2f36a
--- /dev/null
+++ b/lib/main.js
@@ -0,0 +1,103 @@
+var http = require('http'),
+router = require('choreographer').router(),
+qs = require('querystring'),
+uuid = require(__dirname + '/uuid'),
+hl = require(__dirname + '/highlight'),
+kyoto = require('kyoto');
+
+var db = new kyoto.open(__dirname + '/../db/pastes.kch', 'a+', kyotoOpen);
+
+function generateId(callback) {
+ var id = uuid.generate(14);
+ db.get(id, function(err, value) {
+ if (value) {
+ generateId();
+ }
+ else {
+ callback(id);
+ }
+ });
+}
+
+function getPaste(plain, req, res, paste) {
+ db.get(paste, function(err, value) {
+ if (err) {
+ res.writeHead(404, {'Content-Type': 'text/plain'});
+ res.end('404: ' + req.url + ' not found:\n' + err + '\n');
+ }
+ else {
+ var data = JSON.parse(value);
+ if (plain) {
+ res.writeHead(200, {'Content-Type': 'text/plain'});
+ res.write(data.content);
+ }
+ else {
+ res.writeHead(200, {'Content-Type': 'text/html'});
+ res.write(hl.highlight(data.content, data.language));
+ }
+ res.end('\n');
+ }
+ });
+}
+
+router
+ .get('/plain/*', function(req, res, paste) {
+ getPaste(true, req, res, paste);
+ })
+ .get('/get/*', function(req, res, paste) {
+ getPaste(false, req, res, paste);
+ })
+ .get('/', function(req, res) {
+ })
+ .post('/add', function(req, res) {
+ var content = '';
+
+ req.on('data', function(chunk) {
+ content += chunk;
+ });
+
+ req.on('end', function() {
+ var post = qs.parse(content);
+
+ generateId(function(id) {
+ var data = {
+ content: post.content,
+ language: post.language,
+ time: Date()
+ };
+ db.set(id, JSON.stringify(data), function(err) {
+ if (err) {
+ res.writeHead(500, {'Content-Type': 'text/plain'});
+ res.write(err);
+ res.end('\n');
+ }
+ else {
+ console.log('new paste: %s', id);
+ res.writeHead(200, {'Content-Type': 'text/plain'});
+ res.write(id);
+ res.end('\n');
+ }
+ });
+ });
+ });
+ })
+ .notFound(function(req, res) {
+ res.writeHead(404, {'Content-Type': 'text/plain'});
+ res.end('404: ' + req.url + ' not found.\n');
+ });
+
+
+function kyotoOpen(err) {
+ if (err) throw err;
+
+ http.createServer(router).listen(8080);
+ console.log('Listening on port 8080...');
+}
+
+process.on('uncaughtException', function(exeption) {
+ process.exit(1);
+});
+
+process.on('exit', function() {
+ db.close(function(err) { console.log(err); });
+});
diff --git a/lib/uuid.js b/lib/uuid.js
new file mode 100644
index 0000000..e8d9c6c
--- /dev/null
+++ b/lib/uuid.js
@@ -0,0 +1,17 @@
+
+var CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
+
+var generate = function(len) {
+ var uuid = [];
+
+ len = len || 14;
+ for (i = 0; i < len; i++) {
+ uuid[i] = CHARS[0 | Math.random()* CHARS.length];
+ }
+
+ return uuid.join('');
+};
+
+module.exports = {
+ generate: generate
+};