From 961a2109748a51ef39ff94dd2df90f8cc0af5384 Mon Sep 17 00:00:00 2001 From: indexzero Date: Sun, 11 Nov 2012 19:20:19 -0500 Subject: [PATCH] [dist] Bankruptcy before v1.0.0 --- .gitignore | 4 - .npmignore | 0 LICENSE | 19 - README.md | 61 - bin/blacksmith | 62 - bin/server | 16 - config.json | 6 - lib/blacksmith.js | 156 -- lib/commands/generate.js | 61 - lib/commands/init.js | 112 -- lib/commands/post.js | 82 - lib/commands/preview.js | 21 - lib/fs2.js | 229 --- lib/helpers.js | 248 --- lib/jquery.js | 167 -- lib/loaders/authors.js | 50 - lib/loaders/content.js | 28 - lib/loaders/errors.js | 22 - lib/loaders/rss.js | 24 - lib/loaders/theme.js | 64 - lib/loaders/toc.js | 11 - lib/renderers/archive.js | 289 --- lib/renderers/content.js | 425 ----- lib/renderers/errors.js | 87 - lib/renderers/files.js | 50 - lib/renderers/rss.js | 71 - lib/renderers/theme.js | 56 - lib/toc.js | 125 -- lib/toc/sorters.js | 125 -- package.json | 40 - vendor/highlight/LICENSE | 29 - vendor/highlight/README.md | 37 - vendor/highlight/examples/test.js | 25 - vendor/highlight/lib/highlight.js | 33 - .../lib/vendor/highlight.js/AUTHORS.en.txt | 45 - .../lib/vendor/highlight.js/AUTHORS.ru.txt | 45 - .../highlight/lib/vendor/highlight.js/LICENSE | 24 - .../lib/vendor/highlight.js/README.md | 122 -- .../lib/vendor/highlight.js/README.ru.md | 128 -- .../lib/vendor/highlight.js/classref.txt | 437 ----- .../lib/vendor/highlight.js/export.html | 87 - .../lib/vendor/highlight.js/highlight.js | 618 ------- .../lib/vendor/highlight.js/highlight.pack.js | 1 - .../lib/vendor/highlight.js/highlight_src.js | 585 ------ .../lib/vendor/highlight.js/languages/bash.js | 63 - .../highlight.js/languages/javascript.js | 54 - .../lib/vendor/highlight.js/languages/ruby.js | 205 --- .../lib/vendor/highlight.js/readme.eng.txt | 486 ----- .../lib/vendor/highlight.js/readme.rus.txt | 494 ----- .../vendor/highlight.js/styles/ascetic.css | 45 - .../highlight.js/styles/brown_paper.css | 105 -- .../highlight.js/styles/brown_papersq.png | Bin 18198 -> 0 bytes .../lib/vendor/highlight.js/styles/dark.css | 103 -- .../vendor/highlight.js/styles/default.css | 121 -- .../lib/vendor/highlight.js/styles/far.css | 118 -- .../lib/vendor/highlight.js/styles/github.css | 129 -- .../lib/vendor/highlight.js/styles/idea.css | 118 -- .../vendor/highlight.js/styles/ir_black.css | 103 -- .../lib/vendor/highlight.js/styles/magula.css | 118 -- .../highlight.js/styles/school_book.css | 111 -- .../highlight.js/styles/school_book.png | Bin 486 -> 0 bytes .../vendor/highlight.js/styles/sunburst.css | 147 -- .../lib/vendor/highlight.js/styles/vs.css | 84 - .../vendor/highlight.js/styles/zenburn.css | 115 -- .../lib/vendor/highlight.js/test.html | 1598 ----------------- vendor/highlight/package.json | 26 - 66 files changed, 9270 deletions(-) delete mode 100644 .gitignore delete mode 100644 .npmignore delete mode 100644 LICENSE delete mode 100644 README.md delete mode 100755 bin/blacksmith delete mode 100755 bin/server delete mode 100644 config.json delete mode 100644 lib/blacksmith.js delete mode 100644 lib/commands/generate.js delete mode 100644 lib/commands/init.js delete mode 100644 lib/commands/post.js delete mode 100644 lib/commands/preview.js delete mode 100644 lib/fs2.js delete mode 100644 lib/helpers.js delete mode 100644 lib/jquery.js delete mode 100644 lib/loaders/authors.js delete mode 100644 lib/loaders/content.js delete mode 100644 lib/loaders/errors.js delete mode 100644 lib/loaders/rss.js delete mode 100644 lib/loaders/theme.js delete mode 100644 lib/loaders/toc.js delete mode 100644 lib/renderers/archive.js delete mode 100644 lib/renderers/content.js delete mode 100644 lib/renderers/errors.js delete mode 100644 lib/renderers/files.js delete mode 100644 lib/renderers/rss.js delete mode 100644 lib/renderers/theme.js delete mode 100644 lib/toc.js delete mode 100644 lib/toc/sorters.js delete mode 100644 package.json delete mode 100644 vendor/highlight/LICENSE delete mode 100644 vendor/highlight/README.md delete mode 100644 vendor/highlight/examples/test.js delete mode 100644 vendor/highlight/lib/highlight.js delete mode 100644 vendor/highlight/lib/vendor/highlight.js/AUTHORS.en.txt delete mode 100644 vendor/highlight/lib/vendor/highlight.js/AUTHORS.ru.txt delete mode 100644 vendor/highlight/lib/vendor/highlight.js/LICENSE delete mode 100644 vendor/highlight/lib/vendor/highlight.js/README.md delete mode 100644 vendor/highlight/lib/vendor/highlight.js/README.ru.md delete mode 100644 vendor/highlight/lib/vendor/highlight.js/classref.txt delete mode 100644 vendor/highlight/lib/vendor/highlight.js/export.html delete mode 100644 vendor/highlight/lib/vendor/highlight.js/highlight.js delete mode 100644 vendor/highlight/lib/vendor/highlight.js/highlight.pack.js delete mode 100644 vendor/highlight/lib/vendor/highlight.js/highlight_src.js delete mode 100644 vendor/highlight/lib/vendor/highlight.js/languages/bash.js delete mode 100644 vendor/highlight/lib/vendor/highlight.js/languages/javascript.js delete mode 100644 vendor/highlight/lib/vendor/highlight.js/languages/ruby.js delete mode 100644 vendor/highlight/lib/vendor/highlight.js/readme.eng.txt delete mode 100644 vendor/highlight/lib/vendor/highlight.js/readme.rus.txt delete mode 100644 vendor/highlight/lib/vendor/highlight.js/styles/ascetic.css delete mode 100644 vendor/highlight/lib/vendor/highlight.js/styles/brown_paper.css delete mode 100644 vendor/highlight/lib/vendor/highlight.js/styles/brown_papersq.png delete mode 100644 vendor/highlight/lib/vendor/highlight.js/styles/dark.css delete mode 100644 vendor/highlight/lib/vendor/highlight.js/styles/default.css delete mode 100644 vendor/highlight/lib/vendor/highlight.js/styles/far.css delete mode 100644 vendor/highlight/lib/vendor/highlight.js/styles/github.css delete mode 100644 vendor/highlight/lib/vendor/highlight.js/styles/idea.css delete mode 100644 vendor/highlight/lib/vendor/highlight.js/styles/ir_black.css delete mode 100644 vendor/highlight/lib/vendor/highlight.js/styles/magula.css delete mode 100644 vendor/highlight/lib/vendor/highlight.js/styles/school_book.css delete mode 100644 vendor/highlight/lib/vendor/highlight.js/styles/school_book.png delete mode 100644 vendor/highlight/lib/vendor/highlight.js/styles/sunburst.css delete mode 100644 vendor/highlight/lib/vendor/highlight.js/styles/vs.css delete mode 100644 vendor/highlight/lib/vendor/highlight.js/styles/zenburn.css delete mode 100644 vendor/highlight/lib/vendor/highlight.js/test.html delete mode 100644 vendor/highlight/package.json diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 788788e..0000000 --- a/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.DS_Store -node_modules -public -npm-debug.log diff --git a/.npmignore b/.npmignore deleted file mode 100644 index e69de29..0000000 diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 7f6c786..0000000 --- a/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011-2012 Nodejitsu Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index 5500437..0000000 --- a/README.md +++ /dev/null @@ -1,61 +0,0 @@ -# blacksmith - -*A static site generator built with Node.js, JSDOM, and Weld.* - -## - -Blacksmith is a static site generator designed for simplicity and ease of use. Blacksmith will generate your content in seconds as a stand-alone static site ( comprised of HTML / CSS ) that can be hosted anywhere with no dependencies. Articles are edited as Markdown files, and themes are just plain HTML and CSS files (no inane microtemplates or strange markup languages). - -Static sites are generated using Weld and JSDOM. Blacksmith also ships with a built in Node.js static file server, so Blacksmith can host itself, if you'd like. - - -## Features - - * Easy to use - * Can be hosted anywhere, since it generates static HTML/CSS - * Write and Edit articles on the file system using markdown - * JSDOM / Weld based - * Easily create custom themes using plain HTML and CSS ( no micro-templating ! ) - * Ships with a robust node.js static server suitable for production - -## Installing Blacksmith - - npm install blacksmith -g - -## Usage - -Now that you have blacksmith, you can use the cli tool to get started! - -### Create a new site - - blacksmith init - -### Create a new page - - cd myBlog/pages - blacksmith post - -### Generate a static site - -*This command will generate a new version of your blog using source files from the `./pages` folder and put the generated content into `./public/`.* - - # In your site's root - blacksmith generate - -### Serving your static site - -You can serve what's in `./public` on any static HTTP server and it's good to go! - -Alternately, blacksmith comes with a simple http server: - - blacksmith preview - -and can be deployed to Nodejitsu as-is: - - jitsu deploy - -# Want to learn more? - -The documentation for blacksmith is hosted as a blacksmith site. [Check it out!](http://blacksmith.jit.su) - -#### Author: Nodejitsu Inc. diff --git a/bin/blacksmith b/bin/blacksmith deleted file mode 100755 index 688bec2..0000000 --- a/bin/blacksmith +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env node - -var flatiron = require("flatiron"), - util = require("utile"), - path = require("path"), - fs = require("fs"), - smith = require("../lib/blacksmith"), - winston = require("winston"), // TODO: Use log plugin - colors = require("colors"), - cliff = require("cliff"), - app = flatiron.app; - -app.use(flatiron.plugins.cli, { - dir: __dirname + "/../lib/commands", - usage: [ - "", - ",, ,, ,, , ,, ".yellow, - "|| || _ || ' || || ".yellow, - "||/|, || < \\, _-_ ||/\\ _-_, \\\\/\\\\/\\\\ \\\\ =||= ||/\\\\ ".yellow, - "|| || || /-|| || ||_< ||_. || || || || || || || ".yellow, - "|| |' || (( || || || | ~ || || || || || || || || ".yellow, - "\\\\/ \\\\ \\/\\\\ \\\\,/ \\\\,\\ ,-_- \\\\ \\\\ \\\\ \\\\ \\\\, \\\\ |/ ".yellow, - " _/ ".yellow, - "", - "The static site generator " + "from "+"Nodejitsu".grey+"!", - "https://github.com/flatiron/blacksmith", - "", - "Usage:".yellow.bold, - "", - " blacksmith ...", - "", - "Commands:".yellow.bold, - "", - "* "+"`blacksmith generate`".yellow+": Generate a static site", - "* "+"`blacksmith preview`".yellow +": Serve your static site on localhost", - "* "+"`blacksmith init`".yellow +": Create a new blacksmith site", - "* "+"`blacksmith post`".yellow+": Create a new page for your site", - "", - "For more help, visit:", - "", - "* "+"https://github.com/flatiron/blacksmith".yellow.bold, - "" - ].join("\n") -}); - -if (app.argv.v) { - // If version requested, print it and exit without doing anything else. - console.log(util.file.readJsonSync(__dirname + '/../package.json').version); - process.exit(); -} - - -smith.log.info("Welcome to "+"Blacksmith".yellow); -smith.log.info("It worked if it ends with " + "Blacksmith".yellow + " ok".green.bold); - -app.init(function (err) { - if (err) { - return err.stack.forEach(winston.error); - } - - app.start(); -}); diff --git a/bin/server b/bin/server deleted file mode 100755 index 8d13134..0000000 --- a/bin/server +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env node - -var HTTPServer = require('http-server').HTTPServer; - -var httpServer = new HTTPServer({ - root: './public/' -}); - -httpServer.listen(process.env.PORT || process.env.C9_PORT || 80); - -httpServer.log = require("winston").info; - -process.on('SIGINT', function() { - httpServer.log('http-server stopped.'.red); - return process.exit(); -}); diff --git a/config.json b/config.json deleted file mode 100644 index f067d2f..0000000 --- a/config.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "tags": [ - "blacksmith", - "notacms" - ] -} diff --git a/lib/blacksmith.js b/lib/blacksmith.js deleted file mode 100644 index bba1536..0000000 --- a/lib/blacksmith.js +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Blacksmith - Top-level include for the blacksmith project - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var smith = exports, - winston = require('winston'), - path = require('path'), - jsdom = require('jsdom'), - fs = require('fs'), - nconf = require('nconf'), - prompt = require('prompt'); - -smith.helpers = require('./helpers'); -smith.sites = require('blacksmith-sites'); - -// TODO: Make configurable. -smith.log = new winston.Logger({ - transports: [ - new winston.transports.Console({ - level: 'debug', - colorize: true - }) - ] -}); - -// Use nconf to manage global configuration. Attached to smith object for later -// use. -smith.config = nconf; - -// Try to load configuration if the file exists. -if (path.existsSync('./config.json')) { - smith.config.add("global", { type: "file", file: "./config.json"}); -} - -// smith.loaders is a list of key/value pairs so we can depend on method -// execution being in-order. -smith.loaders = [ - 'authors', - 'theme', - 'content', - 'toc', - 'rss', - 'errors' -].map(function (k) { - var t = {}; - t[k] = require('./loaders/' + k); - return t; -}); - -// smith.renderers is a list of key/value pairs so we can depend on method -// execution being in-order. -smith.renderers = [ - 'theme', - 'content', - 'archive', - 'files', - 'rss', - 'errors' -].map(function (k) { - var t = {}; - t[k] = require('./renderers/' + k); - return t; -}); - -// smith.content will store static content during generation. -// Examples include articles, themes and authors. -smith.content = {}; - -smith.generate = exports.generate = function (src, dst, cb) { - - smith.content = {}; - - // Attach source and destination paths to the smith. This will eventually - // enable multi-site generation. - smith.src = path.resolve(src); - smith.dst = path.resolve(dst); - smith.log.silly('Source directory: '+smith.src); - smith.log.silly('Destination directory: '+smith.dst); - - jsdom.env( "", ['./jquery.js'], function (err, window) { - if (err) { - smith.log.error("Error while creating jsdom: "+err.message); - throw err; - } - - // This is so we can call jquery later (smith.window.$) - smith.window = window; - - // We pass an empty DOM element to each generator. This is used for - // Weld-based templating. - // - // We could pass the window object around, or create multiple windows, or - // even just create multiple jsdoms. Using a div, however, is simple and - // relatively performant. - var div = window.document.createElement('div'); - - smith.loaders.forEach( function (loader) { - var name = Object.keys(loader)[0]; - - smith.log.info('Loading "' + name + '"'); - - try { - // Load assets - // TODO: Rename "content" to something more appropriate - smith.content[name] = loader[name].load(true); - - } catch (err) { - smith.log.error( 'Problem loading "' + name + '"' ); - String(err.stack).split("\n").forEach(smith.log.error); - cb(1); - } - - }); - - // Iterate through every generator, each of which may output a set of - // files and/or directories. - // This block is wrapped in a try / catch since JSDOM is squashing some - // errors. - smith.renderers.forEach( function (renderer) { - // Grabs the name given to the generator. - var name = Object.keys(renderer)[0]; - - smith.log.info('Rendering "'+name+'"'); - - try { - // Perform a weld on the div. - renderer[name].weld(div, smith.content[name]); - - // Write the content to disk. - // - // Note: jsdom strips doctypes. If we were using full doms we could - // access the doctype for each individual page, but - // because we're using the div to contain our document this - // information never gets added to jsdom. - // - // The doctype for jsdom gets set explicitly during content loading. - renderer[name].generate( - smith.window.document.doctype - + '\n' - + div.innerHTML, smith.content[name] - ); - } catch (err) { - smith.log.error( 'Problem rendering "' + name + '"' ); - String(err.stack).split("\n").forEach(smith.log.error); - cb(1); - } - }); - - cb(0); - - }); - -}; diff --git a/lib/commands/generate.js b/lib/commands/generate.js deleted file mode 100644 index 29d6ace..0000000 --- a/lib/commands/generate.js +++ /dev/null @@ -1,61 +0,0 @@ -var smith = require("../blacksmith"), - winston = require("winston"), - fs = require("fs"), - colors = require("colors"), - path = require("path"); - -module.exports = function () { - winston.info("Executing command "+"generate".yellow); - - - // Check to see if the required directories exist. - var exists = {}; - [ "./pages", "./authors", "./theme" ].forEach(function(dir) { - exists[dir] = path.existsSync(dir) - && fs.statSync(dir).isDirectory(); - }); - - if (Object.keys(exists).every(function(k) { - return exists[k]; - })) { - // TODO: One folder, not two. - smith.generate("./pages", "./public", function (status) { - - // Guard against non-number exit status - if (typeof status !== 'number') { - status = 1; - } - - // So, instead, let's just print "blacksmith ok" for now, - // and figure out how to do it the "right way" later. - if (status) { - winston.info("Blacksmith".yellow + " not ok".red.bold); - process.exit(status); - } else { - // Because writes are fire-and-forget, we CAN NOT process.exit until they - // are all done. - winston.info("Blacksmith".yellow + " ok".green.bold); - } - }); - - } else { - winston.error([ - "Missing blacksmith site folders: " - + Object.keys(exists).filter(function(f) { - return !exists[f]; - }).join(", ").bold.yellow, - ].join("\n")); - - [ - "", - "The easiest way to start a " + "blacksmith".yellow - + " site is to use " + "jitsu".cyan + ":", - "", - " jitsu install blog".yellow, - "", - "You can learn more about jitsu at " - + "http://github.com/nodejitsu/jitsu".yellow, - "" - ].forEach(winston.info); - } -}; diff --git a/lib/commands/init.js b/lib/commands/init.js deleted file mode 100644 index 6021bc9..0000000 --- a/lib/commands/init.js +++ /dev/null @@ -1,112 +0,0 @@ -var smith = require("../blacksmith"), - fs = require('fs'), - winston = require('winston'), - cp = require('ncp').ncp, - prompt = require("prompt"); - -module.exports = function () { - - var argv = Array.prototype.slice.call(arguments); - - // TODO: Add interpretation of arguments passed. An old version of flatiron - // was not passing argv. - - winston.info("Executing command "+"init".yellow); - - smith.sites(function (err, sites) { - - if (err) { - throw err; - } - - Object.keys(sites).forEach(function (k) { - try { - sites[k] = { - "description": JSON.parse(fs.readFileSync(sites[k]+'/package.json').toString()).description, - "path": sites[k] - } - } - catch (err) { - winston.warn(err.message); - sites[k] = { - "path": sites[k], - "description": '' - }; - } - }); - - prompt.start(); - - var getType = function getType (cb) { - winston.info('init'.yellow + ' can create any of these site types:'); - winston.info(''); - Object.keys(sites).forEach(function (site) { - winston.info(' * '+site.yellow+ ': '+sites[site].description); - }); - winston.info(''); - - prompt.get([{ - name: 'type', - message: 'Choose your website type' - }], function (err, i) { - if (err) { - return cb(err); - } - - if (sites.hasOwnProperty(i.type)) { - winston.info('Selecting website type '+i.type.yellow+'...'); - cb(null, i.type); - } - else { - winston.error('That\'s not a website type! Try again.'); - getType(cb); - } - }); - }; - - getType(function (err, type) { - if (err) { - throw err; - } - - - prompt.get([{ - name: 'sitename', - message: 'Name your website' - }], function (err, i) { - - if (err) { - throw err; - } - - var sitename = i.sitename; - - winston.warn('blacksmith'.yellow+' is about to write a '+type.yellow+' site to '+ ('./'+sitename).yellow + '!'); - prompt.get([{ - name: 'okay', - message: 'Is this okay? [y/N]' - }], function (err, j) { - if (err) { - throw err; - } - - - if (j.okay && (j.okay[0] == 'y' || j.okay[0] == 'Y') ) { - - cp(sites[type].path, './'+sitename, function (err) { - if (err) { - throw err; - } - - winston.info('* Created '+('`./'+sitename+'`').yellow+'.'); - }); - } - - - }); - }); - }); - - - }); -} diff --git a/lib/commands/post.js b/lib/commands/post.js deleted file mode 100644 index 4f8e567..0000000 --- a/lib/commands/post.js +++ /dev/null @@ -1,82 +0,0 @@ -var smith = require("../blacksmith"), - fs2 = require('../fs2'), - winston = require('winston'), - path = require('path'), - prompt = require("prompt"); - -module.exports = function() { - winston.info("Executing command "+"post".yellow); - - var defaultAuthor = smith.config.get("defaultAuthor"), - defaultAuthorName; - if(defaultAuthor && path.existsSync('./authors/'+defaultAuthor+'.json')) { - var author = require("../loaders/authors").load(true)[defaultAuthor]; - if(author) { - defaultAuthorName = author.get("name"); - } - } - - prompt.start(); - prompt.get([ - { - name: "title", - message: "Name the blog post" - }, - { - name: "author", - message: "Specify the author" + (defaultAuthorName ? " (empty to use '"+defaultAuthorName+"')" : "") - } - ], function (err, res) { - if (err) { - winston.error(err.stack); - cb(1); - } - - if(res.author === "") { - res.author = defaultAuthorName; - } - - var folder = res.title.toLowerCase().replace(/\W+/g, '-'); - - //TODO: Check authors - - winston.warn('blacksmith'.yellow+' is about to write ' - + ('`./'+folder+'/page.json`').yellow + ' and ' - + ('`./'+folder+'/content.md`').yellow + '!' - ); - - prompt.get([{ - name: 'okay', - message: 'Is this okay? [y/N]' - }], function (err, j) { - if (err) { - throw err; - } - - - if (j.okay && (j.okay[0] == 'y' || j.okay[0] == 'Y') ) { - - // Write the files. - fs2.writeFile(folder + "/page.json", JSON.stringify({ - title: res.title, - author: res.author, - date: new Date() - }, true, 2), function (err) { - if (err) { - throw err; - } - winston.info("* Created " + ("`./"+folder+"/page.json`.").yellow); - - fs2.writeFile(folder + "/content.md", "Dear diary,\n\n\n", function (err) { - if (err) { - throw err; - } - winston.info("* Created "+("`./"+folder+"/content.md`.").yellow); - }); - }); - - } - }); - - }); -} diff --git a/lib/commands/preview.js b/lib/commands/preview.js deleted file mode 100644 index 68e994e..0000000 --- a/lib/commands/preview.js +++ /dev/null @@ -1,21 +0,0 @@ -var smith = require("../blacksmith"), - winston = require("winston"), - colors = require("colors"); - -module.exports = function () { - winston.info("Executing command "+"preview".yellow); - - var HTTPServer = require('http-server').HTTPServer; - var httpServer = new HTTPServer({ - root: './public/' - }); - - httpServer.log = winston.info; - - httpServer.listen(process.env.PORT || process.env.C9_PORT || 8080); - - process.on('SIGINT', function() { - winston.warn('http-server stopped.'.red); - process.exit(0); - }); -} diff --git a/lib/fs2.js b/lib/fs2.js deleted file mode 100644 index d3026c6..0000000 --- a/lib/fs2.js +++ /dev/null @@ -1,229 +0,0 @@ -/* - * fs2.js - * - * Contains tools for reading in directories of data. - * - */ - -var fs2 = exports; - -var fs = require('fs'), - path = require('path'), - mkdirp = require('mkdirp'), - traverse = require('traverse'), - Hash = require('hashish'), - helpers = require('./helpers'), - findit = require('findit'); - -// This transforms a list of files (such as findit's output) into an object -// where the keys are file paths and values are file contents if "resolve" is -// set to "true" and an empty string otherwise. -fs2.filesArrayToObject = function( files, resolve ) { - - var _files = {}; - - // Loop over the list of files and attach the result to _files as a key/value - // pair. - files.forEach( function (file) { - var contents = ''; - - if (resolve) { - - // Check to see if the path represents a directory or file. - var stat = fs.statSync(file); - - if (stat.isDirectory()) { - - // This means that you can test for isDirectory with - // dir[path].isDirectory - contents = { "isDirectory": true }; - } else { - - // Read in the contents of the file. - contents = fs.readFileSync(file); - } - - } - - _files[file] = contents; - - }); - - return _files; -} - -// Convert a flat list of directories (ie, output from findit) -// into a tree of the form: -// -// { "foo": {"bar": {} } } -// -fs2.filesToTree = function(files){ - - files = files.reduce(function (acc, file) { - - // Splits the file path into a list. - // Also takes care of double slashes to avoid blank keys. - var ps = file.replace('//', '').split('/'); - - // Filter out dot-paths. - ps = ps.filter(function (e) { - return e !== "." - }); - - // Use traverse to set acc[p[0]][p[1]]...[p[n-1]] to {}, *if* this path does - // not already exist. Traverse takes care of creating necessary objects. - if (!traverse(acc).get(ps)) { - traverse(acc).set(ps, {}); - } - return acc; - }, {}); - - return files; - -} - - -// Convert a flat directory object (such as that output by filesArrayToObject) -// into a tree of the form: -// -// { "foo": {"bar": {} } } -// -fs2.dirToTree = function (dir, opts) { - - var ls = Object.keys(dir); - - if (opts.root) { - ls = ls.map(function (p) { - return helpers.unresolve(path.resolve(opts.root+'/../'), p); - }); - } - - // Same as filesToTree, except we use Object.keys which is equivalent to the - // original list of files. - return fs2.filesToTree(ls); - -} - - -// orderedTree takes a nested tree (such as that output by dirToTree) and -// transforms it into a structure of the form: -// -// [ { "foo": [ { "bar": {} ] }] -// -// The conversion from a hash with multiple keys into a list of hashes with -// single keys gives our structure a sense of ordering. -fs2.orderedTree = function (tree) { - - // This function is called recursively with the tree. - function ordered (tree) { - - // Take each subtree in the hash and replace it with an ordered subtree. - var subtrees = Hash(tree).map(function (v) { - return ordered(v); - }).items, - _tree = []; - - // This tree still needs to be ordered itself! - Object.keys(subtrees).forEach(function(k) { - var obj = {}; - - // Obj only has one key/value pair. - obj[k] = subtrees[k]; - - // Push this key/value pair onto our list. - _tree.push(obj); - }); - - return _tree; - } - - // Call it! - return ordered(tree); -} - -// Reads in an entire directory and converts it into an object -// where the keys are file paths and the values are file contents if "resolve" -// is set to "true" (and an empty string otherwise). -// -// Arguments: -// -// * path: The path of the directory -// * resolve [optional]: If set to "true," file contents are set to their -// corresponding values. -// * filter(element) [optional]: If defined, output of findit is filtered using -// this function. -// * callback(err, result) -fs2.readDir = function (p, resolve, filter, cb) { - - // Since resolve and filter are optional, we need to handle the cases where - // not every argument is defined. - if (!filter) { - cb = resolve; - resolve = false; - } else if (!cb) { - cb = filter; - filter = null; - } - - - var files = [], - finder; - - // Finder throws errors instead of passing them, so we use a "try" to funnel - // any errors to the callback. - try { - finder = findit.find(p, function (f) { - // This gets called for each individual file. Here we collect them all. - files.push(f); - }); - - // Once finder is done, we can finish up. - finder.on("end", function () { - // Apply the filter, if any. - if (typeof filter === 'function') { - files = files.filter(filter); - } - - // Convert the list from findit into an object structure. - cb(null, fs2.filesArrayToObject(files, resolve)); - - }); - } catch (e) { - cb(e); - } -}; - - -// This is the syncronous version of readDir. It does not take a callback and -// throws its errors, but is otherwise equivalent. -fs2.readDirSync = function (p, resolve, filter) { - - // findit.sync returns a list of directories already. - var files = findit.sync(p); - - if ( typeof filter === 'function') { - // Apply the filter, if any. - files = files.filter(filter); - } - - // Convert the list from findit into an object structure. - return fs2.filesArrayToObject(files, resolve); - -}; - - -// fs2.writeFile forces a file write by using mkdirp to recurisvely build -// directories. Otherwise, the API mirrors that of fs.writeFile. -fs2.writeFile = function(filePath, contents, callback) { - - var fileDir = path.dirname(filePath); - - mkdirp(fileDir, 0755, function(err){ - if (err) { - console.log(err); - callback(err); - } - fs.writeFile(filePath, contents, callback); - }); - -}; diff --git a/lib/helpers.js b/lib/helpers.js deleted file mode 100644 index a50f5c8..0000000 --- a/lib/helpers.js +++ /dev/null @@ -1,248 +0,0 @@ -/* - * helpers.js - * - * Contains helpers for the smith. - * - */ -var helpers = exports; - -var smith = require("./blacksmith"), - fs = require('fs'), - fs2 = require('./fs2'), - findit = require('findit'), - path = require('path'), - Hash = require('hashish'), - traverse = require('traverse'); - - -// This function inverts path.resolve() given the base path: -// -// helpers.unresolve(base, helpers.resolve(relative)) === relative -// -// It's helpful for cases where a path has been previously resolved when it -// should be relative to a source directory. -helpers.unresolve = function (base, abs) { - return path.resolve(abs).replace(path.resolve(base), "."); -} - -// Test to see if `e` is an element of `xs`. -// -// xs.indexOf(e) returns -1 on no match, and the element's index otherwise. -// -~x is truthy if x is non-negative. -helpers.isElement = helpers.isElement = function(xs, e) { - return -~xs.indexOf(e); -} - -helpers.formatDate = function (date) { - var day, month, date, year; - try { - dayOfWeek = [ - "Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday" - ][date.getDay()]; - - month = [ - "Jan", - "Feb", - "Mar", - "Apr", - "May", - "Jun", - "Jul", - "Aug", - "Sep", - "Oct", - "Nov", - "Dec" - ][date.getMonth()]; - dayOfMonth = date.getDate(); - year = date.getFullYear(); - - return dayOfWeek+", "+month+" "+dayOfMonth+" "+year; - } catch (e) { - console.log("Error formatting date "+date); - return date; - } -} - - -// Takes a sortedTree and generates html with it. -// -// TODO: Use weld instead of string concats. -helpers.treeToHTML = function(values, parent) { - var str = '
    '; - - values.forEach( function(val, i) { - if (val) { - var key = Object.keys(val)[0]; - } - if (typeof values[i]=='object' && values[i] != null){ - var newParent = parent || ''; - newParent = newParent + '/' + key; - - var link = newParent; - str+='
  • '+key.replace(/-/g, ' ')+'' + helpers.treeToHTML(values[i][key], newParent)+'
  • '; - } - }); - - str+='
'; - - if(str === "
    "){ - return ''; - } - return str; -}; - -// Feed email, return gravatar -helpers.gravatar = function (email, opts) { - var size = (opts && opts.size) || '200', - crypto = require('crypto'), - md5 = crypto.createHash('md5') - .update(String(email).trim().toLowerCase()) - .digest('hex'); - - return "http://www.gravatar.com/avatar/" - + md5 + "?r=pg&s=" - + size + ".jpg&d=identicon"; -} - -// Takes a directory, does some slicing/dicing to consolidate information and -// handle defaults. This is used in tandem with the "content" generator. -// -// Arguments: -// * src: The path to the source directory. -// * files: The "dir" structure -// * resolve [optional]: If truthy, attaches markdown content. -// -// Returns: -// -// -// keys: full directory path -// vals: { -// metadata: {}, // from ./page.json -// content: {}, // from ./content.md -// ls: [], // listings -// files: [] // binary files with no special considerations -// } -// -helpers.dirToContent = function (src, files, resolve) { - var content = {}; - if (typeof resolve === "undefined") { - resolve = true; - } - - Object.keys(files).forEach(function (f) { - - // We want the paths to represent path-based resources, - // not individual files as before. Data from page.json and content.md get - // attached to the same "parent" path. - var p = path.dirname(f); - smith.log.silly('Assembling content resource for directory '+p); - if (!content[p]) { - content[p] = {}; - } - - // Listings for directory views and the like. - content[p].ls = fs.readdirSync(p).filter(function (file) { - return (file !== "content.md") - && (file !== "page.json"); - }).map(function(file) { - var key = helpers.unresolve(smith.src, p+"/"+file).replace(/^\./, ''); - smith.log.silly('Using key '+key+' for directory listing of '+p); - return key; - }); - - // If the file is a page.json, load the metadata and attach it. - if (path.basename(f) === "page.json") { - smith.log.silly('Attaching '+f+' to content resource '+p+' as metadata'); - try { - content[p].metadata = JSON.parse(files[f]); - } catch (e) { - // If there's a page.json and it doesn't load, it's probably a mistake. - throw new Error('File ' + f + ' does not contain valid json!'); - } - - // Some basic sanity checks on the metadata. - if (typeof content[p].metadata.date !== 'undefined') { - // I wanted a closure since this is a pretty long function. - (function () { - var date = content[p].metadata.date; - date = new Date(date); - - if (date === 'Invalid Date') { - smith.log.warn(p + "/page.json contains an invalid datestring."); - } - else { - content[p].metadata.date = date; - } - })(); - } - - content[p].metadata.link = p; - - // Build up a "breadcrumb" by splitting the path and cleaning it up. - content[p].metadata.breadcrumb = p.replace(path.dirname(src), "").split("/"); - content[p].metadata.breadcrumb = content[p].metadata.breadcrumb.slice(2, content[p].metadata.breadcrumb.length); - - smith.log.silly('Attaching metadata.breadcrumb '+content[p].metadata.breadcrumb.join('/')+' to content resource '+p); - - } // If the file is a content.md, load and attach the markdown. - else if (path.basename(f) === "content.md") { - if (!content[p]) { - content[p] = {}; - } - - if (resolve) { - smith.log.silly('Attaching '+f+' to content resource '+p+' as "content"'); - content[p].content = files[f].toString(); - } else { - smith.log.silly('resolve == false; Not loading '+f+' for content resource '+p); - content[p].content = ""; - } - - } // If the file is a directory instead, we still need breadcrumbs. - else if (fs.statSync(f).isDirectory()) { - if (!content[p]) { - content[p] = {}; - } - - // Build up a "breadcrumb" as before. - if (!content[p].metadata) { - content[p].metadata = {}; - } - - content[p].metadata.breadcrumb = p.replace(path.dirname(src), "").split("/"); - content[p].metadata.breadcrumb = content[p] - .metadata - .breadcrumb - .slice(2, content[p].metadata.breadcrumb.length); - - smith.log.silly('Attaching metadata.breadcrumb '+content[p].metadata.breadcrumb.join('/')+' to content resource '+p); - - } else if (fs.statSync(f).isFile()) { - // This catches "other" files which may be in the directory structure. - // It attaches them to a property called "files." - if (!content[p]) { - content[p] = {}; - } - - if (!content[p].files) { - content[p].files = {}; - } - - // If resolve, load up the data. - if (resolve) { - smith.log.silly('Attaching file '+f+' to content resource '+p+' as "file"'); - content[p].files[path.basename(f)] = files[f]; - } - } - - }); - - return content; -} diff --git a/lib/jquery.js b/lib/jquery.js deleted file mode 100644 index 2bd4cbb..0000000 --- a/lib/jquery.js +++ /dev/null @@ -1,167 +0,0 @@ -/*! - * jQuery JavaScript Library v1.4.4 - * http://jquery.com/ - * - * Copyright 2010, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2010, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Thu Nov 11 19:04:53 2010 -0500 - */ -(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h= -h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;kd)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La, -"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this, -e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a, -"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+ -a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/, -C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j, -s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this, -j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length}, -toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j=== --1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false; -if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload", -b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&& -!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&& -l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H
    a";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"), -k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false, -scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent= -false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom= -1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="
    ";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="
    t
    ";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display= -"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h= -c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando); -else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one"; -if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true}, -attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&& -b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0}; -c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem, -arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid= -d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+ -c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType=== -8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k=== -"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+ -d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired= -B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type=== -"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]=== -0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); -(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3]; -break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr, -q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h= -l;g.sort(w);if(h)for(var i=1;i0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n, -m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled=== -true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"=== -g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return in[3]-0},nth:function(g,i,n){return n[3]- -0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()=== -i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]]; -if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m, -g);else if(typeof g.length==="number")for(var p=g.length;n";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g); -n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&& -function(){var g=k,i=t.createElement("div");i.innerHTML="

    ";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F|| -p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g= -t.createElement("div");g.innerHTML="
    ";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition? -function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n0)for(var h=d;h0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h= -h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context): -c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a, -2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a, -b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&& -e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/\s]+\/)>/g,P={option:[1, -""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div
    ","
    "];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= -c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, -wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, -prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, -this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); -return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null; -else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1>");try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append", -prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument|| -b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]===""&&!x?r.childNodes:[];for(o=k.length- -1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script")))); -d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i, -jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true, -zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b), -h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b); -if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f= -d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left; -e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/)<[^<]*)*<\/script>/gi, -ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b=== -"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("
    ").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& -!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})}, -getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html", -script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data|| -!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache= -false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset; -A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type", -b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&& -c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d|| -c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]= -encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess", -[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"), -e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}}); -if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show", -3),a,b,d);else{d=0;for(var e=this.length;d=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b, -d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* -Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)} -var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true; -this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| -this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= -c.timers,b=0;b-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a, -e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&& -c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); -c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+ -b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window); \ No newline at end of file diff --git a/lib/loaders/authors.js b/lib/loaders/authors.js deleted file mode 100644 index 5d4fc23..0000000 --- a/lib/loaders/authors.js +++ /dev/null @@ -1,50 +0,0 @@ -/* - * authors.js: Methods for reading and sharing authors metadata, stored in - * the ./authors/ directory. - * - * (C) 2011, Nodejitsu Inc. - * - */ - - -var smith = require('../blacksmith'), - findit = require('findit'), - nconf = require('nconf'), - path = require('path'), - winston = require('winston'), - colors = require('colors'), - fs = require('fs'); - -var authors = exports; - -authors.load = function (resolve) { - var authors = {}; - - // Load up a list of files to get authors metadata. Returns an nconf provider - // for each author. - - // TODO: Use resourceful instead. - findit.sync(path.resolve(smith.src + '/../authors')).forEach( function (file) { - var ext = path.extname(file); - if ( ext == '.json' ) { - var author = new nconf.Provider(), - id; - - author.use("file", { file: file }); - - id = author.get("_id"); - - if (typeof id !== "string") { - winston.error("Error processing "+file.yellow); - winston.warn("Missing or malformed _id field"); - return; - } - - authors[author.get("_id").trim()] = author; - } - }); - - // TODO: Make sure that there are no other mandatory author fields. - - return authors; -} diff --git a/lib/loaders/content.js b/lib/loaders/content.js deleted file mode 100644 index d89002f..0000000 --- a/lib/loaders/content.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - * content.js: Methods for generating "content" pages, such as blog posts and - * articles. Also handles directory views if there is no content. - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var fs2 = require('../fs2'), - smith = require('../blacksmith'), - helpers = require('../helpers'); - -var content = exports; - -// Load all content with an fs2.readDirSync. -content.load = function () { - - // Load all the contents. - // Pages is a hash with key/value pairs of the form `{ "path": "content" }`. - var pages = fs2.readDirSync(smith.src, true); - - // Combine content and metadata pages to generate key/value pairs that are 1:1 - // with generated content pages. - pages = helpers.dirToContent(smith.src, pages, true); - - return pages; - -}; diff --git a/lib/loaders/errors.js b/lib/loaders/errors.js deleted file mode 100644 index b623d4c..0000000 --- a/lib/loaders/errors.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - * errors.js: Methods for generating "error" pages (the 404 page in particular). - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var errors = exports; - -errors.load = function() { - - // In this case, I simply return a hash of error pages to be generated, with - // a simple message. There is only one expected error, a 404, and its contents - // are static, so it's simply hard-coded here. - return { - 404: { - status: 404, - message: "File not found" - } - }; -}; - diff --git a/lib/loaders/rss.js b/lib/loaders/rss.js deleted file mode 100644 index ebe1f51..0000000 --- a/lib/loaders/rss.js +++ /dev/null @@ -1,24 +0,0 @@ -/* - * rss.js: Method for loading an rss feed. - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var smith = require('../blacksmith'), - Rss = require('rss'), - fs2 = require('../fs2'); - -var rss = exports; - -// Loading, in this case, consists of initializing the rss object. -// Most of the information comes from the top-level config. -rss.load = function () { - return new Rss({ - title: smith.config.get("title") || "", - description: smith.config.get("description") || "", - feed_url: '/feed.xml', - site_url: smith.config.get("url") || "", - author: smith.config.get("author") || "" - }); -}; diff --git a/lib/loaders/theme.js b/lib/loaders/theme.js deleted file mode 100644 index 38d3b3b..0000000 --- a/lib/loaders/theme.js +++ /dev/null @@ -1,64 +0,0 @@ -/* - * theme.js: Methods for loading the site's theme. - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var smith = require('../blacksmith'), - findit = require('findit'), - path = require('path'), - mkdirp = require('mkdirp'), - fs = require('fs'), - fs2 = require('../fs2'), - helpers = require('../helpers'); - - -var theme = exports; - -theme.load = function () { - - var themeDir = path.resolve(smith.src + '/../theme'); - - smith.log.debug("Loading themes from "+themeDir); - - // Read in all the files in the themes directory, and filter directories. - var _theme = fs2.readDirSync(themeDir, true, function (p) { - return !fs.statSync(p).isDirectory(); - }); - - var theme = {}; - - // The keys that come back from fs2.readDirSync are absolute. This makes it - // difficult to refer to the right templates later, so here we use the - // file paths relative to ./theme instead as keys instead. - Object.keys(_theme).forEach(function (k) { - smith.log.debug('Successfully read file ' + k); - // keys are stored as relative paths against the theme directory. - var newK = helpers.unresolve(themeDir, k); - smith.log.silly('Storing content with key ' + newK); - theme[newK] = _theme[k]; - theme[newK].fullPath = k; - }); - - // Check to make sure all the "mandatory" templates are in ./theme . - // TODO: Build site with minimal views to make sure it works. - // TODO: Use internal base templates so that these are all optional. - [ - 'article', - 'directory', - 'error' - ].forEach(function (n) { - if (!theme['./' + n + '.html' ]) { - throw new Error('Missing theme file ' + themeDir + '/' + n + '.html'); - } - }); - - // Aliases for optional templates. - if (!theme['./archive.html']) { - theme['./archive.html'] = theme['./article.html']; - } - - return theme; - -}; diff --git a/lib/loaders/toc.js b/lib/loaders/toc.js deleted file mode 100644 index 8527d99..0000000 --- a/lib/loaders/toc.js +++ /dev/null @@ -1,11 +0,0 @@ -var smith = require('../blacksmith'), - buildToc = require('../toc').buildToc; - -var toc = exports; - -// Build the full Table of Contents. -// This is done here so that we only have to generate it once. -// Other contents listings are handled as they come. -toc.load = function(data, dom) { - return buildToc(smith.src); -}; diff --git a/lib/renderers/archive.js b/lib/renderers/archive.js deleted file mode 100644 index 1b2d6b4..0000000 --- a/lib/renderers/archive.js +++ /dev/null @@ -1,289 +0,0 @@ -/* - * archive.js: Methods for rendering a page with a listing of articles. - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var smith = require('../blacksmith'), - weld = require('weld').weld, - fs = require('fs'), - fs2 = require('../fs2'), - path = require('path'), - helpers = require('../helpers'); - -var archive = exports; - -archive.weld = function(dom, pages) { - - var $ = smith.window.$, // Shortcut to jquery. - toc = smith.content.toc, - content = smith.content.content, - pages = Object.keys(content).filter(function (i) { - var isArchive = (content[i].metadata - && content[i].metadata.render === "archive"); - - if (isArchive) { - smith.log.silly('Rendering an archive page for '+i); - } - - return isArchive; - }), - sortedKeys = Object.keys(content).filter(function (i) { - return content[i].metadata - && (content[i].metadata.index !== false) - }).sort( function(i, j) { - - if (!content[i].metadata || !content[j].metadata) { - if (content[i].files) { - smith.log.warn(i+ ' does not have metadata!'); - } else { - smith.log.warn(j+ ' does not have metadata!'); - } - return 0; - } - - // Sort the list in chronological order. - var a = new Date(content[i].metadata && content[i].metadata.date) || 0, - b = new Date(content[j].metadata && content[j].metadata.date) || 0; - - if (a && b) { - return b - a; - } else { - return 0; - } - }); - - // Function for grabbing the top x elements from the ToC - var tocLast = function (len) { - return $('
    ").attr("class", "ls").append( - $("
    ").append( - $("").attr("href", val.replace("pages/", "")).text(title) - ) - ); - - $("tr", $(element)).replaceWith(listing); - - return false; - } - - // Titles should link to their respective articles. - if ($(element).hasClass("title")) { - if (val) { - $(element).text(""); - $(element).append( - $("") - .attr("href", helpers.unresolve(smith.src, metadata.link)) - .text(val) - ); - } - return false; - } - - // Handles cases with the "date" element in the article template. - // This includes using the "datetime" attribute. - if ($(element).hasClass("date")) { - var date = val ? new Date(val) : undefined; - - if (date) { - if (element.tagName === "DATA") { - $(element).attr("value", date); - } - $(element).text(helpers.formatDate(date)); - } - return false; - } - - // If there's author github metadata, link to the author's github acct. - if ($(element).hasClass("github")) { - if (val) { - $(element).text(""); - $(element).append( - $("") - .attr("href", "https://github.com/"+val) - .text(val) - ); - } - return false; - } - - // If there's author twitter metadata, link to the author's twitter acct. - if ($(element).hasClass("twitter")) { - if (val) { - $(element).text(""); - $(element).append( - $("") - .attr("href", "https://twitter.com/"+val) - .text(val) - ); - } - return false; - } - - // If there's author email metadata, attempt to modify the gravatar. - if ($(element).hasClass('gravatar')) { - if (val) { - $(element).attr('src', helpers.gravatar(val, { size: 200 })); - } - return false; - } - - // In the case of markdown, we don't want to encode html entities. - try { - element.innerHTML = val; - } - catch (err) { - smith.log.error('Error welding raw html for page ' + i); - throw err; - } - return false; - } - - }); - - // TODO: A var this far downpage indicates poor modularity. - var hasSnippets = false; - - // Handle code snippet includes. - // Hilighting gets taken care of later, with "code" blocks - $('a.snippet', dom).each(function (i, e) { - var p = path.join(smith.src, (e.href || '').replace('file://', '')), - - // TODO: I should be able to get this out of content[i].files right? - // Also: This looks messed up. - f = fs.readFileSync(p).toString(), - pre = $('
    ').append($('').text(f)),
    -          link = $('').attr('href', e.href).text(path.basename(e.href)),
    -          snippet = $('
    ').attr('class', 'snippet') - .append(link.attr('class', 'code-link')) - .append(pre); - - hasSnippets = true; - - $(e).replaceWith(snippet); - - // Add this one to the "snippets" listing. - $('.snippets', dom).html(""); - $('.snippets', dom).append( - $('
  • ').append(link) - ); - - }); - - // remove snippets if necessary - if (!hasSnippets) { - $('.snippets', dom).remove(); - $('.if-snippets', dom).remove(); - } - - // If metadata is missing, we need to clean the elements from the dom that - // were intended to display that information. - // These are in `metadata`. - ['title' ].forEach(function (k) { - if (!metadata || typeof metadata[k] === "undefined") { - $(".metadata ."+k, dom).remove(); - } - }); - - // These are in `metadata.author`. - ['name', 'location', 'github', 'twitter', 'date'].forEach(function (k) { - if (!metadata || !(metadata.author)) { - $("."+k, dom).remove(); - $(".if-"+k, dom).remove(); - } - }); - - // These are at the top level. - ['ls', 'byThisAuthor'].forEach(function (k) { - if (!data[k] || (data[k] && !data[k].length) ) { - $("."+k, dom).remove(); - $(".if-"+k, dom).remove(); - } - }); - - // Give the page a title. - $('title', dom).text( - ((metadata && metadata.title) - ? metadata.title - : '') - + ' - ' + $('title', dom).text() - ); - - // Add some meta tags. These are populated from a global config as well as - // content metadata. - $('meta[name=keywords]', dom).attr('content', - (metadata && metadata.tags || []) - .concat(smith.config.get("tags") || []).join(',') - ); - - // In order to ensure that code highlighting doesn't break, we use jquery to - // remove any HTML applied to the code snippets. -// Array.prototype.forEach.call($('code', dom), function (elem) { -// $(elem).html($(elem).text()); -// }); - - // Performs code highlighting, converting only inside blocks. - // - // Note: The hilighter tries to hilight ">" as - // - // `&gt;` - // - // There are probably a few other html identities that also get incorrectly - // highlighted (such as <). - // The easiest way to fix this, besides using a different highlighter, - // turns out to be running a greedy search/replace for the - // bungled highlight. - try { - dom.innerHTML = hl(dom.innerHTML, false, true) - .replace( new RegExp("&gt;", - "g"), ">"); - } - catch (err) { - smith.log.error('Error while attempting to hilight code snippets for ' + i); - throw err; - } - - // After welding, pull the html back out of the dom. - smith.log.silly('Successfully completed weld step for ' + i); - pages[i].content = dom.innerHTML; - - }); - - return dom; - -}; - -content.generate = function(output, pages) { - - // Write all the welded pages to disk. - Object.keys(pages).forEach(function (file) { - - var newPath = file.replace(path.resolve(smith.src), path.resolve(smith.dst)), - content = pages[file].content; - - newPath = path.normalize(newPath + '/index.html'); - - if (content) { - - if (typeof content !== 'string' && !Buffer.isBuffer(content)) { - smith.log.warn('Content from '+file+' is of type '+(typeof content)); - } - - smith.log.debug("Writing " + newPath); - - fs2.writeFile(newPath, pages[file].content, function (err) { - if (err) { - smith.log.error('Error while writing '+newPath+' to disk:'); - throw err; - } - }); - } else { - // If a file is handled by a different renderer, the content may get - // written later. - smith.log.silly("No content for " + newPath); - } - }); - - return pages; -}; diff --git a/lib/renderers/errors.js b/lib/renderers/errors.js deleted file mode 100644 index 7fc6278..0000000 --- a/lib/renderers/errors.js +++ /dev/null @@ -1,87 +0,0 @@ -/* - * errors.js: Methods for generating "error" pages (the 404 page in particular). - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var smith = require('../blacksmith'), - weld = require('weld').weld, - findit = require('findit'), - fs2 = require('../fs2'), - path = require('path'), - helpers = require('../helpers'), - buildToc = require('../toc').buildToc; - -var errors = exports; - -errors.weld = function(dom, errs) { - - var $ = smith.window.$, // Shortcut to jquery. - toc = smith.content.toc; - - Object.keys(errs).forEach(function(err) { - var data = { - status: errs[err].status, - message: errs[err].message, - toc: toc - }; - - // Grab the "error" view. - try { - dom.innerHTML = smith.content.theme['./error.html'].toString(); - } - catch (e) { - smith.log.silly('Error while rendering error' + errs[err].status+ ' page with theme '+path.resolve('./theme/error.html')); - throw e; - } - - // Weld the data to the dom. - weld(dom, data, { - map: function(parent, element, key, val) { - - // Handle welding the table of contents. - if ($(element).attr("id") === "toc") { - element.innerHTML = val; - return false; - } - - return true; - - } - }); - - // After welding, pull the html back out of the dom. - smith.log.silly('Successfully completed weld step for error ' + errs[err].status); - errs[err].content = dom.innerHTML; - }); - - return dom; - -}; - - -errors.generate = function(output, errs) { - - // Write all the welded error pages to disk. - Object.keys(errs).forEach(function(err){ - var newPath = path.resolve("./public/" + errs[err].status + '.html'), - content = errs[err].content; - - if (typeof content !== 'string') { - smith.log.warn('Content from '+file+' is of type '+(typeof content)); - } - - - smith.log.debug("Writing " + newPath); - - fs2.writeFile(newPath, content, function (err) { - if (err) { - smith.log.error('Error while writing '+newPath+' to disk:'); - throw err; - } - }); - }); - - return errs; -}; diff --git a/lib/renderers/files.js b/lib/renderers/files.js deleted file mode 100644 index ce864e1..0000000 --- a/lib/renderers/files.js +++ /dev/null @@ -1,50 +0,0 @@ -var smith = require('../blacksmith'), - path = require('path'), - fs2 = require('../fs2'); - -var files = exports; - -files.weld = function(dom, data) { - - var files = {}, - content = smith.content.content; - - Object.keys(content).forEach(function (i) { - if (content[i].files) { - Object.keys(content[i].files).forEach(function (j) { - var path = i+"/"+j; - - files[path] = content[i].files[j]; - - }); - } - }); - - smith.content.files = files; - - return; -}; - -files.generate = function(output, files) { - - Object.keys(files).forEach(function (f) { - var newPath = f.replace(path.resolve(smith.src), path.resolve(smith.dst)), - content = files[f]; - - if (typeof content !== 'string' && !Buffer.isBuffer(content)) { - smith.log.warn('Content from '+f+' is of type '+(typeof content)); - } - - smith.log.debug("Writing "+newPath); - - fs2.writeFile(newPath, content, function (err) { - if (err) { - smith.log.error('Error while writing '+newPath+' to disk:'); - throw err; - } - }); - - }); - - return; -}; diff --git a/lib/renderers/rss.js b/lib/renderers/rss.js deleted file mode 100644 index 59e7abf..0000000 --- a/lib/renderers/rss.js +++ /dev/null @@ -1,71 +0,0 @@ -/* - * rss.js: Methods for generating an rss feed. - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var smith = require('../blacksmith'), - Rss = require('rss'), - path = require('path'), - fs2 = require('../fs2'); - -var rss = exports; - -rss.weld = function (dom, feed) { - var $ = smith.window.$, - getDate = function(content) { - return new Date( - (content.metadata && content.metadata.date) || 'January 1, 1970' - ); - }; - - // Welding, in this case, is a misnomer. In this case, we use the generated - // content to populate the rss feed. - Object.keys(smith.content.content).filter(function (file) { - var metadata = smith.content.content[file].metadata; - return metadata && (metadata.index !== false); - }).sort(function (a, b) { - var rank = function (f) { - return getDate(smith.content.content[f]); - }; - - return rank(b)-rank(a); - - }).forEach(function (file) { - var content = smith.content.content[file], - p = path.normalize(file.replace(path.resolve(smith.src), '')); - - dom.innerHTML = content.content; - - feed.item({ - title: content.metadata && content.metadata.title - || smith.config.get("title") + " -- Untitled" || "Untitled", - description: $(".content", dom).html(), - url: 'http://' + smith.config.get("url") + p, - author: content.metadata - && content.metadata.author && content.metadata.author.name - || smith.config.get("author") || "", - date: getDate(content) - }); - }); - - return dom; - -}; - -rss.generate = function (output, data) { - // Write rss.xml to disk. - var xml = data.xml(); - - var newPath = path.resolve("./public/feed.xml"); - - smith.log.debug("Writing " + newPath); - - fs2.writeFile(newPath, xml, function (err) { - if (err) { - smith.log.error('Error while writing '+newPath+' to disk:'); - throw err; - } - }); -}; diff --git a/lib/renderers/theme.js b/lib/renderers/theme.js deleted file mode 100644 index b4a657c..0000000 --- a/lib/renderers/theme.js +++ /dev/null @@ -1,56 +0,0 @@ -/* - * theme.js: Methods for loading the site's theme. - * - * (C) 2011, Nodejitsu Inc. - * - */ - -var smith = require('../blacksmith'), - findit = require('findit'), - path = require('path'), - mkdirp = require('mkdirp'), - fs = require('fs'), - fs2 = require('../fs2'), - helpers = require('../helpers'); - - -var theme = exports; - -theme.weld = function (dom, data) { - - // There is no real "weld" step for templates. - return data; - -}; - -theme.generate = function (output, files) { - - // Write theme files that *aren't* used as templates to disk. - Object.keys(files).forEach(function (filePath) { - - // This list of template files gets filtered from the write step. - // TODO: Find a way to generate this list programmatically. - var templates = ['index.html', 'error.html', 'article.html'], - basename = path.basename(filePath), - newPath = path.resolve(smith.src + "/../public/" + filePath), - content = files[filePath]; - - // We should not copy over these templates! - if (templates.indexOf(basename) !== -1) { - return; - } - - if (typeof content !== 'string' && !Buffer.isBuffer(content)) { - smith.log.warn('Data from template '+filePath+' is of type '+(typeof content)); - } - - smith.log.debug("Writing " + newPath); - - fs2.writeFile(newPath, content, function (err) { - if (err) { - smith.log.error('Error while writing '+newPath+' to disk:'); - throw err; - } - }); - }); -}; diff --git a/lib/toc.js b/lib/toc.js deleted file mode 100644 index d8557fa..0000000 --- a/lib/toc.js +++ /dev/null @@ -1,125 +0,0 @@ -/* - * toc.js - * - * This is what ends up generating the table of contents. - * - */ - -var table = exports; - -var smith = require("./blacksmith"), - fs = require('fs'), - fs2 = require('./fs2'), - path = require('path'), - Hash = require('hashish'), - traverse = require('traverse'), - helpers = require('./helpers'); - -// This helper assists in building a Table of Contents. -table.buildToc = function (options) { - - var src = smith.src, - content = smith.content.content; - - if (options.author) { - content = Hash.filter(content, function (v, k) { - if (v.metadata && v.metadata.author) { - return v.metadata.author === options.author; - } - return false; - }); - } - - if (options.filterTitle) { - content = Hash.filter(content, function (v, k) { - if (v.metadata && v.metadata.link) { - return v.metadata.title !== options.filterTitle - } - - return true; - - }); - } - - // Special case of no ToC - if (Object.keys(content).length === 0) { - return undefined; - } - - // Generate a tree. - var toc = fs2.dirToTree(content, { - root: src - }), - parent = ""; - - // Order the tree. - toc = fs2.orderedTree(toc); - - // Sort the tree. - toc = table.sort(toc); - - // Dig until there is a layer with >1 item in it. This way, the ToC doesn't - // have a single item in it, with every relevant listing underneath it. - while (toc.length === 1) { - var row = toc[0]; - var key = Object.keys(row)[0]; - - // This is so that links in the ToC are still correct. - parent += ("/"+key); - - toc = toc[0][key]; - } - - // Convert the orderedTree into HTML. - return helpers.treeToHTML(toc, parent); -} - -// This helper sorts a table of contents structure. -table.sort = function (toc) { - - // Map over the ToC recursively. - return toc.map(function sorter (row, paths) { - - // Each row in the ToC has the form: - // - // { "key": subtoc } - // - var paths = paths || [], - key = Object.keys(row)[0], - subtoc = row[key], - filename = path.resolve("./"+paths.concat([[key]]).join("/")), - order; - - paths = paths.concat([[key]]); - - // Uncomment this for a pretty directory view. - // console.log(Array(paths.length+1).join(Array(3).join(" ")) + "-"+paths[paths.length-1]); - - // JSON.stringify(subtoc, true, 2).split('\n').forEach(function (l) { console.log(l); }); - - // Sort the toc using various prioritized heuristics. - [ - "bySpecified", - "byDate" - ].forEach(function (f) { - subtoc = require("./toc/sorters")[f].call(null, subtoc, filename); - }); - - if (Array.isArray(subtoc)) { - // Map over the array. - return subtoc.map(function (row) { - if (row) { - var newRow = {}; - var key = Object.keys(row)[0]; - newRow[key] = sorter(row, paths); - return newRow; - } else { - return undefined; - } - }); - } else { - return subtoc; - } - - })[0]; // Note that the end result has a list inside of a list. -}; diff --git a/lib/toc/sorters.js b/lib/toc/sorters.js deleted file mode 100644 index 68db05e..0000000 --- a/lib/toc/sorters.js +++ /dev/null @@ -1,125 +0,0 @@ -var smith = require("../blacksmith"), - fs = require("fs"), - path = require("path"), - Hash = require("hashish"); - -// Helper to sort by an "order" list -var byOrder = function (subtoc, order) { - - // We end up copying items from the "oldtoc" to the "newtoc" later. - // - // This algorithm checks for the keys on the root of this subtoc - // often, so we extract those out for easier matching later. - var oldToc = subtoc, - newToc = Array(subtoc.length); - elements = oldToc.map(function (t) { - return Object.keys(t)[0]; - }); - - // Place the elements that are explicitly ordered. - Object.keys(order).forEach(function (name) { - - var setOrder = order[name], - currentOrder = elements.indexOf(name); - - if (currentOrder !== -1) { - // Copy the row into the new Table of Contents. - newToc[setOrder] = subtoc[currentOrder]; - - // oldToc holds toc elements not in newToc, but we pull newTocs from - // subtoc so that the indices match. - - // Find the moved element in the oldToc and then remove it. - // Later, we use oldToc to fill in unspecified indices. - var i = oldToc.map(function (t) { - return Object.keys(t)[0]; - }).indexOf(name); - - oldToc = oldToc.slice(0, i).concat(oldToc.slice(i+1)); - } - }); - - // Use elements not explicitly ordered to fill out the rest of the - // newToc. - for (var i = 0; i < newToc.length; i++) { - newToc[i] = newToc[i] || oldToc.pop(); - } - - return newToc; - -} - -// This sorter shuffles the subtoc layer based on "order" properties specified -// by an "order" property. -exports.bySpecified = function (subtoc, filename) { - var order; - - // If the page.json exists, it may have an "order" property, which matches - // children directory names with list indices. - try { - order = JSON.parse( - fs.readFileSync(filename+"/page.json").toString() - ).order; - } catch (e) { - if (e.code !== "EBADF") { - smith.log.warn("Having trouble reading "+filename+"/page.json"); - smith.log.warn(JSON.stringify(e.stack, true, 2)); - } - - return subtoc; - } - - // "Order" supports negative indices, as in Python. This map converts - // those negative indices into proper positive ones. - order = Hash(order).map(function (n) { - if (n < 0) { - return Object.keys(subtoc).length + n; - } else { - return n; - } - }).items; - - return byOrder(subtoc, order); - -} - -// This sorts by the specified dates of the children. -exports.byDate = function (subtoc, filename) { - - // TODO: Rewrite to use loaded smith.content.content instead of - // doing more reads. - var order = {}; - - fs.readdirSync(filename).filter(function (fn) { - return fs.statSync(filename + "/" + fn).isDirectory(); - }).filter(function (fn) { - return path.existsSync(filename + "/" + fn + "/page.json"); - }).map(function (fn) { - var res; - try { - res = [fn, new Date(JSON.parse( - fs.readFileSync(filename + "/" + fn + "/page.json").toString() - ).date)]; - } catch (e) { - //smith.log.silly("Having trouble reading "+filename + "/" + fn+"/page.json"); - //smith.log.silly(JSON.stringify(e.stack, true, 2)); - - res = [fn, new Date("January 1, 1970")]; - } - - if (res[1].toDateString() == "Invalid Date") { - //smith.log.silly(filename + "/" + fn + "/page.json contains an invalid datestring!"); - res[1] = new Date("January 1, 1970"); - } - - return res; - }).sort(function (a, b) { - // Sort by date. - return b[1] - a[1]; - }).forEach(function (t, i) { - // Build the type of object byOrder expects - order[t[0]] = i; - }); - - return byOrder(subtoc, order); -} diff --git a/package.json b/package.json deleted file mode 100644 index 65c89fe..0000000 --- a/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "blacksmith", - "description": "A static site generator built with Node.js, JSDOM, and Weld.", - "version": "0.0.13", - "scripts": { - "start": "bin/server" - }, - "bin": { - "blacksmith": "bin/blacksmith" - }, - "author": "Nodejitsu Inc. ", - "maintainers": [ - "jesusabdullah " - ], - "dependencies": { - "blacksmith-sites": "0.0.x", - "async": "0.1.x", - "marked": "0.1.x", - "traverse": "0.4.x", - "mkdirp": "0.0.x", - "http-server": "0.5.x", - "jsdom": "0.2.x", - "weld": "0.2.1", - "findit": "0.1.x", - "flatiron": "0.1.5-1", - "nconf": "0.4.3", - "ncp": "0.2.x", - "colors": "*", - "optimist": "0.2.x", - "wordwrap": "0.0.x", - "rss": "0.0.x", - "hashish": "0.0.x", - "prompt": "0.1.x", - "winston": "0.5.x", - "cliff": "0.1.x", - "utile": "0.0.10", - "alists": "*" - } -} - diff --git a/vendor/highlight/LICENSE b/vendor/highlight/LICENSE deleted file mode 100644 index ba42317..0000000 --- a/vendor/highlight/LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -Copyright (c) 2010, Andris Reinman - -All rights reserved. - -Original Highlight.js 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/README.md b/vendor/highlight/README.md deleted file mode 100644 index 335f6c5..0000000 --- a/vendor/highlight/README.md +++ /dev/null @@ -1,37 +0,0 @@ -highlight -============== - -**highlight** for node.js is based on [highlight.js](http://softwaremaniacs.org/soft/highlight/en/) parser and is meant to highlight code syntax in languages that are not known beforehand (*highlight.js* detects the used language automatically). This is especially important for pages in Markdown format - there's no easy way to know which language is actually used. - -Installation ------------- - -Use `npm` package manager - - npm install highlight - -Usage ------ - -Include syntax highlighter - - var hl = require("highlight").Highlight; - -highlight code - - html = hl("for(var i=0;i<10;i++)alert(i);"); - -use special tab replacing string (default is 4 spaces) - - html = hl(code_string, " "); - -convert code only between <code> blocks (leaves everything else as is) - especially useful if used together with converted [Markdown](/andris9/node-markdown) syntax that includes <code> blocks. - - html = hl("

    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 deleted file mode 100644 index 0e93f8d..0000000 --- a/vendor/highlight/examples/test.js +++ /dev/null @@ -1,25 +0,0 @@ - - -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 deleted file mode 100644 index 9c14331..0000000 --- a/vendor/highlight/lib/highlight.js +++ /dev/null @@ -1,33 +0,0 @@ -/* 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 deleted file mode 100644 index 2136022..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/AUTHORS.en.txt +++ /dev/null @@ -1,45 +0,0 @@ -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 deleted file mode 100644 index 0c9ddb2..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/AUTHORS.ru.txt +++ /dev/null @@ -1,45 +0,0 @@ -Подсветка синтаксиса с автоопределением языка. - -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 deleted file mode 100644 index 422deb7..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -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 deleted file mode 100644 index 10a9ddb..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/README.md +++ /dev/null @@ -1,122 +0,0 @@ -# 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 deleted file mode 100644 index 77188ad..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/README.ru.md +++ /dev/null @@ -1,128 +0,0 @@ -# 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 deleted file mode 100644 index d45096a..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/classref.txt +++ /dev/null @@ -1,437 +0,0 @@ -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 deleted file mode 100644 index 86ac892..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/export.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - Highlited code export - - - - - - - - - - - - - - - - - - -
    Write a code snippetGet HTML to paste anywhere (for actual styles and colors see sample.css)
    - - - - - -
    -
    -
    - Export script: Vladimir Gubarkov
    - Highlighting: highlight.js -
    - - diff --git a/vendor/highlight/lib/vendor/highlight.js/highlight.js b/vendor/highlight/lib/vendor/highlight.js/highlight.js deleted file mode 100644 index 4a4988a..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/highlight.js +++ /dev/null @@ -1,618 +0,0 @@ -/* -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 += (''); - } 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 deleted file mode 100644 index 70395db..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/highlight.pack.js +++ /dev/null @@ -1 +0,0 @@ -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+=("")}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:"(",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:""}]},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:"]+"}]}]};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:"",k:{title:{style:1}},c:[a],starts:{cN:"css",e:"",rE:true,sL:"css"}},{cN:"tag",b:"",k:{title:{script:1}},c:[a],starts:{cN:"javascript",e:"<\/script>",rE:true,sL:"javascript"}},{cN:"vbscript",b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"",c:[{cN:"title",b:"[^ />]+"},a]}]}}}();hljs.LANGUAGES.lisp=function(){var m="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#]*";var n="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?";var c={cN:"literal",b:"\\b(t{1}|nil)\\b"};var o={cN:"number",b:n};var p={cN:"number",b:"#b[0-1]+(/[0-1]+)?"};var q={cN:"number",b:"#o[0-7]+(/[0-7]+)?"};var a={cN:"number",b:"#x[0-9a-f]+(/[0-9a-f]+)?"};var b={cN:"number",b:"#c\\("+n+" +"+n,e:"\\)"};var e={cN:"string",b:'"',e:'"',c:[hljs.BE],r:0};var l={cN:"comment",b:";",e:"$"};var d={cN:"variable",b:"\\*",e:"\\*"};var k={cN:"keyword",b:"[:&]"+m};var i={b:"\\(",e:"\\)"};i.c=[i,c,o,p,q,a,b,e];var g={cN:"quoted",b:"['`]\\(",e:"\\)",c:[o,p,q,a,b,e,d,k,i]};var f={cN:"quoted",b:"\\(quote ",e:"\\)",k:{title:{quote:1}},c:[o,p,q,a,b,e,d,k,i]};var j={cN:"list",b:"\\(",e:"\\)"};var h={cN:"body",eW:true,eE:true};j.c=[{cN:"title",b:m},h];h.c=[g,f,j,c,o,p,q,a,b,e,l,d,k];return{cI:true,dM:{i:"[^\\s]",c:[c,o,p,q,a,b,e,l,g,f,j]}}}();hljs.LANGUAGES.profile={dM:{c:[hljs.CNM,{cN:"builtin",b:"{",e:"}$",eB:true,eE:true,c:[hljs.ASM,hljs.QSM],r:0},{cN:"filename",b:"(/w|[a-zA-Z_][\da-zA-Z_]+\\.[\da-zA-Z_]{1,3})",e:":",eE:true},{cN:"header",b:"(ncalls|tottime|cumtime)",e:"$",k:{ncalls:1,tottime:10,cumtime:10,filename:1},r:10},{cN:"summary",b:"function calls",e:"$",c:[hljs.CNM],r:10},hljs.ASM,hljs.QSM,{cN:"function",b:"\\(",e:"\\)$",c:[{cN:"title",b:hljs.UIR,r:0}],r:0}]}};hljs.LANGUAGES.java={dM:{k:{"false":1,"synchronized":1,"int":1,"abstract":1,"float":1,"private":1,"char":1,"interface":1,"boolean":1,"static":1,"null":1,"if":1,"const":1,"for":1,"true":1,"while":1,"long":1,"throw":1,strictfp:1,"finally":1,"protected":1,"extends":1,"import":1,"native":1,"final":1,"implements":1,"return":1,"void":1,"enum":1,"else":1,"break":1,"transient":1,"new":1,"catch":1,"instanceof":1,"byte":1,"super":1,"class":1,"volatile":1,"case":1,assert:1,"short":1,"package":1,"default":1,"double":1,"public":1,"try":1,"this":1,"switch":1,"continue":1,"throws":1},c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"@[A-Za-z]+"}],r:10},hljs.CLCM,hljs.CBLCLM,hljs.ASM,hljs.QSM,{cN:"class",b:"(class |interface )",e:"{",k:{"class":1,"interface":1},i:":",c:[{b:"(implements|extends)",k:{"extends":1,"implements":1},r:10},{cN:"title",b:hljs.UIR}]},hljs.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}};hljs.LANGUAGES.php={cI:true,dM:{k:{and:1,include_once:1,list:1,"abstract":1,global:1,"private":1,echo:1,"interface":1,as:1,"static":1,endswitch:1,array:1,"null":1,"if":1,endwhile:1,or:1,"const":1,"for":1,endforeach:1,self:1,"var":1,"while":1,isset:1,"public":1,"protected":1,exit:1,foreach:1,"throw":1,elseif:1,"extends":1,include:1,__FILE__:1,empty:1,require_once:1,"function":1,"do":1,xor:1,"return":1,"implements":1,parent:1,clone:1,use:1,__CLASS__:1,__LINE__:1,"else":1,"break":1,print:1,"eval":1,"new":1,"catch":1,__METHOD__:1,"class":1,"case":1,exception:1,php_user_filter:1,"default":1,die:1,require:1,__FUNCTION__:1,enddeclare:1,"final":1,"try":1,"this":1,"switch":1,"continue":1,endfor:1,endif:1,declare:1,unset:1,"true":1,"false":1,namespace:1},c:[hljs.CLCM,hljs.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+",r:10}]},hljs.CNM,hljs.inherit(hljs.ASM,{i:null}),hljs.inherit(hljs.QSM,{i:null}),{cN:"variable",b:"\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"},{cN:"preprocessor",b:"<\\?php",r:10},{cN:"preprocessor",b:"\\?>"}]}};hljs.LANGUAGES.haskell=function(){var a={cN:"label",b:"\\b[A-Z][\\w\\']*",r:0};var b={cN:"container",b:"\\(",e:"\\)",c:[{cN:"label",b:"\\b[A-Z][\\w\\(\\)\\.\\']*"},{cN:"title",b:"[_a-z][\\w\\']*"}]};return{dM:{k:{keyword:{let:1,"in":1,"if":1,then:1,"else":1,"case":1,of:1,where:1,"do":1,module:1,"import":1,hiding:1,qualified:1,type:1,data:1,newtype:1,deriving:1,"class":1,instance:1,"null":1,not:1,as:1},built_in:{Bool:1,True:1,False:1,Int:1,Char:1,Maybe:1,Nothing:1,String:1}},c:[{cN:"comment",b:"--",e:"$"},{cN:"comment",b:"{-",e:"-}"},hljs.ASM,hljs.QSM,{cN:"import",b:"\\bimport",e:"$",k:{"import":1,qualified:1,as:1,hiding:1},c:[b]},{cN:"module",b:"\\bmodule",e:"where",k:{module:1,where:1},c:[b]},{cN:"class",b:"\\b(class|instance|data|(new)?type)",e:"(where|$)",k:{"class":1,where:1,instance:1,data:1,type:1,newtype:1,deriving:1},c:[a]},hljs.CNM,{cN:"shebang",b:"#!\\/usr\\/bin\\/env runhaskell",e:"$"},a,{cN:"title",b:"^[_a-z][\\w\\']*"}]}}}();hljs.LANGUAGES["1c"]=function(){var b="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*";var e={"возврат":1,"дата":1,"для":1,"если":1,"и":1,"или":1,"иначе":1,"иначеесли":1,"исключение":1,"конецесли":1,"конецпопытки":1,"конецпроцедуры":1,"конецфункции":1,"конеццикла":1,"константа":1,"не":1,"перейти":1,"перем":1,"перечисление":1,"по":1,"пока":1,"попытка":1,"прервать":1,"продолжить":1,"процедура":1,"строка":1,"тогда":1,"фс":1,"функция":1,"цикл":1,"число":1,"экспорт":1};var d={ansitooem:1,oemtoansi:1,"ввестивидсубконто":1,"ввестидату":1,"ввестизначение":1,"ввестиперечисление":1,"ввестипериод":1,"ввестиплансчетов":1,"ввестистроку":1,"ввестичисло":1,"вопрос":1,"восстановитьзначение":1,"врег":1,"выбранныйплансчетов":1,"вызватьисключение":1,"датагод":1,"датамесяц":1,"датачисло":1,"добавитьмесяц":1,"завершитьработусистемы":1,"заголовоксистемы":1,"записьжурналарегистрации":1,"запуститьприложение":1,"зафиксироватьтранзакцию":1,"значениевстроку":1,"значениевстрокувнутр":1,"значениевфайл":1,"значениеизстроки":1,"значениеизстрокивнутр":1,"значениеизфайла":1,"имякомпьютера":1,"имяпользователя":1,"каталогвременныхфайлов":1,"каталогиб":1,"каталогпользователя":1,"каталогпрограммы":1,"кодсимв":1,"командасистемы":1,"конгода":1,"конецпериодаби":1,"конецрассчитанногопериодаби":1,"конецстандартногоинтервала":1,"конквартала":1,"конмесяца":1,"коннедели":1,"лев":1,"лог":1,"лог10":1,"макс":1,"максимальноеколичествосубконто":1,"мин":1,"монопольныйрежим":1,"названиеинтерфейса":1,"названиенабораправ":1,"назначитьвид":1,"назначитьсчет":1,"найти":1,"найтипомеченныенаудаление":1,"найтиссылки":1,"началопериодаби":1,"началостандартногоинтервала":1,"начатьтранзакцию":1,"начгода":1,"начквартала":1,"начмесяца":1,"начнедели":1,"номерднягода":1,"номерднянедели":1,"номернеделигода":1,"нрег":1,"обработкаожидания":1,"окр":1,"описаниеошибки":1,"основнойжурналрасчетов":1,"основнойплансчетов":1,"основнойязык":1,"открытьформу":1,"открытьформумодально":1,"отменитьтранзакцию":1,"очиститьокносообщений":1,"периодстр":1,"полноеимяпользователя":1,"получитьвремята":1,"получитьдатута":1,"получитьдокументта":1,"получитьзначенияотбора":1,"получитьпозициюта":1,"получитьпустоезначение":1,"получитьта":1,"прав":1,"праводоступа":1,"предупреждение":1,"префиксавтонумерации":1,"пустаястрока":1,"пустоезначение":1,"рабочаядаттьпустоезначение":1,"получитьта":1,"прав":1,"праводоступа":1,"предупреждение":1,"префиксавтонумерации":1,"пустаястрока":1,"пустоезначение":1,"рабочаядата":1,"разделительстраниц":1,"разделительстрок":1,"разм":1,"разобратьпозициюдокумента":1,"рассчитатьрегистрына":1,"рассчитатьрегистрыпо":1,"сигнал":1,"симв":1,"символтабуляции":1,"создатьобъект":1,"сокрл":1,"сокрлп":1,"сокрп":1," сообщить":1,"состояние":1,"сохранитьзначение":1,"сред":1,"статусвозврата":1,"стрдлина":1,"стрзаменить":1,"стрколичествострок":1,"стрполучитьстроку":1," стрчисловхождений":1,"сформироватьпозициюдокумента":1,"счетпокоду":1,"текущаядата":1,"текущеевремя":1,"типзначения":1,"типзначениястр":1,"удалитьобъекты":1,"установитьтана":1,"установитьтапо":1,"фиксшаблон":1,"формат":1,"цел":1,"шаблон":1};var a={cN:"dquote",b:'""'};var c={cN:"string",b:'"',e:'"|$',c:[a],r:0};var f={cN:"string",b:"\\|",e:'"|$',c:[a]};return{cI:true,dM:{l:b,k:{keyword:e,built_in:d},c:[hljs.CLCM,hljs.NM,c,f,{cN:"function",b:"(процедура|функция)",e:"$",l:b,k:{"процедура":1,"экспорт":1,"функция":1},c:[{cN:"title",b:b},{cN:"tail",eW:true,c:[{cN:"params",b:"\\(",e:"\\)",l:b,k:{"знач":1},c:[c,f]},{cN:"export",b:"экспорт",eW:true,l:b,k:{"экспорт":1},c:[hljs.CLCM]}]},hljs.CLCM]},{cN:"preprocessor",b:"#",e:"$"},{cN:"date",b:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"}]}}}();hljs.LANGUAGES.python=function(){var c={cN:"string",b:"u?r?'''",e:"'''",r:10};var b={cN:"string",b:'u?r?"""',e:'"""',r:10};var a={cN:"string",b:"(u|r|ur)'",e:"'",c:[hljs.BE],r:10};var f={cN:"string",b:'(u|r|ur)"',e:'"',c:[hljs.BE],r:10};var d={cN:"title",b:hljs.UIR};var e={cN:"params",b:"\\(",e:"\\)",c:[c,b,a,f,hljs.ASM,hljs.QSM]};return{dM:{k:{keyword:{and:1,elif:1,is:1,global:1,as:1,"in":1,"if":1,from:1,raise:1,"for":1,except:1,"finally":1,print:1,"import":1,pass:1,"return":1,exec:1,"else":1,"break":1,not:1,"with":1,"class":1,assert:1,yield:1,"try":1,"while":1,"continue":1,del:1,or:1,def:1,lambda:1,nonlocal:10},built_in:{None:1,True:1,False:1,Ellipsis:1,NotImplemented:1}},i:"(|\\?)",c:[hljs.HCM,c,b,a,f,hljs.ASM,hljs.QSM,{cN:"function",b:"\\bdef ",e:":",i:"$",k:{def:1},c:[d,e],r:10},{cN:"class",b:"\\bclass ",e:":",i:"[${]",k:{"class":1},c:[d,e],r:10},hljs.CNM,{cN:"decorator",b:"@",e:"$"}]}}}();hljs.LANGUAGES.smalltalk=function(){var b="[a-z][a-zA-Z0-9_]*";var c={cN:"char",b:"\\$.{1}"};var a={cN:"symbol",b:"#"+hljs.UIR};return{dM:{k:{self:1,"super":1,nil:1,"true":1,"false":1,thisContext:1},c:[{cN:"comment",b:'"',e:'"',r:0},hljs.ASM,{cN:"class",b:"\\b[A-Z][A-Za-z0-9_]*",r:0},{cN:"method",b:b+":"},hljs.CNM,a,c,{cN:"localvars",b:"\\|\\s*(("+b+")\\s*)+\\|"},{cN:"array",b:"\\#\\(",e:"\\)",c:[hljs.ASM,c,hljs.CNM,a]}]}}}();hljs.LANGUAGES.tex=function(){var c={cN:"command",b:"\\\\[a-zA-Zа-яА-я]+[\\*]?",r:10};var b={cN:"command",b:"\\\\[^a-zA-Zа-яА-я0-9]",r:0};var a={cN:"special",b:"[{}\\[\\]\\&#~]",r:0};return{dM:{c:[{b:"\\\\[a-zA-Zа-яА-я]+[\\*]? *= *-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",rB:true,c:[c,b,{cN:"number",b:" *=",e:"-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",eB:true}],r:10},c,b,a,{cN:"formula",b:"\\$\\$",e:"\\$\\$",c:[c,b,a],r:0},{cN:"formula",b:"\\$",e:"\\$",c:[c,b,a],r:0},{cN:"comment",b:"%",e:"$",r:0}]}}}();hljs.LANGUAGES.sql={cI:true,dM:{i:"[^\\s]",c:[{cN:"operator",b:"(begin|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma)\\b",e:";|$",k:{keyword:{all:1,partial:1,global:1,month:1,current_timestamp:1,using:1,go:1,revoke:1,smallint:1,indicator:1,"end-exec":1,disconnect:1,zone:1,"with":1,character:1,assertion:1,to:1,add:1,current_user:1,usage:1,input:1,local:1,alter:1,match:1,collate:1,real:1,then:1,rollback:1,get:1,read:1,timestamp:1,session_user:1,not:1,integer:1,bit:1,unique:1,day:1,minute:1,desc:1,insert:1,execute:1,like:1,ilike:2,level:1,decimal:1,drop:1,"continue":1,isolation:1,found:1,where:1,constraints:1,domain:1,right:1,national:1,some:1,module:1,transaction:1,relative:1,second:1,connect:1,escape:1,close:1,system_user:1,"for":1,deferred:1,section:1,cast:1,current:1,sqlstate:1,allocate:1,intersect:1,deallocate:1,numeric:1,"public":1,preserve:1,full:1,"goto":1,initially:1,asc:1,no:1,key:1,output:1,collation:1,group:1,by:1,union:1,session:1,both:1,last:1,language:1,constraint:1,column:1,of:1,space:1,foreign:1,deferrable:1,prior:1,connection:1,unknown:1,action:1,commit:1,view:1,or:1,first:1,into:1,"float":1,year:1,primary:1,cascaded:1,except:1,restrict:1,set:1,references:1,names:1,table:1,outer:1,open:1,select:1,size:1,are:1,rows:1,from:1,prepare:1,distinct:1,leading:1,create:1,only:1,next:1,inner:1,authorization:1,schema:1,corresponding:1,option:1,declare:1,precision:1,immediate:1,"else":1,timezone_minute:1,external:1,varying:1,translation:1,"true":1,"case":1,exception:1,join:1,hour:1,"default":1,"double":1,scroll:1,value:1,cursor:1,descriptor:1,values:1,dec:1,fetch:1,procedure:1,"delete":1,and:1,"false":1,"int":1,is:1,describe:1,"char":1,as:1,at:1,"in":1,varchar:1,"null":1,trailing:1,any:1,absolute:1,current_time:1,end:1,grant:1,privileges:1,when:1,cross:1,check:1,write:1,current_date:1,pad:1,begin:1,temporary:1,exec:1,time:1,update:1,catalog:1,user:1,sql:1,date:1,on:1,identity:1,timezone_hour:1,natural:1,whenever:1,interval:1,work:1,order:1,cascade:1,diagnostics:1,nchar:1,having:1,left:1,call:1,"do":1,handler:1,load:1,replace:1,truncate:1,start:1,lock:1,show:1,pragma:1},aggregate:{count:1,sum:1,min:1,max:1,avg:1}},c:[{cN:"string",b:"'",e:"'",c:[hljs.BE,{b:"''"}],r:0},{cN:"string",b:'"',e:'"',c:[hljs.BE,{b:'""'}],r:0},{cN:"string",b:"`",e:"`",c:[hljs.BE]},hljs.CNM,{b:"\\n"}]},hljs.CBLCLM,{cN:"comment",b:"--",e:"$"}]}};hljs.LANGUAGES.vala={dM:{k:{keyword:{"char":1,uchar:1,unichar:1,"int":1,uint:1,"long":1,ulong:1,"short":1,ushort:1,int8:1,int16:1,int32:1,int64:1,uint8:1,uint16:1,uint32:1,uint64:1,"float":1,"double":1,bool:1,struct:1,"enum":1,string:1,"void":1,weak:5,unowned:5,owned:5,async:5,signal:5,"static":1,"abstract":1,"interface":1,override:1,"while":1,"do":1,"for":1,foreach:1,"else":1,"switch":1,"case":1,"break":1,"default":1,"return":1,"try":1,"catch":1,"public":1,"private":1,"protected":1,internal:1,using:1,"new":1,"this":1,get:1,set:1,"const":1,stdout:1,stdin:1,stderr:1,"var":1,DBus:2,GLib:2,CCode:10,Gee:10,Object:1},literal:{"false":1,"true":1,"null":1}},c:[{cN:"class",b:"(class |interface |delegate |namespace )",e:"{",k:{"class":1,"interface":1},c:[{b:"(implements|extends)",e:hljs.IMMEDIATE_RE,k:{"extends":1,"implements":1},r:1},{cN:"title",b:hljs.UIR,e:hljs.IMMEDIATE_RE}]},hljs.CLCM,hljs.CBLCLM,{cN:"string",b:'"""',e:'"""',r:5},hljs.ASM,hljs.QSM,hljs.CNM,{cN:"preprocessor",b:"^#",e:"$",r:2},{cN:"constant",b:" [A-Z_]+ ",e:hljs.IMMEDIATE_RE,r:0}]}};hljs.LANGUAGES.ini={cI:true,dM:{i:"[^\\s]",c:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9_\\[\\]]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:true,k:{on:1,off:1,"true":1,"false":1,yes:1,no:1},c:[hljs.QSM,hljs.NM]}]}]}};hljs.LANGUAGES.axapta={dM:{k:{"false":1,"int":1,"abstract":1,"private":1,"char":1,"interface":1,"boolean":1,"static":1,"null":1,"if":1,"for":1,"true":1,"while":1,"long":1,"throw":1,"finally":1,"protected":1,"extends":1,"final":1,"implements":1,"return":1,"void":1,"enum":1,"else":1,"break":1,"new":1,"catch":1,"byte":1,"super":1,"class":1,"case":1,"short":1,"default":1,"double":1,"public":1,"try":1,"this":1,"switch":1,"continue":1,reverse:1,firstfast:1,firstonly:1,forupdate:1,nofetch:1,sum:1,avg:1,minof:1,maxof:1,count:1,order:1,group:1,by:1,asc:1,desc:1,index:1,hint:1,like:1,dispaly:1,edit:1,client:1,server:1,ttsbegin:1,ttscommit:1,str:1,real:1,date:1,container:1,anytype:1,common:1,div:1,mod:1},c:[hljs.CLCM,hljs.CBLCLM,hljs.ASM,hljs.QSM,hljs.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"class",b:"(class |interface )",e:"{",i:":",k:{"class":1,"interface":1},c:[{cN:"inheritance",b:"(implements|extends)",k:{"extends":1,"implements":1},r:10},{cN:"title",b:hljs.UIR}]}]}};hljs.LANGUAGES.perl=function(){var c={getpwent:1,getservent:1,quotemeta:1,msgrcv:1,scalar:1,kill:1,dbmclose:1,undef:1,lc:1,ma:1,syswrite:1,tr:1,send:1,umask:1,sysopen:1,shmwrite:1,vec:1,qx:1,utime:1,local:1,oct:1,semctl:1,localtime:1,readpipe:1,"do":1,"return":1,format:1,read:1,sprintf:1,dbmopen:1,pop:1,getpgrp:1,not:1,getpwnam:1,rewinddir:1,qq:1,fileno:1,qw:1,endprotoent:1,wait:1,sethostent:1,bless:1,s:1,opendir:1,"continue":1,each:1,sleep:1,endgrent:1,shutdown:1,dump:1,chomp:1,connect:1,getsockname:1,die:1,socketpair:1,close:1,flock:1,exists:1,index:1,shmget:1,sub:1,"for":1,endpwent:1,redo:1,lstat:1,msgctl:1,setpgrp:1,abs:1,exit:1,select:1,print:1,ref:1,gethostbyaddr:1,unshift:1,fcntl:1,syscall:1,"goto":1,getnetbyaddr:1,join:1,gmtime:1,symlink:1,semget:1,splice:1,x:1,getpeername:1,recv:1,log:1,setsockopt:1,cos:1,last:1,reverse:1,gethostbyname:1,getgrnam:1,study:1,formline:1,endhostent:1,times:1,chop:1,length:1,gethostent:1,getnetent:1,pack:1,getprotoent:1,getservbyname:1,rand:1,mkdir:1,pos:1,chmod:1,y:1,substr:1,endnetent:1,printf:1,next:1,open:1,msgsnd:1,readdir:1,use:1,unlink:1,getsockopt:1,getpriority:1,rindex:1,wantarray:1,hex:1,system:1,getservbyport:1,endservent:1,"int":1,chr:1,untie:1,rmdir:1,prototype:1,tell:1,listen:1,fork:1,shmread:1,ucfirst:1,setprotoent:1,"else":1,sysseek:1,link:1,getgrgid:1,shmctl:1,waitpid:1,unpack:1,getnetbyname:1,reset:1,chdir:1,grep:1,split:1,require:1,caller:1,lcfirst:1,until:1,warn:1,"while":1,values:1,shift:1,telldir:1,getpwuid:1,my:1,getprotobynumber:1,"delete":1,and:1,sort:1,uc:1,defined:1,srand:1,accept:1,"package":1,seekdir:1,getprotobyname:1,semop:1,our:1,rename:1,seek:1,"if":1,q:1,chroot:1,sysread:1,setpwent:1,no:1,crypt:1,getc:1,chown:1,sqrt:1,write:1,setnetent:1,setpriority:1,foreach:1,tie:1,sin:1,msgget:1,map:1,stat:1,getlogin:1,unless:1,elsif:1,truncate:1,exec:1,keys:1,glob:1,tied:1,closedir:1,ioctl:1,socket:1,readlink:1,"eval":1,xor:1,readline:1,binmode:1,setservent:1,eof:1,ord:1,bind:1,alarm:1,pipe:1,atan2:1,getgrent:1,exp:1,time:1,push:1,setgrent:1,gt:1,lt:1,or:1,ne:1,m:1};var d={cN:"subst",b:"[$@]\\{",e:"}",k:c,r:10};var b={cN:"variable",b:"\\$\\d"};var a={cN:"variable",b:"[\\$\\%\\@\\*](\\^\\w\\b|#\\w+(\\:\\:\\w+)*|[^\\s\\w{]|{\\w+}|\\w+(\\:\\:\\w*)*)"};var f=[hljs.BE,d,b,a];var e=[hljs.HCM,{cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5},{cN:"string",b:"q[qwxr]?\\s*\\(",e:"\\)",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\[",e:"\\]",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\{",e:"\\}",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\|",e:"\\|",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\<",e:"\\>",c:f,r:5},{cN:"string",b:"qw\\s+q",e:"q",c:f,r:5},{cN:"string",b:"'",e:"'",c:[hljs.BE],r:0},{cN:"string",b:'"',e:'"',c:f,r:0},{cN:"string",b:"`",e:"`",c:[hljs.BE]},{cN:"string",b:"{\\w+}",r:0},{cN:"string",b:"-?\\w+\\s*\\=\\>",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:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[hljs.BE],r:0},{cN:"sub",b:"\\bsub\\b",e:"(\\s*\\(.*?\\))?[;{]",k:{sub:1},r:5},b,a,{cN:"operator",b:"-\\w\\b",r:0},{cN:"pod",b:"\\=\\w",e:"\\=cut"}];d.c=e;return{dM:{k:c,c:e}}}();hljs.LANGUAGES.scala=function(){var a={cN:"annotation",b:"@[A-Za-z]+"};var b={cN:"string",b:'u?r?"""',e:'"""',r:10};return{dM:{k:{type:1,yield:1,lazy:1,override:1,def:1,"with":1,val:1,"var":1,"false":1,"true":1,sealed:1,"abstract":1,"private":1,trait:1,object:1,"null":1,"if":1,"for":1,"while":1,"throw":1,"finally":1,"protected":1,"extends":1,"import":1,"final":1,"return":1,"else":1,"break":1,"new":1,"catch":1,"super":1,"class":1,"case":1,"package":1,"default":1,"try":1,"this":1,match:1,"continue":1,"throws":1},c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"@[A-Za-z]+"}],r:10},hljs.CLCM,hljs.CBLCLM,hljs.ASM,hljs.QSM,b,{cN:"class",b:"((case )?class |object |trait )",e:"({|$)",i:":",k:{"case":1,"class":1,trait:1,object:1},c:[{b:"(extends|with)",k:{"extends":1,"with":1},r:10},{cN:"title",b:hljs.UIR},{cN:"params",b:"\\(",e:"\\)",c:[hljs.ASM,hljs.QSM,b,a]}]},hljs.CNM,a]}}}();hljs.LANGUAGES.cmake={cI:true,dM:{k:{add_custom_command:2,add_custom_target:2,add_definitions:2,add_dependencies:2,add_executable:2,add_library:2,add_subdirectory:2,add_executable:2,add_library:2,add_subdirectory:2,add_test:2,aux_source_directory:2,"break":1,build_command:2,cmake_minimum_required:3,cmake_policy:3,configure_file:1,create_test_sourcelist:1,define_property:1,"else":1,elseif:1,enable_language:2,enable_testing:2,endforeach:1,endfunction:1,endif:1,endmacro:1,endwhile:1,execute_process:2,"export":1,find_file:1,find_library:2,find_package:2,find_path:1,find_program:1,fltk_wrap_ui:2,foreach:1,"function":1,get_cmake_property:3,get_directory_property:1,get_filename_component:1,get_property:1,get_source_file_property:1,get_target_property:1,get_test_property:1,"if":1,include:1,include_directories:2,include_external_msproject:1,include_regular_expression:2,install:1,link_directories:1,load_cache:1,load_command:1,macro:1,mark_as_advanced:1,message:1,option:1,output_required_files:1,project:1,qt_wrap_cpp:2,qt_wrap_ui:2,remove_definitions:2,"return":1,separate_arguments:1,set:1,set_directory_properties:1,set_property:1,set_source_files_properties:1,set_target_properties:1,set_tests_properties:1,site_name:1,source_group:1,string:1,target_link_libraries:2,try_compile:2,try_run:2,unset:1,variable_watch:2,"while":1,build_name:1,exec_program:1,export_library_dependencies:1,install_files:1,install_programs:1,install_targets:1,link_libraries:1,make_directory:1,remove:1,subdir_depends:1,subdirs:1,use_mangled_mesa:1,utility_source:1,variable_requires:1,write_file:1},c:[{cN:"envvar",b:"\\${",e:"}"},hljs.HCM,hljs.QSM,hljs.NM]}};hljs.LANGUAGES.objectivec=function(){var a={keyword:{"false":1,"int":1,"float":1,"while":1,"private":1,"char":1,"catch":1,"export":1,sizeof:2,typedef:2,"const":1,struct:1,"for":1,union:1,unsigned:1,"long":1,"volatile":2,"static":1,"protected":1,bool:1,mutable:1,"if":1,"public":1,"do":1,"return":1,"goto":1,"void":2,"enum":1,"else":1,"break":1,extern:1,"true":1,"class":1,asm:1,"case":1,"short":1,"default":1,"double":1,"throw":1,register:1,explicit:1,signed:1,typename:1,"try":1,"this":1,"switch":1,"continue":1,wchar_t:1,inline:1,readonly:1,assign:1,property:1,protocol:10,self:1,"synchronized":1,end:1,synthesize:50,id:1,optional:1,required:1,implementation:10,nonatomic:1,"interface":1,"super":1,unichar:1,"finally":2,dynamic:2,nil:1},built_in:{YES:5,NO:5,NULL:1,IBOutlet:50,IBAction:50,NSString:50,NSDictionary:50,CGRect:50,CGPoint:50,NSRange:50,release:1,retain:1,autorelease:50,UIButton:50,UILabel:50,UITextView:50,UIWebView:50,MKMapView:50,UISegmentedControl:50,NSObject:50,UITableViewDelegate:50,UITableViewDataSource:50,NSThread:50,UIActivityIndicator:50,UITabbar:50,UIToolBar:50,UIBarButtonItem:50,UIImageView:50,NSAutoreleasePool:50,UITableView:50,BOOL:1,NSInteger:20,CGFloat:20,NSException:50,NSLog:50,NSMutableString:50,NSMutableArray:50,NSMutableDictionary:50,NSURL:50}};return{dM:{k:a,i:""}]},{cN:"preprocessor",b:"#",e:"$"},{cN:"class",b:"interface|class|protocol|implementation",e:"({|$)",k:{"interface":1,"class":1,protocol:5,implementation:5},c:[{cN:"id",b:hljs.UIR}]}]}}}();hljs.LANGUAGES.avrasm={cI:true,dM:{k:{keyword:{adc:1,add:1,adiw:1,and:1,andi:1,asr:1,bclr:1,bld:1,brbc:1,brbs:1,brcc:1,brcs:1,"break":1,breq:1,brge:1,brhc:1,brhs:1,brid:1,brie:1,brlo:1,brlt:1,brmi:1,brne:1,brpl:1,brsh:1,brtc:1,brts:1,brvc:1,brvs:1,bset:1,bst:1,call:1,cbi:1,cbr:1,clc:1,clh:1,cli:1,cln:1,clr:1,cls:1,clt:1,clv:1,clz:1,com:1,cp:1,cpc:1,cpi:1,cpse:1,dec:1,eicall:1,eijmp:1,elpm:1,eor:1,fmul:1,fmuls:1,fmulsu:1,icall:1,ijmp:1,"in":1,inc:1,jmp:1,ld:1,ldd:1,ldi:1,lds:1,lpm:1,lsl:1,lsr:1,mov:1,movw:1,mul:1,muls:1,mulsu:1,neg:1,nop:1,or:1,ori:1,out:1,pop:1,push:1,rcall:1,ret:1,reti:1,rjmp:1,rol:1,ror:1,sbc:1,sbr:1,sbrc:1,sbrs:1,sec:1,seh:1,sbi:1,sbci:1,sbic:1,sbis:1,sbiw:1,sei:1,sen:1,ser:1,ses:1,set:1,sev:1,sez:1,sleep:1,spm:1,st:1,std:1,sts:1,sub:1,subi:1,swap:1,tst:1,wdr:1},built_in:{r0:1,r1:1,r2:1,r3:1,r4:1,r5:1,r6:1,r7:1,r8:1,r9:1,r10:1,r11:1,r12:1,r13:1,r14:1,r15:1,r16:1,r17:1,r18:1,r19:1,r20:1,r21:1,r22:1,r23:1,r24:1,r25:1,r26:1,r27:1,r28:1,r29:1,r30:1,r31:1,x:1,xh:1,xl:1,y:1,yh:1,yl:1,z:1,zh:1,zl:1,ucsr1c:1,udr1:1,ucsr1a:1,ucsr1b:1,ubrr1l:1,ubrr1h:1,ucsr0c:1,ubrr0h:1,tccr3c:1,tccr3a:1,tccr3b:1,tcnt3h:1,tcnt3l:1,ocr3ah:1,ocr3al:1,ocr3bh:1,ocr3bl:1,ocr3ch:1,ocr3cl:1,icr3h:1,icr3l:1,etimsk:1,etifr:1,tccr1c:1,ocr1ch:1,ocr1cl:1,twcr:1,twdr:1,twar:1,twsr:1,twbr:1,osccal:1,xmcra:1,xmcrb:1,eicra:1,spmcsr:1,spmcr:1,portg:1,ddrg:1,ping:1,portf:1,ddrf:1,sreg:1,sph:1,spl:1,xdiv:1,rampz:1,eicrb:1,eimsk:1,gimsk:1,gicr:1,eifr:1,gifr:1,timsk:1,tifr:1,mcucr:1,mcucsr:1,tccr0:1,tcnt0:1,ocr0:1,assr:1,tccr1a:1,tccr1b:1,tcnt1h:1,tcnt1l:1,ocr1ah:1,ocr1al:1,ocr1bh:1,ocr1bl:1,icr1h:1,icr1l:1,tccr2:1,tcnt2:1,ocr2:1,ocdr:1,wdtcr:1,sfior:1,eearh:1,eearl:1,eedr:1,eecr:1,porta:1,ddra:1,pina:1,portb:1,ddrb:1,pinb:1,portc:1,ddrc:1,pinc:1,portd:1,ddrd:1,pind:1,spdr:1,spsr:1,spcr:1,udr0:1,ucsr0a:1,ucsr0b:1,ubrr0l:1,acsr:1,admux:1,adcsr:1,adch:1,adcl:1,porte:1,ddre:1,pine:1,pinf:1}},c:[hljs.CBLCLM,{cN:"comment",b:";",e:"$"},hljs.CNM,hljs.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},{cN:"label",b:"^[A-Za-z0-9_.$]+:"},{cN:"preprocessor",b:"#",e:"$"},{cN:"preprocessor",b:"\\.[a-zA-Z]+"},{cN:"localvars",b:"@[0-9]+"}]}};hljs.LANGUAGES.vhdl={cI:true,dM:{k:{keyword:{abs:1,access:1,after:1,alias:1,all:1,and:1,architecture:2,array:1,assert:1,attribute:1,begin:1,block:1,body:1,buffer:1,bus:1,"case":1,component:2,configuration:1,constant:1,disconnect:2,downto:2,"else":1,elsif:1,end:1,entity:2,exit:1,file:1,"for":1,"function":1,generate:2,generic:2,group:1,guarded:2,"if":0,impure:2,"in":1,inertial:1,inout:1,is:1,label:1,library:1,linkage:1,literal:1,loop:1,map:1,mod:1,nand:1,"new":1,next:1,nor:1,not:1,"null":1,of:1,on:1,open:1,or:1,others:1,out:1,"package":1,port:2,postponed:1,procedure:1,process:1,pure:2,range:1,record:1,register:1,reject:1,"return":1,rol:1,ror:1,select:1,severity:1,signal:1,shared:1,sla:1,sli:1,sra:1,srl:1,subtype:2,then:1,to:1,transport:1,type:1,units:1,until:1,use:1,variable:1,wait:1,when:1,"while":1,"with":1,xnor:1,xor:1},type:{"boolean":1,bit:1,character:1,severity_level:2,integer:1,time:1,delay_length:2,natural:1,positive:1,string:1,bit_vector:2,file_open_kind:2,file_open_status:2,std_ulogic:2,std_ulogic_vector:2,std_logic:2,std_logic_vector:2}},c:[{cN:"comment",b:"--",e:"$"},hljs.QSM,hljs.CNM,{cN:"literal",b:"'(U|X|0|1|Z|W|L|H|-)",e:"'",c:[hljs.BE],r:5}]}};hljs.LANGUAGES.nginx=function(){var c={cN:"variable",b:"\\$\\d+"};var b={cN:"variable",b:"\\${",e:"}"};var a={cN:"variable",b:"[\\$\\@]"+hljs.UIR};return{dM:{c:[hljs.HCM,{b:hljs.UIR,e:";|{",rE:true,k:{accept_mutex:1,accept_mutex_delay:1,access_log:1,add_after_body:1,add_before_body:1,add_header:1,addition_types:1,alias:1,allow:1,ancient_browser:1,ancient_browser:1,ancient_browser_value:1,ancient_browser_value:1,auth_basic:1,auth_basic_user_file:1,autoindex:1,autoindex_exact_size:1,autoindex_localtime:1,"break":1,charset:1,charset:1,charset_map:1,charset_map:1,charset_types:1,charset_types:1,client_body_buffer_size:1,client_body_in_file_only:1,client_body_in_single_buffer:1,client_body_temp_path:1,client_body_timeout:1,client_header_buffer_size:1,client_header_timeout:1,client_max_body_size:1,connection_pool_size:1,connections:1,create_full_put_path:1,daemon:1,dav_access:1,dav_methods:1,debug_connection:1,debug_points:1,default_type:1,deny:1,directio:1,directio_alignment:1,echo:1,echo_after_body:1,echo_before_body:1,echo_blocking_sleep:1,echo_duplicate:1,echo_end:1,echo_exec:1,echo_flush:1,echo_foreach_split:1,echo_location:1,echo_location_async:1,echo_read_request_body:1,echo_request_body:1,echo_reset_timer:1,echo_sleep:1,echo_subrequest:1,echo_subrequest_async:1,empty_gif:1,empty_gif:1,env:1,error_log:1,error_log:1,error_page:1,events:1,expires:1,fastcgi_bind:1,fastcgi_buffer_size:1,fastcgi_buffers:1,fastcgi_busy_buffers_size:1,fastcgi_cache:1,fastcgi_cache_key:1,fastcgi_cache_methods:1,fastcgi_cache_min_uses:1,fastcgi_cache_path:1,fastcgi_cache_use_stale:1,fastcgi_cache_valid:1,fastcgi_catch_stderr:1,fastcgi_connect_timeout:1,fastcgi_hide_header:1,fastcgi_ignore_client_abort:1,fastcgi_ignore_headers:1,fastcgi_index:1,fastcgi_intercept_errors:1,fastcgi_max_temp_file_size:1,fastcgi_next_upstream:1,fastcgi_param:1,fastcgi_pass:1,fastcgi_pass_header:1,fastcgi_pass_request_body:1,fastcgi_pass_request_headers:1,fastcgi_read_timeout:1,fastcgi_send_lowat:1,fastcgi_send_timeout:1,fastcgi_split_path_info:1,fastcgi_store:1,fastcgi_store_access:1,fastcgi_temp_file_write_size:1,fastcgi_temp_path:1,fastcgi_upstream_fail_timeout:1,fastcgi_upstream_max_fails:1,flv:1,geo:1,geo:1,geoip_city:1,geoip_country:1,gzip:1,gzip_buffers:1,gzip_comp_level:1,gzip_disable:1,gzip_hash:1,gzip_http_version:1,gzip_min_length:1,gzip_no_buffer:1,gzip_proxied:1,gzip_static:1,gzip_types:1,gzip_vary:1,gzip_window:1,http:1,"if":1,if_modified_since:1,ignore_invalid_headers:1,image_filter:1,image_filter_buffer:1,image_filter_jpeg_quality:1,image_filter_transparency:1,include:1,index:1,internal:1,ip_hash:1,js:1,js_load:1,js_require:1,js_utf8:1,keepalive_requests:1,keepalive_timeout:1,kqueue_changes:1,kqueue_events:1,large_client_header_buffers:1,limit_conn:1,limit_conn_log_level:1,limit_except:1,limit_rate:1,limit_rate_after:1,limit_req:1,limit_req_log_level:1,limit_req_zone:1,limit_zone:1,lingering_time:1,lingering_timeout:1,listen:1,location:1,lock_file:1,log_format:1,log_not_found:1,log_subrequest:1,map:1,map_hash_bucket_size:1,map_hash_max_size:1,master_process:1,memcached_bind:1,memcached_buffer_size:1,memcached_connect_timeout:1,memcached_next_upstream:1,memcached_pass:1,memcached_read_timeout:1,memcached_send_timeout:1,memcached_upstream_fail_timeout:1,memcached_upstream_max_fails:1,merge_slashes:1,min_delete_depth:1,modern_browser:1,modern_browser:1,modern_browser_value:1,modern_browser_value:1,more_clear_headers:1,more_clear_input_headers:1,more_set_headers:1,more_set_input_headers:1,msie_padding:1,msie_refresh:1,multi_accept:1,open_file_cache:1,open_file_cache_errors:1,open_file_cache_events:1,open_file_cache_min_uses:1,open_file_cache_retest:1,open_file_cache_valid:1,open_log_file_cache:1,optimize_server_names:1,output_buffers:1,override_charset:1,override_charset:1,perl:1,perl_modules:1,perl_require:1,perl_set:1,pid:1,port_in_redirect:1,post_action:1,postpone_gzipping:1,postpone_output:1,proxy_bind:1,proxy_buffer_size:1,proxy_buffering:1,proxy_buffers:1,proxy_busy_buffers_size:1,proxy_cache:1,proxy_cache_key:1,proxy_cache_methods:1,proxy_cache_min_uses:1,proxy_cache_path:1,proxy_cache_use_stale:1,proxy_cache_valid:1,proxy_connect_timeout:1,proxy_headers_hash_bucket_size:1,proxy_headers_hash_max_size:1,proxy_hide_header:1,proxy_ignore_client_abort:1,proxy_ignore_headers:1,proxy_intercept_errors:1,proxy_max_temp_file_size:1,proxy_method:1,proxy_next_upstream:1,proxy_pass:1,proxy_pass_header:1,proxy_pass_request_body:1,proxy_pass_request_headers:1,proxy_read_timeout:1,proxy_redirect:1,proxy_send_lowat:1,proxy_send_timeout:1,proxy_set_body:1,proxy_set_header:1,proxy_store:1,proxy_store_access:1,proxy_temp_file_write_size:1,proxy_temp_path:1,proxy_upstream_fail_timeout:1,proxy_upstream_max_fails:1,push_authorized_channels_only:1,push_channel_group:1,push_max_channel_id_length:1,push_max_channel_subscribers:1,push_max_message_buffer_length:1,push_max_reserved_memory:1,push_message_buffer_length:1,push_message_timeout:1,push_min_message_buffer_length:1,push_min_message_recipients:1,push_publisher:1,push_store_messages:1,push_subscriber:1,push_subscriber_concurrency:1,random_index:1,read_ahead:1,real_ip_header:1,recursive_error_pages:1,request_pool_size:1,reset_timedout_connection:1,resolver:1,resolver_timeout:1,"return":1,rewrite:1,rewrite_log:1,root:1,satisfy:1,satisfy_any:1,send_lowat:1,send_timeout:1,sendfile:1,sendfile_max_chunk:1,server:1,server:1,server_name:1,server_name_in_redirect:1,server_names_hash_bucket_size:1,server_names_hash_max_size:1,server_tokens:1,set:1,set_real_ip_from:1,source_charset:1,source_charset:1,ssi:1,ssi_ignore_recycled_buffers:1,ssi_min_file_chunk:1,ssi_silent_errors:1,ssi_types:1,ssi_value_length:1,ssl:1,ssl_certificate:1,ssl_certificate_key:1,ssl_ciphers:1,ssl_client_certificate:1,ssl_crl:1,ssl_dhparam:1,ssl_prefer_server_ciphers:1,ssl_protocols:1,ssl_session_cache:1,ssl_session_timeout:1,ssl_verify_client:1,ssl_verify_depth:1,sub_filter:1,sub_filter_once:1,sub_filter_types:1,tcp_nodelay:1,tcp_nopush:1,timer_resolution:1,try_files:1,types:1,types_hash_bucket_size:1,types_hash_max_size:1,underscores_in_headers:1,uninitialized_variable_warn:1,upstream:1,use:1,user:1,userid:1,userid:1,userid_domain:1,userid_domain:1,userid_expires:1,userid_expires:1,userid_mark:1,userid_name:1,userid_name:1,userid_p3p:1,userid_p3p:1,userid_path:1,userid_path:1,userid_service:1,userid_service:1,valid_referers:1,variables_hash_bucket_size:1,variables_hash_max_size:1,worker_connections:1,worker_cpu_affinity:1,worker_priority:1,worker_processes:1,worker_rlimit_core:1,worker_rlimit_nofile:1,worker_rlimit_sigpending:1,working_directory:1,xml_entities:1,xslt_stylesheet:1,xslt_types:1},r:0,c:[hljs.HCM,{b:"\\s",e:"[;{]",rB:true,rE:true,l:"[a-z/]+",k:{built_in:{on:1,off:1,yes:1,no:1,"true":1,"false":1,none:1,blocked:1,debug:1,info:1,notice:1,warn:1,error:1,crit:1,select:1,permanent:1,redirect:1,kqueue:1,rtsig:1,epoll:1,poll:1,"/dev/poll":1}},r:0,c:[hljs.HCM,{cN:"string",b:'"',e:'"',c:[hljs.BE,c,b,a],r:0},{cN:"string",b:"'",e:"'",c:[hljs.BE,c,b,a],r:0},{cN:"string",b:"([a-z]+):/",e:"[;\\s]",rE:true},{cN:"regexp",b:"\\s\\^",e:"\\s|{|;",rE:true,c:[hljs.BE,c,b,a]},{cN:"regexp",b:"~\\*?\\s+",e:"\\s|{|;",rE:true,c:[hljs.BE,c,b,a]},{cN:"regexp",b:"\\*(\\.[a-z\\-]+)+",c:[hljs.BE,c,b,a]},{cN:"regexp",b:"([a-z\\-]+\\.)+\\*",c:[hljs.BE,c,b,a]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b"},{cN:"number",b:"\\s\\d+[kKmMgGdshdwy]*\\b",r:0},c,b,a]}]}]}}}();hljs.LANGUAGES.erlang_repl={dM:{k:{special_functions:{spawn:10,spawn_link:10,self:2},reserved:{after:1,and:1,andalso:5,band:1,begin:1,bnot:1,bor:1,bsl:1,bsr:1,bxor:1,"case":1,"catch":0,cond:1,div:1,end:1,fun:0,"if":0,let:1,not:0,of:1,or:1,orelse:5,query:1,receive:0,rem:1,"try":0,when:1,xor:1}},c:[{cN:"input_number",b:"^[0-9]+> ",r:10},{cN:"comment",b:"%",e:"$"},hljs.NM,hljs.ASM,hljs.QSM,{cN:"constant",b:"\\?(::)?([A-Z]\\w*(::)?)+"},{cN:"arrow",b:"->"},{cN:"ok",b:"ok"},{cN:"exclamation_mark",b:"!"},{cN:"function_or_atom",b:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",r:0},{cN:"variable",b:"[A-Z][a-zA-Z0-9_']*",r:0}]}};hljs.LANGUAGES.django=function(){function c(f,e){return(e==undefined||(!f.cN&&e.cN=="tag")||f.cN=="value")}function d(j,e){var h={};for(var g in j){if(g!="contains"){h[g]=j[g]}var k=[];for(var f=0;j.c&&f"},hljs.QSM]}}}();hljs.LANGUAGES.cpp=function(){var b={keyword:{"false":1,"int":1,"float":1,"while":1,"private":1,"char":1,"catch":1,"export":1,virtual:1,operator:2,sizeof:2,dynamic_cast:2,typedef:2,const_cast:2,"const":1,struct:1,"for":1,static_cast:2,union:1,namespace:1,unsigned:1,"long":1,"throw":1,"volatile":2,"static":1,"protected":1,bool:1,template:1,mutable:1,"if":1,"public":1,friend:2,"do":1,"return":1,"goto":1,auto:1,"void":2,"enum":1,"else":1,"break":1,"new":1,extern:1,using:1,"true":1,"class":1,asm:1,"case":1,typeid:1,"short":1,reinterpret_cast:2,"default":1,"double":1,register:1,explicit:1,signed:1,typename:1,"try":1,"this":1,"switch":1,"continue":1,wchar_t:1,inline:1,"delete":1,alignof:1,char16_t:1,char32_t:1,constexpr:1,decltype:1,noexcept:1,nullptr:1,static_assert:1,thread_local:1},built_in:{std:1,string:1,cin:1,cout:1,cerr:1,clog:1,stringstream:1,istringstream:1,ostringstream:1,auto_ptr:1,deque:1,list:1,queue:1,stack:1,vector:1,map:1,set:1,bitset:1,multiset:1,multimap:1,unordered_set:1,unordered_map:1,unordered_multiset:1,unordered_multimap:1,array:1,shared_ptr:1}};var a={cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b.built_in,r:10};a.c=[a];return{dM:{k:b,i:"'; - } - - 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 += (''); - } 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 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; - - // 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/languages/bash.js b/vendor/highlight/lib/vendor/highlight.js/languages/bash.js deleted file mode 100644 index 9507424..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/languages/bash.js +++ /dev/null @@ -1,63 +0,0 @@ -/* -Language: Bash -Author: vah -Category: common -*/ -module.exports = function(hljs){ -hljs.LANGUAGES.bash = function(){ - var BASH_LITERAL = {'true' : 1, 'false' : 1}; - var VAR1 = { - className: 'variable', - begin: '\\$([a-zA-Z0-9_]+)\\b' - }; - var VAR2 = { - className: 'variable', - begin: '\\$\\{(([^}])|(\\\\}))+\\}', - contains: [hljs.C_NUMBER_MODE] - }; - var STRING = { - className: 'string', - begin: '"', end: '"', - illegal: '\\n', - contains: [hljs.BACKSLASH_ESCAPE, VAR1, VAR2], - relevance: 0 - }; - var TEST_CONDITION = { - className: 'test_condition', - begin: '', end: '', - contains: [STRING, VAR1, VAR2, hljs.C_NUMBER_MODE], - keywords: { - 'literal': BASH_LITERAL - }, - relevance: 0 - }; - - return { - defaultMode: { - keywords: { - 'keyword': {'if' : 1, 'then' : 1, 'else' : 1, 'fi' : 1, 'for' : 1, 'break' : 1, 'continue' : 1, 'while' : 1, 'in' : 1, 'do' : 1, 'done' : 1, 'echo' : 1, 'exit' : 1, 'return' : 1, 'set' : 1, 'declare' : 1}, - 'literal': BASH_LITERAL - }, - contains: [ - { - className: 'shebang', - begin: '(#!\\/bin\\/bash)|(#!\\/bin\\/sh)', - relevance: 10 - }, - hljs.HASH_COMMENT_MODE, - { - className: 'comment', - begin: '\\/\\/', end: '$', - illegal: '.' - }, - hljs.C_NUMBER_MODE, - STRING, - VAR1, - VAR2, - hljs.inherit(TEST_CONDITION, {begin: '\\[ ', end: ' \\]', relevance: 0}), - hljs.inherit(TEST_CONDITION, {begin: '\\[\\[ ', end: ' \\]\\]'}) - ] - } - }; -}(); -}; \ No newline at end of file diff --git a/vendor/highlight/lib/vendor/highlight.js/languages/javascript.js b/vendor/highlight/lib/vendor/highlight.js/languages/javascript.js deleted file mode 100644 index 8c09ba7..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/languages/javascript.js +++ /dev/null @@ -1,54 +0,0 @@ -/* -Language: Javascript -Category: common -*/ -module.exports = function(hljs){ -hljs.LANGUAGES.javascript = { - defaultMode: { - keywords: { - 'keyword': {'in': 1, 'if': 1, 'for': 1, 'while': 1, 'finally': 1, 'var': 1, 'new': 1, 'function': 1, 'do': 1, 'return': 1, 'void': 1, 'else': 1, 'break': 1, 'catch': 1, 'instanceof': 1, 'with': 1, 'throw': 1, 'case': 1, 'default': 1, 'try': 1, 'this': 1, 'switch': 1, 'continue': 1, 'typeof': 1, 'delete': 1}, - 'literal': {'true': 1, 'false': 1, 'null': 1} - }, - contains: [ - hljs.APOS_STRING_MODE, - hljs.QUOTE_STRING_MODE, - hljs.C_LINE_COMMENT_MODE, - hljs.C_BLOCK_COMMENT_MODE, - hljs.C_NUMBER_MODE, - { // regexp container - begin: '(' + hljs.RE_STARTERS_RE + '|case|return|throw)\\s*', - keywords: {'return': 1, 'throw': 1, 'case': 1}, - contains: [ - hljs.C_LINE_COMMENT_MODE, - hljs.C_BLOCK_COMMENT_MODE, - { - className: 'regexp', - begin: '/.*?[^\\\\/]/[gim]*' - } - ], - relevance: 0 - }, - { - className: 'function', - begin: '\\bfunction\\b', end: '{', - keywords: {'function': 1}, - contains: [ - { - className: 'title', begin: '[A-Za-z$_][0-9A-Za-z$_]*' - }, - { - className: 'params', - begin: '\\(', end: '\\)', - contains: [ - hljs.APOS_STRING_MODE, - hljs.QUOTE_STRING_MODE, - hljs.C_LINE_COMMENT_MODE, - hljs.C_BLOCK_COMMENT_MODE - ] - } - ] - } - ] - } -}; -}; \ No newline at end of file diff --git a/vendor/highlight/lib/vendor/highlight.js/languages/ruby.js b/vendor/highlight/lib/vendor/highlight.js/languages/ruby.js deleted file mode 100644 index 0d62526..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/languages/ruby.js +++ /dev/null @@ -1,205 +0,0 @@ -/* -Language: Ruby -Author: Anton Kovalyov -Contributors: Peter Leonov , Vasily Polovnyov , Loren Segal -Category: common -*/ -module.exports = function(hljs){ -hljs.LANGUAGES.ruby = function(){ - var RUBY_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?'; - var RUBY_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?'; - var RUBY_KEYWORDS = { - 'keyword': {'and': 1, 'false': 1, 'then': 1, 'defined': 1, 'module': 1, 'in': 1, 'return': 1, 'redo': 1, 'if': 1, 'BEGIN': 1, 'retry': 1, 'end': 1, 'for': 1, 'true': 1, 'self': 1, 'when': 1, 'next': 1, 'until': 1, 'do': 1, 'begin': 1, 'unless': 1, 'END': 1, 'rescue': 1, 'nil': 1, 'else': 1, 'break': 1, 'undef': 1, 'not': 1, 'super': 1, 'class': 1, 'case': 1, 'require': 1, 'yield': 1, 'alias': 1, 'while': 1, 'ensure': 1, 'elsif': 1, 'or': 1, 'def': 1}, - 'keymethods': {'__id__': 1, '__send__': 1, 'abort': 1, 'abs': 1, 'all?': 1, 'allocate': 1, 'ancestors': 1, 'any?': 1, 'arity': 1, 'assoc': 1, 'at': 1, 'at_exit': 1, 'autoload': 1, 'autoload?': 1, 'between?': 1, 'binding': 1, 'binmode': 1, 'block_given?': 1, 'call': 1, 'callcc': 1, 'caller': 1, 'capitalize': 1, 'capitalize!': 1, 'casecmp': 1, 'catch': 1, 'ceil': 1, 'center': 1, 'chomp': 1, 'chomp!': 1, 'chop': 1, 'chop!': 1, 'chr': 1, 'class': 1, 'class_eval': 1, 'class_variable_defined?': 1, 'class_variables': 1, 'clear': 1, 'clone': 1, 'close': 1, 'close_read': 1, 'close_write': 1, 'closed?': 1, 'coerce': 1, 'collect': 1, 'collect!': 1, 'compact': 1, 'compact!': 1, 'concat': 1, 'const_defined?': 1, 'const_get': 1, 'const_missing': 1, 'const_set': 1, 'constants': 1, 'count': 1, 'crypt': 1, 'default': 1, 'default_proc': 1, 'delete': 1, 'delete!': 1, 'delete_at': 1, 'delete_if': 1, 'detect': 1, 'display': 1, 'div': 1, 'divmod': 1, 'downcase': 1, 'downcase!': 1, 'downto': 1, 'dump': 1, 'dup': 1, 'each': 1, 'each_byte': 1, 'each_index': 1, 'each_key': 1, 'each_line': 1, 'each_pair': 1, 'each_value': 1, 'each_with_index': 1, 'empty?': 1, 'entries': 1, 'eof': 1, 'eof?': 1, 'eql?': 1, 'equal?': 1, 'eval': 1, 'exec': 1, 'exit': 1, 'exit!': 1, 'extend': 1, 'fail': 1, 'fcntl': 1, 'fetch': 1, 'fileno': 1, 'fill': 1, 'find': 1, 'find_all': 1, 'first': 1, 'flatten': 1, 'flatten!': 1, 'floor': 1, 'flush': 1, 'for_fd': 1, 'foreach': 1, 'fork': 1, 'format': 1, 'freeze': 1, 'frozen?': 1, 'fsync': 1, 'getc': 1, 'gets': 1, 'global_variables': 1, 'grep': 1, 'gsub': 1, 'gsub!': 1, 'has_key?': 1, 'has_value?': 1, 'hash': 1, 'hex': 1, 'id': 1, 'include': 1, 'include?': 1, 'included_modules': 1, 'index': 1, 'indexes': 1, 'indices': 1, 'induced_from': 1, 'inject': 1, 'insert': 1, 'inspect': 1, 'instance_eval': 1, 'instance_method': 1, 'instance_methods': 1, 'instance_of?': 1, 'instance_variable_defined?': 1, 'instance_variable_get': 1, 'instance_variable_set': 1, 'instance_variables': 1, 'integer?': 1, 'intern': 1, 'invert': 1, 'ioctl': 1, 'is_a?': 1, 'isatty': 1, 'iterator?': 1, 'join': 1, 'key?': 1, 'keys': 1, 'kind_of?': 1, 'lambda': 1, 'last': 1, 'length': 1, 'lineno': 1, 'ljust': 1, 'load': 1, 'local_variables': 1, 'loop': 1, 'lstrip': 1, 'lstrip!': 1, 'map': 1, 'map!': 1, 'match': 1, 'max': 1, 'member?': 1, 'merge': 1, 'merge!': 1, 'method': 1, 'method_defined?': 1, 'method_missing': 1, 'methods': 1, 'min': 1, 'module_eval': 1, 'modulo': 1, 'name': 1, 'nesting': 1, 'new': 1, 'next': 1, 'next!': 1, 'nil?': 1, 'nitems': 1, 'nonzero?': 1, 'object_id': 1, 'oct': 1, 'open': 1, 'pack': 1, 'partition': 1, 'pid': 1, 'pipe': 1, 'pop': 1, 'popen': 1, 'pos': 1, 'prec': 1, 'prec_f': 1, 'prec_i': 1, 'print': 1, 'printf': 1, 'private_class_method': 1, 'private_instance_methods': 1, 'private_method_defined?': 1, 'private_methods': 1, 'proc': 1, 'protected_instance_methods': 1, 'protected_method_defined?': 1, 'protected_methods': 1, 'public_class_method': 1, 'public_instance_methods': 1, 'public_method_defined?': 1, 'public_methods': 1, 'push': 1, 'putc': 1, 'puts': 1, 'quo': 1, 'raise': 1, 'rand': 1, 'rassoc': 1, 'read': 1, 'read_nonblock': 1, 'readchar': 1, 'readline': 1, 'readlines': 1, 'readpartial': 1, 'rehash': 1, 'reject': 1, 'reject!': 1, 'remainder': 1, 'reopen': 1, 'replace': 1, 'require': 1, 'respond_to?': 1, 'reverse': 1, 'reverse!': 1, 'reverse_each': 1, 'rewind': 1, 'rindex': 1, 'rjust': 1, 'round': 1, 'rstrip': 1, 'rstrip!': 1, 'scan': 1, 'seek': 1, 'select': 1, 'send': 1, 'set_trace_func': 1, 'shift': 1, 'singleton_method_added': 1, 'singleton_methods': 1, 'size': 1, 'sleep': 1, 'slice': 1, 'slice!': 1, 'sort': 1, 'sort!': 1, 'sort_by': 1, 'split': 1, 'sprintf': 1, 'squeeze': 1, 'squeeze!': 1, 'srand': 1, 'stat': 1, 'step': 1, 'store': 1, 'strip': 1, 'strip!': 1, 'sub': 1, 'sub!': 1, 'succ': 1, 'succ!': 1, 'sum': 1, 'superclass': 1, 'swapcase': 1, 'swapcase!': 1, 'sync': 1, 'syscall': 1, 'sysopen': 1, 'sysread': 1, 'sysseek': 1, 'system': 1, 'syswrite': 1, 'taint': 1, 'tainted?': 1, 'tell': 1, 'test': 1, 'throw': 1, 'times': 1, 'to_a': 1, 'to_ary': 1, 'to_f': 1, 'to_hash': 1, 'to_i': 1, 'to_int': 1, 'to_io': 1, 'to_proc': 1, 'to_s': 1, 'to_str': 1, 'to_sym': 1, 'tr': 1, 'tr!': 1, 'tr_s': 1, 'tr_s!': 1, 'trace_var': 1, 'transpose': 1, 'trap': 1, 'truncate': 1, 'tty?': 1, 'type': 1, 'ungetc': 1, 'uniq': 1, 'uniq!': 1, 'unpack': 1, 'unshift': 1, 'untaint': 1, 'untrace_var': 1, 'upcase': 1, 'upcase!': 1, 'update': 1, 'upto': 1, 'value?': 1, 'values': 1, 'values_at': 1, 'warn': 1, 'write': 1, 'write_nonblock': 1, 'zero?': 1, 'zip': 1} - }; - var YARDOCTAG = { - className: 'yardoctag', - begin: '@[A-Za-z]+' - }; - var COMMENT1 = { - className: 'comment', - begin: '#', end: '$', - contains: [YARDOCTAG] - }; - var COMMENT2 = { - className: 'comment', - begin: '^\\=begin', end: '^\\=end', - contains: [YARDOCTAG], - relevance: 10 - }; - var COMMENT3 = { - className: 'comment', - begin: '^__END__', end: '\\n$' - }; - var SUBST = { - className: 'subst', - begin: '#\\{', end: '}', - lexems: RUBY_IDENT_RE, - keywords: RUBY_KEYWORDS - }; - var STR_CONTAINS = [hljs.BACKSLASH_ESCAPE, SUBST]; - var STR1 = { - className: 'string', - begin: '\'', end: '\'', - contains: STR_CONTAINS, - relevance: 0 - }; - var STR2 = { - className: 'string', - begin: '"', end: '"', - contains: STR_CONTAINS, - relevance: 0 - }; - var STR3 = { - className: 'string', - begin: '%[qw]?\\(', end: '\\)', - contains: STR_CONTAINS, - relevance: 10 - }; - var STR4 = { - className: 'string', - begin: '%[qw]?\\[', end: '\\]', - contains: STR_CONTAINS, - relevance: 10 - }; - var STR5 = { - className: 'string', - begin: '%[qw]?{', end: '}', - contains: STR_CONTAINS, - relevance: 10 - }; - var STR6 = { - className: 'string', - begin: '%[qw]?<', end: '>', - contains: STR_CONTAINS, - relevance: 10 - }; - var STR7 = { - className: 'string', - begin: '%[qw]?/', end: '/', - contains: STR_CONTAINS, - relevance: 10 - }; - var STR8 = { - className: 'string', - begin: '%[qw]?%', end: '%', - contains: STR_CONTAINS, - relevance: 10 - }; - var STR9 = { - className: 'string', - begin: '%[qw]?-', end: '-', - contains: STR_CONTAINS, - relevance: 10 - }; - var STR10 = { - className: 'string', - begin: '%[qw]?\\|', end: '\\|', - contains: STR_CONTAINS, - relevance: 10 - }; - var FUNCTION = { - className: 'function', - begin: '\\bdef\\s+', end: ' |$|;', - lexems: RUBY_IDENT_RE, - keywords: RUBY_KEYWORDS, - contains: [ - { - className: 'title', - begin: RUBY_METHOD_RE, - lexems: RUBY_IDENT_RE, - keywords: RUBY_KEYWORDS - }, - { - className: 'params', - begin: '\\(', end: '\\)', - lexems: RUBY_IDENT_RE, - keywords: RUBY_KEYWORDS - }, - COMMENT1, COMMENT2, COMMENT3 - ] - }; - var IDENTIFIER = { - className: 'identifier', - begin: RUBY_IDENT_RE, - lexems: RUBY_IDENT_RE, - keywords: RUBY_KEYWORDS, - relevance: 0 - }; - - var RUBY_DEFAULT_CONTAINS = [ - COMMENT1, COMMENT2, COMMENT3, - STR1, STR2, STR3, STR4, STR5, STR6, STR7, STR8, STR9, STR10, - { - className: 'class', - begin: '\\b(class|module)\\b', end: '$|;', - keywords: {'class': 1, 'module': 1}, - contains: [ - { - className: 'title', - begin: '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?', - relevance: 0 - }, - { - className: 'inheritance', - begin: '<\\s*', - contains: [{ - className: 'parent', - begin: '(' + hljs.IDENT_RE + '::)?' + hljs.IDENT_RE - }] - }, - COMMENT1, COMMENT2, COMMENT3 - ] - }, - FUNCTION, - { - className: 'constant', - begin: '(::)?([A-Z]\\w*(::)?)+', - relevance: 0 - }, - { - className: 'symbol', - begin: ':', - contains: [STR1, STR2, STR3, STR4, STR5, STR6, STR7, STR8, STR9, STR10, IDENTIFIER], - relevance: 0 - }, - { - className: 'number', - begin: '(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b', - relevance: 0 - }, - { - className: 'number', - begin: '\\?\\w' - }, - { - className: 'variable', - begin: '(\\$\\W)|((\\$|\\@\\@?)(\\w+))' - }, - IDENTIFIER, - { // regexp container - begin: '(' + hljs.RE_STARTERS_RE + ')\\s*', - contains: [ - COMMENT1, COMMENT2, COMMENT3, - { - className: 'regexp', - begin: '/', end: '/[a-z]*', - illegal: '\\n', - contains: [hljs.BACKSLASH_ESCAPE] - } - ], - relevance: 0 - } - ]; - SUBST.contains = RUBY_DEFAULT_CONTAINS; - FUNCTION.contains[1].contains = RUBY_DEFAULT_CONTAINS; - - return { - defaultMode: { - lexems: RUBY_IDENT_RE, - keywords: RUBY_KEYWORDS, - contains: RUBY_DEFAULT_CONTAINS - } - }; -}(); -}; \ No newline at end of file diff --git a/vendor/highlight/lib/vendor/highlight.js/readme.eng.txt b/vendor/highlight/lib/vendor/highlight.js/readme.eng.txt deleted file mode 100644 index 45510c4..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/readme.eng.txt +++ /dev/null @@ -1,486 +0,0 @@ -# Highlight.js - -Highlight.js highlights syntax in code examples on blogs, forums and -in fact on any web pages. It's very easy to use because it works -automatically: finds blocks of code, detects a language, highlights it. - -Autodetection can be fine tuned when it fails by itself (see "Heuristics"). - - -## Installation and usage - -Downloaded package includes file "highlight.pack.js" which is a full compressed -version of the library intended to use in production. All uncompressed source -files are also available, feel free to look into them! - -The script is installed by linking to a single file and making a single -initialization call: - - - - -Also you can replaces TAB ('\x09') characters used for indentation in your code -with some fixed number of spaces or with a `` to set them special styling: - - - -Then the script looks in your page for fragments `
    ...
    ` -that are used traditionally to mark up code examples. Their content is -marked up by logical pieces with defined class names. - - -### Custom initialization - -If you use different markup for code blocks you can initialize them manually -with `highlightBlock(code, tabReplace)` function. It takes a DOM element -containing the code to highlight and optionally a string with which to replace -TAB characters. - -Initialization using for example jQuery might look like this: - - $(document).ready(function() { - $('pre code').each(function(i, e) {hljs.highlightBlock(e, ' ')}); - }); - - -### Styling - -Elements of code marked up with classes can be styled as desired: - - .comment { - color: gray; - } - - .keyword { - font-weight: bold; - } - - .python .string { - color: blue; - } - - .html .atribute .value { - color: green; - } - -Highligt.js comes with several style themes located in "styles" directory that -can be used directly or as a base for your own experiments. - -A full list of available classes is below ("Languages"). - - -## Export - -File export.html contains a little program that shows and allows to copy and paste -an HTML code generated by the highlighter for any code snippet. This can be useful -in situations when one can't use the script itself on a site. - - -## Languages - -This is a full list of available classes corresponding to languages' -syntactic structures. In parentheses after language names are identifiers -used as class names in `` element. - -Python ("python"): - - keyword keyword - built_in built-in objects (None, False, True and Ellipsis) - number number - string string (of any type) - comment comment - decorator @-decorator for functions - function function header "def some_name(...):" - class class header "class SomeName(...):" - title name of a function or a class inside a header - params everything inside parentheses in a function's or class' header - -Python profiler results ("profile"): - - number number - string string - builtin builtin function entry - filename filename in an entry - summary profiling summary - header header of table of results - keyword column header - function function name in an entry (including parentheses) - title actual name of a function in an entry (excluding parentheses) - -Ruby ("ruby"): - - keyword keyword - string string - subst in-string substitution (#{...}) - comment comment - yardoctag YARD tag - function function header "def some_name(...):" - class class header "class SomeName(...):" - title name of a function or a class inside a header - parent name of a parent class - symbol symbol - instancevar instance variable - -Perl ("perl"): - - keyword keyword - comment comment - number number - string string - regexp regular expression - sub subroutine header (from "sub" till "{") - variable variable starting with "$", "%", "@" - operator operator - pod plain old doc - -PHP ("php"): - - keyword keyword - number number - string string (of any type) - comment comment - phpdoc phpdoc params in comments - variable variable starting with "$" - preprocessor preprocessor marks: "" - -Scala ("scala"): - - keyword keyword - number number - string string - comment comment - annotaion annotation - javadoc javadoc comment - javadoctag @-tag in javadoc - class class header - title class name inside a header - params everything in parentheses inside a class header - inheritance keywords "extends" and "with" inside class header - -XML ("xml"): - - tag any tag from "<" till ">" - comment comment - pi processing instruction () - cdata CDATA section - attribute attribute - value attribute's value - -HTML ("html"): - - keyword HTML tag - tag any tag from "<" till ">" - comment comment - doctype declaration - attribute tag's attribute with or without value - value attribute's value - -CSS ("css"): - - keyword HTML tag when in selectors, CSS keyword when in rules - id #some_name in selectors - class .some_name in selectors - at_rule @-rule till first "{" or ";" - attr_selector attribute selector (square brackets in a[href^=http://]) - pseudo pseudo classes and elemens (:after, ::after etc.) - comment comment - rules everything from "{" till "}" - value property's value inside a rule, from ":" till ";" or - till the end of rule block - number number within a value - string string within a value - hexcolor hex color (#FFFFFF) within a value - function CSS function within a value - params everything between "(" and ")" within a function - -Django ("django"): - - keyword HTML tag in HTML, default tags and default filters in templates - tag any tag from "<" till ">" - comment comment - doctype declaration - attribute tag's attribute with or withou value - value attribute's value - template_tag template tag {% .. %} - variable template variable {{ .. }} - template_comment template comment, both {# .. #} and {% comment %} - filter filter from "|" till the next filter or the end of tag - argument filter argument - -Javascript ("javascript"): - - keyword keyword - comment comment - number number - literal special literal: "true", "false" and "null" - string string - regexp regular expression - function header of a function - title name of a function inside a header - params everything inside parentheses in a function's header - -VBScript ("vbscript"): - - keyword keyword - number number - string string - comment comment - built_in built-in function - -Lua ("lua"): - - keyword keyword - number number - string string - comment comment - built_in built-in operator - function header of a function - title name of a function inside a header - params everything inside parentheses in a function's header - long_brackets multiline string in [=[ .. ]=] - -Delphi ("delphi"): - - keyword keyword - comment comment (of any type) - number number - string string - function header of a function, procedure, constructor and destructor - title name of a function, procedure, constructor or destructor - inside a header - params everything inside parentheses in a function's header - class class' body from "= class" till "end;" - -Java ("java"): - - keyword keyword - number number - string string - comment commment - annotaion annotation - javadoc javadoc comment - class class header from "class" till "{" - title class name inside a header - params everything in parentheses inside a class header - inheritance keywords "extends" and "implements" inside class header - -C++ ("cpp"): - - keyword keyword - number number - string string and character - comment comment - preprocessor preprocessor directive - stl_container instantiation of STL containers ("vector<...>") - -C# ("cs"): - - keyword keyword - number number - string string - comment commment - xmlDocTag xmldoc tag ("///", "", "<..>") - -RenderMan RSL ("rsl"): - - keyword keyword - number number - string string (including @"..") - comment comment - preprocessor preprocessor directive - shader sahder keywords - shading shading keywords - built_in built-in function - -RenderMan RIB ("rib"): - - keyword keyword - number number - string string - comment comment - commands command - -Maya Embedded Language ("mel"): - - keyword keyword - number number - string string - comment comment - variable variable - -SQL ("sql"): - - keyword keyword (mostly SQL'92 and SQL'99) - number number - string string (of any type: "..", '..', `..`) - comment comment - aggregate aggregate function - -Smalltalk ("smalltalk"): - - keyword keyword - number number - string string - comment commment - symbol symbol - array array - class name of a class - char char - localvars block of local variables - -Lisp ("lisp"): - - keyword keyword - number number - string string - comment commment - variable variable - literal b, t and nil - list non-quoted list - title first symbol in a non-quoted list - body remainder of the non-quoted list - quoted_list quoted list, both "(quote .. )" and "'(..)" - -Ini ("ini"): - - title title of a section - value value of a setting of any type - string string - number number - keyword boolean value keyword - -Apache ("apache"): - - keyword keyword - number number - comment commment - literal On and Off - sqbracket variables in rewrites "%{..}" - cbracket options in rewrites "[..]" - tag begin and end of a configuration section - -Nginx ("nginx"): - - keyword keyword - string string - number number - comment comment - built_in built-in constant - variable $-variable - -DOS ("dos"): - - keyword keyword - flow batch control keyword - stream DOS special files ("con", "prn", ...) - winutils some commands (see dos.js specifically) - envvar environment variables - -Bash ("bash"): - - keyword keyword - string string - number number - comment comment - literal special literal: "true" и "false" - variable variable - shebang script interpreter header - -Diff ("diff"): - - header file header - chunk chunk header within a file - addition added lines - deletion deleted lines - change changed lines - -Axapta ("axapta"): - - keyword keyword - number number - string string - comment commment - class class header from "class" till "{" - title class name inside a header - params everything in parentheses inside a class header - inheritance keywords "extends" and "implements" inside class header - preprocessor preprocessor directive - -1C ("1c"): - - keyword keyword - number number - date date - string string - comment commment - function header of function or procudure - title function name inside a header - params everything in parentheses inside a function header - preprocessor preprocessor directive - -AVR assembler ("avrasm"): - - keyword keyword - built_in pre-defined register - number number - string string - comment commment - label label - preprocessor preprocessor directive - localvars substitution in .macro - -Parser3 ("parser3"): - - keyword keyword - number number - comment commment - variable variable starting with "$" - preprocessor preprocessor directive - title user-defined name starting with "@" - -TeX ("tex"): - - comment comment - number number - command command - parameter parameter - formula formula - special special symbol - - -## Heuristics - -Autodetection of a code's language is done with a simple heuristics: -the program tries to highlight a fragment with all available languages and -counts all syntactic structures that it finds along the way. The language -with greatest count wins. - -This means that in short fragments the probability of an error is high -(and it really happens sometimes). In this cases you can set the fragment's -language explicitly by assigning a class to the `` element: - -
    ...
    - -You can use class names recommended in HTML5: "language-html", -"language-php". Classes also can be assigned to the `
    ` element.
    -
    -To disable highlighting of a fragment altogether use "no-highlight" class:
    -
    -    
    ...
    - -## Contacts - -Version: 5.11 -URL: http://softwaremaniacs.org/soft/highlight/en/ -Author: Ivan Sagalaev (Maniac@SoftwareManiacs.Org) - -For the license terms see LICENSE files. -For the list of contributors see AUTHORS.en.txt file. diff --git a/vendor/highlight/lib/vendor/highlight.js/readme.rus.txt b/vendor/highlight/lib/vendor/highlight.js/readme.rus.txt deleted file mode 100644 index 8e21518..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/readme.rus.txt +++ /dev/null @@ -1,494 +0,0 @@ -# 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 deleted file mode 100644 index f7249bb..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/styles/ascetic.css +++ /dev/null @@ -1,45 +0,0 @@ -/* - -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 deleted file mode 100644 index 6d152b4..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/styles/brown_paper.css +++ /dev/null @@ -1,105 +0,0 @@ -/* - -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 deleted file mode 100644 index 3813903dbf9fa7b1fb5bd11d9534c06667d9056f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18198 zcmZsCRajhYlWil7yGw9LaCaw2kl^kP!M%at?m>cka0u>ctf6s&e8CzTLSrGMaSIUS zWM7q;>fa~s$OpT> zFLY-GO$7j;Wl{{7eE9cF?XPU&ukYpLA870A2vBhFvU6lq^RRVx)N{0T2=eQ4J41(5=2G+8;)w1ZEPMkbF2bGnazV|OLZz2Hb@=WyXBX0)f+0o;fWze0N{t<*y ztIiNnZC{LRA&k!$ZY8RSSkRr34SfzyO1FQ1#+`5DKBGKIaW*#IpS|)H)0b)RO)vVT zdmZs``V5~Rd=7^niGNRi-KohFdl7;cLNt=6H%jET$<@@a?HPC}DI+UeV-R$j(|Cgb zovyEp&h`&JS~h*u+dsTgScW2zDVr4f~DH;Zx@cQhlKiyzUik!{j?26_bcGl3n zz;xi(8ENgs!;6LMT9?9^)|SgIm+Xu<9pAn@Jwvr@j|kU$Ps<;yJK|Ptilz{)cF~50 z>3}X}-GE2L$gd5vToUcA;ufTe+vCmq6y;EHLIF1Y)!*mMIk7Ufz`-6@{%j+0t}5by-kjAimHgt*AfoWQ3<}2%HH1G)X=gxwsGTnqo!jS zPp^mHU)Wdo9i$J93f_cGL~o081HVh2MIfFb&r#24&zMhy4-B`@-M4wqKeV5e3rOCk zzfxnXb=ed%7QxZsGFZ!Bk=ojIqXM0lz`=t&N`(ieb`uT$vaWG--x!ps=kokELG7^v z+{LRR;H>H{+#Sy9)~}T-X{s*WDIF9ko?!YOUrBL6c1UTt%|c-C%-R`h{*D&-?xTv6%U;Fy)q@zD7n;Mm&VTYo!f>`4|^@IrUrWqi<2` zIK=%8Y>k7_cJFc62Fm1dsu5V%^D!kOF(oA;3duw z%pO09{DvbtIv+U1{6MQ8Wq|e~4(8RFaZSiu$ z|CJ~BTvRLdM64V`xYr`XpzSoka%-H{0)Ro-jT6+} zT18|CY&T<`K}73~WMQMkzj<-{e`EjOV2Ch(n321C+#16;>MjIhblly|M?Br0UERMA z8yIvk9sVuv0~h)1=S{wY{&V6fDi@0c8|@S!>h`gR_^u~(f!y=uu=3o8U2>$VV-mwV zeJKl8K*mz%0O$3!XmmqEd#rW!>oY?U<|?CBsX=UMCSrinA}B9GA5MTUzn%ILQD=}Q z^-qc}to5D!{UYEBFfSF{7{}5#I2`7!9Xcs|{e!rTVYvNetFc@43N$#e!DM_Y#5_4V z3P*)qJyw97IJGZYj53iEQKK~Zk6QE|wnDAQ6e%ci7WM9yX{3Voy>2v7-{dW*|+Zvy7%^(o^DMc&%_Tp}4@Jo%0Bs7ObY$K2QS=1v19slY*WwV!8B05I;*7gc| zC}iWT!ocL=zoXCa-*EVkQZPGoFVou4>|(ng{&T`5ns(d;`0IWRE4$3aCE zX={pif)xfKL2J&CwL-rbsVhFX~Ast|24AzGCb$6bP zzjP96&p17?0`zA}Cr(1{- zBWmAc^Tih%c@PSpJD39Rtvbpc27|&`W}18q&trP3z4xp%4^t5T!T})zWON*!hQ+0C zGnKXI-(t5+$xcN_*!vy^Ebcn(`}3GQ=EjrR)jEu#)a!Qo+uU^L6Sf!vtQo@-)YCH_ zIkq!}#RQ?#H9Na)c>fA?i%F=AwN>+%6IHG_6~07@;tNMw)pj-py?fm5OAkUXC)Brp z)eG?cTAV-ODy=aRrlcS^!0S!95GOO@_zy6Yr~oZODHiWB(rYDHVW+oP+iSHanvW_2 zD+33#kuvw;P&BQf8OM-`63t1%h)cdnm8}>fIrS=425~>gpk!*nOPF^FRJ!}0{NO(e z1ANE&sU_mPMS;Pw9^8F*v5!k1Dr?=^%?eWij0f~to7y`V{K(<#9fgxsh1qZ}irc;t zApc;fE}TBG^?-(ZYfC3hk)rzA9||a50&`5$fOMODInB^CQQz-%|FVW(Me6cd&RQ!Em*`8(cOiTV*}I0^ zkh9#bz+b`^Achh+t!T{E%m*7Spr8X*#NFvrNeQKR9N#NYImXo$orFW}S#|kp!g) zC|mslRtj z{<(wk5heSmNTLQPjVu+tu`Ax0<Jp<3;sv=x5%C^te-lbQRUIA>ktvMAj}|$FYU$Qp}=T~;pv%9btR=dxklUy zkR9E*9e)3CPHhghYGI4o&yB<6Ek^@&s6_$^hHm%y;$mG#6s2Gj@yUh|7NNvbZ*-CiW>(`$PB*?kxl)}lSZKB^Wx?u%oy%PiU;Ucb|V z|JbtHI`e>wDu43V9mbmTz-O*hsj=x3p@_52uHWdv$KHWXIJ?hAN_O+SE^)}7#rG|6 z_BKM`Ghwpm2fNaI-XM&&0MIfLw+nk~2$Q9!(m1H({sIm*PjV$tD(vHzF8J^I z$5d)V3#P=#{X0~lkvdz*hO?2|P39$67m%BB>cJ;P&i?e>f6oD0A_x(fXnlhN8_iy~ z=8_i6_?scR{Q@F{<_+s`6F0?)4q>Y!TZURG@z1Xg(XF|Uq<7M}+x3!5CKzKPU%EBw zWsc%dMB{e=rbNFynyQz;$Wk>xdNDkRB!r}hPlheoBDRi4NdE0U68C8T=FwmB)E|du zu(3Ry^ER}qt8o=s^t;)ka7?Rw9BkK-AbMm!5YyN{n8j%4(FS=#^NXNFzOKvDh-fh_ ztrMuN#+;}%O*fdC_O-zikI?cL4FkQFbMJ&%;LsLdp2pU1z81byeDrcnfVfSPjd&Tx z0uTNCRa&zYgwCK{AP>=r8Sx{G=0I#zQ4SAF*CLY5@Ge_3>$_ebR&z8QuoP^G_nMbA zR!J5=NfW+bA;6g4yh|56J$}zRiUEt*T!NqU4MM$Ik(YO5ElC z3I>TTR5(&RS-e$~mJ610i3Tb|O!%oihx2Dou=SDi zY8QGbi&iMst0x9N)(Qw|m<=v9=H$h=d9q7_RC$8&xiTCpO(nAT)09jNd*kDz)xA=d zA>mDJMEO}wm=z8%##p8Epux^Z?6*hT+bBf^Yw~9wh1mOBI2*B_&;n6YqN$_sLi+`r zN+}oUEH%!)UEZO0kGwoV{fV0125Liy{XQRjOG;ll15xL$5w(ynu*BE#Y!uUbJlqhC z*)p9Akd=!p3VXT;Mo_Zvej_{xJkq)x&0<&B)@Utjud|co5aPb~dM)3OKXKmRzZ}RD zt~hR#D>70m`e$6d9RY-q2@W6QANld%IvZ*VmwpbdVCzWDJ`&UO%hC*(c9AJ; z8qe|b;=knC|ZRghL9-j+JpIpBjS zLIz{G#rkZ%K&UOs1pgA;bi1JjfXryT;9AV*AdF1(P;A$V^MMS0X10gTzoNjJBTB;U z#kJ5|QkG?|zHY}$^ddtj_$wAkIcd;Wk|&B6^`fnOL3uIPj@Z+b!gftAC_YE@sh~EY z@awBver>U-j(pBMf%*W;OI?#3J3yRO&^PqFHW`#yr|%#0rDM+^ZV zw!IXpiDk0Qo5iL_mNZlA`+m>mgyn-Z9( z1VK4OJry2Iq?o90-NhDNVAP3Niev{MJh~PQ7M5U9?Ob1#H}q=Dgn%~Ng=3b;7jX>n zADv=?=pgaOIN2G2JCr_(7k0YF#OlE0c}by4_|pb-iJ-CYzLbWwHs2A)ZY;uuYwbQMUa1ed5)1G+DXr$;MC*sQ-N@4$xD327+bTrT^ z?kmr?X}=Lu2xf7X5|gkw#k>FEC139#QtL*Y>C)kvvqB=d;fVQ8{+;RhP-)is9rX&jj-Ik zT00%|O4wv`6`(M(&W*hs2A z?qIa9QPvO>*ssTM+$((GcA1>?(C1jm10t6@Dy(k%HtIN+5d!Bk;~J%32ZhcKu$-i2gOM1Ek)Av0js<&PBErK4 zp0BqauJ^Yy7bnHdyGOO!FbWP*qG)O@I>y%wAIOX9eD)7R>ow6xlYRy-h|ZmQaLshv zm7r7H)>I5~>_i>NDSv6k)mCwZu$9K6)JGn#ni#>O5}3aMrYt7e67}_&zNlt_@b&$n z)VO|sK6qnt57(FA0!{d&$}h!DdNgOgYMn=8${CJ>S2YIAe zYh9atd77_K6soYC+WALnJL7SxqnE#(+1G`m^0I56gta@e+L0z>IRG+?>DS@Oe-NlQ z-mQ)F{=7b($L)X@jB5Ot*D*>ceMR8793ItK-tTO`iAnNm-xzYn0#;&=gXJYz8KmnUBrL#cb@ELwnkp?O zZZ{8tSRklRk}8Ts29G>v-&z?qob#qYSe!ek zt^r`X2W(J?(qxhOf%h#^?8D`^&MPbuUE9s z$80u<1iU&&+mQB<4bZeyBaOB}$!d@`^f4+iXS3;h>rXP~*FRrr)Wki^(q)&EwAMt?71xOWwtXa8UsY(_;C*7d*d9Z z-#(@Mu>`+6lrEC|=E^q^u&A=e+P9|#`hdP0Rg9`gUbNqm@!-Gg-V6vL;!*U<4ZtIa zv@cWy_^m4cV=F@sv3lCwx|?r%lb?NGQobaW&#Mi<9dngpq({-uy?xwAR&#MBUtybddE z1Ka>|_TRpK@#mBE#M;ka;RDR*2pXmP#YHG|5qh#YgXDUPD*cs3)>>Co@wnbArjo;_^QGnuQGdUSqu6AMPxBHbW99c9gHFZ*u&-M5cS}n@d z@wWUbV?X7y#NTCaqV_t*)w+Vzpte?L^08$=xiju5lCZ4~#~@34qa{rJM!{y~Tqe5H z-`N}U;ZKj9jnYas%EXCD=*$|XC$h{m@?;&T(uT--QOR_H^PcjyAP~pc&dS&v#J%KN zK|)APC-pnC;EKdibKx8O+Pqef? zY3J^)uf~;VDge4m$gh`Aj{?OYnES!Tftm1kjZwLB-5soBf8q9RaPk~e{SqHq+Gh(R z<}KbtcWaoIC!do+k`h}5s~QzJ&#Ro?TzU_eO^xAgvNoX&oKS7|-8Lm;%2@BRKwb9H4rRICqXPIQLdOMGtG>0(Kh}5xDzW z<`R5ub7|^ov6hX(i^R_d6ZdLQ5t}vu@?2|ueBl^W!CoR=LZ1Urel(cC{`jK##xJ5Z zW6m&PFV^e{7~mrz4!xy@n!O%C(vIRG0g>FrE1t+=n3;z9D!vWHCUjqMi*QAc4!hId zk9MAo2%jf}g*lzYPM7_RYQxo3rJR%jUCd5FoBmmSn@QTM@?QERM*E-uEb}GD!7+W4 z;ucS;Fa1*ZgF9U&8>R&|tjy3FH;93-Kpof^^nCm9kp4U+SFqwi@6}>$jo4)7x?L*p z5eHsG=We;aDoq*x+H6v7x39;dP<1mgK0fQuG+#L+=2<$z#m5Z5 zCEto{j1wIIxQ(7>!yi2iRgQS~c_6N5JHqo=$`q=PD?Y@90#727stD}1n!C~qy z1q^LAqT}jq4r2TFIf&-|vYu|DXI}0>^}2ev5jUXZCM+ZOWL>l4t}d2Pur%y+XM$j(Cc126Ww7ST~4S;g=2q8j3!|OoWynEtKkuUjZ>k za%azP+sS^P^KJ=|`TAdnlNkRHqn@0nFWdFeMoI4-_sH22UA`hq_xA?B;_u;ixDrx%9ajWMqLgzfYCofw8KF`gO zWh92d@!_T((;rc7)Y0;~o3^0R^ALS8opgP}hX%hpsuO^eo@L^`#d1RJD{m2kN6wGw z5T;|y=;jNZl}W2j;Bc$yGn_%Ti(Jtk4%` zDK5cCl`%fdh(p%F! zN4;@Huf@ukLx1k|0(qt;@&Xiw=4#8cVPcfFDX~atn}9jl7(Tz#p-Q|4F%ywo(jlv# z%qISsaHlw>1|(CS*2KqRSCP8NF(6NfJ>HP|lV`v4llSyqeD!0%X_1> zg{vvN5D0m~n!O3#;}}s;n>z%iE0e^EX_%IQaWRp4yx4LOzqV3T+W(;k{udVh!#EJ} zgnXu%H1P~HO=bwcbt57%T)u4QT05g9BA!O6PoHP#DPg-80&W|M33F=n@!{4j6>-=9 zl9KJP6S3H+U>;T?}#WA z_O%upq*IdOTe9b~q#{Y}07vk515LC)Il|+Aa$f}Tcr-&vQOIH)UZ$6& z36g&<+>7?MFwXUe`uwpa`gVyIwLJn~p1QK-H&X5vGa};Wdy^Q_m|$Lgl*a(g9EO{h z##w%7(g(SjboyvXP~vP72(|N1)ZI{XNa-&bPjF54D`q-}^mUm=DGk7I_a#t~zNU)> zJD=vyGTVi2y}*&qMByXD3Tn-Wj|5S#f( z1uWJ`3RnO6rh+Yy?c=B~PUJ?nV_{w6l7FulT#(2M_~r)HsCX+L?$5L39mEvBSU`8$ zYq&EhHXoxg(J-om_c-fe@=~3q#OG#^kYLhMnV)y;ZF6Gqz_mr2P zugbL0xc8{kyxRcLC?m)K&Yj$%)>_B@og|1@e~QPf=dh!p2dBQAtX$a~q4}AI9ArA; za(4@-P0mv5dlML~u;DO#U*_mx8yZv31rn3O5F4pLW;#xXKA<~u3@cMIw&h)_VR
    G3S-EN>9CM!{YB*|;6wg-K3V?)eR((z#1 zHyX+Us~H@9)~!8`K-#ZDU>v8HpiaQ|@=VU5MgT@ehzQ(1nZ!M0ZDk{Fb`>pCb0vQE z`gX@ZK}6S!(-($v3w8-+L6Xs~;@WTrR}q42gH9p2ncZYDab8*`#p8jbS&H9$DTx{1 z|8L)r+}X3oIp6b9dN^fZsl0TpRK4NW^TVGZOit8~r*qM+QL3pd7G0|~C`PHxw2PM3 z->n8iEh)LU)Je%r7nEt|D%&F&(={XI*19z_HKI38aE6Cfm-buU7W|=mo3gMA57~g` z7aBx4OS&(O5w@W;2pO@ZVyG;2^F+2cYshx%M2*M@%;(4quYc}>z1WX(9ccb&>8#{j zE=VlFg+&2-xsr%AY_}ciz4+<$^}2TO2e)byPmJl?+aOU7{UVx$=ZNQDTQLxsh}+(_ zak-NBw`v4=+Ydp_L=w^J1&NT$-AbEUuj%8LN7nJzt^APyl$(ght>;(o{)xCqf8IX6 zq`a-CyPq$UOPJN(oo>$gX?v65Y$GnIq7Fq?=??};kY4#Na69k#iG|Wd|{Tt z&uFLgaDQ4)`{9^3rX|Bg zNY8N2w1??HVsq#}Xk&RcmoQBacog;CZ%I-HU?7dT+nZRo?h7BQd5Yrv%sI0rPF^Sk^9@l-_4``bwK!A z5Ud{#8B%fMPHat04G9kj%j5>0maQK}jQTzGC!2<9FicZ-#V^ZaC)A?QK9EelA!nP) z+Z2DqYAqTsfZ9k1CW9+h;Uao59}OnJ9>r}xs&nHlM5^Y58T*TkM80zn8=UE2e8u{j zpH(Cv<_IWBdh<6_f1={d7#R|wGLcIoegMU>82VZLrcn;{FuCmF59Tpu7qQ5TEj5`AFXQxx{XS6|0N# z3g?J^0RDM8_l@3M4G0f^O03>$S#_it3cdG%7HWo_Xb-<{a&XHHzW`(2t54<~-m{AO)J~7AhPI zbkz9A9Eq!7aijhY%^=rG`j6?w^hb13^_LKf!X*}jaV$GaXvsies~+H0T#v%OcveHN zw6t*A@XdVfqJIPsPwPO4;>%M4C+{dTVU{cOk`3puW6b36K2&z%>btSk&&H>Z;<`p> z`FMTMiHw&wOXcQ$-Y{pG@3aN}s_>;# zeQ6GDsqIMA?iz{B1XzIIegeu-#qL_ZBH|eh`L{~J(A{bH*vND8W}io(WZ9s;;m3qZ zElXp!ru)Ht+yJJ|dfvRtcX?~Pn_nW{zZbM5z3mB?Hbf_|+7ZC-9yVjR&7mnNul4vE z%KEK*b1~tReV{kNh2E=&iwgU8w0kYs3c1o6m;*fZfrF-g?1!~+<-`f!Dj8+i7NJUI zcZj}vt?|8iHQ3TdM;gn(X(Vidn!cd{^x{>dX&Vt^`^_3pu?t)#>x|K0cW=egSMl9#+mqq-8|RdMP1Dw zx^5}L#|i6)ERW8LBjm}wD6@3$`!cXl0aV*W>(xz)J2m+v|RNGEXIA%XWv z$Hx$v!@W5LfaU7iEY}no2e;*F&dh{F;<$?``JyH&l3RVjA{xC=Rq{ z6}dLQKK(BW4N!Y)Mzd3h)PX8L3OR6JX82vsk%|<`y{3G<99ycR8(ZD;4@=k|d zx1nPOrARPmMi86c#Qn^1g5RVk00)%LY3fdvDm`_|D|ZP>a4hmnJmTiqc40*eItZ0G z(Cfxe`6oWB{4L&V2-lf)Dz{MkXQ(A{E}?e1cWU;s-J?xBbGBUgebeTI{+k+LT|P=A z;GHDn*981}=hBJAGXPX?iXEu)RoZN2kKn)}Yp)=+)%`(=Hk2z^Csu^a+hNSE9<}O4 zW9BhF843QW<{+N^4NZ(+Ohu0L$qp9AhpJ?UbX8~fibx(>f3CRh|ZH~FPW;%L4 z2Jfb`#^2zr=0rNvM5{6`q6x-M;QJ8B$W1lwJwBT6OTa+L|E?*68NnD-d zqirI@#!DTk6=nvBq1t|F2a57+*JomCoPO&bkNHd&fq@7CoA#=ogI@ER;^g6MTjnNJpU8$17lkcby!fn#Y^cf59qs4;WjW9@I`pu+^=!$XvlzSp zHl-BP6qCLifc*pwQ8vDfUY0lgjC>>zTLL$6VLQBKH2U4M(&?%A718nspPj%tmUBw+ z#X>LH_#p;`9!I5vv6@cVh1b)~bHTXz;!@s>4omWjec#A;((g=Fq_p{u1|<#I-D{h1 zr%{sZ%zv+3T?)s{c78c|r6Ez1kf5OuRJ<^!_`!;|HxG;mZiSf=CdVqy^)Fpf= zR6<3YrraF!c1|tIJ#;9sg<)`+=a+cw8*6)$-yV3w_=*W`MB#~zjz6^LYX4eVoTxdI zc3h_Bc-v+z^z5>e3vEp)brfA?bQ>r1^-8x`-ATBNL)99$& z;rXG-!IBn08OxyuZoj`hcQ)a@7O5;d=o7$6_hSTJ z;(^Dr%6p+QhE473G62?L^T{&S2^UB8^~fFHE0@wP^b_T#h%rn7^=(?yQf+N!)<~#c zB&mh#W%khdZrGJgs@ixb%h?ad2HG&$G8+QXR6zbUk;$(r4F#>F^1>Br!mAfDkRR@D z!K|#|oQjAh)DlY~3|CG`+4@opGIM z^i^Z4rXu>d*NVXngpKKI2U_*K}S3_}=T|7q^w`XB` z2D5mfvT(`vMwh8DGJql?=LI15;DsNI&n^nhYwgI&-{a#V-{;<=cJWiZ5HEkDY(4jD zc2?xCALMIz@)_iwDG(vRJQ8kP7xC8|N5n z-mb8AOpEdA->ZPnh_c<&o3Jg+X;AwynF(`1Ihpp9xt|hy zu7!?dLSahdVg=JpZk#xq{L7i0Y3(N`w+}g zn}vYJKK$VH`HhCBK)g%Cw8flu&$)8+Ef5m{+5}|bRYsP&t~Jk0TLEENO=yT3nrvyfYKk*n#uYjkyI9wC{A(mO8ae&B%;9#dTh)|_V0}&D>^xO(UZ2e z2{_|CZ)7#U(3yWf5i9##7`c79OX{6Y8(moRVE~tW6|XopYg$JLlxm|Q3X{o#=h{Lt zyCavxXR*2;2qGJ^XJ;nKfb^TpVwPUUM{br*(tWeRu{4Id4v!3gY2#K~T^)u_Zer}E zn_7xjY>yK@ouN|9;O0P^ZRT#CcRfGYf%F#Vs;VRb^a|0p^Z(QZ;v z_h#9VcRfJ+!d^?N=4N?P&mP&Il_OwCQMpD;0zHfk@ay$}8TVzgO~mUpV_LitM@Q8z z?9S+w#)-R7Wlo;vsZz9D@#pj>8Cxn}a*?q4(u0!Y^j5C?U$fc+Q?CL`w3ANg?&_1 z?FycB-DhP^mg2^y?@lqA_P>^f{|QRaU~igN=blSkS9CZwMjy&9MHhfv%{2!{eynf` z$pvnj!j!PJ^$UUrQOmKo@@YFMK}y`iI9Na(F-H2m)K^;G@|^OUI0RWuw$|>Zi>>4v zq8|c(foEJT-K`qR-DS&5P&JlKeXe6o?f)$qE9Lfsl2!ik}0GeaVk8W1YV42f9! zrDpRi_q@-CcyuXkqt%*k_=Sc09&?96Tu==56A9)J#}xMwb)PC2fO#x-Caabw>Rn0y z{HI2_IqLYwp=X|p=?Np~=954+Ml?kfMhR7O0xujiI*!b{uTA~|{_q>bBp z=-{T8<|tDq3CTI;lW2D@h@1>&cH*BDa_y{)8j?pQ@ST4-bycb_leaSjIqXOg!I-dI zwNUCuLgX|9CoCb|R&9g{#A6D$#nUq#?A;pr8AdUx?+Mg??0rWBc7w@CmP8$GxdE}e zzHzq~`$CYEEw*mQui5d*E?e~uhB&}WX3EcR8?CKn>HfFzpYY*7uYx^#J!@o8sI_T# z<9>7j4!UEiu=RQ98@44ed!uGToSby}kzEY$x!v2ihKXiyj2);!CRiFr>vI6V7wV&~ zpF$-W<*Q*jZKoda1CDyKwXd4AY%8NW?9?a@Yy}T{I z8l%pzl#*N&hVTtVAK9|*u$h3nx1=6hC?%PgdUH$1 zgU4B#9LvX`-GA_Cqken?Okqp8ZYE~ymacnbL{jExU#!eyp{f&~&7KrUZ(@I$| z*^;qz>W?cO%fU+}`r^A}yw+(=Jny@=CHlQvYr*sZn~Mq?a}U+deU_vMDx=p%_S zeq4>UTvg|Ns%zPo!tKDK1jo!MHXs5k!B@$&Iw30U0NMQkIcpzN?DYb2*ymZtS+0tL z|7ZN81f&h|3Gcxa1-K}FIu}UC&Q5;*yA>^uZA?ny{4)}sFcUL|IrhZMoeaaeLpX1W z;w-j*w2UV02#G(CdabMIPx^&kQ$y&xwe3xF%dn^Zx=-2>R>1)!wONiAju(G&X}wa&e3M9e@y*jUOnq=Da;aeY3U?)V#0wlC4b>zD zYg41RpwFSrtQS5)@i*U(!g@ZK3qpF#ekkwhzv36}MIRhhvDIX_{kvF-w-i!URUy&1 zZ(GVLd13Rxa`n}=54^&rT5t6b{-~*ny>~1i9TpVYZ!wNEQFHytZc3QlVJihZ*&r<0 z+pVZ@C%9pIE7QsXE_Wp;lEw)G|JA?Qr?Kw4JQlq%?zBMH%3 zQ6JVx`e*&{{{B6UR&7EDCoSR>Ia4d+4zz1c4JkkrJzYuTQJ&qreUvcDtG1l9xOB(^ zrc~7sn*MO0arcJ>5^dNJY0Dd`dhvNp0zvzsHa0TO=<$99GqoAfRNXiNXf(!*IEnmP zr8tbeCb^b*$m_VvC6g&*bjtGqCpo-Ox`{)A5lw;yGH&b+sGu3`p#9`TQsPue)fUR< z&`V+$NVA8gzWIS^yrU#20h!!^9m?LW?#vpgS2M(T!&ts|UtGu)ibm12hjYQH3>Qh9 z&4Gq1i{aI05C~XPmovUh_g2b!EvwQ{JyK_xNk>x&ulaux-hYGOKQD&wmOXCwH|wi# z>ZA;Hh-sqvZJyfmPTTsim;OTNb>l5w$r>9)Wr+8Y$ptx_kA@kv@KugIc@7s51}<>$GYQ56)Ki`;R>$*#5fm%=a3oHXA{2r ze(gE^q7@6M#NOKDk?lQ!5v+|OS})<3Q$-XinH=iC%oZ$K*8mR&EYajonfKIB3qJw` zEh)zGw95_xD1yBg7v#8+sMaF^CW02x=1c30XZN3`1|S3xsHPU&%AtideyTVxW^pmN zC+CEKwcWLdiPK%WA><$Zk_5~1-n5;YlQ3aqhz90Q0Xyfxt(2@|0?VzodBvU=`;yT2 z97iv%rVlOZAzEh~-1FWqO$aNkyaLq>*<|?mOs(GR3FT392W{moZ;HD&I)GzNjoj|$ z6#h>D!~{G0fG#7m_{NwN;WBo+FBYH&u^ak!z=N*W+uPe4om4A>NYVy$G_k2Ag|NAO z1wvW{1B!~LGZRF@(ZG@sG?88UFOlrO7R5%3$!Z0a^39~K+xO1U`7jU^5z(@hy;s>te8_ua9x0Q zn(l}+Nj+K~g&_``wy#um;Qzq?f&T;l2mTNIANW7;|84Ov|JCpRS8NUz9_W9coCNv_ z?xl52VVa7r#b5F5PRa<1$EH=S_IdUhr^0@&t!&FBRvJ)_Pg&>TFXt z;Him`;9z20Fs(B_&VW(!)c3M{jzBor(F1Dq}caD#skevw=^xy`W{jSaVH-|RF^ zSxJ<1s$c_lG4y9pCj12Kt805nHipE(fmI(remtK}i2v8umpU5=fE&6Kz!tKfD5{zY zco!fp1V_e}JZR%cv(4G}(kNtwr>75|O)au*I`|}b#FsjqhIe!NJ-zeaOcKF`RqzgX zM*JenjN>g8sc(CV9npdUo7l-3T~TbOt`ob-!+y>EHiCg>^;n^+rmplETdVk@A`cVT zA1`NM{`03FQ?x4Ad8O#s9fGCv7?9O}iuG`+X$PzYMAI#+5>jAk1=DDL4Zw~OY#s>1 zQelFQX}adIQepTSq~Q#Jb(w>Y{qR)gW)Aw04L6*=W|uYVCY8oiUWoVZpBMokVRv`n z|G@u&{{#OA{tx^g_&@OfZSgOE^Xp%o&t1c5t;L4bTyJavWpxv!`N2~II|QWnuI)Ob zYv3~hzdJ|?XBxHj0LyR7#yX)CPY)MQMfjp;JB;mJUhwT5L@?^+5I~?-#K5{H_o>s$tlw9%!2JAO% zwPewi-QXC{!xhKIj#2sjTTl)0}n}@N`7N{W=1DLw7kpe!!Zsa-=pa8*m(NH%XbHdb1Xf#@^W+ z0!Yl(Z&WF*q+t}rJ+X~J$AAkhsNVDQV?(l=i7Q)eikH_fxBDBC;`#gl3*YY74ymO- zu^WR8?-b)qS)xc+#&MP};#uWZXjqxtS8$~83O9k&BTMF?%87MjbR|K3ytK zDO-8yV;5vhR^p`+p+(ZmL}s%bYB1U6cA4RPB%6{$xxo07C&85m{tx^g_&@M};Qzq? jf&T;l-xmM>p8x{@D(Mktb)u`N00000NkvXXu0mjf(?NUb diff --git a/vendor/highlight/lib/vendor/highlight.js/styles/dark.css b/vendor/highlight/lib/vendor/highlight.js/styles/dark.css deleted file mode 100644 index f58ff91..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/styles/dark.css +++ /dev/null @@ -1,103 +0,0 @@ -/* - -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 deleted file mode 100644 index 2b0d3d1..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/styles/default.css +++ /dev/null @@ -1,121 +0,0 @@ -/* - -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 deleted file mode 100644 index c4c9f65..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/styles/far.css +++ /dev/null @@ -1,118 +0,0 @@ -/* - -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 deleted file mode 100644 index bd778a7..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/styles/github.css +++ /dev/null @@ -1,129 +0,0 @@ -/* - -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 deleted file mode 100644 index 3d8baab..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/styles/idea.css +++ /dev/null @@ -1,118 +0,0 @@ -/* - -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 deleted file mode 100644 index 04bc719..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/styles/ir_black.css +++ /dev/null @@ -1,103 +0,0 @@ -/* - 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 deleted file mode 100644 index 646de7e..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/styles/magula.css +++ /dev/null @@ -1,118 +0,0 @@ -/* -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 deleted file mode 100644 index 22cb686..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/styles/school_book.css +++ /dev/null @@ -1,111 +0,0 @@ -/* - -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 deleted file mode 100644 index 956e9790a0e2c079b3d568348ff3accd1d9cac30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 486 zcmeAS@N?(olHy`uVBq!ia0y~yV7?7x3vjRjNjAS6Ga$v1?&#~tz_9*=IcwKTAYZb? zHKHUqKdq!Zu_%?nF(p4KRlzeiF+DXXH8G{K@MNkD0|R4)r;B4q#jQ7Ycl#YS5MfK$ z?b^fh#qmaEhFDxvyThwfhdfkOPApt1lr{NA;Vr%uzxJuVIyzm(ed_8_-0$LLU})H&o5Re&aDemE>EG#(|F^t9_pa-H z_Mf?rMVrs}-M?S|?ZdY@c6s41zy8~}@a{v&#Ea7V)wJ$+#K|u$5UvWCdFLwGac}6w{_s*=8A6L7Rfc|9gboFyt I=akR{0OLZ+qyPW_ diff --git a/vendor/highlight/lib/vendor/highlight.js/styles/sunburst.css b/vendor/highlight/lib/vendor/highlight.js/styles/sunburst.css deleted file mode 100644 index 79339b9..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/styles/sunburst.css +++ /dev/null @@ -1,147 +0,0 @@ -/* - -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 deleted file mode 100644 index 3b9a33a..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/styles/vs.css +++ /dev/null @@ -1,84 +0,0 @@ -/* - -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 deleted file mode 100644 index f4070ca..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/styles/zenburn.css +++ /dev/null @@ -1,115 +0,0 @@ -/* - -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 deleted file mode 100644 index 6458615..0000000 --- a/vendor/highlight/lib/vendor/highlight.js/test.html +++ /dev/null @@ -1,1598 +0,0 @@ - - - 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 deleted file mode 100644 index 52d42f6..0000000 --- a/vendor/highlight/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "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" - } - ] -}