+ dom.innerHTML = hl(dom.innerHTML, false, true);
articles[i].content = dom.innerHTML;
+
});
return dom;
};
diff --git a/theme/article.html b/theme/article.html
index 827fc24..15c82fb 100644
--- a/theme/article.html
+++ b/theme/article.html
@@ -1,7 +1,9 @@
-
+
+
+
PHP:
", false, true);
+
+Styles
+------
+
+**highlight** outputs HTML code with predefined CSS class names for different elements. This doesn't make a lot of sense by default (it's just a bunch of SPAN's) so you need to use a CSS file that sets the used color set for the highlighting. There's some sample CSS files in /lib/vendor/highlight.js/styles that can be used with no modification - just include one of the files in the page you are showing the highlighted code.
+
+
\ No newline at end of file
diff --git a/vendor/highlight/examples/test.js b/vendor/highlight/examples/test.js
new file mode 100644
index 0000000..0e93f8d
--- /dev/null
+++ b/vendor/highlight/examples/test.js
@@ -0,0 +1,25 @@
+
+
+var hl = require("../lib/highlight.js").Highlight,
+ code_string = "",
+
+ code_block = "PHP code:
\n"+ + "
",
+
+ html1 = hl(code_string), // convert all
+ html2 = hl(code_string,' '), // convert with special tab replacer
+ html3 = hl(code_block, false, true); // convert only inside
+
+console.log(html1);
+console.log(html2);
+console.log(html3);
\ No newline at end of file
diff --git a/vendor/highlight/lib/highlight.js b/vendor/highlight/lib/highlight.js
new file mode 100644
index 0000000..9c14331
--- /dev/null
+++ b/vendor/highlight/lib/highlight.js
@@ -0,0 +1,33 @@
+/* node-highlight is based on highlight.js (see vendor/highlight.js) */
+/* usage: html = require("highlight").Highlight(code_string); */
+/* NB! You also need to include a CSS file from vendor/highlight.js/styles */
+
+// load syntax highlighter
+var hljs = require("./vendor/highlight.js/highlight").hljs;
+
+// load langs
+require("./vendor/highlight.js/languages/bash")(hljs);
+require("./vendor/highlight.js/languages/javascript")(hljs);
+require("./vendor/highlight.js/languages/ruby")(hljs);
+
+
+
+/**
+ * highlight(text, tabReplace, useCodeBlocks) -> HTML
+ * - text (String): text to be highlighted
+ * - tabReplace (String): defaults to 4 spaces if none, replaces \t chars
+ * - useCodeBlocks (Boolean): If TRUE use only text between and
+ *
+ * Highlights program code inside a string by setting appropriate CSS class
+ * elements.
+ **/
+this.Highlight = function(text, tabReplace, useCodeBlocks){
+ tabReplace = tabReplace || ' ';
+ if(!!useCodeBlocks){
+ // JS regexpes have some multiline issues, so we temporarily remove them
+ return text.replace(/\n/g,'\uffff').replace(/(.*?)<\/code>/gm, function(original, source){
+ return ''+hljs.highlightText(source.replace(/\uffff/g,"\n"), tabReplace)+'
';
+ }).replace(/&(\w+;)/g,'&$1').replace(/\uffff/g,"\n");
+ }else
+ return hljs.highlightText(text, tabReplace);
+}
\ No newline at end of file
diff --git a/vendor/highlight/lib/vendor/highlight.js/AUTHORS.en.txt b/vendor/highlight/lib/vendor/highlight.js/AUTHORS.en.txt
new file mode 100644
index 0000000..2136022
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/AUTHORS.en.txt
@@ -0,0 +1,45 @@
+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
+- Igor Kalnitsky
+- Jeremy Hull
+- Valerii Hiora
+- Nikolay Zakharov
+- Dmitry Kovega
+- Sergey Ignatov
+- Antono Vasiljev
+- Stephan Kountso
diff --git a/vendor/highlight/lib/vendor/highlight.js/AUTHORS.ru.txt b/vendor/highlight/lib/vendor/highlight.js/AUTHORS.ru.txt
new file mode 100644
index 0000000..0c9ddb2
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/AUTHORS.ru.txt
@@ -0,0 +1,45 @@
+Подсветка синтаксиса с автоопределением языка.
+
+URL: http://softwaremaniacs.org/soft/highlight/
+
+Первоначальный автор и ведущий проекта:
+Иван Сагалаев
+
+Внесли свой вклад:
+
+- Петр Леонов
+- Виктор Карамзин
+- Всеволод Соловьёв
+- Антон Ковалёв
+- Никита Ледяев
+- Константин Евдокименко
+- Дмитрий Рудаков
+- Юрий Иванов
+- Владимир Ермаков
+- Владимир Губарьков
+- Брайан Бек
+- MajestiC
+- Василий Половнёв
+- Владимир Епифанов
+- Александр Макаров (http://rmcreative.ru/)
+- Vah
+- Шуэн-Хуэй Гуан
+- Джейсон Даймонд
+- Михал Габрукевич
+- Руслан Кеба
+- Сергей Баранов
+- Зарипов Юра
+- Олег Волчков
+- Василий Михайличенко
+- Ян Беркель
+- Владимир Москва
+- Лорен Сегал
+- Андрей Фёдоров
+- Игорь Кальницкий
+- Джереми Халл
+- Валерий Хиора
+- Николай Захаров
+- Дмитрий Ковега
+- Сергей Игнатов
+- Антоно Васильев
+- Степан Кунцьо
diff --git a/vendor/highlight/lib/vendor/highlight.js/LICENSE b/vendor/highlight/lib/vendor/highlight.js/LICENSE
new file mode 100644
index 0000000..422deb7
--- /dev/null
+++ b/vendor/highlight/lib/vendor/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/vendor/highlight/lib/vendor/highlight.js/README.md b/vendor/highlight/lib/vendor/highlight.js/README.md
new file mode 100644
index 0000000..10a9ddb
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/README.md
@@ -0,0 +1,122 @@
+# 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, ' ')});
+ });
+
+If your code container relies on `
` tags instead of line breaks (i.e. if
+it's not ``) pass `true` into third parameter of `highlightBlock`:
+
+ $('div.code').each(function(i, e) {hljs.highlightBlock(e, null, true)});
+
+
+### 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.
+
+For full reference list of classes see [classref.txt][cr].
+
+[cr]: http://github.com/isagalaev/highlight.js/blob/master/classref.txt
+
+
+## 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.
+
+
+## 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:
+
+ ...
+
+
+## Meta
+
+- Version: 6.0
+- URL: http://softwaremaniacs.org/soft/highlight/en/
+- Author: Ivan Sagalaev ()
+
+For the license terms see LICENSE files.
+For the list of contributors see AUTHORS.en.txt file.
diff --git a/vendor/highlight/lib/vendor/highlight.js/README.ru.md b/vendor/highlight/lib/vendor/highlight.js/README.ru.md
new file mode 100644
index 0000000..77188ad
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/README.ru.md
@@ -0,0 +1,128 @@
+# 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, ' ')});
+ });
+
+Если ваш блок кода использует `
` вместо переводов строки (т.е. если это не
+``), передайте `true` третьим параметром в `highlightBlock`:
+
+ $('div.code').each(function(i, e) {hljs.highlightBlock(e, null, true)});
+
+
+### Выбор стилей
+
+Размеченным классами элементам кода можно задать желаемые стили например так:
+
+ .comment {
+ color: gray;
+ }
+
+ .keyword {
+ font-weight: bold;
+ }
+
+ .python .string {
+ color: blue;
+ }
+
+ .html .atribute .value {
+ color: green;
+ }
+
+В комплекте с highlight.js идут несколько стилевых тем в директории styles,
+которые можно использовать напрямую или как основу для собственных экспериментов.
+
+Полный список классов приведён в файле [crossref.txt][cr].
+
+[cr]: http://github.com/isagalaev/highlight.js/blob/master/classref.txt
+
+
+## Экспорт
+
+В файле export.html находится небольшая программка, которая показывает и дает
+скопировать непосредственно HTML-код подсветки для любого заданного фрагмента кода.
+Это может понадобится например на сайте, на котором нельзя подключить сам скрипт
+highlight.js.
+
+
+## Эвристика
+
+Определение языка, на котором написан фрагмент, делается с помощью
+довольно простой эвристики: программа пытается расцветить фрагмент всеми
+языками подряд, и для каждого языка считает количество подошедших
+синтаксически конструкций и ключевых слов. Для какого языка нашлось больше,
+тот и выбирается.
+
+Это означает, что в коротких фрагментах высока вероятность ошибки, что
+периодически и случается. Чтобы указать язык фрагмента явно, надо написать
+его название в виде класса к элементу ``:
+
+ ...
+
+Можно использовать рекомендованные в HTML5 названия классов:
+"language-html", "language-php". Также можно назначать классы на элемент
+``.
+
+Чтобы запретить расцветку фрагмента вообще, используется класс "no-highlight":
+
+ ...
+
+
+## Координаты
+
+- Версия: 6.0
+- URL: http://softwaremaniacs.org/soft/highlight/
+- Автор: Иван Сагалаев ()
+
+Лицензионное соглашение читайте в файле LICENSE.
+Список соавторов читайте в файле AUTHORS.ru.txt
diff --git a/vendor/highlight/lib/vendor/highlight.js/classref.txt b/vendor/highlight/lib/vendor/highlight.js/classref.txt
new file mode 100644
index 0000000..d45096a
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/classref.txt
@@ -0,0 +1,437 @@
+This is a full list of available classes corresponding to languages'
+syntactic structures. The parentheses after language name contain 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
+
+Go language ("go"):
+ comment comment
+ string string constant
+ number number
+ keyword language keywords
+ constant true false nil iota
+ typename built-in plain types (int, string etc.)
+ built_in built-in functions
+
+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"):
+
+ tag HTML tag in selectors
+ 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 "}"
+ property property name inside a rule
+ value property 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
+ important "!important" symbol
+
+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<...>")
+
+Objective C ("objectivec"):
+ keyword keyword
+ built_in Cocoa/Cocoa Touch constants and classes
+ number number
+ string string
+ comment comment
+ preprocessor preprocessor directive
+ class interface/implementation, protocol and forward class declaration
+
+Vala ("vala"):
+
+ keyword keyword
+ number number
+ string string
+ comment comment
+ class class definitions
+ title in class definition
+ constant ALL_UPPER_CASE
+
+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 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
+
+Diff ("diff"):
+
+ header file header
+ chunk chunk header within a file
+ addition added lines
+ deletion deleted lines
+ change changed lines
+
+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
+
+CMake ("cmake")
+
+ keyword keyword
+ number number
+ string string
+ comment commment
+ envvar $-variable
+
+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
+
+VHDL ("vhdl")
+
+ keyword keyword
+ number number
+ string string
+ comment commment
+ literal signal logical value
+
+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
+
+Haskell ("haskell"):
+
+ keyword keyword
+ built_in built-in typeclass/functions (Bool, Int)
+ number number
+ string string
+ comment comment
+ class type classes and other data types
+ title function name
+ label type class name
+
+Erlang ("erlang"):
+
+ comment comment
+ string string
+ number number
+ keyword keyword
+ record_name record access (#record_name)
+ title name of declaration function
+ variable variable (starts with capital letter or with _)
+ pp.keywords module's attribute (-attribute)
+ function_name atom or atom:atom in case of function call
diff --git a/vendor/highlight/lib/vendor/highlight.js/export.html b/vendor/highlight/lib/vendor/highlight.js/export.html
new file mode 100644
index 0000000..86ac892
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/export.html
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+ Highlited code export
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Write a code snippet
+ Get HTML to paste anywhere (for actual styles and colors see sample.css)
+
+
+
+
+
+
+
+
+
+
+ Export script: Vladimir Gubarkov
+ Highlighting: highlight.js
+
+
+
diff --git a/vendor/highlight/lib/vendor/highlight.js/highlight.js b/vendor/highlight/lib/vendor/highlight.js/highlight.js
new file mode 100644
index 0000000..4a4988a
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/highlight.js
@@ -0,0 +1,618 @@
+/*
+Syntax highlighting with language autodetection.
+http://softwaremaniacs.org/soft/highlight/
+*/
+
+var hljs = module.exports.hljs = new function() {
+
+ /* Utility functions */
+
+ function escape(value) {
+ return value.replace(/&/gm, '&').replace(/';
+ }
+
+ 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 += ('' + node.nodeName.toLowerCase() + '>');
+ } 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 subMode(lexem, mode) {
+ for (var i = 0; i < mode.contains.length; i++) {
+ if (mode.contains[i].beginRe.test(lexem)) {
+ return mode.contains[i];
+ }
+ }
+ }
+
+ 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 = [];
+
+ for (var i = 0; i < mode.contains.length; i++) {
+ terminators.push(mode.contains[i].begin);
+ }
+
+ var index = modes.length - 1;
+ do {
+ if (modes[index].end) {
+ terminators.push(modes[index].end);
+ }
+ index--;
+ } while (modes[index + 1].endsWithParent);
+
+ if (mode.illegal) {
+ terminators.push(mode.illegal);
+ }
+
+ return langRe(language, '(' + terminators.join('|') + ')', true);
+ }
+
+ function eatModeChunk(value, index) {
+ var mode = modes[modes.length - 1];
+ if (!mode.terminators) {
+ mode.terminators = compileTerminators(mode, language);
+ }
+ mode.terminators.lastIndex = index;
+ var match = mode.terminators.exec(value);
+ if (match)
+ return [value.substr(index, match.index - index), match[0], false];
+ else
+ return [value.substr(index), '', true];
+ }
+
+ 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)
+ return escape(buffer);
+ 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 && languages[mode.subLanguage]) {
+ var result = highlight(mode.subLanguage, buffer);
+ keyword_count += result.keyword_count;
+ return result.value;
+ } else {
+ return processKeywords(buffer, mode);
+ }
+ }
+
+ function startNewMode(mode, lexem) {
+ var markup = mode.className?'':'';
+ if (mode.returnBegin) {
+ result += markup;
+ mode.buffer = '';
+ } else if (mode.excludeBegin) {
+ result += escape(lexem) + markup;
+ mode.buffer = '';
+ } else {
+ result += markup;
+ mode.buffer = lexem;
+ }
+ modes.push(mode);
+ relevance += mode.relevance;
+ }
+
+ 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);
+ return new_mode.returnBegin;
+ }
+
+ var end_level = endOfMode(modes.length - 1, lexem);
+ if (end_level) {
+ var markup = current_mode.className?'':'';
+ 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].className?'
':'';
+ result += markup;
+ end_level--;
+ modes.length--;
+ }
+ var last_ended_mode = modes[modes.length - 1];
+ modes.length--;
+ modes[modes.length - 1].buffer = '';
+ if (last_ended_mode.starts) {
+ startNewMode(last_ended_mode.starts, '');
+ }
+ 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 {
+ language: language_name,
+ relevance: relevance,
+ keyword_count: keyword_count,
+ value: result
+ }
+ } catch (e) {
+ if (e == 'Illegal') {
+ return {
+ language: null,
+ relevance: 0,
+ keyword_count: 0,
+ value: escape(value)
+ }
+ } else {
+ throw e;
+ }
+ }
+ }
+
+ /* Initialization */
+
+ function compileModes() {
+
+ function compileMode(mode, language, is_default) {
+ if (mode.compiled)
+ return;
+
+ if (!is_default) {
+ mode.beginRe = langRe(language, mode.begin ? mode.begin : '\\B|\\b');
+ if (!mode.end && !mode.endsWithParent)
+ mode.end = '\\B|\\b'
+ if (mode.end)
+ mode.endRe = langRe(language, mode.end);
+ }
+ if (mode.illegal)
+ mode.illegalRe = langRe(language, mode.illegal);
+ if (mode.relevance == undefined)
+ mode.relevance = 1;
+ if (mode.keywords)
+ mode.lexemsRe = langRe(language, mode.lexems || hljs.IDENT_RE, true);
+ 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;
+ }
+ if (!mode.contains) {
+ mode.contains = [];
+ }
+ // compiled flag is set before compiling submodes to avoid self-recursion
+ // (see lisp where quoted_list contains quoted_list)
+ mode.compiled = true;
+ for (var i = 0; i < mode.contains.length; i++) {
+ compileMode(mode.contains[i], language, false);
+ }
+ if (mode.starts) {
+ compileMode(mode.starts, language, false);
+ }
+ }
+
+ for (var i in languages) {
+ if (!languages.hasOwnProperty(i))
+ continue;
+ compileMode(languages[i].defaultMode, languages[i], true);
+ }
+ }
+
+ function initialize() {
+ if (initialize.called)
+ return;
+ initialize.called = true;
+ compileModes();
+ }
+
+ /* Public library functions */
+
+ function highlightBlock(block, tabReplace, useBR) {
+ initialize();
+
+ var text = blockText(block, useBR);
+ var language = blockLanguage(block);
+ if (language == 'no-highlight')
+ return;
+ if (language) {
+ var result = highlight(language, text);
+ } else {
+ var result = {language: '', keyword_count: 0, relevance: 0, value: escape(text)};
+ var second_best = result;
+ for (var key in languages) {
+ if (!languages.hasOwnProperty(key))
+ continue;
+ var current = highlight(key, text);
+ if (current.keyword_count + current.relevance > second_best.keyword_count + second_best.relevance) {
+ second_best = current;
+ }
+ if (current.keyword_count + current.relevance > result.keyword_count + result.relevance) {
+ second_best = result;
+ result = current;
+ }
+ }
+ }
+
+ var class_name = block.className;
+ if (!class_name.match(result.language)) {
+ class_name = class_name ? (class_name + ' ' + result.language) : result.language;
+ }
+ var original = nodeStream(block);
+ if (original.length) {
+ var pre = document.createElement('pre');
+ pre.innerHTML = result.value;
+ result.value = mergeStreams(original, nodeStream(pre), text);
+ }
+ if (tabReplace) {
+ result.value = result.value.replace(/^((<[^>]+>|\t)+)/gm, function(match, p1, offset, s) {
+ return p1.replace(/\t/g, tabReplace);
+ })
+ }
+ if (useBR) {
+ result.value = result.value.replace(/\n/g, '
');
+ }
+ if (/MSIE [678]/.test(navigator.userAgent) && block.tagName == 'CODE' && block.parentNode.tagName == 'PRE') {
+ // This is for backwards compatibility only. IE needs this strange
+ // hack becasue it cannot just cleanly replace block contents.
+ var pre = block.parentNode;
+ var container = document.createElement('div');
+ container.innerHTML = '' + result.value + '
';
+ block = container.firstChild.firstChild;
+ container.firstChild.className = pre.className;
+ pre.parentNode.replaceChild(container.firstChild, pre);
+ } else {
+ block.innerHTML = result.value;
+ }
+ block.className = class_name;
+ block.dataset = {};
+ block.dataset.result = {
+ language: result.language,
+ kw: result.keyword_count,
+ re: result.relevance
+ };
+ if (second_best && second_best.language) {
+ block.dataset.second_best = {
+ language: second_best.language,
+ kw: second_best.keyword_count,
+ re: second_best.relevance
+ };
+ }
+ }
+
+ function highlightText(block, tabReplace, useBR) {
+ initialize();
+
+ var text = block;
+ var language;
+
+ var result = {language: '', keyword_count: 0, relevance: 0, value: escape(text)};
+ var second_best = result;
+ for (var key in languages) {
+ if (!languages.hasOwnProperty(key))
+ continue;
+ var current = highlight(key, text);
+ if (current.keyword_count + current.relevance > second_best.keyword_count + second_best.relevance) {
+ second_best = current;
+ }
+ if (current.keyword_count + current.relevance > result.keyword_count + result.relevance) {
+ second_best = result;
+ result = current;
+ }
+ }
+
+ if (tabReplace) {
+ result.value = result.value.replace(/^((<[^>]+>|\t)+)/gm, function(match, p1, offset, s) {
+ return p1.replace(/\t/g, tabReplace);
+ })
+ }
+ if (useBR) {
+ result.value = result.value.replace(/\n/g, '
');
+ }
+ return result.value;
+ }
+
+ function initHighlighting() {
+ if (initHighlighting.called)
+ return;
+ initHighlighting.called = true;
+ initialize();
+ 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;
+ }
+
+ var languages = {}; // a shortcut to avoid writing "this." everywhere
+
+ /* Interface definition */
+
+ this.LANGUAGES = languages;
+ this.initHighlightingOnLoad = initHighlightingOnLoad;
+ this.highlightBlock = highlightBlock;
+ this.initHighlighting = initHighlighting;
+ this.highlightText = highlightText;
+
+ // 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.BACKSLASH_ESCAPE = {
+ begin: '\\\\.', relevance: 0
+ };
+ this.APOS_STRING_MODE = {
+ className: 'string',
+ begin: '\'', end: '\'',
+ illegal: '\\n',
+ contains: [this.BACKSLASH_ESCAPE],
+ relevance: 0
+ };
+ this.QUOTE_STRING_MODE = {
+ className: 'string',
+ begin: '"', end: '"',
+ illegal: '\\n',
+ contains: [this.BACKSLASH_ESCAPE],
+ relevance: 0
+ };
+ this.C_LINE_COMMENT_MODE = {
+ className: 'comment',
+ begin: '//', end: '$'
+ };
+ this.C_BLOCK_COMMENT_MODE = {
+ className: 'comment',
+ begin: '/\\*', end: '\\*/'
+ };
+ this.HASH_COMMENT_MODE = {
+ className: 'comment',
+ begin: '#', end: '$'
+ };
+ this.NUMBER_MODE = {
+ className: 'number',
+ begin: this.NUMBER_RE,
+ relevance: 0
+ };
+ this.C_NUMBER_MODE = {
+ className: 'number',
+ begin: this.C_NUMBER_RE,
+ relevance: 0
+ };
+
+ // Utility functions
+ this.inherit = function(parent, obj) {
+ var result = {}
+ for (var key in parent)
+ result[key] = parent[key];
+ if (obj)
+ for (var key in obj)
+ result[key] = obj[key];
+ return result;
+ }
+}();
diff --git a/vendor/highlight/lib/vendor/highlight.js/highlight.pack.js b/vendor/highlight/lib/vendor/highlight.js/highlight.pack.js
new file mode 100644
index 0000000..70395db
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/highlight.pack.js
@@ -0,0 +1 @@
+var hljs=new function(){function l(o){return o.replace(/&/gm,"&").replace(/"}while(x.length||y.length){var u=t().splice(0,1)[0];v+=l(w.substr(q,u.offset-q));q=u.offset;if(u.event=="start"){v+=r(u.node);s.push(u.node)}else{if(u.event=="stop"){var p=s.length;do{p--;var o=s[p];v+=(""+o.nodeName.toLowerCase()+">")}while(o!=u.node);s.splice(p,1);while(p'+l(K[0])+"
"}else{M+=l(K[0])}O=N.lR.lastIndex;K=N.lR.exec(L)}M+=l(L.substr(O,L.length-O));return M}function J(r,L){if(L.sL&&d[L.sL]){var K=f(L.sL,r);s+=K.keyword_count;return K.value}else{return E(r,L)}}function H(L,r){var K=L.cN?'':"";if(L.rB){p+=K;L.buffer=""}else{if(L.eB){p+=l(r)+K;L.buffer=""}else{p+=K;L.buffer=r}}B.push(L);A+=L.r}function D(N,K,P){var Q=B[B.length-1];if(P){p+=J(Q.buffer+N,Q);return false}var L=y(K,Q);if(L){p+=J(Q.buffer+N,Q);H(L,K);return L.rB}var r=v(B.length-1,K);if(r){var M=Q.cN?"":"";if(Q.rE){p+=J(Q.buffer+N,Q)+M}else{if(Q.eE){p+=J(Q.buffer+N,Q)+M+l(K)}else{p+=J(Q.buffer+N+K,Q)+M}}while(r>1){M=B[B.length-2].cN?"":"";p+=M;r--;B.length--}var O=B[B.length-1];B.length--;B[B.length-1].buffer="";if(O.starts){H(O.starts,"")}return Q.rE}if(w(K,Q)){throw"Illegal"}}var G=d[I];var B=[G.dM];var A=0;var s=0;var p="";try{var u=0;G.dM.buffer="";do{var x=q(C,u);var t=D(x[0],x[1],x[2]);u+=x[0].length;if(!t){u+=x[1].length}}while(!x[2]);if(B.length>1){throw"Illegal"}return{language:I,r:A,keyword_count:s,value:p}}catch(F){if(F=="Illegal"){return{language:null,r:0,keyword_count:0,value:l(C)}}else{throw F}}}function h(){function o(t,s,u){if(t.compiled){return}if(!u){t.bR=c(s,t.b?t.b:"\\B|\\b");if(!t.e&&!t.eW){t.e="\\B|\\b"}if(t.e){t.eR=c(s,t.e)}}if(t.i){t.iR=c(s,t.i)}if(t.r==undefined){t.r=1}if(t.k){t.lR=c(s,t.l||hljs.IR,true)}for(var r in t.k){if(!t.k.hasOwnProperty(r)){continue}if(t.k[r] instanceof Object){t.kG=t.k}else{t.kG={keyword:t.k}}break}if(!t.c){t.c=[]}t.compiled=true;for(var q=0;qx.keyword_count+x.r){x=u}if(u.keyword_count+u.r>w.keyword_count+w.r){x=w;w=u}}}var s=t.className;if(!s.match(w.language)){s=s?(s+" "+w.language):w.language}var o=b(t);if(o.length){var q=document.createElement("pre");q.innerHTML=w.value;w.value=k(o,b(q),A)}if(y){w.value=w.value.replace(/^((<[^>]+>|\t)+)/gm,function(B,E,D,C){return E.replace(/\t/g,y)})}if(p){w.value=w.value.replace(/\n/g,"
")}if(/MSIE [678]/.test(navigator.userAgent)&&t.tagName=="CODE"&&t.parentNode.tagName=="PRE"){var q=t.parentNode;var v=document.createElement("div");v.innerHTML=""+w.value+"
";t=v.firstChild.firstChild;v.firstChild.cN=q.cN;q.parentNode.replaceChild(v.firstChild,q)}else{t.innerHTML=w.value}t.className=s;t.dataset={};t.dataset.result={language:w.language,kw:w.keyword_count,re:w.r};if(x&&x.language){t.dataset.second_best={language:x.language,kw:x.keyword_count,re:x.r}}}function j(){if(j.called){return}j.called=true;e();var q=document.getElementsByTagName("pre");for(var o=0;o|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\.",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.inherit=function(o,r){var q={};for(var p in o){q[p]=o[p]}if(r){for(var p in r){q[p]=r[p]}}return q}}();hljs.LANGUAGES.bash=function(){var d={"true":1,"false":1};var b={cN:"variable",b:"\\$([a-zA-Z0-9_]+)\\b"};var a={cN:"variable",b:"\\$\\{(([^}])|(\\\\}))+\\}",c:[hljs.CNM]};var c={cN:"string",b:'"',e:'"',i:"\\n",c:[hljs.BE,b,a],r:0};var e={cN:"test_condition",b:"",e:"",c:[c,b,a,hljs.CNM],k:{literal:d},r:0};return{dM:{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:d},c:[{cN:"shebang",b:"(#!\\/bin\\/bash)|(#!\\/bin\\/sh)",r:10},hljs.HCM,{cN:"comment",b:"\\/\\/",e:"$",i:"."},hljs.CNM,c,b,a,hljs.inherit(e,{b:"\\[ ",e:" \\]",r:0}),hljs.inherit(e,{b:"\\[\\[ ",e:" \\]\\]"})]}}}();hljs.LANGUAGES.erlang=function(){var g="[a-z'][a-zA-Z0-9_']*";var l="("+g+":"+g+"|"+g+")";var d={keyword:{after:1,and:1,andalso:10,band:1,begin:1,bnot:1,bor:1,bsl:1,bzr:1,bxor:1,"case":1,"catch":1,cond:1,div:1,end:1,fun:1,let:1,not:1,of:1,orelse:10,query:1,receive:1,rem:1,"try":1,when:1,xor:1},literal:{"false":1,"true":1}};var j={cN:"comment",b:"%",e:"$",r:0};var c={b:"fun\\s+"+g+"/\\d+"};var m={b:l+"\\(",e:"\\)",rB:true,r:0,c:[{cN:"function_name",b:l,r:0},{b:"\\(",e:"\\)",eW:true,rE:true,r:0}]};var f={cN:"tuple",b:"{",e:"}",r:0};var a={cN:"variable",b:"\\b_([A-Z][A-Za-z0-9_]*)?",r:0};var k={cN:"variable",b:"[A-Z][a-zA-Z0-9_]*",r:0};var h={b:"#",e:"}",i:".",r:0,rB:true,c:[{cN:"record_name",b:"#"+hljs.UIR,r:0},{b:"{",eW:true,r:0}]};var i={k:d,b:"(fun|receive|if|try|case)",e:"end"};i.c=[j,c,hljs.inherit(hljs.ASM,{cN:""}),i,m,hljs.QSM,hljs.CNM,f,a,k,h];var b=[j,c,i,m,hljs.QSM,hljs.CNM,f,a,k,h];m.c[1].c=b;f.c=b;h.c[1].c=b;var e={cN:"params",b:"\\(",e:"\\)",eW:true,c:b};return{dM:{k:d,i:"(|\\*=|\\+=|-=|/=|/\\*|\\*/|\\(\\*|\\*\\))",c:[{cN:"function",b:"^"+g+"\\(",e:";|\\.",rB:true,c:[e,{cN:"title",b:g},{k:d,b:"->",eW:true,c:b}]},j,{cN:"pp",b:"^-",e:"\\.",r:0,eE:true,rB:true,l:"-"+hljs.IR,k:{"-module":1,"-record":1,"-undef":1,"-export":1,"-ifdef":1,"-ifndef":1,"-author":1,"-copyright":1,"-doc":1,"-vsn":1,"-import":1,"-include":1,"-include_lib":1,"-compile":1,"-define":1,"-else":1,"-endif":1,"-file":1,"-behaviour":1,"-behavior":1},c:[e]},hljs.CNM,hljs.QSM,h,a,k,f]}}}();hljs.LANGUAGES.cs={dM:{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},c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"///|"},{cN:"xmlDocTag",b:"?",e:">"}]},hljs.CLCM,hljs.CBLCLM,{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},hljs.ASM,hljs.QSM,hljs.CNM]}};hljs.LANGUAGES.ruby=function(){var g="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var a="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var n={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}};var h={cN:"yardoctag",b:"@[A-Za-z]+"};var d={cN:"comment",b:"#",e:"$",c:[h]};var c={cN:"comment",b:"^\\=begin",e:"^\\=end",c:[h],r:10};var b={cN:"comment",b:"^__END__",e:"\\n$"};var u={cN:"subst",b:"#\\{",e:"}",l:g,k:n};var p=[hljs.BE,u];var s={cN:"string",b:"'",e:"'",c:p,r:0};var r={cN:"string",b:'"',e:'"',c:p,r:0};var q={cN:"string",b:"%[qw]?\\(",e:"\\)",c:p,r:10};var o={cN:"string",b:"%[qw]?\\[",e:"\\]",c:p,r:10};var m={cN:"string",b:"%[qw]?{",e:"}",c:p,r:10};var l={cN:"string",b:"%[qw]?<",e:">",c:p,r:10};var k={cN:"string",b:"%[qw]?/",e:"/",c:p,r:10};var j={cN:"string",b:"%[qw]?%",e:"%",c:p,r:10};var i={cN:"string",b:"%[qw]?-",e:"-",c:p,r:10};var t={cN:"string",b:"%[qw]?\\|",e:"\\|",c:p,r:10};var e={cN:"function",b:"\\bdef\\s+",e:" |$|;",l:g,k:n,c:[{cN:"title",b:a,l:g,k:n},{cN:"params",b:"\\(",e:"\\)",l:g,k:n},d,c,b]};var f={cN:"identifier",b:g,l:g,k:n,r:0};var v=[d,c,b,s,r,q,o,m,l,k,j,i,t,{cN:"class",b:"\\b(class|module)\\b",e:"$|;",k:{"class":1,module:1},c:[{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",r:0},{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+hljs.IR+"::)?"+hljs.IR}]},d,c,b]},e,{cN:"constant",b:"(::)?([A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[s,r,q,o,m,l,k,j,i,t,f],r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"number",b:"\\?\\w"},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},f,{b:"("+hljs.RSR+")\\s*",c:[d,c,b,{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:[hljs.BE]}],r:0}];u.c=v;e.c[1].c=v;return{dM:{l:g,k:n,c:v}}}();hljs.LANGUAGES.diff={cI:true,dM:{c:[{cN:"chunk",b:"^\\@\\@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +\\@\\@$",r:10},{cN:"chunk",b:"^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$",r:10},{cN:"chunk",b:"^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$",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:{k:{keyword:{ArchiveRecord:1,AreaLightSource:1,Atmosphere:1,Attribute:1,AttributeBegin:1,AttributeEnd:1,Basis:1,Begin:1,Blobby:1,Bound:1,Clipping:1,ClippingPlane:1,Color:1,ColorSamples:1,ConcatTransform:1,Cone:1,CoordinateSystem:1,CoordSysTransform:1,CropWindow:1,Curves:1,Cylinder:1,DepthOfField:1,Detail:1,DetailRange:1,Disk:1,Displacement:1,Display:1,End:1,ErrorHandler:1,Exposure:1,Exterior:1,Format:1,FrameAspectRatio:1,FrameBegin:1,FrameEnd:1,GeneralPolygon:1,GeometricApproximation:1,Geometry:1,Hider:1,Hyperboloid:1,Identity:1,Illuminate:1,Imager:1,Interior:1,LightSource:1,MakeCubeFaceEnvironment:1,MakeLatLongEnvironment:1,MakeShadow:1,MakeTexture:1,Matte:1,MotionBegin:1,MotionEnd:1,NuPatch:1,ObjectBegin:1,ObjectEnd:1,ObjectInstance:1,Opacity:1,Option:1,Orientation:1,Paraboloid:1,Patch:1,PatchMesh:1,Perspective:1,PixelFilter:1,PixelSamples:1,PixelVariance:1,Points:1,PointsGeneralPolygons:1,PointsPolygons:1,Polygon:1,Procedural:1,Projection:1,Quantize:1,ReadArchive:1,RelativeDetail:1,ReverseOrientation:1,Rotate:1,Scale:1,ScreenWindow:1,ShadingInterpolation:1,ShadingRate:1,Shutter:1,Sides:1,Skew:1,SolidBegin:1,SolidEnd:1,Sphere:1,SubdivisionMesh:1,Surface:1,TextureCoordinates:1,Torus:1,Transform:1,TransformBegin:1,TransformEnd:1,TransformPoints:1,Translate:1,TrimCurve:1,WorldBegin:1,WorldEnd:1}},i:"",c:[hljs.HCM,hljs.CNM,hljs.ASM,hljs.QSM]}};hljs.LANGUAGES.rsl={dM:{k:{keyword:{"float":1,color:1,point:1,normal:1,vector:1,matrix:1,"while":1,"for":1,"if":1,"do":1,"return":1,"else":1,"break":1,extern:1,"continue":1},built_in:{abs:1,acos:1,ambient:1,area:1,asin:1,atan:1,atmosphere:1,attribute:1,calculatenormal:1,ceil:1,cellnoise:1,clamp:1,comp:1,concat:1,cos:1,degrees:1,depth:1,Deriv:1,diffuse:1,distance:1,Du:1,Dv:1,environment:1,exp:1,faceforward:1,filterstep:1,floor:1,format:1,fresnel:1,incident:1,length:1,lightsource:1,log:1,match:1,max:1,min:1,mod:1,noise:1,normalize:1,ntransform:1,opposite:1,option:1,phong:1,pnoise:1,pow:1,printf:1,ptlined:1,radians:1,random:1,reflect:1,refract:1,renderinfo:1,round:1,setcomp:1,setxcomp:1,setycomp:1,setzcomp:1,shadow:1,sign:1,sin:1,smoothstep:1,specular:1,specularbrdf:1,spline:1,sqrt:1,step:1,tan:1,texture:1,textureinfo:1,trace:1,transform:1,vtransform:1,xcomp:1,ycomp:1,zcomp:1}},i:"",c:[hljs.CLCM,hljs.CBLCLM,hljs.QSM,hljs.ASM,hljs.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"shader",b:"surface |displacement |light |volume |imager ",e:"\\(",k:{surface:1,displacement:1,light:1,volume:1,imager:1}},{cN:"shading",b:"illuminate|illuminance|gather",e:"\\(",k:{illuminate:1,illuminance:1,gather:1}}]}};hljs.LANGUAGES.javascript={dM:{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}},c:[hljs.ASM,hljs.QSM,hljs.CLCM,hljs.CBLCLM,hljs.CNM,{b:"("+hljs.RSR+"|case|return|throw)\\s*",k:{"return":1,"throw":1,"case":1},c:[hljs.CLCM,hljs.CBLCLM,{cN:"regexp",b:"/.*?[^\\\\/]/[gim]*"}],r:0},{cN:"function",b:"\\bfunction\\b",e:"{",k:{"function":1},c:[{cN:"title",b:"[A-Za-z$_][0-9A-Za-z$_]*"},{cN:"params",b:"\\(",e:"\\)",c:[hljs.ASM,hljs.QSM,hljs.CLCM,hljs.CBLCLM]}]}]}};hljs.LANGUAGES.lua=function(){var b="\\[=*\\[";var e="\\]=*\\]";var a={b:b,e:e};a.c=[a];var d={cN:"comment",b:"--(?!"+b+")",e:"$"};var c={cN:"comment",b:"--"+b,e:e,c:[a],r:10};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:[d,c,{cN:"function",b:"\\bfunction\\b",e:"\\)",k:{"function":1},c:[{cN:"title",b:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"},{cN:"params",b:"\\(",eW:true,c:[d,c]},d,c]},hljs.CNM,hljs.ASM,hljs.QSM,{cN:"string",b:b,e:e,c:[a],r:10}]}}}();hljs.LANGUAGES.css=function(){var a={cN:"function",b:hljs.IR+"\\(",e:"\\)",c:[{eW:true,eE:true,c:[hljs.NM,hljs.ASM,hljs.QSM]}]};return{cI:true,dM:{i:"[=/|']",c:[hljs.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@font-face",l:"[a-z-]+",k:{"font-face":1}},{cN:"at_rule",b:"@",e:"[{;]",eE:true,k:{"import":1,page:1,media:1,charset:1},c:[a,hljs.ASM,hljs.QSM,hljs.NM]},{cN:"tag",b:hljs.IR,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[hljs.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[a,hljs.NM,hljs.QSM,hljs.ASM,hljs.CBLCLM,{cN:"hexcolor",b:"\\#[0-9A-F]+"},{cN:"important",b:"!important"}]}}]}]}]}}}();hljs.LANGUAGES.xml=function(){var b="[A-Za-z0-9\\._:-]+";var a={eW:true,c:[{cN:"attribute",b:b,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,dM:{c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"",r:10},{cN:"comment",b:"",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"",rE:true,sL:"css"}},{cN:"tag",b:"
+
+
+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/vendor/highlight/lib/vendor/highlight.js/readme.rus.txt b/vendor/highlight/lib/vendor/highlight.js/readme.rus.txt
new file mode 100644
index 0000000..8e21518
--- /dev/null
+++ b/vendor/highlight/lib/vendor/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/vendor/highlight/lib/vendor/highlight.js/styles/ascetic.css b/vendor/highlight/lib/vendor/highlight.js/styles/ascetic.css
new file mode 100644
index 0000000..f7249bb
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/styles/ascetic.css
@@ -0,0 +1,45 @@
+/*
+
+Original style from softwaremaniacs.org (c) Ivan Sagalaev
+
+*/
+
+pre code {
+ display: block; padding: 0.5em;
+ background: white; color: black;
+}
+
+pre .string,
+pre .tag .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 .css .tag,
+pre .ini .title,
+pre .winutils,
+pre .flow,
+pre .lisp .title,
+pre .apache .tag,
+pre .tex .command {
+ font-weight: bold;
+}
diff --git a/vendor/highlight/lib/vendor/highlight.js/styles/brown_paper.css b/vendor/highlight/lib/vendor/highlight.js/styles/brown_paper.css
new file mode 100644
index 0000000..6d152b4
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/styles/brown_paper.css
@@ -0,0 +1,105 @@
+/*
+
+Brown Paper style from goldblog.com.ua (c) Zaripov Yura
+
+*/
+
+pre code {
+ display: block; padding: 0.5em;
+ background:#b7a68e url(./brown_papersq.png);
+}
+
+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,
+pre .tag .keyword {
+ color: #363C69;
+}
+
+pre .string,
+pre .function .title,
+pre .class .title,
+pre .haskell .label,
+pre .ini .title,
+pre .tag .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 .haskell .label,
+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 .xml .css,
+pre .xml .javascript,
+pre .xml .vbscript,
+pre .tex .formula {
+ opacity: 0.8;
+}
diff --git a/vendor/highlight/lib/vendor/highlight.js/styles/brown_papersq.png b/vendor/highlight/lib/vendor/highlight.js/styles/brown_papersq.png
new file mode 100644
index 0000000..3813903
Binary files /dev/null and b/vendor/highlight/lib/vendor/highlight.js/styles/brown_papersq.png differ
diff --git a/vendor/highlight/lib/vendor/highlight.js/styles/dark.css b/vendor/highlight/lib/vendor/highlight.js/styles/dark.css
new file mode 100644
index 0000000..f58ff91
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/styles/dark.css
@@ -0,0 +1,103 @@
+/*
+
+Dark style from softwaremaniacs.org (c) Ivan Sagalaev
+
+*/
+
+pre code {
+ display: block; padding: 0.5em;
+ 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 .haskell .label,
+pre .ini .title,
+pre .tag .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,
+pre .input_number {
+ 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 .haskell .label,
+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 .xml .css,
+pre .xml .javascript,
+pre .xml .vbscript,
+pre .tex .formula {
+ opacity: 0.5;
+}
diff --git a/vendor/highlight/lib/vendor/highlight.js/styles/default.css b/vendor/highlight/lib/vendor/highlight.js/styles/default.css
new file mode 100644
index 0000000..2b0d3d1
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/styles/default.css
@@ -0,0 +1,121 @@
+/*
+
+Original style from softwaremaniacs.org (c) Ivan Sagalaev
+
+*/
+
+pre code {
+ display: block; padding: 0.5em;
+ background: #F0F0F0;
+}
+
+pre code,
+pre .ruby .subst,
+pre .tag .title,
+pre .lisp .title {
+ color: black;
+}
+
+pre .string,
+pre .title,
+pre .constant,
+pre .parent,
+pre .tag .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,
+pre .erlang_repl .function_or_atom {
+ 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 .go .constant,
+pre .change {
+ color: #080;
+}
+
+pre .label,
+pre .javadoc,
+pre .ruby .string,
+pre .decorator,
+pre .filter .argument,
+pre .localvars,
+pre .array,
+pre .attr_selector,
+pre .important,
+pre .pseudo,
+pre .pi,
+pre .doctype,
+pre .deletion,
+pre .envvar,
+pre .shebang,
+pre .apache .sqbracket,
+pre .nginx .built_in,
+pre .tex .formula,
+pre .erlang_repl .reserved,
+pre .input_number {
+ color: #88F
+}
+
+pre .css .tag,
+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 .go .typename,
+pre .tex .command {
+ font-weight: bold;
+}
+
+pre .nginx .built_in {
+ font-weight: normal;
+}
+
+pre .xml .css,
+pre .xml .javascript,
+pre .xml .vbscript,
+pre .tex .formula {
+ opacity: 0.5;
+}
diff --git a/vendor/highlight/lib/vendor/highlight.js/styles/far.css b/vendor/highlight/lib/vendor/highlight.js/styles/far.css
new file mode 100644
index 0000000..c4c9f65
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/styles/far.css
@@ -0,0 +1,118 @@
+/*
+
+FAR Style (c) MajestiC
+
+*/
+
+pre code {
+ display: block; padding: 0.5em;
+ background: #000080;
+}
+
+pre code,
+.ruby .subst {
+ color: #0FF;
+}
+
+pre .string,
+pre .ruby .string,
+pre .function .title,
+pre .class .title,
+pre .haskell .label,
+pre .ini .title,
+pre .tag .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 .haskell .label,
+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,
+pre .input_number {
+ color: #008080;
+}
+
+pre .keyword,
+pre .css .id,
+pre .function .title,
+pre .class .title,
+pre .haskell .label,
+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/vendor/highlight/lib/vendor/highlight.js/styles/github.css b/vendor/highlight/lib/vendor/highlight.js/styles/github.css
new file mode 100644
index 0000000..bd778a7
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/styles/github.css
@@ -0,0 +1,129 @@
+/*
+
+github.com style (c) Vasily Polovnyov
+
+*/
+
+pre code {
+ display: block; padding: 0.5em;
+ 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 .tag .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 .haskell .label,
+pre .tex .command {
+ color: #458;
+ font-weight: bold
+}
+
+pre .tag,
+pre .tag .title,
+pre .rules .property,
+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,
+pre .input_number {
+ 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/vendor/highlight/lib/vendor/highlight.js/styles/idea.css b/vendor/highlight/lib/vendor/highlight.js/styles/idea.css
new file mode 100644
index 0000000..3d8baab
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/styles/idea.css
@@ -0,0 +1,118 @@
+/*
+
+Intellij Idea-like styling (c) Vasily Polovnyov
+
+*/
+
+pre code {
+ display: block; padding: 0.5em;
+ 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,
+pre .input_number {
+ 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/vendor/highlight/lib/vendor/highlight.js/styles/ir_black.css b/vendor/highlight/lib/vendor/highlight.js/styles/ir_black.css
new file mode 100644
index 0000000..04bc719
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/styles/ir_black.css
@@ -0,0 +1,103 @@
+/*
+ IR_Black style (c) Vasily Mikhailitchenko
+*/
+
+pre code {
+ display: block; padding: 0.5em;
+ background: #000; color: #f8f8f8;
+}
+
+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 .tag .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 .haskell .label,
+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 .tag {
+ color: #96CBFE;
+}
+
+pre .css .rules .property,
+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/vendor/highlight/lib/vendor/highlight.js/styles/magula.css b/vendor/highlight/lib/vendor/highlight.js/styles/magula.css
new file mode 100644
index 0000000..646de7e
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/styles/magula.css
@@ -0,0 +1,118 @@
+/*
+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 code {
+ display: block; padding: 0.5em;
+ background-color: #f4f4f4;
+}
+
+pre code,
+pre .ruby .subst,
+pre .lisp .title {
+ color: black;
+}
+
+pre .string,
+pre .title,
+pre .parent,
+pre .tag .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,
+pre .input_number {
+ 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 .xml .css,
+pre .xml .javascript,
+pre .xml .vbscript,
+pre .tex .formula {
+ opacity: 0.5;
+}
+
+/* --- */
+pre .apache .tag {
+ font-weight: bold;
+ color: blue;
+}
+
diff --git a/vendor/highlight/lib/vendor/highlight.js/styles/school_book.css b/vendor/highlight/lib/vendor/highlight.js/styles/school_book.css
new file mode 100644
index 0000000..22cb686
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/styles/school_book.css
@@ -0,0 +1,111 @@
+/*
+
+School Book style from goldblog.com.ua (c) Zaripov Yura
+
+*/
+
+pre code {
+ display: block; padding: 15px 0.5em 0.5em 30px;
+ 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,
+pre .tag .keyword {
+ color: #3E5915;
+}
+
+pre .string,
+pre .function .title,
+pre .class .title,
+pre .haskell .label,
+pre .ini .title,
+pre .tag .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 .haskell .label,
+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 .xml .css,
+pre .xml .javascript,
+pre .xml .vbscript,
+pre .tex .formula {
+ opacity: 0.5;
+}
diff --git a/vendor/highlight/lib/vendor/highlight.js/styles/school_book.png b/vendor/highlight/lib/vendor/highlight.js/styles/school_book.png
new file mode 100644
index 0000000..956e979
Binary files /dev/null and b/vendor/highlight/lib/vendor/highlight.js/styles/school_book.png differ
diff --git a/vendor/highlight/lib/vendor/highlight.js/styles/sunburst.css b/vendor/highlight/lib/vendor/highlight.js/styles/sunburst.css
new file mode 100644
index 0000000..79339b9
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/styles/sunburst.css
@@ -0,0 +1,147 @@
+/*
+
+Sunburst-like style (c) Vasily Polovnyov
+
+*/
+
+pre code {
+ display: block; padding: 0.5em;
+ background: #000; color: #f8f8f8;
+}
+
+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 .tag .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,
+pre .input_number {
+ color: #89BDFF;
+}
+
+pre .class .title,
+pre .haskell .label,
+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 .tag,
+pre .rules .property,
+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/vendor/highlight/lib/vendor/highlight.js/styles/vs.css b/vendor/highlight/lib/vendor/highlight.js/styles/vs.css
new file mode 100644
index 0000000..3b9a33a
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/styles/vs.css
@@ -0,0 +1,84 @@
+/*
+
+Visual Studio-like style based on original C# coloring by Jason Diamond
+
+*/
+pre code {
+ display: block; padding: 0.5em;
+}
+
+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 .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,
+pre .input_number {
+ color: rgb(43, 145, 175);
+}
+
+pre .phpdoc,
+pre .javadoc,
+pre .xmlDocTag {
+ color: rgb(128, 128, 128);
+}
+
+pre .vhdl .type { font-weight: bold; }
+pre .vhdl .string { color: #666666; }
+pre .vhdl .literal { color: rgb(163, 21, 21); }
+
diff --git a/vendor/highlight/lib/vendor/highlight.js/styles/zenburn.css b/vendor/highlight/lib/vendor/highlight.js/styles/zenburn.css
new file mode 100644
index 0000000..f4070ca
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/styles/zenburn.css
@@ -0,0 +1,115 @@
+/*
+
+Zenburn style from voldmar.ru (c) Vladimir Epifanov
+based on dark.css by Ivan Sagalaev
+
+*/
+
+pre code {
+ display: block; padding: 0.5em;
+ 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 .haskell .label,
+pre .function .title,
+pre .ini .title,
+pre .diff .header,
+pre .ruby .class .parent,
+pre .apache .tag,
+pre .nginx .built_in,
+pre .tex .command,
+pre .input_number {
+ 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 .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 .xml .css,
+pre .xml .javascript,
+pre .xml .vbscript,
+pre .tex .formula {
+ opacity: 0.5;
+}
+
diff --git a/vendor/highlight/lib/vendor/highlight.js/test.html b/vendor/highlight/lib/vendor/highlight.js/test.html
new file mode 100644
index 0000000..6458615
--- /dev/null
+++ b/vendor/highlight/lib/vendor/highlight.js/test.html
@@ -0,0 +1,1598 @@
+
+
+ highlight.js test
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This is a demo/test page showing all languages supported by highlight.js.
+Most snippets do not contain working code :-).
+
+
+ Styles
+
+
+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
+ }
+ )
+ }
+}
+
+
+
+ Go
+
+package main
+
+import (
+ "fmt"
+ "rand"
+ "os"
+)
+
+const (
+ Sunday = iota
+ Partyday
+ numberOfDays // this constant is not exported
+)
+
+type Foo interface {
+ FooFunc(int, float32) (complex128, []int)
+}
+
+// simple comment
+type Bar struct {
+ os.File /* multi
+ line
+ comment */
+
+ PublicData chan int
+}
+
+func main() {
+ ch := make(chan int)
+ ch <- 1
+ x, ok := <- ch
+ ok = true
+ x = nil
+ float_var := 1.0e10
+ defer fmt.Println('exitting \' now')
+ defer fmt.Println(`exitting \` now`)
+ var fv1 float64 = 0.75
+ go println(len("hello world!"))
+ return
+}
+
+
+
+
+ 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)
+
+<!DOCTYPE html5>
+<head>
+ <title>Title</title>
+
+ <style>
+ body {
+ width: 500px;
+ }
+ </style>
+
+ <script type="application/javascript">
+ 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 {% if article.today %}class="today"{% endif %}>{{ 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);
+ }
+ }
+}
+
+@font-face {
+ font-family: Chunkfive;
+ src: url('Chunkfive.otf');
+}
+
+#content {
+ width: /* wide enough */ 100% /* 400px */;
+ height: 100%
+}
+
+p[lang=ru] {
+ color: #F0F0F0; background: white !important;
+}
+
+
+
+ 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 (auto i = 0; i < 0xFFFF; i++)
+ cout << "Hello, World!" << endl;
+
+ char c = '\n'; // just a test
+ unordered_map <string, vector<string> > m;
+ m["key"] = "\\\\"; // yeah, I know it's an error
+}
+
+
+
+ Objective C
+
+
+
+#import <UIKit/UIKit.h>
+#import "Dependency.h"
+
+@protocol WorldDataSource
+@optional
+- (NSString*)worldName;
+@required
+- (BOOL)allowsToLive;
+@end
+
+@interface Test : NSObject <HelloDelegate, WorldDataSource> {
+ NSString *_greeting;
+}
+
+@property (nonatomic, readonly) NSString *greeting;
+- (IBAction) show;
+@end
+
+@implementation Test
+
+@synthesize test=_test;
+
++ (id) test {
+ return [self testWithGreeting:@"Hello, world!\nFoo bar!"];
+}
+
++ (id) testWithGreeting:(NSString*)greeting {
+ return [[[self alloc] initWithGreeting:greeting] autorelease];
+}
+
+- (id) initWithGreeting:(NSString*)greeting {
+ if ( (self = [super init]) ) {
+ _greeting = [greeting retain];
+ }
+ return self;
+}
+
+- (void) dealloc {
+ [_greeting release];
+ [super dealloc];
+}
+
+@end
+
+
+
+
+ Vala
+
+using DBus;
+
+namespace Test {
+ class Foo : Object {
+ public signal void some_event (); // definition of the signal
+ public void method () {
+ some_event (); // emitting the signal (callbacks get invoked)
+ }
+ }
+}
+
+/* defining a class */
+class Track : GLib.Object { /* subclassing 'GLib.Object' */
+ public double mass; /* a public field */
+ public double name { get; set; } /* a public property */
+ private bool terminated = false; /* a private field */
+ public void terminate() { /* a public method */
+ terminated = true;
+ }
+}
+
+const ALL_UPPER_CASE = "you should follow this convention";
+
+var t = new Track(); // same as: Track t = new Track();
+var s = "hello"; // same as: string s = "hello";
+var l = new List<int>(); // same as: List<int> l = new List<int>();
+var i = 10; // same as: int i = 10;
+
+
+#if (ololo)
+Regex regex = /foo/;
+#endif
+
+/*
+ * Entry point can be outside class
+ */
+void main () {
+ var long_string = """
+ Example of "verbatim string".
+ Same as in @"string" in C#
+ """
+ var foo = new Foo ();
+ foo.some_event.connect (callback_a); // connecting the callback functions
+ foo.some_event.connect (callback_b);
+ foo.method ();
+}
+
+
+
+ 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 :"
+}
+
+
+
+ CMake
+
+project(test)
+cmake_minimum_required(VERSION 2.6)
+
+# IF LINUX
+if (${CMAKE_SYSTEM_NAME} MATCHES Linux)
+ message("\nOS:\t\tLinux")
+endif()
+
+# IF WINDOWS
+if (${CMAKE_SYSTEM_NAME} MATCHES Windows)
+ message("\nOS:\t\tWindows")
+endif()
+
+set(test test0.cpp test1.cpp test2.cpp)
+
+include_directories(./)
+
+set(EXECUTABLE_OUTPUT_PATH ../bin)
+
+add_subdirectory(src)
+
+add_executable(test WIN32 ${test})
+
+target_link_libraries(test msimg32)
+
+
+
+ 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
+
+
+
+ VHDL
+
+------------------------------------
+-- RS Trigger with Assynch. Reset --
+------------------------------------
+
+library IEEE;
+use IEEE.STD_LOGIC_1164.all;
+
+entity RS_AR is
+ generic (T: Time := 0ns);
+
+ port(
+ -- Default RS Trigger
+ R : in STD_LOGIC;
+ S : in STD_LOGIC;
+ Q : out STD_LOGIC;
+ nQ : out STD_LOGIC;
+
+ -- Special Input Signals
+ AR : in STD_LOGIC; -- assynch. reset
+ C : in STD_LOGIC -- synch. signal
+ );
+end RS_AR;
+
+
+architecture RS_AR of RS_AR is
+ signal QT: std_logic; -- Q(t)
+begin
+
+ process(C, AR) is
+ subtype RS is std_logic_vector ( 1 downto 0 );
+ begin
+ if AR='0' then
+ QT <= '0';
+ else
+ if rising_edge(C) then
+
+ if not (R'stable(T) and S'stable(T)) then
+ QT <= 'X';
+ else
+
+ case RS'(R&S) is
+ when "01" => QT <= '1';
+ when "10" => QT <= '0';
+ when "11" => QT <= 'X';
+ when others => null;
+ end case;
+
+ end if;
+ end if;
+ end if;
+ end process;
+
+ Q <= QT;
+ nQ <= not QT;
+
+end RS_AR;
+
+
+
+ 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}
+
+
+
+ Haskell
+
+
+module Shapes
+( Point(..) ,
+ Shape(..) ,
+ surface ,
+ baseCircle ,
+ baseRect
+) where
+
+-- Single line comment
+{-
+multi
+line
+comment
+-}
+data Point = Point Float Float deriving (Show)
+data Shape = Circle Point Float | Rectangle Point Point deriving (Show)
+
+surface :: Shape -> Float
+surface (Circle _ r) = pi * r^2
+surface (Rectangle (Point x1 y1) (Point x2 y2)) = (abs $ x2 - x1) * (abs $ y2 - y1)
+
+baseCircle :: Float -> Shape
+baseCircle r = Circle(Point 0 0) r
+
+baseRect :: Float -> Float -> Shape
+baseRect w h = Rectangle (Point 0 0) (Point w h)
+
+
+
+ Erlang
+
+-module(ssh_cli).
+
+-behaviour(ssh_channel).
+
+-include("ssh.hrl").
+%% backwards compatibility
+-export([listen/1, listen/2, listen/3, listen/4, stop/1]).
+
+%% state
+-record(state, {
+ cm,
+ channel
+ }).
+
+test(Foo)->Foo.
+
+init([Shell, Exec]) ->
+ {ok, #state{shell = Shell, exec = Exec}};
+init([Shell]) ->
+ false = not true,
+ io:format("Hello, \"~p!~n", [atom_to_list('World')]),
+ {ok, #state{shell = Shell}}.
+
+concat([Single]) -> Single;
+concat(RList) ->
+ EpsilonFree = lists:filter(
+ fun (Element) ->
+ case Element of
+ epsilon -> false;
+ _ -> true
+ end
+ end,
+ RList),
+ case EpsilonFree of
+ [Single] -> Single;
+ Other -> {concat, Other}
+ end.
+
+union_dot_union({union, _}=U1, {union, _}=U2) ->
+ union(lists:flatten(
+ lists:map(
+ fun (X1) ->
+ lists:map(
+ fun (X2) ->
+ concat([X1, X2])
+ end,
+ union_to_list(U2)
+ )
+ end,
+ union_to_list(U1)
+ ))).
+
+
+
+ Erlang REPL
+
+1> Str = "abcd".
+"abcd"
+2> L = test:length(Str).
+4
+3> Descriptor = {L, list_to_atom(Str)}.
+{4,abcd}
+4> L.
+4
+5> b().
+Descriptor = {4,abcd}
+L = 4
+Str = "abcd"
+ok
+6> f(L).
+ok
+7> b().
+Descriptor = {4,abcd}
+Str = "abcd"
+ok
+8> {L, _} = Descriptor.
+{4,abcd}
+9> L.
+4
+
+
+
+
+
+
+
+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)
+
+
+
+ Non-pre container
+
+for x in [1, 2, 3]:
+ count(x)
+
+
+
+
+ Disabled highlighting
+
+<div id="contents">
+ <p>Hello, World!
+</div>
+
+
+
diff --git a/vendor/highlight/package.json b/vendor/highlight/package.json
new file mode 100644
index 0000000..52d42f6
--- /dev/null
+++ b/vendor/highlight/package.json
@@ -0,0 +1,26 @@
+{
+ "name" : "highlight",
+ "description" : "Highlight code syntax with node.js",
+ "version" : "0.2.0",
+ "author" : "Andris Reinman",
+ "maintainers":[
+ {
+ "name":"andris",
+ "email":"andris@node.ee"
+ }
+ ],
+
+ "repository" : {
+ "type" : "git",
+ "url" : "http://github.com/andris9/highlight.git"
+ },
+
+ "directories" : { "lib" : "./lib" },
+ "main" : "./lib/highlight",
+ "licenses" : [
+ {
+ "type": "BSD",
+ "url": "http://github.com/andris9/highlight/blob/master/LICENSE"
+ }
+ ]
+}