diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2011-06-30 00:52:42 +0200 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2011-06-30 00:52:42 +0200 |
commit | 9bb31f57226877f78f23fb766773aa8486297bb7 (patch) | |
tree | bd0c28c27932071adaabf43dff4abcfafe221be3 | |
download | node-paste-9bb31f57226877f78f23fb766773aa8486297bb7.tar.gz node-paste-9bb31f57226877f78f23fb766773aa8486297bb7.tar.xz node-paste-9bb31f57226877f78f23fb766773aa8486297bb7.zip |
initial commit
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, '&').replace(/</gm, '<').replace(/>/gm, '>'); + } + + 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 →" 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, '&').replace(/</gm, '<').replace(/>/gm, '>'); + } + + 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,"&").replace(/</gm,"<").replace(/>/gm,">")}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, '&').replace(/</gm, '<').replace(/>/gm, '>'); + } + + 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 Binary files differnew file mode 100644 index 0000000..3813903 --- /dev/null +++ b/deps/highlight.js/styles/brown_papersq.png 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 Binary files differnew file mode 100644 index 0000000..956e979 --- /dev/null +++ b/deps/highlight.js/styles/school_book.png 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 < 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->db_load($id,@_) || do { + Carp::carp "Can`t load (class: $c, id: $id): '$!'"; return undef + }; + my $o = $c->_perl_new(); + $id12 = $id; + $o->{'ID'} = $id12 + 123; + $o->{'PAPA'} = $flds->{'PAPA'}; + #$o->{'SHCUT'} = $flds->{'SHCUT'}; + my $p = $o->props; + my $vt; + $string =~ m/^sought_text$/; + for my $key (keys %$p) + { + if(${$vt.'::property'}) { + $o->{$key . '_real'} = $flds->{$key}; + tie $o->{$key}, 'CMSBuilder::Property', $o, $key; + } else { + $o->{$key} = $flds->{$key}; + } + } + $o->save if delete $o->{'_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->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 <- 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 <- args) println( + colors.get(name) match { + case Some(code) => + name + " has code: " + code + case None => + "Unknown color: " + name + } + ) + } +} +</code></pre> + + <tr> + <th>XML + <td> +<pre><code><?xml version="1.0"?> +<response value="ok" xml:lang="en"> + <text>Ok</text> + <comment html_allowed="true"/> + <ns1:description><![CDATA[ + CDATA is <not> magical. + ]]></ns1:description> + <a></a> <a/> +</response> +</code></pre> + + <tr> + <th>HTML (with inline css and javascript) + <td> +<pre><code><head> + <title>Title</title> + + <style> + body { + width: 500px; + } + </style> + + <script> + function someFunction() { + return true; + } + </script> + +<body> + <p class="something" id='12'>Something</p> + <p class=something>Something</p> + <!-- comment --> + <p class>Something</p> + <p class="something" title="p">Something</p> +</body> +</code></pre> + + <tr> + <th>Django templates + <td> +<pre><code>{% if articles|length %} +{% for article in articles %} + +{# Striped table #} +<tr class="{% cycle odd,even %}"> + <td>{{ article|default:"Hi... "|escape }}</td> + <td>{{ article.date|date:"d.m.Y" }}</td> +</tr> + +{% 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 < 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) <> "#" 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<>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...)<BR><BR> + * + */ +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 <iostream> + +int main(int argc, char *argv[]) { + + /* An annoying "Hello World" example */ + for (unsigned i = 0; i < 0xFFFF; i++) + cout << "Hello, World!" << endl; + + char c = '\n'; // just a test + map <string, vector<string> > m; + m["key"] = "\\\\"; // yeah, I know it's an error +} +</code></pre> + + <tr> + <th>C# + <td> +<pre><code>using System; + +public class Program +{ + /// <summary>The entry point to the program.</summary> + /// <remarks> + /// 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: + /// <!-- I'm green! --> + /// </remarks> + 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 && ( "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" &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" + +<Location /maps/> + 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] +</Location> +</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){ + <p class="paragraph">^eval($i+10)</p> + ^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 <pre> + <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><<a href="http://dev.w3.org/html5/spec/Overview.html#the-div-element">div</a> id="contents"> + <del><p>Hello, World!</del> +</div> +</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"><div id="contents"> + <p>Hello, World! +</div> +</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 +}; |