From 9bb31f57226877f78f23fb766773aa8486297bb7 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Thu, 30 Jun 2011 00:52:42 +0200 Subject: initial commit --- .gitignore | 2 + bin/paste | 3 + deps/highlight.js/AUTHORS.en.txt | 37 + deps/highlight.js/AUTHORS.ru.txt | 37 + deps/highlight.js/LICENSE | 24 + deps/highlight.js/export.html | 115 +++ deps/highlight.js/highlight.js | 637 +++++++++++++++ deps/highlight.js/highlight.pack.js | 1 + deps/highlight.js/highlight_src.js | 603 ++++++++++++++ deps/highlight.js/languages/1c.js | 99 +++ deps/highlight.js/languages/apache.js | 446 +++++++++++ deps/highlight.js/languages/avrasm.js | 92 +++ deps/highlight.js/languages/axapta.js | 56 ++ deps/highlight.js/languages/bash.js | 85 ++ deps/highlight.js/languages/cpp.js | 46 ++ deps/highlight.js/languages/cs.js | 51 ++ deps/highlight.js/languages/css.js | 85 ++ deps/highlight.js/languages/delphi.js | 87 ++ deps/highlight.js/languages/diff.js | 69 ++ deps/highlight.js/languages/django.js | 65 ++ deps/highlight.js/languages/dos.js | 37 + deps/highlight.js/languages/html-xml.js | 143 ++++ deps/highlight.js/languages/ini.js | 44 + deps/highlight.js/languages/java.js | 62 ++ deps/highlight.js/languages/javascript.js | 54 ++ deps/highlight.js/languages/lisp.js | 99 +++ deps/highlight.js/languages/lua.js | 85 ++ deps/highlight.js/languages/mel.js | 55 ++ deps/highlight.js/languages/nginx.js | 102 +++ deps/highlight.js/languages/parser3.js | 58 ++ deps/highlight.js/languages/perl.js | 156 ++++ deps/highlight.js/languages/php.js | 58 ++ deps/highlight.js/languages/profile.js | 55 ++ deps/highlight.js/languages/python.js | 79 ++ deps/highlight.js/languages/renderman.js | 243 ++++++ deps/highlight.js/languages/ruby.js | 199 +++++ deps/highlight.js/languages/scala.js | 67 ++ deps/highlight.js/languages/smalltalk.js | 56 ++ deps/highlight.js/languages/sql.js | 110 +++ deps/highlight.js/languages/tex.js | 62 ++ deps/highlight.js/languages/vbscript.js | 40 + deps/highlight.js/readme.eng.txt | 486 +++++++++++ deps/highlight.js/readme.rus.txt | 494 ++++++++++++ deps/highlight.js/styles/ascetic.css | 45 ++ deps/highlight.js/styles/brown_paper.css | 113 +++ deps/highlight.js/styles/brown_papersq.png | Bin 0 -> 18198 bytes deps/highlight.js/styles/dark.css | 109 +++ deps/highlight.js/styles/default.css | 123 +++ deps/highlight.js/styles/far.css | 123 +++ deps/highlight.js/styles/github.css | 128 +++ deps/highlight.js/styles/idea.css | 117 +++ deps/highlight.js/styles/ir_black.css | 105 +++ deps/highlight.js/styles/magula.css | 117 +++ deps/highlight.js/styles/school_book.css | 117 +++ deps/highlight.js/styles/school_book.png | Bin 0 -> 486 bytes deps/highlight.js/styles/sunburst.css | 148 ++++ deps/highlight.js/styles/vs.css | 75 ++ deps/highlight.js/styles/zenburn.css | 121 +++ deps/highlight.js/test.html | 1196 ++++++++++++++++++++++++++++ lib/highlight.js | 54 ++ lib/main.js | 103 +++ lib/uuid.js | 17 + 62 files changed, 8295 insertions(+) create mode 100644 .gitignore create mode 100755 bin/paste create mode 100644 deps/highlight.js/AUTHORS.en.txt create mode 100644 deps/highlight.js/AUTHORS.ru.txt create mode 100644 deps/highlight.js/LICENSE create mode 100644 deps/highlight.js/export.html create mode 100644 deps/highlight.js/highlight.js create mode 100644 deps/highlight.js/highlight.pack.js create mode 100644 deps/highlight.js/highlight_src.js create mode 100644 deps/highlight.js/languages/1c.js create mode 100644 deps/highlight.js/languages/apache.js create mode 100644 deps/highlight.js/languages/avrasm.js create mode 100644 deps/highlight.js/languages/axapta.js create mode 100644 deps/highlight.js/languages/bash.js create mode 100644 deps/highlight.js/languages/cpp.js create mode 100644 deps/highlight.js/languages/cs.js create mode 100644 deps/highlight.js/languages/css.js create mode 100644 deps/highlight.js/languages/delphi.js create mode 100644 deps/highlight.js/languages/diff.js create mode 100644 deps/highlight.js/languages/django.js create mode 100644 deps/highlight.js/languages/dos.js create mode 100644 deps/highlight.js/languages/html-xml.js create mode 100644 deps/highlight.js/languages/ini.js create mode 100644 deps/highlight.js/languages/java.js create mode 100644 deps/highlight.js/languages/javascript.js create mode 100644 deps/highlight.js/languages/lisp.js create mode 100644 deps/highlight.js/languages/lua.js create mode 100644 deps/highlight.js/languages/mel.js create mode 100644 deps/highlight.js/languages/nginx.js create mode 100644 deps/highlight.js/languages/parser3.js create mode 100644 deps/highlight.js/languages/perl.js create mode 100644 deps/highlight.js/languages/php.js create mode 100644 deps/highlight.js/languages/profile.js create mode 100644 deps/highlight.js/languages/python.js create mode 100644 deps/highlight.js/languages/renderman.js create mode 100644 deps/highlight.js/languages/ruby.js create mode 100644 deps/highlight.js/languages/scala.js create mode 100644 deps/highlight.js/languages/smalltalk.js create mode 100644 deps/highlight.js/languages/sql.js create mode 100644 deps/highlight.js/languages/tex.js create mode 100644 deps/highlight.js/languages/vbscript.js create mode 100644 deps/highlight.js/readme.eng.txt create mode 100644 deps/highlight.js/readme.rus.txt create mode 100644 deps/highlight.js/styles/ascetic.css create mode 100644 deps/highlight.js/styles/brown_paper.css create mode 100644 deps/highlight.js/styles/brown_papersq.png create mode 100644 deps/highlight.js/styles/dark.css create mode 100644 deps/highlight.js/styles/default.css create mode 100644 deps/highlight.js/styles/far.css create mode 100644 deps/highlight.js/styles/github.css create mode 100644 deps/highlight.js/styles/idea.css create mode 100644 deps/highlight.js/styles/ir_black.css create mode 100644 deps/highlight.js/styles/magula.css create mode 100644 deps/highlight.js/styles/school_book.css create mode 100644 deps/highlight.js/styles/school_book.png create mode 100644 deps/highlight.js/styles/sunburst.css create mode 100644 deps/highlight.js/styles/vs.css create mode 100644 deps/highlight.js/styles/zenburn.css create mode 100644 deps/highlight.js/test.html create mode 100644 lib/highlight.js create mode 100644 lib/main.js create mode 100644 lib/uuid.js 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 + +Contributors: + +- Peter Leonov +- Victor Karamzin +- Vsevolod Solovyov +- Anton Kovalyov +- Nikita Ledyaev +- Konstantin Evdokimenko +- Dmitri Roudakov +- Yuri Ivanov +- Vladimir Ermakov +- Vladimir Gubarkov +- Brian Beck +- MajestiC +- Vasily Polovnyov +- Vladimir Epifanov +- Alexander Makarov (http://rmcreative.ru/) +- Vah +- Shuen-Huei Guan +- Jason Diamond +- Michal Gabrukiewicz +- Ruslan Keba +- Sergey Baranov +- Zaripov Yura +- Oleg Volchkov +- Vasily Mikhailitchenko +- Jan Berkel +- Vladimir Moskva +- Loren Segal +- Andrew Fedorov 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/ + +Первоначальный автор и ведущий проекта: +Иван Сагалаев + +Внесли свой вклад: + +- Петр Леонов +- Виктор Карамзин +- Всеволод Соловьёв +- Антон Ковалёв +- Никита Ледяев +- Константин Евдокименко +- Дмитрий Рудаков +- Юрий Иванов +- Владимир Ермаков +- Владимир Губарьков +- Брайан Бек +- MajestiC +- Василий Половнёв +- Владимир Епифанов +- Александр Макаров (http://rmcreative.ru/) +- Vah +- Шуэн-Хуэй Гуан +- Джейсон Даймонд +- Михал Габрукевич +- Руслан Кеба +- Сергей Баранов +- Зарипов Юра +- Олег Волчков +- Василий Михайличенко +- Ян Беркель +- Владимир Москва +- Лорен Сегал +- Андрей Фёдоров 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 @@ + + + + + + + + Highlited code export + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Write a code snippetGet HTML to paste anywhere (for actual styles and colors see sample.css)
+ + + + + +
+
+
+ Export script: Vladimir Gubarkov
+ Highlighting: highlight.js +
+ + 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, '>'); + } + + 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 ''; + } + + 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 += '' + escape(match[0]) + ''; + } 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?'':''; + 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?'':''; + 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?'':''; + 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 = '
' + result + '
'; + 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,">")}function l(t,s){if(!t){return false}for(var c=0;c"}function C(D){return""}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'+o(O[0])+""}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?"":'';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?"":"";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?"":"";c+=R;N--;D.length--}D.length--;D[D.length-1].buffer="";if(U.starts){for(var Q=0;Q1){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;cD){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='
'+B+"
";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|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";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:""},{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:""};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:"",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:"",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:"",c:["attribute"],i:"[\\+\\.]",starts:"css"},{cN:"tag",l:[hljs.IR],k:hljs.HTML_TAGS,b:"",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:"",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]|\\/\\*|"},{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:["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, '>'); + } + + 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 ''; + } + + 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 += '' + escape(match[0]) + ''; + } 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?'':''; + 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?'':''; + 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?'':''; + 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 = '
' + result + '
'; + 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 +Contributors: Sergey Baranov +*/ + +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 +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: '' + }, + { + 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 +*/ + +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 +*/ + +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 +*/ + +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: ['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 +*/ + +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: '' + }, + { + 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]|\\/\\*| +*/ + +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: '' +}; +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: '', + 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: '', + 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: '', + contains: ['attribute'], + illegal: '[\\+\\.]', + starts: 'css' + }, + { + className: 'tag', + lexems: [hljs.IDENT_RE], + keywords: hljs.HTML_TAGS, + begin: '', + 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: '', returnEnd: true, + subLanguage: 'css' + }, + { + className: 'javascript', + end: '', 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 +*/ + +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 +*/ + +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 +*/ + +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 +*/ + +this.lang = function(hljs){ + +hljs.LANGUAGES.mel = { + defaultMode: { + lexems: [hljs.UNDERSCORE_IDENT_RE], + illegal: '> + // 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 +*/ + +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 +*/ + +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 +*/ + +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 +*/ + +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 +*/ + +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 +Contributors: Shuen-Huei Guan +*/ + +this.lang = function(hljs){ + +hljs.LANGUAGES.rib = { + defaultMode: { + lexems: [hljs.UNDERSCORE_IDENT_RE], + illegal: ' +Contributors: Peter Leonov , Vasily Polovnyov , Loren Segal +*/ + +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 +*/ + +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 +*/ + +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 +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 +Contributors: Michal Gabrukiewicz +*/ + +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: + + + + +Also you can replaces TAB ('\x09') characters used for indentation in your code +with some fixed number of spaces or with a `` to set them special styling: + + + +Then the script looks in your page for fragments `
...
` +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 `` 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: "" + +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 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 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 `` element: + +
...
+ +You can use class names recommended in HTML5: "language-html", +"language-php". Classes also can be assigned to the `
` element.
+
+To disable highlighting of a fragment altogether use "no-highlight" class:
+
+    
...
+ +## 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" -- полная сжатая версия +библиотеки для работы. Все несжатые исходные файлы также есть в пакете, поэтому +не стесняйтесь в них смотреть! + +Скрипт подключается одним файлом и одним вызовом инициализирующей +функции: + + + + +Также вы можете заменить символы TAB ('\x09'), используемые для отступов, на +фиксированное количество пробелов или на отдельный ``, чтобы задать ему +какой-нибудь специальный стиль: + + + +Дальше скрипт ищет на странице конструкции `
...
`, +которые традиционно используются для написания кода, и код в них +размечается на куски, помеченные разными значениями классов. + + +### Инициализация вручную + +Если вы используете другие теги для блоков кода, вы можете инициализировать их +явно с помощью функции `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. + + +## Языки + +В списке приведены все языки, которые знает библиотека с классами, +соответствующими различным синтаксическим частям. В скобках после +названий языков указаны идентификаторы языков, используемые в качестве +классов элемента ``. + +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 метки препроцессора: "" + +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 объявление + 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 объявление + 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 специальный символ + + +## Эвристика + +Определение языка, на котором написан фрагмент, делается с помощью +довольно простой эвристики: программа пытается расцветить фрагмент всеми +языками подряд, и для каждого языка считает количество подошедших +синтаксически конструкций и ключевых слов. Для какого языка нашлось больше, +тот и выбирается. + +Это означает, что в коротких фрагментах высока вероятность ошибки, что +периодически и случается. Чтобы указать язык фрагмента явно, надо написать +его название в виде класса к элементу ``: + +
...
+ +Можно использовать рекомендованные в HTML5 названия классов: +"language-html", "language-php". Также можно назначать классы на элемент +`
`.
+
+Чтобы запретить расцветку фрагмента вообще, используется класс "no-highlight":
+
+    
...
+ +## Координаты + +Версия: 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 + +*/ + +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 + +*/ + +pre code[class]:after { + content: 'highlight: ' attr(class); + display: block; text-align: right; + font-size: smaller; + color: #2c2c2c; background: transparent; + border-top: solid 1px black; + padding-top: 0.5em; +} + +pre code { + display: block; + background:#b7a68e url(./brown_papersq.png); + padding-left:10px; + padding-top:10px; +} + +pre .keyword, +pre .literal, +pre .change, +pre .winutils, +pre .flow, +pre .lisp .title, +pre .tex .special { + color:#005599; + font-weight:bold; +} + +pre code, +pre .ruby .subst { + color: #363C69; +} + +pre .string, +pre .function .title, +pre .class .title, +pre .ini .title, +pre .tag .attribute .value, +pre .css .rules .value, +pre .preprocessor, +pre .ruby .symbol, +pre .ruby .symbol .string, +pre .ruby .symbol .keyword, +pre .ruby .symbol .keymethods, +pre .ruby .instancevar, +pre .ruby .class .parent, +pre .built_in, +pre .sql .aggregate, +pre .django .template_tag, +pre .django .variable, +pre .smalltalk .class, +pre .javadoc, +pre .ruby .string, +pre .django .filter .argument, +pre .smalltalk .localvars, +pre .smalltalk .array, +pre .attr_selector, +pre .pseudo, +pre .addition, +pre .stream, +pre .envvar, +pre .apache .tag, +pre .apache .cbracket, +pre .tex .number { + color: #2C009F; +} + +pre .comment, +pre .java .annotation, +pre .python .decorator, +pre .template_comment, +pre .pi, +pre .doctype, +pre .deletion, +pre .shebang, +pre .apache .sqbracket, +pre .nginx .built_in, +pre .tex .formula { + color: #802022; +} + +pre .keyword, +pre .literal, +pre .css .id, +pre .phpdoc, +pre .function .title, +pre .class .title, +pre .vbscript .built_in, +pre .sql .aggregate, +pre .rsl .built_in, +pre .smalltalk .class, +pre .xml .tag .title, +pre .diff .header, +pre .chunk, +pre .winutils, +pre .bash .variable, +pre .lisp .title, +pre .apache .tag, +pre .tex .command { + font-weight: bold; +} + +pre .html .css, +pre .html .javascript, +pre .html .vbscript, +pre .tex .formula { + opacity: 0.8; +} diff --git a/deps/highlight.js/styles/brown_papersq.png b/deps/highlight.js/styles/brown_papersq.png new file mode 100644 index 0000000..3813903 Binary files /dev/null and b/deps/highlight.js/styles/brown_papersq.png differ diff --git a/deps/highlight.js/styles/dark.css b/deps/highlight.js/styles/dark.css new file mode 100644 index 0000000..0ac41cb --- /dev/null +++ b/deps/highlight.js/styles/dark.css @@ -0,0 +1,109 @@ +/* + +Dark style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +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 + +*/ + +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 + +*/ + +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 + +*/ + +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 + +*/ + +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 +*/ + +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 +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 + +*/ + +pre code[class]:after { + content: 'highlight: ' attr(class); + display: block; text-align: right; + color: #CCC; background: transparent; + padding-top: 0.5em; +} + +pre code { + display: block; + margin-left:30px; + margin-top:15px; + font-size: 11px !important; + line-height:16px !important; +} + +pre{ + background:#f6f6ae url(./school_book.png); + border-top: solid 2px #d2e8b9; + border-bottom: solid 1px #d2e8b9; +} + +pre .keyword, +pre .literal, +pre .change, +pre .winutils, +pre .flow, +pre .lisp .title, +pre .tex .special { + color:#005599; + font-weight:bold; +} + +pre code, +pre .ruby .subst { + color: #3E5915; +} + +pre .string, +pre .function .title, +pre .class .title, +pre .ini .title, +pre .tag .attribute .value, +pre .css .rules .value, +pre .preprocessor, +pre .ruby .symbol, +pre .ruby .symbol .string, +pre .ruby .symbol .keyword, +pre .ruby .symbol .keymethods, +pre .ruby .instancevar, +pre .ruby .class .parent, +pre .built_in, +pre .sql .aggregate, +pre .django .template_tag, +pre .django .variable, +pre .smalltalk .class, +pre .javadoc, +pre .ruby .string, +pre .django .filter .argument, +pre .smalltalk .localvars, +pre .smalltalk .array, +pre .attr_selector, +pre .pseudo, +pre .addition, +pre .stream, +pre .envvar, +pre .apache .tag, +pre .apache .cbracket, +pre .nginx .built_in, +pre .tex .command { + color: #2C009F; +} + +pre .comment, +pre .java .annotation, +pre .python .decorator, +pre .template_comment, +pre .pi, +pre .doctype, +pre .deletion, +pre .shebang, +pre .apache .sqbracket { + color: #E60415; +} + +pre .keyword, +pre .literal, +pre .css .id, +pre .phpdoc, +pre .function .title, +pre .class .title, +pre .vbscript .built_in, +pre .sql .aggregate, +pre .rsl .built_in, +pre .smalltalk .class, +pre .xml .tag .title, +pre .diff .header, +pre .chunk, +pre .winutils, +pre .bash .variable, +pre .lisp .title, +pre .apache .tag, +pre .tex .command { + font-weight: bold; +} + +pre .html .css, +pre .html .javascript, +pre .html .vbscript, +pre .tex .formula { + opacity: 0.5; +} diff --git a/deps/highlight.js/styles/school_book.png b/deps/highlight.js/styles/school_book.png new file mode 100644 index 0000000..956e979 Binary files /dev/null and b/deps/highlight.js/styles/school_book.png differ diff --git a/deps/highlight.js/styles/sunburst.css b/deps/highlight.js/styles/sunburst.css new file mode 100644 index 0000000..0b8b02b --- /dev/null +++ b/deps/highlight.js/styles/sunburst.css @@ -0,0 +1,148 @@ +/* + +Sunburst-like style (c) Vasily Polovnyov + +*/ + +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 + +*/ +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 +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 @@ + + + Highlight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

This page is a demo/test showing all languages supported by highlight.js. +Most of the code doesn't work :-). +

You can see this page in several different styles bundled with the library or +write your own (and contribute it back!) + +

+ +

Automatically detected languages

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Python + +
+@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:
pass +
+ +
Python's profiler output + +
       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)
+
+ +
Ruby + +
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
+
+ +
Perl + +
# 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;
+}
+
+ +
PHP + +
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');
+      }
+  }
+}
+
+ +
Scala + +
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
+      }
+    )
+  }
+}
+
+ +
XML + +
<?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>
+
+ +
HTML (with inline css and javascript) + +
<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>
+
+ +
Django templates + +
{% 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 %}
+
+ +
CSS + +
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;
+}
+
+ +
Javascript + +
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
+ +
VBScript + +
' 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
+ +
Lua + +
--[[
+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
+]] ]=] ]==]
+
+ +
Delphi + +
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}
+
+ +
Java + +
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();
+      }
+    }
+  }
+
+}
+
+ +
C++ + +
#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
+}
+
+ +
C# + +
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;
+    }
+}
+
+ +
RenderMan RSL + +
#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;
+}
+
+ +
RenderMan RIB + +
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
+
+ +
MEL (Maya Embedded Language) + +
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;
+}
+
+ +
SQL + +
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;
+
+ +
SmallTalk + +
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'
+
+ +
Lisp +
(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))
+  )
+ +
Ini file + +
;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
+
+ +
Apache + +
# 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>
+
+ +
nginx + +
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;
+        }
+    }
+}
+
+ +
Diff + +
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
+
+ +
DOS batch files + +
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
+
+ +
Bash + +
#!/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 :"
+}
+
+ +
Axapta + +
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;
+}
+
+ +
1С + +

+#Если Клиент Тогда
+Перем СимвольныйКодКаталога = "ля-ля-ля"; //комментарий
+Функция Сообщить(Знач ТекстСообщения, ТекстСообщения2) Экспорт //комментарий к функции
+  x=ТекстСообщения+ТекстСообщения2+"
+  |строка1
+  |строка2
+  |строка3";
+КонецФункции
+#КонецЕсли
+
+// Процедура ПриНачалеРаботыСистемы
+//
+Процедура ПриНачалеРаботыСистемы()
+  Обработки.Помощник.ПолучитьФорму("Форма").Открыть();
+  d = '21.01.2008'
+КонецПроцедуры
+
+ +
AVR Assembler + +
;* 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
+
+ +
Parser 3 + +
@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]]
+
+ +
TeX + +
+\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}
+
+
+ +

Special tests

+ + + + + + + + + +
Explicit Python highlighting + +
for x in [1, 2, 3]:
+  count(x)
+
+ +
Language set on <pre> + +
for x in [1, 2, 3]:
+  count(x)
+
+ +
HTML5-style language class (language-python) + +
for x in [1, 2, 3]:
+  count(x)
+
+ +
Replacing TAB with 4 spaces + +
for x in [1, 2, 3]:
+	count(x)
+
+ +
Custom markup + +
<div id="contents">
+  <p>Hello, World!
+</div>
+
+ +
Custom markup + TAB replacement + +
for x in [1, 2, 3]:
+	count(x)
+	if x == 3:
+		count(x + 1)
+
+ +
Disabled highlighting + +
<div id="contents">
+  <p>Hello, World!
+</div>
+
+ +
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 +}; -- cgit v1.2.3