From 6082d7bad4dbe645f7805e9a3100fecae5c4f74f Mon Sep 17 00:00:00 2001 From: Douglas Adam Smith II Date: Tue, 8 Oct 2013 11:29:31 -0400 Subject: [PATCH 01/12] added support for npm modules Gists from specific users can now be queried using getGists(user, callback) on client side. This isn't necessarily useful now, but will be soon when there are user accounts and such. --- Codebox/.meteor/packages | 2 +- Codebox/client/html/main.html | 2 +- Codebox/client/main.js | 4 +- Codebox/packages.json | 3 + Codebox/packages/.gitignore | 1 + Codebox/packages/alchemy-api/.gitignore | 1 - .../alchemy-api/.npm/package/.gitignore | 1 - .../packages/alchemy-api/.npm/package/README | 7 - .../.npm/package/npm-shrinkwrap.json | 7 - Codebox/packages/alchemy-api/alchemy-api.js | 722 ------------------ Codebox/packages/alchemy-api/package.js | 11 - Codebox/packages/alchemy-api/package.json | 21 - Codebox/server/main.js | 22 +- Codebox/smart.json | 2 +- Codebox/smart.lock | 10 +- 15 files changed, 32 insertions(+), 784 deletions(-) create mode 100644 Codebox/packages.json delete mode 100644 Codebox/packages/alchemy-api/.gitignore delete mode 100644 Codebox/packages/alchemy-api/.npm/package/.gitignore delete mode 100644 Codebox/packages/alchemy-api/.npm/package/README delete mode 100644 Codebox/packages/alchemy-api/.npm/package/npm-shrinkwrap.json delete mode 100644 Codebox/packages/alchemy-api/alchemy-api.js delete mode 100644 Codebox/packages/alchemy-api/package.js delete mode 100644 Codebox/packages/alchemy-api/package.json diff --git a/Codebox/.meteor/packages b/Codebox/.meteor/packages index e67a4bc..e5378dc 100644 --- a/Codebox/.meteor/packages +++ b/Codebox/.meteor/packages @@ -8,6 +8,6 @@ autopublish insecure preserve-inputs require -alchemy-api accounts-github accounts-ui +npm diff --git a/Codebox/client/html/main.html b/Codebox/client/html/main.html index 1422630..a3832e8 100644 --- a/Codebox/client/html/main.html +++ b/Codebox/client/html/main.html @@ -9,7 +9,7 @@
{{> results}} diff --git a/Codebox/client/main.js b/Codebox/client/main.js index 86dc910..f46bc01 100644 --- a/Codebox/client/main.js +++ b/Codebox/client/main.js @@ -4,7 +4,9 @@ Session.set('query', ""); if (Meteor.isClient) { - + getGists = function getGists(user, callback) { + Meteor.call('getGists', user, callback); + } Template.results.allResults = function(){ return Session.get('results'); } diff --git a/Codebox/packages.json b/Codebox/packages.json new file mode 100644 index 0000000..f60c3e1 --- /dev/null +++ b/Codebox/packages.json @@ -0,0 +1,3 @@ +{ + "github": "0.1.8" +} \ No newline at end of file diff --git a/Codebox/packages/.gitignore b/Codebox/packages/.gitignore index 67c4cfd..4f5307c 100644 --- a/Codebox/packages/.gitignore +++ b/Codebox/packages/.gitignore @@ -1,3 +1,4 @@ github require sentiment +npm diff --git a/Codebox/packages/alchemy-api/.gitignore b/Codebox/packages/alchemy-api/.gitignore deleted file mode 100644 index 677a6fc..0000000 --- a/Codebox/packages/alchemy-api/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.build* diff --git a/Codebox/packages/alchemy-api/.npm/package/.gitignore b/Codebox/packages/alchemy-api/.npm/package/.gitignore deleted file mode 100644 index 3c3629e..0000000 --- a/Codebox/packages/alchemy-api/.npm/package/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/Codebox/packages/alchemy-api/.npm/package/README b/Codebox/packages/alchemy-api/.npm/package/README deleted file mode 100644 index 3d49255..0000000 --- a/Codebox/packages/alchemy-api/.npm/package/README +++ /dev/null @@ -1,7 +0,0 @@ -This directory and the files immediately inside it are automatically generated -when you change this package's NPM dependencies. Commit the files in this -directory (npm-shrinkwrap.json, .gitignore, and this README) to source control -so that others run the same versions of sub-dependencies. - -You should NOT check in the node_modules directory that Meteor automatically -creates; if you are using git, the .gitignore file tells git to ignore it. diff --git a/Codebox/packages/alchemy-api/.npm/package/npm-shrinkwrap.json b/Codebox/packages/alchemy-api/.npm/package/npm-shrinkwrap.json deleted file mode 100644 index 25476db..0000000 --- a/Codebox/packages/alchemy-api/.npm/package/npm-shrinkwrap.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "dependencies": { - "alchemy-api": { - "version": "1.0.0" - } - } -} diff --git a/Codebox/packages/alchemy-api/alchemy-api.js b/Codebox/packages/alchemy-api/alchemy-api.js deleted file mode 100644 index 9f8e860..0000000 --- a/Codebox/packages/alchemy-api/alchemy-api.js +++ /dev/null @@ -1,722 +0,0 @@ -var request = require('request'); -var fs = require('fs'); - -var ENDPOINTS = {}; -var BASE_URL = 'http://access.alchemyapi.com/calls'; -var API_KEY = '93979cf207910ac2ed70a801184afee76f10129c'; - -Test = function(){ - this.val = Math.random(); -} - -ALC = function(){ - return exports; -} -exports = {} - - -/** - * Initializes the SDK so it can send requests to AlchemyAPI for analysis. - * It loads the API key from api_key.txt and configures the endpoints. - * This function will be called automatically from the endpoint wrappers when needed. - * - * Note: if you don't have an API key, register for one at: http://www.alchemyapi.com/api/register.html - * - * INPUT: - * none - * - * OUTPUT: - * none -*/ -function init() { - //Setup the endpoints - ENDPOINTS['sentiment'] = {}; - ENDPOINTS['sentiment']['url'] = '/url/URLGetTextSentiment'; - ENDPOINTS['sentiment']['text'] = '/text/TextGetTextSentiment'; - ENDPOINTS['sentiment']['html'] = '/html/HTMLGetTextSentiment'; - ENDPOINTS['sentiment_targeted'] = {}; - ENDPOINTS['sentiment_targeted']['url'] = '/url/URLGetTargetedSentiment'; - ENDPOINTS['sentiment_targeted']['text'] = '/text/TextGetTargetedSentiment'; - ENDPOINTS['sentiment_targeted']['html'] = '/html/HTMLGetTargetedSentiment'; - ENDPOINTS['author'] = {}; - ENDPOINTS['author']['url'] = '/url/URLGetAuthor'; - ENDPOINTS['author']['html'] = '/html/HTMLGetAuthor'; - ENDPOINTS['keywords'] = {}; - ENDPOINTS['keywords']['url'] = '/url/URLGetRankedKeywords'; - ENDPOINTS['keywords']['text'] = '/text/TextGetRankedKeywords'; - ENDPOINTS['keywords']['html'] = '/html/HTMLGetRankedKeywords'; - ENDPOINTS['concepts'] = {}; - ENDPOINTS['concepts']['url'] = '/url/URLGetRankedConcepts'; - ENDPOINTS['concepts']['text'] = '/text/TextGetRankedConcepts'; - ENDPOINTS['concepts']['html'] = '/html/HTMLGetRankedConcepts'; - ENDPOINTS['entities'] = {}; - ENDPOINTS['entities']['url'] = '/url/URLGetRankedNamedEntities'; - ENDPOINTS['entities']['text'] = '/text/TextGetRankedNamedEntities'; - ENDPOINTS['entities']['html'] = '/html/HTMLGetRankedNamedEntities'; - ENDPOINTS['category'] = {}; - ENDPOINTS['category']['url'] = '/url/URLGetCategory'; - ENDPOINTS['category']['text'] = '/text/TextGetCategory'; - ENDPOINTS['category']['html'] = '/html/HTMLGetCategory'; - ENDPOINTS['relations'] = {}; - ENDPOINTS['relations']['url'] = '/url/URLGetRelations'; - ENDPOINTS['relations']['text'] = '/text/TextGetRelations'; - ENDPOINTS['relations']['html'] = '/html/HTMLGetRelations'; - ENDPOINTS['language'] = {}; - ENDPOINTS['language']['url'] = '/url/URLGetLanguage'; - ENDPOINTS['language']['text'] = '/text/TextGetLanguage'; - ENDPOINTS['language']['html'] = '/html/HTMLGetLanguage'; - ENDPOINTS['text_clean'] = {}; - ENDPOINTS['text_clean']['url'] = '/url/URLGetText'; - ENDPOINTS['text_clean']['html'] = '/html/HTMLGetText'; - ENDPOINTS['text_raw'] = {}; - ENDPOINTS['text_raw']['url'] = '/url/URLGetRawText'; - ENDPOINTS['text_raw']['html'] = '/html/HTMLGetRawText'; - ENDPOINTS['text_title'] = {}; - ENDPOINTS['text_title']['url'] = '/url/URLGetTitle'; - ENDPOINTS['text_title']['html'] = '/html/HTMLGetTitle'; - ENDPOINTS['feeds'] = {}; - ENDPOINTS['feeds']['url'] = '/url/URLGetFeedLinks'; - ENDPOINTS['feeds']['html'] = '/html/HTMLGetFeedLinks'; - ENDPOINTS['microformats'] = {}; - ENDPOINTS['microformats']['url'] = '/url/URLGetMicroformatData'; - ENDPOINTS['microformats']['html'] = '/html/HTMLGetMicroformatData'; - - - //Load the key from api_key.txt - try { - key = fs.readFileSync(__dirname + '/api_key.txt').toString().trim(); - } - catch(err) { - //Create the file - fs.openSync(__dirname + '/api_key.txt', 'w'); - console.log('API key not detected in api_key.txt, please copy/paste your key into this file.'); - console.log('If you do not have a key, register for one at: http://www.alchemyapi.com/api/register.html'); - process.exit(1); - } - - //Make sure the key formating looks good - if (key.length != 40) { - console.log('The API key in api_key.txt does not appear to be valid. Make sure to copy/paste the key correctly into api_key.txt, and that the file only contains the key.'); - console.log('If you do not have a key, register for one at: http://www.alchemyapi.com/api/register.html'); - process.exit(1); - } - - //Set the key - API_KEY = key; -} - - -/** - * Calculates the sentiment for text, a URL or HTML. - * For an overview, please refer to: http://www.alchemyapi.com/products/features/sentiment-analysis/ - * For the docs, please refer to: http://www.alchemyapi.com/api/sentiment-analysis/ - * - * INPUT: - * flavor -> which version of the call, i.e. text, url or html. - * data -> the data to analyze, either the text, the url or html code. - * options -> various parameters that can be used to adjust how the API works, see below for more info on the available options. - * - * Available Options: - * showSourceText -> 0: disabled (default), 1: enabled - * - * OUTPUT: - * The response, already converted from JSON to a Python object. -*/ -exports.sentiment = function(flavor, data, options, callback) { - options = options || {} - - if (API_KEY == '') { - init(); - } - - if (!(flavor in ENDPOINTS['sentiment'])) { - callback({ status:'ERROR', statusInfo:'Sentiment analysis is not available for ' + flavor }); - } else { - var url = BASE_URL + - ENDPOINTS['sentiment'][flavor] + - '?apikey=' + API_KEY + - '&' + flavor + '=' + encodeURIComponent(data) + - '&outputMode=json'; - - for (var key in options) { - url += '&' + key + '=' + options[key].toString(); - } - - analyze(url, callback); - } -}; - - -/** - * Calculates the targeted sentiment for text, a URL or HTML. - * For an overview, please refer to: http://www.alchemyapi.com/products/features/sentiment-analysis/ - * For the docs, please refer to: http://www.alchemyapi.com/api/sentiment-analysis/ - * - * INPUT: - * flavor -> which version of the call, i.e. text, url or html. - * data -> the data to analyze, either the text, the url or html code. - * target -> the word or phrase to run sentiment analysis on. - * options -> various parameters that can be used to adjust how the API works, see below for more info on the available options. - * - * Available Options: - * showSourceText -> 0: disabled, 1: enabled - * - * OUTPUT: - * The response, already converted from JSON to a Python object. -*/ -exports.sentiment_targeted = function(flavor, data, target, options, callback) { - options = options || {} - - if (API_KEY == '') { - init(); - } - - if (!(flavor in ENDPOINTS['sentiment_targeted'])) { - callback({ status:'ERROR', statusInfo:'Sentiment analysis is not available for ' + flavor }); - } else if (!target) { - callback({ status:'ERROR', statusInfo:'target must not be null' }); - } else { - var url = BASE_URL + - ENDPOINTS['sentiment_targeted'][flavor] + - '?apikey=' + API_KEY + - '&' + flavor + '=' + encodeURIComponent(data) + - '&outputMode=json'; - - for (var key in options) { - url += '&' + key + '=' + options[key].toString(); - } - - analyze(url, callback); - } -}; - - -/** - * Extracts the entities for text, a URL or HTML. - * For an overview, please refer to: http://www.alchemyapi.com/products/features/entity-extraction/ - * For the docs, please refer to: http://www.alchemyapi.com/api/entity-extraction/ - * - * INPUT: - * flavor -> which version of the call, i.e. text, url or html. - * data -> the data to analyze, either the text, the url or html code. - * options -> various parameters that can be used to adjust how the API works, see below for more info on the available options. - * - * Available Options: - * disambiguate -> disambiguate entities (i.e. Apple the company vs. apple the fruit). 0: disabled, 1: enabled (default) - * linkedData -> include linked data on disambiguated entities. 0: disabled, 1: enabled (default) - * coreference -> resolve coreferences (i.e. the pronouns that correspond to named entities). 0: disabled, 1: enabled (default) - * quotations -> extract quotations by entities. 0: disabled (default), 1: enabled. - * sentiment -> analyze sentiment for each entity. 0: disabled (default), 1: enabled. Requires 1 additional API transction if enabled. - * showSourceText -> 0: disabled (default), 1: enabled - * maxRetrieve -> the maximum number of entities to retrieve (default: 50) - * - * OUTPUT: - * The response, already converted from JSON to a Python object. -*/ -exports.entities = function(flavor, data, options, callback) { - options = options || {} - - if (API_KEY == '') { - init(); - } - - if (!(flavor in ENDPOINTS['entities'])) { - callback({ status:'ERROR', statusInfo:'Entity extraction is not available for ' + flavor }); - } else { - var url = BASE_URL + - ENDPOINTS['entities'][flavor] + - '?apikey=' + API_KEY + - '&' + flavor + '=' + encodeURIComponent(data) + - '&outputMode=json'; - - for (var key in options) { - url += '&' + key + '=' + options[key].toString(); - } - - analyze(url, callback); - } -}; - - -/** - * Extracts the keywords from text, a URL or HTML. - * For an overview, please refer to: http://www.alchemyapi.com/products/features/keyword-extraction/ - * For the docs, please refer to: http://www.alchemyapi.com/api/keyword-extraction/ - * - * INPUT: - * flavor -> which version of the call, i.e. text, url or html. - * data -> the data to analyze, either the text, the url or html code. - * options -> various parameters that can be used to adjust how the API works, see below for more info on the available options. - * - * Available Options: - * keywordExtractMode -> normal (default), strict - * sentiment -> analyze sentiment for each keyword. 0: disabled (default), 1: enabled. Requires 1 additional API transaction if enabled. - * showSourceText -> 0: disabled (default), 1: enabled. - * maxRetrieve -> the max number of keywords returned (default: 50) - * - * OUTPUT: - * The response, already converted from JSON to a Python object. -*/ -exports.keywords = function(flavor, data, options, callback) { - options = options || {} - - if (API_KEY == '') { - init(); - } - - if (!(flavor in ENDPOINTS['keywords'])) { - callback({ status:'ERROR', statusInfo:'Keyword extraction is not available for ' + flavor }); - } else { - var url = BASE_URL + - ENDPOINTS['keywords'][flavor] + - '?apikey=' + API_KEY + - '&' + flavor + '=' + encodeURIComponent(data) + - '&outputMode=json'; - - for (var key in options) { - url += '&' + key + '=' + options[key].toString(); - } - - analyze(url, callback); - } -}; - - -/** - * Tags the concepts for text, a URL or HTML. - * For an overview, please refer to: http://www.alchemyapi.com/products/features/concept-tagging/ - * For the docs, please refer to: http://www.alchemyapi.com/api/concept-tagging/ - * - * Available Options: - * maxRetrieve -> the maximum number of concepts to retrieve (default: 8) - * linkedData -> include linked data, 0: disabled, 1: enabled (default) - * showSourceText -> 0:disabled (default), 1: enabled - * - * OUTPUT: - * The response, already converted from JSON to a Python object. -*/ -exports.concepts = function(flavor, data, options, callback) { - options = options || {} - - if (API_KEY == '') { - init(); - } - - if (!(flavor in ENDPOINTS['concepts'])) { - callback({ status:'ERROR', statusInfo:'Concept tagging is not available for ' + flavor }); - } else { - var url = BASE_URL + - ENDPOINTS['concepts'][flavor] + - '?apikey=' + API_KEY + - '&' + flavor + '=' + encodeURIComponent(data) + - '&outputMode=json'; - - for (var key in options) { - url += '&' + key + '=' + options[key].toString(); - } - - analyze(url, callback); - } -}; - - -/** - * Extracts the author from a URL or HTML. - * For an overview, please refer to: http://www.alchemyapi.com/products/features/author-extraction/ - * For the docs, please refer to: http://www.alchemyapi.com/api/author-extraction/ - * - * INPUT: - * flavor -> which version of the call, i.e. text, url or html. - * data -> the data to analyze, either the text, the url or html code. - * options -> various parameters that can be used to adjust how the API works, see below for more info on the available options. - * - * Availble Options: - * none - * - * OUTPUT: - * The response, already converted from JSON to a Python object. -*/ -exports.author = function(flavor, data, options, callback) { - options = options || {} - - if (API_KEY == '') { - init(); - } - - if (!(flavor in ENDPOINTS['author'])) { - callback({ status:'ERROR', statusInfo:'Author extraction is not available for ' + flavor }); - } else { - var url = BASE_URL + - ENDPOINTS['author'][flavor] + - '?apikey=' + API_KEY + - '&' + flavor + '=' + encodeURIComponent(data) + - '&outputMode=json'; - - for (var key in options) { - url += '&' + key + '=' + options[key].toString(); - } - - analyze(url, callback); - } -}; - -/** - * Categorizes the text for text, a URL or HTML. - * For an overview, please refer to: http://www.alchemyapi.com/products/features/text-categorization/ - * For the docs, please refer to: http://www.alchemyapi.com/api/text-categorization/ - * - * INPUT: - * flavor -> which version of the call, i.e. text, url or html. - * data -> the data to analyze, either the text, the url or html code. - * options -> various parameters that can be used to adjust how the API works, see below for more info on the available options. - * - * Available Options: - * showSourceText -> 0: disabled (default), 1: enabled - * - * OUTPUT: - * The response, already converted from JSON to a Python object. -*/ -exports.category = function(flavor, data, options, callback) { - options = options || {} - - if (API_KEY == '') { - init(); - } - - if (!(flavor in ENDPOINTS['category'])) { - callback({ status:'ERROR', statusInfo:'Text categorization is not available for ' + flavor }); - } else { - var url = BASE_URL + - ENDPOINTS['category'][flavor] + - '?apikey=' + API_KEY + - '&' + flavor + '=' + encodeURIComponent(data) + - '&outputMode=json'; - - for (var key in options) { - url += '&' + key + '=' + options[key].toString(); - } - - analyze(url, callback); - } -}; - - -/** - * Extracts the relations for text, a URL or HTML. - * For an overview, please refer to: http://www.alchemyapi.com/products/features/relation-extraction/ - * For the docs, please refer to: http://www.alchemyapi.com/api/relation-extraction/ - * - * INPUT: - * flavor -> which version of the call, i.e. text, url or html. - * data -> the data to analyze, either the text, the url or html code. - * options -> various parameters that can be used to adjust how the API works, see below for more info on the available options. - * - * Available Options: - * sentiment -> 0: disabled (default), 1: enabled. Requires one additional API transaction if enabled. - * keywords -> extract keywords from the subject and object. 0: disabled (default), 1: enabled. Requires one additional API transaction if enabled. - * entities -> extract entities from the subject and object. 0: disabled (default), 1: enabled. Requires one additional API transaction if enabled. - * requireEntities -> only extract relations that have entities. 0: disabled (default), 1: enabled. - * sentimentExcludeEntities -> exclude full entity name in sentiment analysis. 0: disabled, 1: enabled (default) - * disambiguate -> disambiguate entities (i.e. Apple the company vs. apple the fruit). 0: disabled, 1: enabled (default) - * linkedData -> include linked data with disambiguated entities. 0: disabled, 1: enabled (default). - * coreference -> resolve entity coreferences. 0: disabled, 1: enabled (default) - * showSourceText -> 0: disabled (default), 1: enabled. - * maxRetrieve -> the maximum number of relations to extract (default: 50, max: 100) - * - * OUTPUT: - * The response, already converted from JSON to a Python object. -*/ -exports.relations = function(flavor, data, options, callback) { - options = options || {} - - if (API_KEY == '') { - init(); - } - - if (!(flavor in ENDPOINTS['relations'])) { - callback({ status:'ERROR', statusInfo:'Relation extraction is not available for ' + flavor }); - } else { - var url = BASE_URL + - ENDPOINTS['relations'][flavor] + - '?apikey=' + API_KEY + - '&' + flavor + '=' + encodeURIComponent(data) + - '&outputMode=json'; - - for (var key in options) { - url += '&' + key + '=' + options[key].toString(); - } - - analyze(url, callback); - } -}; - - -/** - * Detects the language for text, a URL or HTML. - * For an overview, please refer to: http://www.alchemyapi.com/api/language-detection/ - * For the docs, please refer to: http://www.alchemyapi.com/products/features/language-detection/ - * - * INPUT: - * flavor -> which version of the call, i.e. text, url or html. - * data -> the data to analyze, either the text, the url or html code. - * options -> various parameters that can be used to adjust how the API works, see below for more info on the available options. - * - * Available Options: - * none - * - * OUTPUT: - * The response, already converted from JSON to a Python object. -*/ -exports.language = function(flavor, data, options,callback) { - options = options || {} - - if (API_KEY == '') { - init(); - } - - if (!(flavor in ENDPOINTS['language'])) { - callback({ status:'ERROR', statusInfo:'Language detection is not available for ' + flavor }); - } else { - var url = BASE_URL + - ENDPOINTS['language'][flavor] + - '?apikey=' + API_KEY + - '&' + flavor + '=' + encodeURIComponent(data) + - '&outputMode=json'; - - for (var key in options) { - url += '&' + key + '=' + options[key].toString(); - } - - analyze(url, callback); - } -}; - - -/** - * Extracts the cleaned text (removes ads, navigation, etc.) for text, a URL or HTML. - * For an overview, please refer to: http://www.alchemyapi.com/products/features/text-extraction/ - * For the docs, please refer to: http://www.alchemyapi.com/api/text-extraction/ - * - * INPUT: - * flavor -> which version of the call, i.e. text, url or html. - * data -> the data to analyze, either the text, the url or html code. - * options -> various parameters that can be used to adjust how the API works, see below for more info on the available options. - * - * Available Options: - * useMetadata -> utilize meta description data, 0: disabled, 1: enabled (default) - * extractLinks -> include links, 0: disabled (default), 1: enabled. - * - * OUTPUT: - * The response, already converted from JSON to a Python object. -*/ -exports.text_clean = function(flavor, data, options, callback) { - options = options || {} - - if (API_KEY == '') { - init(); - } - - if (!(flavor in ENDPOINTS['text_clean'])) { - callback({ status:'ERROR', statusInfo:'Text extraction is not available for ' + flavor }); - } else { - var url = BASE_URL + - ENDPOINTS['text_clean'][flavor] + - '?apikey=' + API_KEY + - '&' + flavor + '=' + encodeURIComponent(data) + - '&outputMode=json'; - - for (var key in options) { - url += '&' + key + '=' + options[key].toString(); - } - - analyze(url, callback); - } -}; - - -/** - * Extracts the raw text (includes ads, navigation, etc.) for a URL or HTML. - * For an overview, please refer to: http://www.alchemyapi.com/products/features/text-extraction/ - * For the docs, please refer to: http://www.alchemyapi.com/api/text-extraction/ - * - * INPUT: - * flavor -> which version of the call, i.e. text, url or html. - * data -> the data to analyze, either the text, the url or html code. - * options -> various parameters that can be used to adjust how the API works, see below for more info on the available options. - * - * Available Options: - * none - * - * OUTPUT: - * The response, already converted from JSON to a Python object. -*/ -exports.text_raw = function(flavor, data, options, callback) { - options = options || {} - - if (API_KEY == '') { - init(); - } - - if (!(flavor in ENDPOINTS['text_raw'])) { - callback({ status:'ERROR', statusInfo:'Text extraction is not available for ' + flavor }); - } else { - var url = BASE_URL + - ENDPOINTS['text_raw'][flavor] + - '?apikey=' + API_KEY + - '&' + flavor + '=' + encodeURIComponent(data) + - '&outputMode=json'; - - for (var key in options) { - url += '&' + key + '=' + options[key].toString(); - } - - analyze(url, callback); - } -}; - - -/** - * Extracts the title for a URL or HTML. - * For an overview, please refer to: http://www.alchemyapi.com/products/features/text-extraction/ - * For the docs, please refer to: http://www.alchemyapi.com/api/text-extraction/ - * - * INPUT: - * flavor -> which version of the call, i.e. text, url or html. - * data -> the data to analyze, either the text, the url or html code. - * options -> various parameters that can be used to adjust how the API works, see below for more info on the available options. - * - * Available Options: - * useMetadata -> utilize title info embedded in meta data, 0: disabled, 1: enabled (default) - * - * OUTPUT: - * The response, already converted from JSON to a Python object. -*/ -exports.text_title = function(flavor, data, options, callback) { - options = options || {} - - if (API_KEY == '') { - init(); - } - - if (!(flavor in ENDPOINTS['text_title'])) { - callback({ status:'ERROR', statusInfo:'Text extraction is not available for ' + flavor }); - } else { - var url = BASE_URL + - ENDPOINTS['text_title'][flavor] + - '?apikey=' + API_KEY + - '&' + flavor + '=' + encodeURIComponent(data) + - '&outputMode=json'; - - for (var key in options) { - url += '&' + key + '=' + options[key].toString(); - } - - analyze(url, callback); - } -}; - - -/** - * Parses the microformats for a URL or HTML. - * For an overview, please refer to: http://www.alchemyapi.com/products/features/microformats-parsing/ - * For the docs, please refer to: http://www.alchemyapi.com/api/microformats-parsing/ - * - * INPUT: - * flavor -> which version of the call, i.e. url or html. - * data -> the data to analyze, either the the url or html code. - * options -> various parameters that can be used to adjust how the API works, see below for more info on the available options. - * - * Available Options: - * none - * - * OUTPUT: - * The response, already converted from JSON to a Python object. -*/ -exports.microformats = function(flavor, data, options, callback) { - options = options || {} - - if (API_KEY == '') { - init(); - } - - if (!(flavor in ENDPOINTS['microformats'])) { - callback({ status:'ERROR', statusInfo:'Microformats parsing is not available for ' + flavor }); - } else { - var url = BASE_URL + - ENDPOINTS['microformats'][flavor] + - '?apikey=' + API_KEY + - '&' + flavor + '=' + encodeURIComponent(data) + - '&outputMode=json'; - - for (var key in options) { - url += '&' + key + '=' + options[key].toString(); - } - - analyze(url, callback); - } -}; - - -/** - * Detects the RSS/ATOM feeds for a URL or HTML. - * For an overview, please refer to: http://www.alchemyapi.com/products/features/feed-detection/ - * For the docs, please refer to: http://www.alchemyapi.com/api/feed-detection/ - * - * INPUT: - * flavor -> which version of the call, i.e. url or html. - * data -> the data to analyze, either the the url or html code. - * options -> various parameters that can be used to adjust how the API works, see below for more info on the available options. - * - * Available Options: - * none - * - * OUTPUT: - * The response, already converted from JSON to a Python object. -*/ -exports.feeds = function(flavor, data, options, callback) { - options = options || {} - - if (API_KEY == '') { - init(); - } - - if (!(flavor in ENDPOINTS['feeds'])) { - callback({ status:'ERROR', statusInfo:'Feed detection is not available for ' + flavor }); - } else { - var url = BASE_URL + - ENDPOINTS['feeds'][flavor] + - '?apikey=' + API_KEY + - '&' + flavor + '=' + encodeURIComponent(data) + - '&outputMode=json'; - - for (var key in options) { - url += '&' + key + '=' + options[key].toString(); - } - - analyze(url, callback); - } -}; - - -/** - * HTTP Request wrapper that is called by the endpoint functions. This function is not intended to be called through an external interface. - * It makes the call, then converts the returned JSON string into a Python object. - * - * INPUT: - * url -> the full URI encoded url - * - * OUTPUT: - * The response, already converted from JSON to a Python object. -*/ -function analyze(url, callback) { - request.post({ url:url }, function(error, response, body) { - if (!error && response.statusCode == 200) { - callback(error,JSON.parse(body)); - } else { - callback(error,{ status:'ERROR', statusInfo:'invalid server response' }); - } - }); -} - - - diff --git a/Codebox/packages/alchemy-api/package.js b/Codebox/packages/alchemy-api/package.js deleted file mode 100644 index e461fb4..0000000 --- a/Codebox/packages/alchemy-api/package.js +++ /dev/null @@ -1,11 +0,0 @@ -Package.describe({ - summary: "wrapper of alchemyapi" -}); -Npm.depends({'alchemy-api': "1.0.0"}); - -Package.on_use(function(api){ - api.add_files('alchemy-api.js', ['client', 'server']); - if(api.export){ - api.export('ALC'); - } -}); \ No newline at end of file diff --git a/Codebox/packages/alchemy-api/package.json b/Codebox/packages/alchemy-api/package.json deleted file mode 100644 index 51c8ba4..0000000 --- a/Codebox/packages/alchemy-api/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "alchemy-api", - "description": "An Alchemy API library for Node.js", - "tags": ["Alchemy", "Natural Language Processing", "util"], - "version": "1.0.0", - "author": "Jason Morgan ", - "contributors": [ - ], - "repository": { - "type": "git", - "url": "http://github.com/framingeinstein/node-alchemy.git" - }, - "license": "MIT", - "engines": { "node": ">= 0.4.0" }, - "scripts": { - "test": "node_modules/.bin/nodeunit test" - }, - "devDependencies": { - "nodeunit": ">=0.6.2" - } -} \ No newline at end of file diff --git a/Codebox/server/main.js b/Codebox/server/main.js index 106b228..5fc148f 100644 --- a/Codebox/server/main.js +++ b/Codebox/server/main.js @@ -1,6 +1,9 @@ keys = ['java', 'c', 'c++', 'javascript', 'python', 'clojure', 'scala', 'erlang', 'method', 'class', 'function', 'struct', 'def', 'void', 'double', 'float', 'number', 'var', 'int', 'integer']; nots = ['of', 'the', 'is', 'are', 'to', 'too']; + + + if (Meteor.isServer) { Meteor.methods({ analyze: function (query) { @@ -15,11 +18,10 @@ if (Meteor.isServer) { for(var k = 0; k < keys.length; k++){ if(parts.indexOf(keys[k]) != -1){ if(dbparts.indexOf(keys[k]) != -1){ - scr += 5; + scr += 7; } } } - for(var k = 0; k < parts.length; k++){ for(var m = 0; m < dbparts.length; m++){ if(levenshteinDistance(parts[k], dbparts[m]) <= 1 && nots.indexOf(parts[k]) == -1){ @@ -27,7 +29,6 @@ if (Meteor.isServer) { } } } - rs.push({ id: db[i].cbid, score: scr @@ -41,8 +42,19 @@ if (Meteor.isServer) { return a; }, - getalc: function(){ - return ALC(); + 'getGists': function getGists(user) { + var GithubApi = Meteor.require('github'); + var github = new GithubApi({ + version: "3.0.0" + }); + + var gists = Meteor.sync(function(done) { + github.gists.getFromUser({user: user}, function(err, data) { + done(null, data); + }); + }); + + return gists.result; } }); } diff --git a/Codebox/smart.json b/Codebox/smart.json index 838927d..f7b01d4 100644 --- a/Codebox/smart.json +++ b/Codebox/smart.json @@ -2,6 +2,6 @@ "packages": { "github": {}, "require": {}, - "alchemy-api": {} + "npm": {} } } diff --git a/Codebox/smart.lock b/Codebox/smart.lock index 758427e..44a160e 100644 --- a/Codebox/smart.lock +++ b/Codebox/smart.lock @@ -4,7 +4,7 @@ "basePackages": { "github": {}, "require": {}, - "sentiment": {} + "npm": {} }, "packages": { "github": { @@ -17,10 +17,10 @@ "tag": "v0.1.0", "commit": "b9c5a87e9f92019cca882234086b7d32719f67e2" }, - "sentiment": { - "git": "https://github.com/andreioprisan/meteor-sentiment.git", - "tag": "v0.2.1", - "commit": "a1901bd59d3a048f6df2e6484c08e46b506b5447" + "npm": { + "git": "https://github.com/arunoda/meteor-npm.git", + "tag": "v0.2.2", + "commit": "ad83acff83385d5ea05997c8bbc2d7493ba4c04e" } } } From c4b442281db27530481d0831d6ffcfa820a15a32 Mon Sep 17 00:00:00 2001 From: Douglas Adam Smith II Date: Wed, 9 Oct 2013 08:08:59 -0400 Subject: [PATCH 02/12] Begun integrating GitHub API Almost ready to scan Gists, but still need to deal with an inconvenient asynchronous page scrape. The 'Scraper' object tends to return before the inner call returns, thus making them unused. --- Codebox/client/main.js | 52 +++++++++++------ Codebox/packages.json | 3 +- Codebox/server/main.js | 129 ++++++++++++++++++++++++++++++++++++----- 3 files changed, 152 insertions(+), 32 deletions(-) diff --git a/Codebox/client/main.js b/Codebox/client/main.js index f46bc01..fc03ea3 100644 --- a/Codebox/client/main.js +++ b/Codebox/client/main.js @@ -4,9 +4,18 @@ Session.set('query', ""); if (Meteor.isClient) { - getGists = function getGists(user, callback) { - Meteor.call('getGists', user, callback); - } + getGists = function getGists(user, callback) { + Meteor.call('getGists', user, callback); + } + + getDescription = function(gist){ + return gist.description; + } + + getCode = function(gist){ + + } + Template.results.allResults = function(){ return Session.get('results'); } @@ -39,21 +48,28 @@ if (Meteor.isClient) { -focusOn = function(id){ - Session.set('details', true); - console.log('focussing on ' + id); -} - -openContributor = function(){ - $("html, body").animate({scrollTop: $("#inputTitle").offset().top}, 300); -} - -insertSnippet = function(){ - Snippets.insert(new Snippet(document.getElementById('inputTitle').value - ,document.getElementById('inputDescription').value - ,document.getElementById('inputCode').value)); - Session.set('query', document.getElementById('searchbar').value); -} + focusOn = function(id){ + Session.set('details', true); + console.log('focussing on ' + id); + } + + openContributor = function(){ + $("html, body").animate({scrollTop: $("#inputTitle").offset().top}, 300); + } + + insertSnippet = function(){ + if(document.getElementById('inputTitle').value != "") + if(document.getElementById('inputDescription').value != "") + if(document.getElementById('inputCode').value != ""){ + Snippets.insert(new Snippet(document.getElementById('inputTitle').value + ,document.getElementById('inputDescription').value + ,document.getElementById('inputCode').value)); + } + document.getElementById('inputTitle').value = ""; + document.getElementById('inputDescription').value = ""; + document.getElementById('inputCode').value = ""; + Session.set('query', document.getElementById('searchbar').value); + } Deps.autorun(function () { diff --git a/Codebox/packages.json b/Codebox/packages.json index f60c3e1..060a1fa 100644 --- a/Codebox/packages.json +++ b/Codebox/packages.json @@ -1,3 +1,4 @@ { - "github": "0.1.8" + "github": "0.1.8", + "request": "2.27.0" } \ No newline at end of file diff --git a/Codebox/server/main.js b/Codebox/server/main.js index 5fc148f..4cd5c37 100644 --- a/Codebox/server/main.js +++ b/Codebox/server/main.js @@ -1,10 +1,105 @@ +request = Meteor.require('request'); + var GithubApi = Meteor.require('github'); + var github = new GithubApi({ + version: "3.0.0" + }); + + + + +Scraper = function(){ + this.storage = []; +} + +Scraper.prototype.scrape = function(url){ + var t = this; + request.get(url, function (error, response, body) { + t.storage.push(body); + console.log(body); + }); +} + +Scraper.prototype.getStorage = function(){ + console.log('got'); + return this.storage; +} + +Snippet = function(title, description, code, language){ + this.title = title; + this.description = description; + if(typeof(language) != 'undefined'){ + this.description = language + ' ' + description; + } + this.code = code; +} + +Gister = function(user){ + + var gists = Meteor.sync(function(done) { + github.gists.getFromUser({user: user}, function(err, data) { + done(null, data); + }); + }); + + gists = gists.result; + + var snips = []; + console.log('Gists: ' + gists.length); + for(var i = 0; i < gists.length; i++){ + var s = new Scraper(); + var js = []; + for(var j in gists[i].files){ + js.push(j); + } + + Meteor.sync(function(done){ + s.scrape(gists[i].files[js[0]].raw_url); + done(null, {}); + }); + + + var t = gists[i].id; + var d = gists[i].description; + var c = s.getStorage(); + console.log('over'); + + c = c.join('\n'); + + snips.push(new Snippet(t, d, c)); + } + + this.getSnips = function(){ + return snips; + } +} + + + + + + + + + keys = ['java', 'c', 'c++', 'javascript', 'python', 'clojure', 'scala', 'erlang', 'method', 'class', 'function', 'struct', 'def', 'void', 'double', 'float', 'number', 'var', 'int', 'integer']; nots = ['of', 'the', 'is', 'are', 'to', 'too']; - if (Meteor.isServer) { + + LAST = 0; + i = 0; + scrape = function(url){ + request.get(url, function (error, response, body) { + out = body; + console.log(out); + i++; + LAST = out; + }); + } + + Meteor.methods({ analyze: function (query) { var parts = query.split(' '); @@ -43,18 +138,26 @@ if (Meteor.isServer) { }, 'getGists': function getGists(user) { - var GithubApi = Meteor.require('github'); - var github = new GithubApi({ - version: "3.0.0" - }); - - var gists = Meteor.sync(function(done) { - github.gists.getFromUser({user: user}, function(err, data) { - done(null, data); - }); - }); - - return gists.result; +// var GithubApi = Meteor.require('github'); +// var github = new GithubApi({ +// version: "3.0.0" +// }); +// +// var gists = Meteor.sync(function(done) { +// github.gists.getFromUser({user: user}, function(err, data) { +// done(null, data); +// }); +// }); +// +// return gists.result; + console.log('User: ' + user); + var test = new Gister(user); + return test.getSnips(); + }, + + getLast: function(url){ + scrape(url); + return LAST; } }); } From a58eb43325da8409f0b380ac962eb24a038b7b11 Mon Sep 17 00:00:00 2001 From: Douglas Adam Smith II Date: Thu, 10 Oct 2013 20:46:44 -0400 Subject: [PATCH 03/12] + github gist grabbing resolved the issue with nested async calls --- Codebox/client/html/main.html | 1 - Codebox/server/main.js | 12 ++++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/Codebox/client/html/main.html b/Codebox/client/html/main.html index a3832e8..03d8811 100644 --- a/Codebox/client/html/main.html +++ b/Codebox/client/html/main.html @@ -1,6 +1,5 @@ Codebox - diff --git a/Codebox/server/main.js b/Codebox/server/main.js index 4cd5c37..15a1d9e 100644 --- a/Codebox/server/main.js +++ b/Codebox/server/main.js @@ -13,9 +13,12 @@ Scraper = function(){ Scraper.prototype.scrape = function(url){ var t = this; - request.get(url, function (error, response, body) { - t.storage.push(body); - console.log(body); + Meteor.sync(function(done){ + request.get(url, function (error, response, body) { + t.storage.push(body); + console.log(body); + done(null, {}); + }) }); } @@ -52,10 +55,7 @@ Gister = function(user){ js.push(j); } - Meteor.sync(function(done){ s.scrape(gists[i].files[js[0]].raw_url); - done(null, {}); - }); var t = gists[i].id; From cd8808680ce2a8681de965209774cd8cf6e7969c Mon Sep 17 00:00:00 2001 From: Douglas Adam Smith II Date: Fri, 15 Nov 2013 20:14:40 -0500 Subject: [PATCH 04/12] removed ugly code/packages from HackMIT it will soon be replaced with good stuff! --- Codebox/.meteor/release | 1 - Codebox/both/Codebox.js | 21 - .../client/compatibility/highlight.js/LICENSE | 24 - .../compatibility/highlight.js/README.md | 143 ----- .../compatibility/highlight.js/README.ru.md | 149 ----- .../compatibility/highlight.js/classref.txt | 568 ------------------ .../highlight.js/highlight.pack.js | 1 - .../highlight.js/styles/arta.css | 158 ----- .../highlight.js/styles/ascetic.css | 50 -- .../highlight.js/styles/brown_paper.css | 104 ---- .../highlight.js/styles/brown_papersq.png | Bin 18198 -> 0 bytes .../highlight.js/styles/dark.css | 103 ---- .../highlight.js/styles/default.css | 135 ----- .../compatibility/highlight.js/styles/far.css | 111 ---- .../highlight.js/styles/github.css | 127 ---- .../highlight.js/styles/googlecode.css | 144 ----- .../highlight.js/styles/idea.css | 121 ---- .../highlight.js/styles/ir_black.css | 104 ---- .../highlight.js/styles/magula.css | 121 ---- .../highlight.js/styles/monokai.css | 114 ---- .../highlight.js/styles/pojoaque.css | 104 ---- .../highlight.js/styles/pojoaque.jpg | Bin 1186 -> 0 bytes .../highlight.js/styles/rainbow.css | 114 ---- .../highlight.js/styles/school_book.css | 111 ---- .../highlight.js/styles/school_book.png | Bin 486 -> 0 bytes .../highlight.js/styles/solarized_dark.css | 88 --- .../highlight.js/styles/solarized_light.css | 88 --- .../highlight.js/styles/sunburst.css | 158 ----- .../styles/tomorrow-night-blue.css | 52 -- .../styles/tomorrow-night-bright.css | 51 -- .../styles/tomorrow-night-eighties.css | 51 -- .../highlight.js/styles/tomorrow-night.css | 52 -- .../highlight.js/styles/tomorrow.css | 49 -- .../compatibility/highlight.js/styles/vs.css | 86 --- .../highlight.js/styles/xcode.css | 154 ----- .../highlight.js/styles/zenburn.css | 115 ---- Codebox/packages.json | 4 - Codebox/server/main.js | 188 ------ Codebox/smart.lock | 27 - {Codebox => app}/.meteor/.gitignore | 0 {Codebox => app}/.meteor/packages | 4 - app/.meteor/release | 1 + app/both/codebox.js | 93 +++ app/both/counters.js | 0 app/both/user.js | 0 {Codebox => app}/both/utility.js | 0 {Codebox => app}/client/css/main.css | 0 {Codebox => app}/client/css/results.css | 0 {Codebox => app}/client/css/submissions.css | 0 {Codebox => app}/client/html/main.html | 0 {Codebox => app}/client/html/templates.html | 3 +- {Codebox/client => app/client/js}/main.js | 6 +- app/packages.json | 1 + {Codebox => app}/packages/.gitignore | 0 {Codebox => app}/server/config.js | 0 app/server/main.js | 49 ++ {Codebox => app}/smart.json | 2 - app/smart.lock | 10 + 58 files changed, 156 insertions(+), 3804 deletions(-) delete mode 100644 Codebox/.meteor/release delete mode 100644 Codebox/both/Codebox.js delete mode 100644 Codebox/client/compatibility/highlight.js/LICENSE delete mode 100644 Codebox/client/compatibility/highlight.js/README.md delete mode 100644 Codebox/client/compatibility/highlight.js/README.ru.md delete mode 100644 Codebox/client/compatibility/highlight.js/classref.txt delete mode 100644 Codebox/client/compatibility/highlight.js/highlight.pack.js delete mode 100644 Codebox/client/compatibility/highlight.js/styles/arta.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/ascetic.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/brown_paper.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/brown_papersq.png delete mode 100644 Codebox/client/compatibility/highlight.js/styles/dark.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/default.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/far.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/github.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/googlecode.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/idea.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/ir_black.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/magula.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/monokai.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/pojoaque.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/pojoaque.jpg delete mode 100644 Codebox/client/compatibility/highlight.js/styles/rainbow.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/school_book.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/school_book.png delete mode 100644 Codebox/client/compatibility/highlight.js/styles/solarized_dark.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/solarized_light.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/sunburst.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/tomorrow-night-blue.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/tomorrow-night-bright.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/tomorrow-night-eighties.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/tomorrow-night.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/tomorrow.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/vs.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/xcode.css delete mode 100644 Codebox/client/compatibility/highlight.js/styles/zenburn.css delete mode 100644 Codebox/packages.json delete mode 100644 Codebox/server/main.js delete mode 100644 Codebox/smart.lock rename {Codebox => app}/.meteor/.gitignore (100%) rename {Codebox => app}/.meteor/packages (87%) create mode 100644 app/.meteor/release create mode 100644 app/both/codebox.js create mode 100644 app/both/counters.js create mode 100644 app/both/user.js rename {Codebox => app}/both/utility.js (100%) rename {Codebox => app}/client/css/main.css (100%) rename {Codebox => app}/client/css/results.css (100%) rename {Codebox => app}/client/css/submissions.css (100%) rename {Codebox => app}/client/html/main.html (100%) rename {Codebox => app}/client/html/templates.html (93%) rename {Codebox/client => app/client/js}/main.js (93%) create mode 100644 app/packages.json rename {Codebox => app}/packages/.gitignore (100%) rename {Codebox => app}/server/config.js (100%) create mode 100644 app/server/main.js rename {Codebox => app}/smart.json (50%) create mode 100644 app/smart.lock diff --git a/Codebox/.meteor/release b/Codebox/.meteor/release deleted file mode 100644 index dd8bfff..0000000 --- a/Codebox/.meteor/release +++ /dev/null @@ -1 +0,0 @@ -0.6.5.1 diff --git a/Codebox/both/Codebox.js b/Codebox/both/Codebox.js deleted file mode 100644 index 7842eb6..0000000 --- a/Codebox/both/Codebox.js +++ /dev/null @@ -1,21 +0,0 @@ -Snippets = new Meteor.Collection('Snippets'); - -Snippet = function(title, description, code, author){ - this.title = title; - this.author = author || 'Public'; - this.code = code; - this.description = description; - this.stars = 0; - this.cbid = randKey(15); -} - -if (Meteor.isServer) { - Meteor.startup(function () { - var tmp = Snippets.find().fetch(); - for(var i = 0; i < tmp.length; i++){ - if(typeof(tmp[i].title) == 'undefined'){ - Snippets.remove(tmp[i]); - } - } - }); -} \ No newline at end of file diff --git a/Codebox/client/compatibility/highlight.js/LICENSE b/Codebox/client/compatibility/highlight.js/LICENSE deleted file mode 100644 index 422deb7..0000000 --- a/Codebox/client/compatibility/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/Codebox/client/compatibility/highlight.js/README.md b/Codebox/client/compatibility/highlight.js/README.md deleted file mode 100644 index 3f0b749..0000000 --- a/Codebox/client/compatibility/highlight.js/README.md +++ /dev/null @@ -1,143 +0,0 @@ -# Highlight.js - -Highlight.js highlights syntax in code examples on blogs, forums and, -in fact, on any web page. 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"). - - -## Basic usage - -Link the library and a stylesheet from your page and hook highlighting to -the page load event: - -```html - - - -``` - -This will highlight all code on the page marked up as `
 .. 
`. -If you use different markup or need to apply highlighting dynamically, read -"Custom initialization" below. - -- You can download your own customized version of "highlight.pack.js" or - use the hosted one as described on the download page: - - -- Style themes are available in the download package or as hosted files. - To create a custom style for your site see the class reference in the file - [classref.txt][cr] from the downloaded package. - -[cr]: http://github.com/isagalaev/highlight.js/blob/master/classref.txt - - -## node.js - -Highlight.js can be used under node.js. The package with all supported languages is -installable from NPM: - - npm install highlight.js - -Alternatively, you can build it from the source with only languages you need: - - python tools/build.py -tnode lang1 lang2 .. - -Using the library: - -```javascript -var hljs = require('highlight.js'); - -// If you know the language -hljs.highlight(lang, code).value; - -// Automatic language detection -hljs.highlightAuto(code).value; -``` - -## Tab replacement - -You can replace TAB ('\x09') characters used for indentation in your code -with some fixed number of spaces or with a `` to give them special -styling: - -```html - -``` - -## Custom initialization - -If you use different markup for code blocks you can initialize them manually -with `highlightBlock(code, tabReplace, useBR)` 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: - -```javascript -$(document).ready(function() { - $('pre code').each(function(i, e) {hljs.highlightBlock(e)}); -}); -``` - -You can use `highlightBlock` to highlight blocks dynamically inserted into -the page. Just make sure you don't do it twice for already highlighted -blocks. - -If your code container relies on `
` tags instead of line breaks (i.e. if -it's not `
`) pass `true` into the third parameter of `highlightBlock`
-to make highlight.js use `
` in the output: - -```javascript -$('div.code').each(function(i, e) {hljs.highlightBlock(e, null, true)}); -``` - - -## Heuristics - -Autodetection of a code's language is done using a simple heuristic: -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: - -```html -
...
-``` - -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:
-
-```html
-
...
-``` - - -## Export - -File export.html contains a little program that allows you to paste in a code -snippet and then copy and paste the resulting HTML code generated by the -highlighter. This is useful in situations when you can't use the script itself -on a site. - - -## Meta - -- Version: 7.3 -- 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/Codebox/client/compatibility/highlight.js/README.ru.md b/Codebox/client/compatibility/highlight.js/README.ru.md deleted file mode 100644 index 65e419f..0000000 --- a/Codebox/client/compatibility/highlight.js/README.ru.md +++ /dev/null @@ -1,149 +0,0 @@ -# Highlight.js - -Highlight.js нужен для подсветки синтаксиса в примерах кода в блогах, -форумах и вообще на любых веб-страницах. Пользоваться им очень просто, -потому что работает он автоматически: сам находит блоки кода, сам -определяет язык, сам подсвечивает. - -Автоопределением языка можно управлять, когда оно не справляется само (см. -дальше "Эвристика"). - - -## Простое использование - -Подключите библиотеку и стиль на страницу и повесть вызов подсветки на -загрузку страницы: - -```html - - - -``` - -Весь код на странице, обрамлённый в теги `
 .. 
` -будет автоматически подсвечен. Если вы используете другие теги или хотите -подсвечивать блоки кода динамически, читайте "Инициализацию вручную" ниже. - -- Вы можете скачать собственную версию "highlight.pack.js" или сослаться - на захостенный файл, как описано на странице загрузки: - - -- Стилевые темы можно найти в загруженном архиве или также использовать - захостенные. Чтобы сделать собственный стиль для своего сайта, вам - будет полезен справочник классов в файле [classref.txt][cr], который тоже - есть в архиве. - -[cr]: http://github.com/isagalaev/highlight.js/blob/master/classref.txt - - -## node.js - -Highlight.js можно использовать в node.js. Библиотеку со всеми возможными языками можно -установить с NPM: - - npm install highlight.js - -Также её можно собрать из исходников с только теми языками, которые нужны: - - python tools/build.py -tnode lang1 lang2 .. - -Использование библиотеки: - -```javascript -var hljs = require('highlight.js'); - -// Если вы знаете язык -hljs.highlight(lang, code).value; - -// Автоопределение языка -hljs.highlightAuto(code).value; -``` - - -## Замена TABов - -Также вы можете заменить символы TAB ('\x09'), используемые для отступов, на -фиксированное количество пробелов или на отдельный ``, чтобы задать ему -какой-нибудь специальный стиль: - -```html - -``` - - -## Инициализация вручную - -Если вы используете другие теги для блоков кода, вы можете инициализировать их -явно с помощью функции `highlightBlock(code, tabReplace, useBR)`. Она принимает -DOM-элемент с текстом расцвечиваемого кода и опционально - строчку для замены -символов TAB. - -Например с использованием jQuery код инициализации может выглядеть так: - -```javascript -$(document).ready(function() { - $('pre code').each(function(i, e) {hljs.highlightBlock(e)}); -}); -``` - -`highlightBlock` можно также использовать, чтобы подсветить блоки кода, -добавленные на страницу динамически. Только убедитесь, что вы не делаете этого -повторно для уже раскрашенных блоков. - -Если ваш блок кода использует `
` вместо переводов строки (т.е. если это не -`
`), передайте `true` третьим параметром в `highlightBlock`:
-
-```javascript
-$('div.code').each(function(i, e) {hljs.highlightBlock(e, null, true)});
-```
-
-
-## Эвристика
-
-Определение языка, на котором написан фрагмент, делается с помощью
-довольно простой эвристики: программа пытается расцветить фрагмент всеми
-языками подряд, и для каждого языка считает количество подошедших
-синтаксически конструкций и ключевых слов. Для какого языка нашлось больше,
-тот и выбирается.
-
-Это означает, что в коротких фрагментах высока вероятность ошибки, что
-периодически и случается. Чтобы указать язык фрагмента явно, надо написать
-его название в виде класса к элементу ``:
-
-```html
-
...
-``` - -Можно использовать рекомендованные в HTML5 названия классов: -"language-html", "language-php". Также можно назначать классы на элемент -`
`.
-
-Чтобы запретить расцветку фрагмента вообще, используется класс "no-highlight":
-
-```html
-
...
-``` - - -## Экспорт - -В файле export.html находится небольшая программка, которая показывает и дает -скопировать непосредственно HTML-код подсветки для любого заданного фрагмента кода. -Это может понадобится например на сайте, на котором нельзя подключить сам скрипт -highlight.js. - - -## Координаты - -- Версия: 7.3 -- URL: http://softwaremaniacs.org/soft/highlight/ -- Автор: Иван Сагалаев () - -Лицензионное соглашение читайте в файле LICENSE. -Список соавторов читайте в файле AUTHORS.ru.txt diff --git a/Codebox/client/compatibility/highlight.js/classref.txt b/Codebox/client/compatibility/highlight.js/classref.txt deleted file mode 100644 index b22bdad..0000000 --- a/Codebox/client/compatibility/highlight.js/classref.txt +++ /dev/null @@ -1,568 +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) - prompt interpreter prompt (>>> or ...) - -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 - -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 - annotation 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 - -HTML, XML ("xml"): - - tag any tag from "<" till ">" - attribute tag's attribute with or without value - value attribute's value - comment comment - pi processing instruction () - doctype declaration - cdata CDATA section - -CSS ("css"): - - tag 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 "}" - attribute 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 - important "!important" symbol - -Markdown ("markdown"): - - header header - bullet list bullet - emphasis emphasis - strong strong emphasis - blockquote blockquote - code code - horizontal_rule horizontal rule - link_label link label - link_url link url - -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 - -JSON ("json"): - - number number - literal "true", "false" and "null" - string string value - attribute name of an object property - value value of an object property - -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 parentheses and everything inside them in a function's header - -CoffeeScript ("coffeescript"): - - keyword keyword - comment comment - number number - literal special literal: "true", "false" and "null" - string string - regexp regular expression - function header of a function - class header of a class - title name of a function variable inside a header - params parentheses and everything inside them in a function's header - property @-property within class and functions - -ActionScript ("actionscript"): - - comment comment - string string - number number - keyword keywords - literal literal - reserved reserved keyword - title name of declaration (package, class or function) - preprocessor preprocessor directive (import, include) - type type of returned value (for functions) - package package (named or not) - class class/interface - function function - param params of function - rest_arg rest argument of function - -VBScript ("vbscript"): - - keyword keyword - number number - string string - comment comment - built_in built-in function - -HTTP ("http"): - - request first line of a request - status first line of a response - attribute header name - string header value or query string in a request line - number status code - -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 - variable properties and struct accesors - -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 ("///", "", "<..>") - -D language ("d"): - - comment comment - string string constant - number number - keyword language keywords (including @attributes) - constant true false null - built_in built-in plain types (int, string etc.) - -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 "'(..)" - -Clojure ("clojure"): - - comment comments and hints - string string - number number - collection collections - attribute :keyword - title function name (built-in or user defined) - built_in built-in function name - -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"): - - title directive title - string string - number number - comment comment - built_in built-in constant - variable $-variable - regexp regexp - -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 - typename typename - attribute signal attribute - -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 - number number - string string - comment comment - class type classes and other data types - title function name - type type class name - typedef definition of types (type, newtype, data) - -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 - -Rust ("rust"): - - comment comment - string string - number number - keyword keyword - title name of declaration - preprocessor preprocessor directive - -Matlab ("matlab"): - - comment comment - string string - number number - keyword keyword - title function name - function function - param params of function - matrix matrix in [ .. ] - cell cell in { .. } - -R ("r"): - - comment comment - string string constant - number number - keyword language keywords (function, if) plus "structural" - functions (attach, require, setClass) - literal special literal: TRUE, FALSE, NULL, NA, etc. - -OpenGL Shading Language ("glsl"): - - comment comment - number number - preprocessor preprocessor directive - keyword keyword - built_in GLSL built-in functions and variables - literal true false - -AppleScript ("applescript"): - - keyword keyword - command core AppleScript command - constant AppleScript built in constant - type AppleScript variable type (integer, etc.) - property Applescript built in property (length, etc.) - number number - string string - comment comment - title name of a handler - -Brainfuck ("brainfuck"): - - title Brainfuck while loop command - literal Brainfuck inc and dec commands - comment comment - string Brainfuck input and output commands diff --git a/Codebox/client/compatibility/highlight.js/highlight.pack.js b/Codebox/client/compatibility/highlight.js/highlight.pack.js deleted file mode 100644 index 33417df..0000000 --- a/Codebox/client/compatibility/highlight.js/highlight.pack.js +++ /dev/null @@ -1 +0,0 @@ -var hljs=new function(){function l(o){return o.replace(/&/gm,"&").replace(//gm,">")}function b(p){for(var o=p.firstChild;o;o=o.nextSibling){if(o.nodeName=="CODE"){return o}if(!(o.nodeType==3&&o.nodeValue.match(/\s+/))){break}}}function h(p,o){return Array.prototype.map.call(p.childNodes,function(q){if(q.nodeType==3){return o?q.nodeValue.replace(/\n/g,""):q.nodeValue}if(q.nodeName=="BR"){return"\n"}return h(q,o)}).join("")}function a(q){var p=(q.className+" "+q.parentNode.className).split(/\s+/);p=p.map(function(r){return r.replace(/^language-/,"")});for(var o=0;o"}while(x.length||v.length){var u=t().splice(0,1)[0];y+=l(w.substr(p,u.offset-p));p=u.offset;if(u.event=="start"){y+=s(u.node);r.push(u.node)}else{if(u.event=="stop"){var o,q=r.length;do{q--;o=r[q];y+=("")}while(o!=u.node);r.splice(q,1);while(q'+L[0]+""}else{r+=L[0]}N=A.lR.lastIndex;L=A.lR.exec(K)}return r+K.substr(N)}function z(){if(A.sL&&!e[A.sL]){return l(w)}var r=A.sL?d(A.sL,w):g(w);if(A.r>0){v+=r.keyword_count;B+=r.r}return''+r.value+""}function J(){return A.sL!==undefined?z():G()}function I(L,r){var K=L.cN?'':"";if(L.rB){x+=K;w=""}else{if(L.eB){x+=l(r)+K;w=""}else{x+=K;w=r}}A=Object.create(L,{parent:{value:A}});B+=L.r}function C(K,r){w+=K;if(r===undefined){x+=J();return 0}var L=o(r,A);if(L){x+=J();I(L,r);return L.rB?0:r.length}var M=s(A,r);if(M){if(!(M.rE||M.eE)){w+=r}x+=J();do{if(A.cN){x+=""}A=A.parent}while(A!=M.parent);if(M.eE){x+=l(r)}w="";if(M.starts){I(M.starts,"")}return M.rE?0:r.length}if(t(r,A)){throw"Illegal"}w+=r;return r.length||1}var F=e[D];f(F);var A=F;var w="";var B=0;var v=0;var x="";try{var u,q,p=0;while(true){A.t.lastIndex=p;u=A.t.exec(E);if(!u){break}q=C(E.substr(p,u.index-p),u[0]);p=u.index+q}C(E.substr(p));return{r:B,keyword_count:v,value:x,language:D}}catch(H){if(H=="Illegal"){return{r:0,keyword_count:0,value:l(E)}}else{throw H}}}function g(s){var o={keyword_count:0,r:0,value:l(s)};var q=o;for(var p in e){if(!e.hasOwnProperty(p)){continue}var r=d(p,s);r.language=p;if(r.keyword_count+r.r>q.keyword_count+q.r){q=r}if(r.keyword_count+r.r>o.keyword_count+o.r){q=o;o=r}}if(q.language){o.second_best=q}return o}function i(q,p,o){if(p){q=q.replace(/^((<[^>]+>|\t)+)/gm,function(r,v,u,t){return v.replace(/\t/g,p)})}if(o){q=q.replace(/\n/g,"
")}return q}function m(r,u,p){var v=h(r,p);var t=a(r);if(t=="no-highlight"){return}var w=t?d(t,v):g(v);t=w.language;var o=c(r);if(o.length){var q=document.createElement("pre");q.innerHTML=w.value;w.value=j(o,c(q),v)}w.value=i(w.value,u,p);var s=r.className;if(!s.match("(\\s|^)(language-)?"+t+"(\\s|$)")){s=s?(s+" "+t):t}r.innerHTML=w.value;r.className=s;r.result={language:t,kw:w.keyword_count,re:w.r};if(w.second_best){r.second_best={language:w.second_best.language,kw:w.second_best.keyword_count,re:w.second_best.r}}}function n(){if(n.called){return}n.called=true;Array.prototype.map.call(document.getElementsByTagName("pre"),b).filter(Boolean).forEach(function(o){m(o,hljs.tabReplace)})}function k(){window.addEventListener("DOMContentLoaded",n,false);window.addEventListener("load",n,false)}var e={};this.LANGUAGES=e;this.highlight=d;this.highlightAuto=g;this.fixMarkup=i;this.highlightBlock=m;this.initHighlighting=n;this.initHighlightingOnLoad=k;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",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.BNM={cN:"number",b:this.BNR,r:0};this.inherit=function(q,r){var o={};for(var p in q){o[p]=q[p]}if(r){for(var p in r){o[p]=r[p]}}return o}}();hljs.LANGUAGES.bash=function(a){var g="true false";var e="if then else elif fi for break continue while in do done echo exit return set declare";var c={cN:"variable",b:"\\$[a-zA-Z0-9_#]+"};var b={cN:"variable",b:"\\${([^}]|\\\\})+}"};var h={cN:"string",b:'"',e:'"',i:"\\n",c:[a.BE,c,b],r:0};var d={cN:"string",b:"'",e:"'",c:[{b:"''"}],r:0};var f={cN:"test_condition",b:"",e:"",c:[h,d,c,b],k:{literal:g},r:0};return{k:{keyword:e,literal:g},c:[{cN:"shebang",b:"(#!\\/bin\\/bash)|(#!\\/bin\\/sh)",r:10},c,b,a.HCM,h,d,a.inherit(f,{b:"\\[ ",e:" \\]",r:0}),a.inherit(f,{b:"\\[\\[ ",e:" \\]\\]"})]}}(hljs);hljs.LANGUAGES.erlang=function(i){var c="[a-z'][a-zA-Z0-9_']*";var o="("+c+":"+c+"|"+c+")";var f={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun let not of orelse|10 query receive rem try when xor",literal:"false true"};var l={cN:"comment",b:"%",e:"$",r:0};var e={cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0};var g={b:"fun\\s+"+c+"/\\d+"};var n={b:o+"\\(",e:"\\)",rB:true,r:0,c:[{cN:"function_name",b:o,r:0},{b:"\\(",e:"\\)",eW:true,rE:true,r:0}]};var h={cN:"tuple",b:"{",e:"}",r:0};var a={cN:"variable",b:"\\b_([A-Z][A-Za-z0-9_]*)?",r:0};var m={cN:"variable",b:"[A-Z][a-zA-Z0-9_]*",r:0};var b={b:"#",e:"}",i:".",r:0,rB:true,c:[{cN:"record_name",b:"#"+i.UIR,r:0},{b:"{",eW:true,r:0}]};var k={k:f,b:"(fun|receive|if|try|case)",e:"end"};k.c=[l,g,i.inherit(i.ASM,{cN:""}),k,n,i.QSM,e,h,a,m,b];var j=[l,g,k,n,i.QSM,e,h,a,m,b];n.c[1].c=j;h.c=j;b.c[1].c=j;var d={cN:"params",b:"\\(",e:"\\)",c:j};return{k:f,i:"(",rB:true,i:"\\(|#|//|/\\*|\\\\|:",c:[d,{cN:"title",b:c}],starts:{e:";|\\.",k:f,c:j}},l,{cN:"pp",b:"^-",e:"\\.",r:0,eE:true,rB:true,l:"-"+i.IR,k:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior",c:[d]},e,i.QSM,b,a,m,h]}}(hljs);hljs.LANGUAGES.cs=function(a){return{k:"abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while ascending descending from get group into join let orderby partial select set value var where yield",c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"///|"},{cN:"xmlDocTag",b:""}]},a.CLCM,a.CBLCLM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line region endregion pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},a.ASM,a.QSM,a.CNM]}}(hljs);hljs.LANGUAGES.brainfuck=function(a){return{c:[{cN:"comment",b:"[^\\[\\]\\.,\\+\\-<> \r\n]",eE:true,e:"[\\[\\]\\.,\\+\\-<> \r\n]",r:0},{cN:"title",b:"[\\[\\]]",r:0},{cN:"string",b:"[\\.,]"},{cN:"literal",b:"[\\+\\-]"}]}}(hljs);hljs.LANGUAGES.ruby=function(e){var a="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var j="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g={keyword:"and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include"};var c={cN:"yardoctag",b:"@[A-Za-z]+"};var k=[{cN:"comment",b:"#",e:"$",c:[c]},{cN:"comment",b:"^\\=begin",e:"^\\=end",c:[c],r:10},{cN:"comment",b:"^__END__",e:"\\n$"}];var d={cN:"subst",b:"#\\{",e:"}",l:a,k:g};var i=[e.BE,d];var b=[{cN:"string",b:"'",e:"'",c:i,r:0},{cN:"string",b:'"',e:'"',c:i,r:0},{cN:"string",b:"%[qw]?\\(",e:"\\)",c:i},{cN:"string",b:"%[qw]?\\[",e:"\\]",c:i},{cN:"string",b:"%[qw]?{",e:"}",c:i},{cN:"string",b:"%[qw]?<",e:">",c:i,r:10},{cN:"string",b:"%[qw]?/",e:"/",c:i,r:10},{cN:"string",b:"%[qw]?%",e:"%",c:i,r:10},{cN:"string",b:"%[qw]?-",e:"-",c:i,r:10},{cN:"string",b:"%[qw]?\\|",e:"\\|",c:i,r:10}];var h={cN:"function",bWK:true,e:" |$|;",k:"def",c:[{cN:"title",b:j,l:a,k:g},{cN:"params",b:"\\(",e:"\\)",l:a,k:g}].concat(k)};var f=k.concat(b.concat([{cN:"class",bWK:true,e:"$|;",k:"class module",c:[{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",r:0},{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]}].concat(k)},h,{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:b.concat([{b:j}]),r:0},{cN:"symbol",b:a+":",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+))"},{b:"("+e.RSR+")\\s*",c:k.concat([{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:[e.BE,d]}]),r:0}]));d.c=f;h.c[1].c=f;return{l:a,k:g,c:f}}(hljs);hljs.LANGUAGES.diff=function(a){return{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);hljs.LANGUAGES.javascript=function(a){return{k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const",literal:"true false null undefined NaN Infinity"},c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{b:"("+a.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[a.CLCM,a.CBLCLM,{cN:"regexp",b:"/",e:"/[gim]*",i:"\\n",c:[{b:"\\\\/"}]},{b:"<",e:">;",sL:"xml"}],r:0},{cN:"function",bWK:true,e:"{",k:"function",c:[{cN:"title",b:"[A-Za-z$_][0-9A-Za-z$_]*"},{cN:"params",b:"\\(",e:"\\)",c:[a.CLCM,a.CBLCLM],i:"[\"'\\(]"}],i:"\\[|%"}]}}(hljs);hljs.LANGUAGES.glsl=function(a){return{k:{keyword:"atomic_uint attribute bool break bvec2 bvec3 bvec4 case centroid coherent const continue default discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double dvec2 dvec3 dvec4 else flat float for highp if iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray in inout int invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 layout lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump noperspective out patch precision readonly restrict return sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow smooth struct subroutine switch uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint uniform usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly",built_in:"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffsetgl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_PerVertex gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicCounter atomicCounterDecrement atomicCounterIncrement barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow gl_TextureMatrix gl_TextureMatrixInverse",literal:"true false"},i:'"',c:[a.CLCM,a.CBLCLM,a.CNM,{cN:"preprocessor",b:"#",e:"$"}]}}(hljs);hljs.LANGUAGES.lua=function(b){var a="\\[=*\\[";var e="\\]=*\\]";var c={b:a,e:e,c:["self"]};var d=[{cN:"comment",b:"--(?!"+a+")",e:"$"},{cN:"comment",b:"--"+a,e:e,c:[c],r:10}];return{l:b.UIR,k:{keyword:"and break do else elseif end false for if in local nil not or repeat return then true until while",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},c:d.concat([{cN:"function",bWK:true,e:"\\)",k:"function",c:[{cN:"title",b:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"},{cN:"params",b:"\\(",eW:true,c:d}].concat(d)},b.CNM,b.ASM,b.QSM,{cN:"string",b:a,e:e,c:[c],r:10}])}}(hljs);hljs.LANGUAGES.xml=function(a){var c="[A-Za-z0-9\\._:-]+";var b={eW:true,c:[{cN:"attribute",b:c,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"|$)",e:">",k:{title:"style"},c:[b],starts:{e:"",rE:true,sL:"css"}},{cN:"tag",b:"|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"",c:[{cN:"title",b:"[^ />]+"},b]}]}}(hljs);hljs.LANGUAGES.markdown=function(a){return{c:[{cN:"header",b:"^#{1,3}",e:"$"},{cN:"header",b:"^.+?\\n[=-]{2,}$"},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",b:"\\*.+?\\*"},{cN:"emphasis",b:"_.+?_",r:0},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",b:"`.+?`"},{cN:"code",b:"^ ",e:"$",r:0},{cN:"horizontal_rule",b:"^-{3,}",e:"$"},{b:"\\[.+?\\]\\(.+?\\)",rB:true,c:[{cN:"link_label",b:"\\[.+\\]"},{cN:"link_url",b:"\\(",e:"\\)",eB:true,eE:true}]}]}}(hljs);hljs.LANGUAGES.css=function(a){var b={cN:"function",b:a.IR+"\\(",e:"\\)",c:[a.NM,a.ASM,a.QSM]};return{cI:true,i:"[=/|']",c:[a.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",eE:true,k:"import page media charset",c:[b,a.ASM,a.QSM,a.NM]},{cN:"tag",b:a.IR,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[a.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[b,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"hexcolor",b:"\\#[0-9A-F]+"},{cN:"important",b:"!important"}]}}]}]}]}}(hljs);hljs.LANGUAGES.lisp=function(i){var k="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#]*";var l="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?";var a={cN:"literal",b:"\\b(t{1}|nil)\\b"};var d=[{cN:"number",b:l},{cN:"number",b:"#b[0-1]+(/[0-1]+)?"},{cN:"number",b:"#o[0-7]+(/[0-7]+)?"},{cN:"number",b:"#x[0-9a-f]+(/[0-9a-f]+)?"},{cN:"number",b:"#c\\("+l+" +"+l,e:"\\)"}];var h={cN:"string",b:'"',e:'"',c:[i.BE],r:0};var m={cN:"comment",b:";",e:"$"};var g={cN:"variable",b:"\\*",e:"\\*"};var n={cN:"keyword",b:"[:&]"+k};var b={b:"\\(",e:"\\)",c:["self",a,h].concat(d)};var e={cN:"quoted",b:"['`]\\(",e:"\\)",c:d.concat([h,g,n,b])};var c={cN:"quoted",b:"\\(quote ",e:"\\)",k:{title:"quote"},c:d.concat([h,g,n,b])};var j={cN:"list",b:"\\(",e:"\\)"};var f={cN:"body",eW:true,eE:true};j.c=[{cN:"title",b:k},f];f.c=[e,c,j,a].concat(d).concat([h,m,g,n]);return{i:"[^\\s]",c:d.concat([a,h,m,e,c,j])}}(hljs);hljs.LANGUAGES.http=function(a){return{i:"\\S",c:[{cN:"status",b:"^HTTP/[0-9\\.]+",e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{cN:"request",b:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",rB:true,e:"$",c:[{cN:"string",b:" ",e:" ",eB:true,eE:true}]},{cN:"attribute",b:"^\\w",e:": ",eE:true,i:"\\n|\\s|=",starts:{cN:"string",e:"$"}},{b:"\\n\\n",starts:{sL:"",eW:true}}]}}(hljs);hljs.LANGUAGES.java=function(a){return{k:"false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws",c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"@[A-Za-z]+"}],r:10},a.CLCM,a.CBLCLM,a.ASM,a.QSM,{cN:"class",bWK:true,e:"{",k:"class interface",i:":",c:[{bWK:true,k:"extends implements",r:10},{cN:"title",b:a.UIR}]},a.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}}(hljs);hljs.LANGUAGES.php=function(a){var e={cN:"variable",b:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"};var b=[a.inherit(a.ASM,{i:null}),a.inherit(a.QSM,{i:null}),{cN:"string",b:'b"',e:'"',c:[a.BE]},{cN:"string",b:"b'",e:"'",c:[a.BE]}];var c=[a.BNM,a.CNM];var d={cN:"title",b:a.UIR};return{cI:true,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return implements parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception php_user_filter default die require __FUNCTION__ enddeclare final try this switch continue endfor endif declare unset true false namespace trait goto instanceof insteadof __DIR__ __NAMESPACE__ __halt_compiler",c:[a.CLCM,a.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+"}]},{cN:"comment",eB:true,b:"__halt_compiler.+?;",eW:true},{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[a.BE]},{cN:"preprocessor",b:"<\\?php",r:10},{cN:"preprocessor",b:"\\?>"},e,{cN:"function",bWK:true,e:"{",k:"function",i:"\\$|\\[|%",c:[d,{cN:"params",b:"\\(",e:"\\)",c:["self",e,a.CBLCLM].concat(b).concat(c)}]},{cN:"class",bWK:true,e:"{",k:"class",i:"[:\\(\\$]",c:[{bWK:true,eW:true,k:"extends",c:[d]},d]},{b:"=>"}].concat(b).concat(c)}}(hljs);hljs.LANGUAGES.haskell=function(a){var d={cN:"type",b:"\\b[A-Z][\\w']*",r:0};var c={cN:"container",b:"\\(",e:"\\)",c:[{cN:"type",b:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},{cN:"title",b:"[_a-z][\\w']*"}]};var b={cN:"container",b:"{",e:"}",c:c.c};return{k:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance not as foreign ccall safe unsafe",c:[{cN:"comment",b:"--",e:"$"},{cN:"preprocessor",b:"{-#",e:"#-}"},{cN:"comment",c:["self"],b:"{-",e:"-}"},{cN:"string",b:"\\s+'",e:"'",c:[a.BE],r:0},a.QSM,{cN:"import",b:"\\bimport",e:"$",k:"import qualified as hiding",c:[c],i:"\\W\\.|;"},{cN:"module",b:"\\bmodule",e:"where",k:"module where",c:[c],i:"\\W\\.|;"},{cN:"class",b:"\\b(class|instance)",e:"where",k:"class where instance",c:[d]},{cN:"typedef",b:"\\b(data|(new)?type)",e:"$",k:"data type newtype deriving",c:[d,c,b]},a.CNM,{cN:"shebang",b:"#!\\/usr\\/bin\\/env runhaskell",e:"$"},d,{cN:"title",b:"^[_a-z][\\w']*"}]}}(hljs);hljs.LANGUAGES["1c"]=function(b){var f="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*";var c="возврат дата для если и или иначе иначеесли исключение конецесли конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл число экспорт";var e="ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить стрколичествострок стрполучитьстроку стрчисловхождений сформироватьпозициюдокумента счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты установитьтана установитьтапо фиксшаблон формат цел шаблон";var a={cN:"dquote",b:'""'};var d={cN:"string",b:'"',e:'"|$',c:[a],r:0};var g={cN:"string",b:"\\|",e:'"|$',c:[a]};return{cI:true,l:f,k:{keyword:c,built_in:e},c:[b.CLCM,b.NM,d,g,{cN:"function",b:"(процедура|функция)",e:"$",l:f,k:"процедура функция",c:[{cN:"title",b:f},{cN:"tail",eW:true,c:[{cN:"params",b:"\\(",e:"\\)",l:f,k:"знач",c:[d,g]},{cN:"export",b:"экспорт",eW:true,l:f,k:"экспорт",c:[b.CLCM]}]},b.CLCM]},{cN:"preprocessor",b:"#",e:"$"},{cN:"date",b:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"}]}}(hljs);hljs.LANGUAGES.python=function(a){var f={cN:"prompt",b:"^(>>>|\\.\\.\\.) "};var c=[{cN:"string",b:"(u|b)?r?'''",e:"'''",c:[f],r:10},{cN:"string",b:'(u|b)?r?"""',e:'"""',c:[f],r:10},{cN:"string",b:"(u|r|ur)'",e:"'",c:[a.BE],r:10},{cN:"string",b:'(u|r|ur)"',e:'"',c:[a.BE],r:10},{cN:"string",b:"(b|br)'",e:"'",c:[a.BE]},{cN:"string",b:'(b|br)"',e:'"',c:[a.BE]}].concat([a.ASM,a.QSM]);var e={cN:"title",b:a.UIR};var d={cN:"params",b:"\\(",e:"\\)",c:["self",a.CNM,f].concat(c)};var b={bWK:true,e:":",i:"[${=;\\n]",c:[e,d],r:10};return{k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10",built_in:"None True False Ellipsis NotImplemented"},i:"(|\\?)",c:c.concat([f,a.HCM,a.inherit(b,{cN:"function",k:"def"}),a.inherit(b,{cN:"class",k:"class"}),a.CNM,{cN:"decorator",b:"@",e:"$"},{b:"\\b(print|exec)\\("}])}}(hljs);hljs.LANGUAGES.smalltalk=function(a){var b="[a-z][a-zA-Z0-9_]*";var d={cN:"char",b:"\\$.{1}"};var c={cN:"symbol",b:"#"+a.UIR};return{k:"self super nil true false thisContext",c:[{cN:"comment",b:'"',e:'"',r:0},a.ASM,{cN:"class",b:"\\b[A-Z][A-Za-z0-9_]*",r:0},{cN:"method",b:b+":"},a.CNM,c,d,{cN:"localvars",b:"\\|\\s*(("+b+")\\s*)+\\|"},{cN:"array",b:"\\#\\(",e:"\\)",c:[a.ASM,d,a.CNM,c]}]}}(hljs);hljs.LANGUAGES.actionscript=function(a){var d="[a-zA-Z_$][a-zA-Z0-9_$]*";var c="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)";var e={cN:"rest_arg",b:"[.]{3}",e:d,r:10};var b={cN:"title",b:d};return{k:{keyword:"as break case catch class const continue default delete do dynamic each else extends final finally for function get if implements import in include instanceof interface internal is namespace native new override package private protected public return set static super switch this throw try typeof use var void while with",literal:"true false null undefined"},c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{cN:"package",bWK:true,e:"{",k:"package",c:[b]},{cN:"class",bWK:true,e:"{",k:"class interface",c:[{bWK:true,k:"extends implements"},b]},{cN:"preprocessor",bWK:true,e:";",k:"import include"},{cN:"function",bWK:true,e:"[{;]",k:"function",i:"\\S",c:[b,{cN:"params",b:"\\(",e:"\\)",c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,e]},{cN:"type",b:":",e:c,r:10}]}]}}(hljs);hljs.LANGUAGES.sql=function(a){return{cI:true,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|grant)\\b(?!:)",e:";",eW:true,k:{keyword:"all partial global month current_timestamp using go revoke smallint indicator end-exec disconnect zone with character assertion to add current_user usage input local alter match collate real then rollback get read timestamp session_user not integer bit unique day minute desc insert execute like ilike|2 level decimal drop continue isolation found where constraints domain right national some module transaction relative second connect escape close system_user for deferred section cast current sqlstate allocate intersect deallocate numeric public preserve full goto initially asc no key output collation group by union session both last language constraint column of space foreign deferrable prior connection unknown action commit view or first into float year primary cascaded except restrict set references names table outer open select size are rows from prepare distinct leading create only next inner authorization schema corresponding option declare precision immediate else timezone_minute external varying translation true case exception join hour default double scroll value cursor descriptor values dec fetch procedure delete and false int is describe char as at in varchar null trailing any absolute current_time end grant privileges when cross check write current_date pad begin temporary exec time update catalog user sql date on identity timezone_hour natural whenever interval work order cascade diagnostics nchar having left call do handler load replace truncate start lock show pragma exists number",aggregate:"count sum min max avg"},c:[{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}],r:0},{cN:"string",b:'"',e:'"',c:[a.BE,{b:'""'}],r:0},{cN:"string",b:"`",e:"`",c:[a.BE]},a.CNM]},a.CBLCLM,{cN:"comment",b:"--",e:"$"}]}}(hljs);hljs.LANGUAGES.vala=function(a){return{k:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object",literal:"false true null"},c:[{cN:"class",bWK:true,e:"{",k:"class interface delegate namespace",c:[{bWK:true,k:"extends implements"},{cN:"title",b:a.UIR}]},a.CLCM,a.CBLCLM,{cN:"string",b:'"""',e:'"""',r:5},a.ASM,a.QSM,a.CNM,{cN:"preprocessor",b:"^#",e:"$",r:2},{cN:"constant",b:" [A-Z_]+ ",r:0}]}}(hljs);hljs.LANGUAGES.ini=function(a){return{cI:true,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 off true false yes no",c:[a.QSM,a.NM]}]}]}}(hljs);hljs.LANGUAGES.perl=function(e){var a="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when";var d={cN:"subst",b:"[$@]\\{",e:"\\}",k:a,r:10};var b={cN:"variable",b:"\\$\\d"};var i={cN:"variable",b:"[\\$\\%\\@\\*](\\^\\w\\b|#\\w+(\\:\\:\\w+)*|[^\\s\\w{]|{\\w+}|\\w+(\\:\\:\\w*)*)"};var f=[e.BE,d,b,i];var h={b:"->",c:[{b:e.IR},{b:"{",e:"}"}]};var g={cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5};var c=[b,i,e.HCM,g,{cN:"comment",b:"^\\=\\w",e:"\\=cut",eW:true},h,{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:[e.BE],r:0},{cN:"string",b:'"',e:'"',c:f,r:0},{cN:"string",b:"`",e:"`",c:[e.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},{b:"("+e.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[e.HCM,g,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[e.BE],r:0}]},{cN:"sub",bWK:true,e:"(\\s*\\(.*?\\))?[;{]",k:"sub",r:5},{cN:"operator",b:"-\\w\\b",r:0}];d.c=c;h.c[1].c=c;return{k:a,c:c}}(hljs);hljs.LANGUAGES.scala=function(a){var c={cN:"annotation",b:"@[A-Za-z]+"};var b={cN:"string",b:'u?r?"""',e:'"""',r:10};return{k:"type yield lazy override def with val var false true sealed abstract private trait object null if for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws",c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"@[A-Za-z]+"}],r:10},a.CLCM,a.CBLCLM,a.ASM,a.QSM,b,{cN:"class",b:"((case )?class |object |trait )",e:"({|$)",i:":",k:"case class trait object",c:[{bWK:true,k:"extends with",r:10},{cN:"title",b:a.UIR},{cN:"params",b:"\\(",e:"\\)",c:[a.ASM,a.QSM,b,c]}]},a.CNM,c]}}(hljs);hljs.LANGUAGES.cmake=function(a){return{cI:true,k:"add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_minimum_required cmake_policy configure_file create_test_sourcelist define_property else elseif enable_language enable_testing endforeach endfunction endif endmacro endwhile execute_process export find_file find_library find_package find_path find_program fltk_wrap_ui foreach function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property if include include_directories include_external_msproject include_regular_expression install link_directories load_cache load_command macro mark_as_advanced message option output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_link_libraries try_compile try_run unset variable_watch while build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file",c:[{cN:"envvar",b:"\\${",e:"}"},a.HCM,a.QSM,a.NM]}}(hljs);hljs.LANGUAGES.objectivec=function(a){var b={keyword:"int float while private char catch export sizeof typedef const struct for union unsigned long volatile static protected bool mutable if public do return goto void enum else break extern class asm case short default double throw register explicit signed typename try this switch continue wchar_t inline readonly assign property protocol self synchronized end synthesize id optional required implementation nonatomic interface super unichar finally dynamic IBOutlet IBAction selector strong weak readonly",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool UITableView BOOL NSInteger CGFloat NSException NSLog NSMutableString NSMutableArray NSMutableDictionary NSURL NSIndexPath CGSize UITableViewCell UIView UIViewController UINavigationBar UINavigationController UITabBarController UIPopoverController UIPopoverControllerDelegate UIImage NSNumber UISearchBar NSFetchedResultsController NSFetchedResultsChangeType UIScrollView UIScrollViewDelegate UIEdgeInsets UIColor UIFont UIApplication NSNotFound NSNotificationCenter NSNotification UILocalNotification NSBundle NSFileManager NSTimeInterval NSDate NSCalendar NSUserDefaults UIWindow NSRange NSArray NSError NSURLRequest NSURLConnection class UIInterfaceOrientation MPMoviePlayerController dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"};return{k:b,i:""}]},{cN:"preprocessor",b:"#",e:"$"},{cN:"class",bWK:true,e:"({|$)",k:"interface class protocol implementation",c:[{cN:"id",b:a.UIR}]},{cN:"variable",b:"\\."+a.UIR}]}}(hljs);hljs.LANGUAGES.coffeescript=function(c){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off ",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf"};var a="[A-Za-z$_][0-9A-Za-z$_]*";var e={cN:"title",b:a};var d={cN:"subst",b:"#\\{",e:"}",k:b,c:[c.BNM,c.CNM]};return{k:b,c:[c.BNM,c.CNM,c.ASM,{cN:"string",b:'"""',e:'"""',c:[c.BE,d]},{cN:"string",b:'"',e:'"',c:[c.BE,d],r:0},{cN:"comment",b:"###",e:"###"},c.HCM,{cN:"regexp",b:"///",e:"///",c:[c.HCM]},{cN:"regexp",b:"//[gim]*"},{cN:"regexp",b:"/\\S(\\\\.|[^\\n])*/[gim]*"},{b:"`",e:"`",eB:true,eE:true,sL:"javascript"},{cN:"function",b:a+"\\s*=\\s*(\\(.+\\))?\\s*[-=]>",rB:true,c:[e,{cN:"params",b:"\\(",e:"\\)"}]},{cN:"class",bWK:true,k:"class",e:"$",i:":",c:[{bWK:true,k:"extends",eW:true,i:":",c:[e]},e]},{cN:"property",b:"@"+a}]}}(hljs);hljs.LANGUAGES["erlang-repl"]=function(a){return{k:{special_functions:"spawn spawn_link self",reserved:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},c:[{cN:"prompt",b:"^[0-9]+> ",r:10},{cN:"comment",b:"%",e:"$"},{cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0},a.ASM,a.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);hljs.LANGUAGES.json=function(a){var e={literal:"true false null"};var d=[a.QSM,a.CNM];var c={cN:"value",e:",",eW:true,eE:true,c:d,k:e};var b={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:true,eE:true,c:[a.BE],i:"\\n",starts:c}],i:"\\S"};var f={b:"\\[",e:"\\]",c:[a.inherit(c,{cN:null})],i:"\\S"};d.splice(d.length,0,b,f);return{c:d,k:e,i:"\\S"}}(hljs);hljs.LANGUAGES.django=function(c){function e(h,g){return(g==undefined||(!h.cN&&g.cN=="tag")||h.cN=="value")}function f(l,k){var g={};for(var j in l){if(j!="contains"){g[j]=l[j]}var m=[];for(var h=0;l.c&&h",k:b,r:10,c:["self"]}]}}(hljs);hljs.LANGUAGES.matlab=function(a){var b=[a.CNM,{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}],r:0}];return{k:{keyword:"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson"},i:'(//|"|#|/\\*|\\s+/\\w+)',c:[{cN:"function",bWK:true,e:"$",k:"function",c:[{cN:"title",b:a.UIR},{cN:"params",b:"\\(",e:"\\)"},{cN:"params",b:"\\[",e:"\\]"}]},{cN:"transposed_variable",b:"[a-zA-Z_][a-zA-Z_0-9]*('+[\\.']*|[\\.']+)",e:""},{cN:"matrix",b:"\\[",e:"\\]'*[\\.']*",c:b},{cN:"cell",b:"\\{",e:"\\}'*[\\.']*",c:b},{cN:"comment",b:"\\%",e:"$"}].concat(b)}}(hljs);hljs.LANGUAGES.clojure=function(l){var e={built_in:"def cond apply if-not if-let if not not= = < < > <= <= >= == + / * - rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit defmacro defn defn- macroexpand macroexpand-1 for doseq dosync dotimes and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import intern refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! import use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if throw printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time ns assert re-find re-groups rand-int rand mod locking assert-valid-fdecl alias namespace resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! memfn to-array future future-call into-array aset gen-class reduce merge map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"};var f="[a-zA-Z_0-9\\!\\.\\?\\-\\+\\*\\/\\<\\=\\>\\&\\#\\$';]+";var a="[\\s:\\(\\{]+\\d+(\\.\\d+)?";var d={cN:"number",b:a,r:0};var j={cN:"string",b:'"',e:'"',c:[l.BE],r:0};var o={cN:"comment",b:";",e:"$",r:0};var n={cN:"collection",b:"[\\[\\{]",e:"[\\]\\}]"};var c={cN:"comment",b:"\\^"+f};var b={cN:"comment",b:"\\^\\{",e:"\\}"};var h={cN:"attribute",b:"[:]"+f};var m={cN:"list",b:"\\(",e:"\\)",r:0};var g={eW:true,eE:true,k:{literal:"true false nil"},r:0};var i={k:e,l:f,cN:"title",b:f,starts:g};m.c=[{cN:"comment",b:"comment"},i];g.c=[m,j,c,b,o,h,n,d];n.c=[m,j,c,o,h,n,d];return{i:"\\S",c:[o,m]}}(hljs);hljs.LANGUAGES.go=function(a){var b={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer",constant:"true false iota nil",typename:"bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{k:b,i:" -*/ - -pre code -{ - display: block; padding: 0.5em; - background: #222; -} - -pre .profile .header *, -pre .ini .title, -pre .nginx .title -{ - color: #fff; -} - -pre .comment, -pre .javadoc, -pre .preprocessor, -pre .preprocessor .title, -pre .shebang, -pre .profile .summary, -pre .diff, -pre .pi, -pre .doctype, -pre .tag, -pre .template_comment, -pre .css .rules, -pre .tex .special -{ - color: #444; -} - -pre .string, -pre .symbol, -pre .diff .change, -pre .regexp, -pre .xml .attribute, -pre .smalltalk .char, -pre .xml .value, -pre .ini .value, -pre .clojure .attribute -{ - color: #ffcc33; -} - -pre .number, -pre .addition -{ - color: #00cc66; -} - -pre .built_in, -pre .literal, -pre .vhdl .typename, -pre .go .constant, -pre .go .typename, -pre .ini .keyword, -pre .lua .title, -pre .perl .variable, -pre .php .variable, -pre .mel .variable, -pre .django .variable, -pre .css .funtion, -pre .smalltalk .method, -pre .hexcolor, -pre .important, -pre .flow, -pre .inheritance, -pre .parser3 .variable -{ - color: #32AAEE; -} - -pre .keyword, -pre .tag .title, -pre .css .tag, -pre .css .class, -pre .css .id, -pre .css .pseudo, -pre .css .attr_selector, -pre .lisp .title, -pre .clojure .built_in, -pre .winutils, -pre .tex .command, -pre .request, -pre .status -{ - color: #6644aa; -} - -pre .title, -pre .ruby .constant, -pre .vala .constant, -pre .parent, -pre .deletion, -pre .template_tag, -pre .css .keyword, -pre .objectivec .class .id, -pre .smalltalk .class, -pre .lisp .keyword, -pre .apache .tag, -pre .nginx .variable, -pre .envvar, -pre .bash .variable, -pre .go .built_in, -pre .vbscript .built_in, -pre .lua .built_in, -pre .rsl .built_in, -pre .tail, -pre .avrasm .label, -pre .tex .formula, -pre .tex .formula * -{ - color: #bb1166; -} - -pre .yardoctag, -pre .phpdoc, -pre .profile .header, -pre .ini .title, -pre .apache .tag, -pre .parser3 .title -{ - font-weight: bold; -} - -pre .coffeescript .javascript, -pre .javascript .xml, -pre .tex .formula, -pre .xml .javascript, -pre .xml .vbscript, -pre .xml .css, -pre .xml .cdata -{ - opacity: 0.6; -} - -pre code, -pre .javascript, -pre .css, -pre .xml, -pre .subst, -pre .diff .chunk, -pre .css .value, -pre .css .attribute, -pre .lisp .string, -pre .lisp .number, -pre .tail .params, -pre .container, -pre .haskell *, -pre .erlang *, -pre .erlang_repl * -{ - color: #aaa; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/ascetic.css b/Codebox/client/compatibility/highlight.js/styles/ascetic.css deleted file mode 100644 index 63349b7..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/ascetic.css +++ /dev/null @@ -1,50 +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 .ini .title, -pre .lisp .title, -pre .clojure .title, -pre .http .title, -pre .nginx .title, -pre .css .tag, -pre .winutils, -pre .flow, -pre .apache .tag, -pre .tex .command, -pre .request, -pre .status { - font-weight: bold; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/brown_paper.css b/Codebox/client/compatibility/highlight.js/styles/brown_paper.css deleted file mode 100644 index 23476da..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/brown_paper.css +++ /dev/null @@ -1,104 +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 .clojure .built_in, -pre .nginx .title, -pre .tex .special, -pre .request, -pre .status { - color:#005599; - font-weight:bold; -} - -pre code, -pre .subst, -pre .tag .keyword { - color: #363C69; -} - -pre .string, -pre .title, -pre .haskell .type, -pre .tag .value, -pre .css .rules .value, -pre .preprocessor, -pre .ruby .symbol, -pre .ruby .symbol .string, -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 .title, -pre .haskell .type, -pre .vbscript .built_in, -pre .sql .aggregate, -pre .rsl .built_in, -pre .smalltalk .class, -pre .diff .header, -pre .chunk, -pre .winutils, -pre .bash .variable, -pre .apache .tag, -pre .tex .command { - font-weight: bold; -} - -pre .coffeescript .javascript, -pre .javascript .xml, -pre .tex .formula, -pre .xml .javascript, -pre .xml .vbscript, -pre .xml .css, -pre .xml .cdata { - opacity: 0.8; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/brown_papersq.png b/Codebox/client/compatibility/highlight.js/styles/brown_papersq.png deleted file mode 100644 index 3813903dbf9fa7b1fb5bd11d9534c06667d9056f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18198 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
G3S-EN>9CM!{YB*|;6wg-K3V?)eR((z#1 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 diff --git a/Codebox/client/compatibility/highlight.js/styles/dark.css b/Codebox/client/compatibility/highlight.js/styles/dark.css deleted file mode 100644 index 102a389..0000000 --- a/Codebox/client/compatibility/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 .clojure .built_in, -pre .nginx .title, -pre .tex .special { - color: white; -} - -pre code, -pre .subst { - color: #DDD; -} - -pre .string, -pre .title, -pre .haskell .type, -pre .ini .title, -pre .tag .value, -pre .css .rules .value, -pre .preprocessor, -pre .ruby .symbol, -pre .ruby .symbol .string, -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 .prompt { - 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 .title, -pre .css .id, -pre .phpdoc, -pre .haskell .type, -pre .vbscript .built_in, -pre .sql .aggregate, -pre .rsl .built_in, -pre .smalltalk .class, -pre .diff .header, -pre .chunk, -pre .winutils, -pre .bash .variable, -pre .apache .tag, -pre .tex .special, -pre .request, -pre .status { - font-weight: bold; -} - -pre .coffeescript .javascript, -pre .javascript .xml, -pre .tex .formula, -pre .xml .javascript, -pre .xml .vbscript, -pre .xml .css, -pre .xml .cdata { - opacity: 0.5; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/default.css b/Codebox/client/compatibility/highlight.js/styles/default.css deleted file mode 100644 index e417fc1..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/default.css +++ /dev/null @@ -1,135 +0,0 @@ -/* - -Original style from softwaremaniacs.org (c) Ivan Sagalaev - -*/ - -pre code { - display: block; padding: 0.5em; - background: #F0F0F0; -} - -pre code, -pre .subst, -pre .tag .title, -pre .lisp .title, -pre .clojure .built_in, -pre .nginx .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 .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, -pre .markdown .header { - color: #800; -} - -pre .comment, -pre .annotation, -pre .template_comment, -pre .diff .header, -pre .chunk, -pre .markdown .blockquote { - color: #888; -} - -pre .number, -pre .date, -pre .regexp, -pre .literal, -pre .smalltalk .symbol, -pre .smalltalk .char, -pre .go .constant, -pre .change, -pre .markdown .bullet, -pre .markdown .link_url { - 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 .prompt, -pre .markdown .link_label, -pre .vhdl .attribute, -pre .clojure .attribute, -pre .coffeescript .property { - color: #88F -} - -pre .keyword, -pre .id, -pre .phpdoc, -pre .title, -pre .built_in, -pre .aggregate, -pre .css .tag, -pre .javadoctag, -pre .phpdoc, -pre .yardoctag, -pre .smalltalk .class, -pre .winutils, -pre .bash .variable, -pre .apache .tag, -pre .go .typename, -pre .tex .command, -pre .markdown .strong, -pre .request, -pre .status { - font-weight: bold; -} - -pre .markdown .emphasis { - font-style: italic; -} - -pre .nginx .built_in { - font-weight: normal; -} - -pre .coffeescript .javascript, -pre .javascript .xml, -pre .tex .formula, -pre .xml .javascript, -pre .xml .vbscript, -pre .xml .css, -pre .xml .cdata { - opacity: 0.5; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/far.css b/Codebox/client/compatibility/highlight.js/styles/far.css deleted file mode 100644 index 54859ca..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/far.css +++ /dev/null @@ -1,111 +0,0 @@ -/* - -FAR Style (c) MajestiC - -*/ - -pre code { - display: block; padding: 0.5em; - background: #000080; -} - -pre code, -pre .subst { - color: #0FF; -} - -pre .string, -pre .ruby .string, -pre .haskell .type, -pre .tag .value, -pre .css .rules .value, -pre .css .rules .value .number, -pre .preprocessor, -pre .ruby .symbol, -pre .ruby .symbol .string, -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, -pre .clojure .title { - color: #FF0; -} - -pre .keyword, -pre .css .id, -pre .title, -pre .haskell .type, -pre .vbscript .built_in, -pre .sql .aggregate, -pre .rsl .built_in, -pre .smalltalk .class, -pre .xml .tag .title, -pre .winutils, -pre .flow, -pre .change, -pre .envvar, -pre .bash .variable, -pre .tex .special, -pre .clojure .built_in { - 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, -pre .clojure .attribute { - 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 .prompt { - color: #008080; -} - -pre .keyword, -pre .css .id, -pre .title, -pre .haskell .type, -pre .vbscript .built_in, -pre .sql .aggregate, -pre .rsl .built_in, -pre .smalltalk .class, -pre .winutils, -pre .flow, -pre .apache .tag, -pre .nginx .built_in, -pre .tex .command, -pre .tex .special, -pre .request, -pre .status { - font-weight: bold; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/github.css b/Codebox/client/compatibility/highlight.js/styles/github.css deleted file mode 100644 index 89b02a6..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/github.css +++ /dev/null @@ -1,127 +0,0 @@ -/* - -github.com style (c) Vasily Polovnyov - -*/ - -pre code { - display: block; padding: 0.5em; - color: #333; - 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 .nginx .title, -pre .subst, -pre .request, -pre .status { - color: #333; - font-weight: bold -} - -pre .number, -pre .hexcolor, -pre .ruby .constant { - color: #099; -} - -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 .clojure .title, -pre .subst { - font-weight: normal -} - -pre .class .title, -pre .haskell .type, -pre .vhdl .literal, -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 .lisp .body { - color: #008080 -} - -pre .regexp { - color: #009926 -} - -pre .class { - color: #458; - font-weight: bold -} - -pre .symbol, -pre .ruby .symbol .string, -pre .lisp .keyword, -pre .tex .special, -pre .prompt { - color: #990073 -} - -pre .built_in, -pre .lisp .title, -pre .clojure .built_in { - 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 -} diff --git a/Codebox/client/compatibility/highlight.js/styles/googlecode.css b/Codebox/client/compatibility/highlight.js/styles/googlecode.css deleted file mode 100644 index a7b7592..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/googlecode.css +++ /dev/null @@ -1,144 +0,0 @@ -/* - -Google Code style (c) Aahan Krish - -*/ - -pre code { - display: block; padding: 0.5em; - background: white; color: black; -} - -pre .comment, -pre .template_comment, -pre .javadoc, -pre .comment * { - color: #800; -} - -pre .keyword, -pre .method, -pre .list .title, -pre .clojure .built_in, -pre .nginx .title, -pre .tag .title, -pre .setting .value, -pre .winutils, -pre .tex .command, -pre .http .title, -pre .request, -pre .status { - color: #008; -} - -pre .envvar, -pre .tex .special { - color: #660; -} - -pre .string, -pre .tag .value, -pre .cdata, -pre .filter .argument, -pre .attr_selector, -pre .apache .cbracket, -pre .date, -pre .regexp { - color: #080; -} - -pre .sub .identifier, -pre .pi, -pre .tag, -pre .tag .keyword, -pre .decorator, -pre .ini .title, -pre .shebang, -pre .prompt, -pre .hexcolor, -pre .rules .value, -pre .css .value .number, -pre .literal, -pre .symbol, -pre .ruby .symbol .string, -pre .number, -pre .css .function, -pre .clojure .attribute { - color: #066; -} - -pre .class .title, -pre .haskell .type, -pre .smalltalk .class, -pre .javadoctag, -pre .yardoctag, -pre .phpdoc, -pre .typename, -pre .tag .attribute, -pre .doctype, -pre .class .id, -pre .built_in, -pre .setting, -pre .params, -pre .variable, -pre .clojure .title { - color: #606; -} - -pre .css .tag, -pre .rules .property, -pre .pseudo, -pre .subst { - color: #000; -} - -pre .css .class, pre .css .id { - color: #9B703F; -} - -pre .value .important { - color: #ff7700; - font-weight: bold; -} - -pre .rules .keyword { - color: #C5AF75; -} - -pre .annotation, -pre .apache .sqbracket, -pre .nginx .built_in { - color: #9B859D; -} - -pre .preprocessor, -pre .preprocessor * { - color: #444; -} - -pre .tex .formula { - background-color: #EEE; - font-style: italic; -} - -pre .diff .header, -pre .chunk { - color: #808080; - font-weight: bold; -} - -pre .diff .change { - background-color: #BCCFF9; -} - -pre .addition { - background-color: #BAEEBA; -} - -pre .deletion { - background-color: #FFC8BD; -} - -pre .comment .yardoctag { - font-weight: bold; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/idea.css b/Codebox/client/compatibility/highlight.js/styles/idea.css deleted file mode 100644 index 94515c2..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/idea.css +++ /dev/null @@ -1,121 +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 .prompt, -pre .http .title { - 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 .clojure .title, -pre .nginx .title, -pre .tex .command, -pre .request, -pre .status { - 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 .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/Codebox/client/compatibility/highlight.js/styles/ir_black.css b/Codebox/client/compatibility/highlight.js/styles/ir_black.css deleted file mode 100644 index c4c09b5..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/ir_black.css +++ /dev/null @@ -1,104 +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 .tex .command, -pre .request, -pre .status, -pre .clojure .attribute { - color: #96CBFE; -} - -pre .sub .keyword, -pre .method, -pre .list .title, -pre .nginx .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 .title, -pre .sub .identifier, -pre .pi, -pre .decorator, -pre .tex .special, -pre .haskell .type, -pre .constant, -pre .smalltalk .class, -pre .javadoctag, -pre .yardoctag, -pre .phpdoc, -pre .nginx .built_in { - color: #FFFFB6; -} - -pre .symbol, -pre .ruby .symbol .string, -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 .coffeescript .javascript, -pre .javascript .xml, -pre .tex .formula, -pre .xml .javascript, -pre .xml .vbscript, -pre .xml .css, -pre .xml .cdata { - opacity: 0.7; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/magula.css b/Codebox/client/compatibility/highlight.js/styles/magula.css deleted file mode 100644 index 8766344..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/magula.css +++ /dev/null @@ -1,121 +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 .subst, -pre .lisp .title, -pre .clojure .built_in { - 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 .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 .prompt, -pre .clojure .attribute { - 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 .tex .command, -pre .request, -pre .status { - font-weight: bold; - color: navy; -} - -pre .nginx .built_in { - font-weight: normal; -} - -pre .coffeescript .javascript, -pre .javascript .xml, -pre .tex .formula, -pre .xml .javascript, -pre .xml .vbscript, -pre .xml .css, -pre .xml .cdata { - opacity: 0.5; -} - -/* --- */ -pre .apache .tag { - font-weight: bold; - color: blue; -} - diff --git a/Codebox/client/compatibility/highlight.js/styles/monokai.css b/Codebox/client/compatibility/highlight.js/styles/monokai.css deleted file mode 100644 index 79c4f6f..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/monokai.css +++ /dev/null @@ -1,114 +0,0 @@ -/* -Monokai style - ported by Luigi Maselli - http://grigio.org -*/ - -pre code { - display: block; padding: 0.5em; - background: #272822; -} - -pre .tag, -pre .tag .title, -pre .keyword, -pre .literal, -pre .change, -pre .winutils, -pre .flow, -pre .lisp .title, -pre .clojure .built_in, -pre .nginx .title, -pre .tex .special { - color: #F92672; -} - -pre code { - color: #DDD; -} - -pre code .constant { - color: #66D9EF; -} - -pre .class .title { - color: white; -} - -pre .attribute, -pre .symbol, -pre .symbol .string, -pre .value, -pre .regexp { - color: #BF79DB; -} - -pre .tag .value, -pre .string, -pre .subst, -pre .title, -pre .haskell .type, -pre .preprocessor, -pre .ruby .class .parent, -pre .built_in, -pre .sql .aggregate, -pre .django .template_tag, -pre .django .variable, -pre .smalltalk .class, -pre .javadoc, -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 .prompt { - color: #A6E22E; -} - -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: #75715E; -} - -pre .keyword, -pre .literal, -pre .css .id, -pre .phpdoc, -pre .title, -pre .haskell .type, -pre .vbscript .built_in, -pre .sql .aggregate, -pre .rsl .built_in, -pre .smalltalk .class, -pre .diff .header, -pre .chunk, -pre .winutils, -pre .bash .variable, -pre .apache .tag, -pre .tex .special, -pre .request, -pre .status { - font-weight: bold; -} - -pre .coffeescript .javascript, -pre .javascript .xml, -pre .tex .formula, -pre .xml .javascript, -pre .xml .vbscript, -pre .xml .css, -pre .xml .cdata { - opacity: 0.5; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/pojoaque.css b/Codebox/client/compatibility/highlight.js/styles/pojoaque.css deleted file mode 100644 index b9d20c2..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/pojoaque.css +++ /dev/null @@ -1,104 +0,0 @@ -/* - -Pojoaque Style by Jason Tate -http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html -Based on Solarized Style from http://ethanschoonover.com/solarized - -*/ - -pre code { - display: block; padding: 0.5em; - color: #DCCF8F; - background: url(./pojoaque.jpg) repeat scroll left top #181914; -} - -pre .comment, -pre .template_comment, -pre .diff .header, -pre .doctype, -pre .lisp .string, -pre .javadoc { - color: #586e75; - font-style: italic; -} - -pre .keyword, -pre .css .rule .keyword, -pre .winutils, -pre .javascript .title, -pre .method, -pre .addition, -pre .css .tag, -pre .clojure .title, -pre .nginx .title { - color: #B64926; -} - -pre .number, -pre .command, -pre .string, -pre .tag .value, -pre .phpdoc, -pre .tex .formula, -pre .regexp, -pre .hexcolor { - color: #468966; -} - -pre .title, -pre .localvars, -pre .function .title, -pre .chunk, -pre .decorator, -pre .built_in, -pre .lisp .title, -pre .clojure .built_in, -pre .identifier, -pre .id { - color: #FFB03B; -} - -pre .attribute, -pre .variable, -pre .lisp .body, -pre .smalltalk .number, -pre .constant, -pre .class .title, -pre .parent, -pre .haskell .type { - color: #b58900; -} - -pre .css .attribute { - color: #b89859; -} - -pre .css .number,pre .css .hexcolor{ - color: #DCCF8F; -} - -pre .css .class { - color: #d3a60c; -} - -pre .preprocessor, -pre .pi, -pre .shebang, -pre .symbol, -pre .symbol .string, -pre .diff .change, -pre .special, -pre .attr_selector, -pre .important, -pre .subst, -pre .cdata { - color: #cb4b16; -} - -pre .deletion { - color: #dc322f; -} - -pre .tex .formula { - background: #073642; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/pojoaque.jpg b/Codebox/client/compatibility/highlight.js/styles/pojoaque.jpg deleted file mode 100644 index 9c07d4ab40b6d77e90ff69f0012bcd33b21d31c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1186 zcmZXSe^8Tk9LK-kXFs3)f@f?)Cddzw3v4wdZyXQ;4x3=;Ja*N#%n9ik!UGmt9H3k0 zJST|5jOc(ID$FQt3C?jQZBws#kXolO1lg9Pba9BB=Q+UEBX!nY@6Uhl&+ofe$Q$y5 z@ci`~)&qzDP(lOiQ5p?p z(`j^e7!yUAVHk%K#^GQXn?s0=VLYCI$HRoe=xCuZ>A6A3@sxEP#XqNFpIb=0)KQ#Nss_tD17;m4@$JKL;LR|K|QF3f%!L5+s(9Ft8SQ zG|~pGpEGFW5Z|OA)-O@mNHy-g@7m8JTf?kl@vUKBGmw)Y*9sDRNr3PN!IKefWaydTe1D zjzpyzPnD3}hBNaS4aFX7=0&~I*Hu7#4au@qVBglH#-m;QFOx_`=j z{EqRY#Eh*yoWP^pa4H>8GH{rO?!_+xwL0(k4yL^D%^nBkJ*UI;Lx;ped8d|f*S_s@ z3~ilcRC(&NT#9Gn#UD;o^EYSMXDMf%XcUi3>;WXXD-QX3P9wMyP7eA&RS{)h5{??W3^Rq=goFJ>?lA~J- zdYe>!xvYLW*fPT0RK7wsJRg^?x#W1*GP9_f`6t>QD_X>0d!owyN>nO2?U5}|3?hX_UZYT@^>S!9eB~bZ9U`q;`U)@L670o1g z`Hd}h<_WRvUc|n*%v4Hbb-4tJD40iyF^q%g*&!6>hkYDvi-{Uc4yTM zzcthN4Z{ka!+F_KzYV#yWi;c^X^q6g`pD8cp?$Kl?hCz0s^a|mH%P!CF%*<6k^~i` zT5Mi-t5-frUcHkk^Qh}+N)Kz1&Bi95`oNc|quI>tUi~BY>xcF9(%tv2i{G6kE9*q~ qCoAGl20`)w0rdgp9H%Q=M5|p`hOhFz6$I%Y&ncY8>c?7PXyh+SL&XXJ diff --git a/Codebox/client/compatibility/highlight.js/styles/rainbow.css b/Codebox/client/compatibility/highlight.js/styles/rainbow.css deleted file mode 100644 index e8e098f..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/rainbow.css +++ /dev/null @@ -1,114 +0,0 @@ -/* - -Style with support for rainbow parens - -*/ - -pre ::-moz-selection{ background: #FF5E99; color:#fff; text-shadow: none; } -pre ::selection { background:#FF5E99; color:#fff; text-shadow: none; } - -pre code { - display: block; padding: 0.5em; - background: #474949; color: #D1D9E1; -} - - -pre .body, -pre .collection { - color: #D1D9E1; -} - -pre .comment, -pre .template_comment, -pre .diff .header, -pre .doctype, -pre .lisp .string, -pre .javadoc { - color: #969896; - font-style: italic; -} - -pre .keyword, -pre .clojure .attribute, -pre .winutils, -pre .javascript .title, -pre .addition, -pre .css .tag { - color: #cc99cc; -} - -pre .number { color: #f99157; } - -pre .command, -pre .string, -pre .tag .value, -pre .phpdoc, -pre .tex .formula, -pre .regexp, -pre .hexcolor { - color: #8abeb7; -} - -pre .title, -pre .localvars, -pre .function .title, -pre .chunk, -pre .decorator, -pre .built_in, -pre .lisp .title, -pre .identifier -{ - color: #b5bd68; -} - -pre .class .keyword -{ - color: #f2777a; -} - -pre .variable, -pre .lisp .body, -pre .smalltalk .number, -pre .constant, -pre .class .title, -pre .parent, -pre .haskell .label, -pre .id, -pre .lisp .title, -pre .clojure .title .built_in { - color: #ffcc66; -} - -pre .tag .title, -pre .rules .property, -pre .django .tag .keyword, -pre .clojure .title .built_in { - font-weight: bold; -} - -pre .attribute, -pre .clojure .title { - color: #81a2be; -} - -pre .preprocessor, -pre .pi, -pre .shebang, -pre .symbol, -pre .symbol .string, -pre .diff .change, -pre .special, -pre .attr_selector, -pre .important, -pre .subst, -pre .cdata { - color: #f99157; -} - -pre .deletion { - color: #dc322f; -} - -pre .tex .formula { - background: #eee8d5; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/school_book.css b/Codebox/client/compatibility/highlight.js/styles/school_book.css deleted file mode 100644 index dd07ed2..0000000 --- a/Codebox/client/compatibility/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 .clojure .built_in, -pre .nginx .title, -pre .tex .special { - color:#005599; - font-weight:bold; -} - -pre code, -pre .subst, -pre .tag .keyword { - color: #3E5915; -} - -pre .string, -pre .title, -pre .haskell .type, -pre .tag .value, -pre .css .rules .value, -pre .preprocessor, -pre .ruby .symbol, -pre .ruby .symbol .string, -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 .title, -pre .haskell .type, -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 .apache .tag, -pre .tex .command, -pre .request, -pre .status { - font-weight: bold; -} - -pre .coffeescript .javascript, -pre .javascript .xml, -pre .tex .formula, -pre .xml .javascript, -pre .xml .vbscript, -pre .xml .css, -pre .xml .cdata { - opacity: 0.5; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/school_book.png b/Codebox/client/compatibility/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/Codebox/client/compatibility/highlight.js/styles/solarized_dark.css b/Codebox/client/compatibility/highlight.js/styles/solarized_dark.css deleted file mode 100644 index 8d3a238..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/solarized_dark.css +++ /dev/null @@ -1,88 +0,0 @@ -/* - -Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull - -*/ - -pre code { - display: block; padding: 0.5em; - background: #002b36; color: #839496; -} - -pre .comment, -pre .template_comment, -pre .diff .header, -pre .doctype, -pre .pi, -pre .lisp .string, -pre .javadoc { - color: #586e75; - font-style: italic; -} - -pre .keyword, -pre .winutils, -pre .method, -pre .addition, -pre .css .tag, -pre .request, -pre .status, -pre .nginx .title { - color: #859900; -} - -pre .number, -pre .command, -pre .string, -pre .tag .value, -pre .phpdoc, -pre .tex .formula, -pre .regexp, -pre .hexcolor { - color: #2aa198; -} - -pre .title, -pre .localvars, -pre .chunk, -pre .decorator, -pre .built_in, -pre .identifier, -pre .vhdl .literal, -pre .id { - color: #268bd2; -} - -pre .attribute, -pre .variable, -pre .lisp .body, -pre .smalltalk .number, -pre .constant, -pre .class .title, -pre .parent, -pre .haskell .type { - color: #b58900; -} - -pre .preprocessor, -pre .preprocessor .keyword, -pre .shebang, -pre .symbol, -pre .symbol .string, -pre .diff .change, -pre .special, -pre .attr_selector, -pre .important, -pre .subst, -pre .cdata, -pre .clojure .title { - color: #cb4b16; -} - -pre .deletion { - color: #dc322f; -} - -pre .tex .formula { - background: #073642; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/solarized_light.css b/Codebox/client/compatibility/highlight.js/styles/solarized_light.css deleted file mode 100644 index a92ecac..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/solarized_light.css +++ /dev/null @@ -1,88 +0,0 @@ -/* - -Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull - -*/ - -pre code { - display: block; padding: 0.5em; - background: #fdf6e3; color: #657b83; -} - -pre .comment, -pre .template_comment, -pre .diff .header, -pre .doctype, -pre .pi, -pre .lisp .string, -pre .javadoc { - color: #93a1a1; - font-style: italic; -} - -pre .keyword, -pre .winutils, -pre .method, -pre .addition, -pre .css .tag, -pre .request, -pre .status, -pre .nginx .title { - color: #859900; -} - -pre .number, -pre .command, -pre .string, -pre .tag .value, -pre .phpdoc, -pre .tex .formula, -pre .regexp, -pre .hexcolor { - color: #2aa198; -} - -pre .title, -pre .localvars, -pre .chunk, -pre .decorator, -pre .built_in, -pre .identifier, -pre .vhdl .literal, -pre .id { - color: #268bd2; -} - -pre .attribute, -pre .variable, -pre .lisp .body, -pre .smalltalk .number, -pre .constant, -pre .class .title, -pre .parent, -pre .haskell .type { - color: #b58900; -} - -pre .preprocessor, -pre .preprocessor .keyword, -pre .shebang, -pre .symbol, -pre .symbol .string, -pre .diff .change, -pre .special, -pre .attr_selector, -pre .important, -pre .subst, -pre .cdata, -pre .clojure .title { - color: #cb4b16; -} - -pre .deletion { - color: #dc322f; -} - -pre .tex .formula { - background: #eee8d5; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/sunburst.css b/Codebox/client/compatibility/highlight.js/styles/sunburst.css deleted file mode 100644 index 28c4ffc..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/sunburst.css +++ /dev/null @@ -1,158 +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, -pre .request, -pre .status, -pre .nginx .title { - 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 .title, -pre .sub .identifier, -pre .pi, -pre .tag, -pre .tag .keyword, -pre .decorator, -pre .shebang, -pre .prompt { - color: #89BDFF; -} - -pre .class .title, -pre .haskell .type, -pre .smalltalk .class, -pre .javadoctag, -pre .yardoctag, -pre .phpdoc { - text-decoration: underline; -} - -pre .symbol, -pre .ruby .symbol .string, -pre .number { - color: #3387CC; -} - -pre .params, -pre .variable, -pre .clojure .attribute { - 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; -} - -pre .coffeescript .javascript, -pre .javascript .xml, -pre .tex .formula, -pre .xml .javascript, -pre .xml .vbscript, -pre .xml .css, -pre .xml .cdata { - opacity: 0.5; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/tomorrow-night-blue.css b/Codebox/client/compatibility/highlight.js/styles/tomorrow-night-blue.css deleted file mode 100644 index 7d2700c..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/tomorrow-night-blue.css +++ /dev/null @@ -1,52 +0,0 @@ -/* Tomorrow Night Blue Theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ -/* Original theme - https://github.com/chriskempson/tomorrow-theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ -.tomorrow-comment, pre .comment, pre .title { - color: #7285b7; -} - -.tomorrow-red, pre .variable, pre .attribute, pre .tag, pre .regexp, pre .ruby .constant, pre .xml .tag .title, pre .xml .pi, pre .xml .doctype, pre .html .doctype, pre .css .id, pre .css .class, pre .css .pseudo { - color: #ff9da4; -} - -.tomorrow-orange, pre .number, pre .preprocessor, pre .built_in, pre .literal, pre .params, pre .constant { - color: #ffc58f; -} - -.tomorrow-yellow, pre .class, pre .ruby .class .title, pre .css .rules .attribute { - color: #ffeead; -} - -.tomorrow-green, pre .string, pre .value, pre .inheritance, pre .header, pre .ruby .symbol, pre .xml .cdata { - color: #d1f1a9; -} - -.tomorrow-aqua, pre .css .hexcolor { - color: #99ffff; -} - -.tomorrow-blue, pre .function, pre .python .decorator, pre .python .title, pre .ruby .function .title, pre .ruby .title .keyword, pre .perl .sub, pre .javascript .title, pre .coffeescript .title { - color: #bbdaff; -} - -.tomorrow-purple, pre .keyword, pre .javascript .function { - color: #ebbbff; -} - -pre code { - display: block; - background: #002451; - color: white; - padding: 0.5em; -} - -pre .coffeescript .javascript, -pre .javascript .xml, -pre .tex .formula, -pre .xml .javascript, -pre .xml .vbscript, -pre .xml .css, -pre .xml .cdata { - opacity: 0.5; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/tomorrow-night-bright.css b/Codebox/client/compatibility/highlight.js/styles/tomorrow-night-bright.css deleted file mode 100644 index 6dd88e1..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/tomorrow-night-bright.css +++ /dev/null @@ -1,51 +0,0 @@ -/* Tomorrow Night Bright Theme */ -/* Original theme - https://github.com/chriskempson/tomorrow-theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ -.tomorrow-comment, pre .comment, pre .title { - color: #969896; -} - -.tomorrow-red, pre .variable, pre .attribute, pre .tag, pre .regexp, pre .ruby .constant, pre .xml .tag .title, pre .xml .pi, pre .xml .doctype, pre .html .doctype, pre .css .id, pre .css .class, pre .css .pseudo { - color: #d54e53; -} - -.tomorrow-orange, pre .number, pre .preprocessor, pre .built_in, pre .literal, pre .params, pre .constant { - color: #e78c45; -} - -.tomorrow-yellow, pre .class, pre .ruby .class .title, pre .css .rules .attribute { - color: #e7c547; -} - -.tomorrow-green, pre .string, pre .value, pre .inheritance, pre .header, pre .ruby .symbol, pre .xml .cdata { - color: #b9ca4a; -} - -.tomorrow-aqua, pre .css .hexcolor { - color: #70c0b1; -} - -.tomorrow-blue, pre .function, pre .python .decorator, pre .python .title, pre .ruby .function .title, pre .ruby .title .keyword, pre .perl .sub, pre .javascript .title, pre .coffeescript .title { - color: #7aa6da; -} - -.tomorrow-purple, pre .keyword, pre .javascript .function { - color: #c397d8; -} - -pre code { - display: block; - background: black; - color: #eaeaea; - padding: 0.5em; -} - -pre .coffeescript .javascript, -pre .javascript .xml, -pre .tex .formula, -pre .xml .javascript, -pre .xml .vbscript, -pre .xml .css, -pre .xml .cdata { - opacity: 0.5; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/tomorrow-night-eighties.css b/Codebox/client/compatibility/highlight.js/styles/tomorrow-night-eighties.css deleted file mode 100644 index 48011eb..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/tomorrow-night-eighties.css +++ /dev/null @@ -1,51 +0,0 @@ -/* Tomorrow Night Eighties Theme */ -/* Original theme - https://github.com/chriskempson/tomorrow-theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ -.tomorrow-comment, pre .comment, pre .title { - color: #999999; -} - -.tomorrow-red, pre .variable, pre .attribute, pre .tag, pre .regexp, pre .ruby .constant, pre .xml .tag .title, pre .xml .pi, pre .xml .doctype, pre .html .doctype, pre .css .id, pre .css .class, pre .css .pseudo { - color: #f2777a; -} - -.tomorrow-orange, pre .number, pre .preprocessor, pre .built_in, pre .literal, pre .params, pre .constant { - color: #f99157; -} - -.tomorrow-yellow, pre .class, pre .ruby .class .title, pre .css .rules .attribute { - color: #ffcc66; -} - -.tomorrow-green, pre .string, pre .value, pre .inheritance, pre .header, pre .ruby .symbol, pre .xml .cdata { - color: #99cc99; -} - -.tomorrow-aqua, pre .css .hexcolor { - color: #66cccc; -} - -.tomorrow-blue, pre .function, pre .python .decorator, pre .python .title, pre .ruby .function .title, pre .ruby .title .keyword, pre .perl .sub, pre .javascript .title, pre .coffeescript .title { - color: #6699cc; -} - -.tomorrow-purple, pre .keyword, pre .javascript .function { - color: #cc99cc; -} - -pre code { - display: block; - background: #2d2d2d; - color: #cccccc; - padding: 0.5em; -} - -pre .coffeescript .javascript, -pre .javascript .xml, -pre .tex .formula, -pre .xml .javascript, -pre .xml .vbscript, -pre .xml .css, -pre .xml .cdata { - opacity: 0.5; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/tomorrow-night.css b/Codebox/client/compatibility/highlight.js/styles/tomorrow-night.css deleted file mode 100644 index cf2c44d..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/tomorrow-night.css +++ /dev/null @@ -1,52 +0,0 @@ -/* Tomorrow Night Theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ -/* Original theme - https://github.com/chriskempson/tomorrow-theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ -.tomorrow-comment, pre .comment, pre .title { - color: #969896; -} - -.tomorrow-red, pre .variable, pre .attribute, pre .tag, pre .regexp, pre .ruby .constant, pre .xml .tag .title, pre .xml .pi, pre .xml .doctype, pre .html .doctype, pre .css .id, pre .css .class, pre .css .pseudo { - color: #cc6666; -} - -.tomorrow-orange, pre .number, pre .preprocessor, pre .built_in, pre .literal, pre .params, pre .constant { - color: #de935f; -} - -.tomorrow-yellow, pre .class, pre .ruby .class .title, pre .css .rules .attribute { - color: #f0c674; -} - -.tomorrow-green, pre .string, pre .value, pre .inheritance, pre .header, pre .ruby .symbol, pre .xml .cdata { - color: #b5bd68; -} - -.tomorrow-aqua, pre .css .hexcolor { - color: #8abeb7; -} - -.tomorrow-blue, pre .function, pre .python .decorator, pre .python .title, pre .ruby .function .title, pre .ruby .title .keyword, pre .perl .sub, pre .javascript .title, pre .coffeescript .title { - color: #81a2be; -} - -.tomorrow-purple, pre .keyword, pre .javascript .function { - color: #b294bb; -} - -pre code { - display: block; - background: #1d1f21; - color: #c5c8c6; - padding: 0.5em; -} - -pre .coffeescript .javascript, -pre .javascript .xml, -pre .tex .formula, -pre .xml .javascript, -pre .xml .vbscript, -pre .xml .css, -pre .xml .cdata { - opacity: 0.5; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/tomorrow.css b/Codebox/client/compatibility/highlight.js/styles/tomorrow.css deleted file mode 100644 index a2240f2..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/tomorrow.css +++ /dev/null @@ -1,49 +0,0 @@ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ -.tomorrow-comment, pre .comment, pre .title { - color: #8e908c; -} - -.tomorrow-red, pre .variable, pre .attribute, pre .tag, pre .regexp, pre .ruby .constant, pre .xml .tag .title, pre .xml .pi, pre .xml .doctype, pre .html .doctype, pre .css .id, pre .css .class, pre .css .pseudo { - color: #c82829; -} - -.tomorrow-orange, pre .number, pre .preprocessor, pre .built_in, pre .literal, pre .params, pre .constant { - color: #f5871f; -} - -.tomorrow-yellow, pre .class, pre .ruby .class .title, pre .css .rules .attribute { - color: #eab700; -} - -.tomorrow-green, pre .string, pre .value, pre .inheritance, pre .header, pre .ruby .symbol, pre .xml .cdata { - color: #718c00; -} - -.tomorrow-aqua, pre .css .hexcolor { - color: #3e999f; -} - -.tomorrow-blue, pre .function, pre .python .decorator, pre .python .title, pre .ruby .function .title, pre .ruby .title .keyword, pre .perl .sub, pre .javascript .title, pre .coffeescript .title { - color: #4271ae; -} - -.tomorrow-purple, pre .keyword, pre .javascript .function { - color: #8959a8; -} - -pre code { - display: block; - background: white; - color: #4d4d4c; - padding: 0.5em; -} - -pre .coffeescript .javascript, -pre .javascript .xml, -pre .tex .formula, -pre .xml .javascript, -pre .xml .vbscript, -pre .xml .css, -pre .xml .cdata { - opacity: 0.5; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/vs.css b/Codebox/client/compatibility/highlight.js/styles/vs.css deleted file mode 100644 index 503d698..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/vs.css +++ /dev/null @@ -1,86 +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 .built_in, -pre .smalltalk .class, -pre .winutils, -pre .bash .variable, -pre .tex .command, -pre .request, -pre .status, -pre .nginx .title, -pre .xml .tag, -pre .xml .tag .value { - 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 .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 .prompt { - color: rgb(43, 145, 175); -} - -pre .phpdoc, -pre .javadoc, -pre .xmlDocTag { - color: rgb(128, 128, 128); -} - -pre .vhdl .typename { font-weight: bold; } -pre .vhdl .string { color: #666666; } -pre .vhdl .literal { color: rgb(163, 21, 21); } -pre .vhdl .attribute { color: #00B0E8; } - -pre .xml .attribute { color: rgb(255, 0, 0); } diff --git a/Codebox/client/compatibility/highlight.js/styles/xcode.css b/Codebox/client/compatibility/highlight.js/styles/xcode.css deleted file mode 100644 index 04f7bf9..0000000 --- a/Codebox/client/compatibility/highlight.js/styles/xcode.css +++ /dev/null @@ -1,154 +0,0 @@ -/* - -XCode style (c) Angel Garcia - -*/ - -pre code { - display: block; padding: 0.5em; - background: #fff; color: black; -} - -pre .comment, -pre .template_comment, -pre .javadoc, -pre .comment * { - color: rgb(0,106,0); -} - -pre .keyword, -pre .literal, -pre .nginx .title { - color: rgb(170,13,145); -} -pre .method, -pre .list .title, -pre .tag .title, -pre .setting .value, -pre .winutils, -pre .tex .command, -pre .http .title, -pre .request, -pre .status { - color: #008; -} - -pre .envvar, -pre .tex .special { - color: #660; -} - -pre .string { - color: rgb(196,26,22); -} -pre .tag .value, -pre .cdata, -pre .filter .argument, -pre .attr_selector, -pre .apache .cbracket, -pre .date, -pre .regexp { - color: #080; -} - -pre .sub .identifier, -pre .pi, -pre .tag, -pre .tag .keyword, -pre .decorator, -pre .ini .title, -pre .shebang, -pre .prompt, -pre .hexcolor, -pre .rules .value, -pre .css .value .number, -pre .symbol, -pre .symbol .string, -pre .number, -pre .css .function, -pre .clojure .title, -pre .clojure .built_in { - color: rgb(28,0,207); -} - -pre .class .title, -pre .haskell .type, -pre .smalltalk .class, -pre .javadoctag, -pre .yardoctag, -pre .phpdoc, -pre .typename, -pre .tag .attribute, -pre .doctype, -pre .class .id, -pre .built_in, -pre .setting, -pre .params, -pre .clojure .attribute { - color: rgb(92,38,153); -} - -pre .variable { - color: rgb(63,110,116); -} -pre .css .tag, -pre .rules .property, -pre .pseudo, -pre .subst { - color: #000; -} - -pre .css .class, pre .css .id { - color: #9B703F; -} - -pre .value .important { - color: #ff7700; - font-weight: bold; -} - -pre .rules .keyword { - color: #C5AF75; -} - -pre .annotation, -pre .apache .sqbracket, -pre .nginx .built_in { - color: #9B859D; -} - -pre .preprocessor, -pre .preprocessor * { - color: rgb(100,56,32); -} - -pre .tex .formula { - background-color: #EEE; - font-style: italic; -} - -pre .diff .header, -pre .chunk { - color: #808080; - font-weight: bold; -} - -pre .diff .change { - background-color: #BCCFF9; -} - -pre .addition { - background-color: #BAEEBA; -} - -pre .deletion { - background-color: #FFC8BD; -} - -pre .comment .yardoctag { - font-weight: bold; -} - -pre .method .id { - color: #000; -} diff --git a/Codebox/client/compatibility/highlight.js/styles/zenburn.css b/Codebox/client/compatibility/highlight.js/styles/zenburn.css deleted file mode 100644 index 501d6c7..0000000 --- a/Codebox/client/compatibility/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 .css .class, -pre .css .id, -pre .lisp .title, -pre .nginx .title, -pre .request, -pre .status, -pre .clojure .attribute { - 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 .subst { - color: #8F8F8F; -} - -pre .dos .keyword, -pre .python .decorator, -pre .title, -pre .haskell .type, -pre .diff .header, -pre .ruby .class .parent, -pre .apache .tag, -pre .nginx .built_in, -pre .tex .command, -pre .prompt { - color: #efef8f; -} - -pre .dos .winutils, -pre .ruby .symbol, -pre .ruby .symbol .string, -pre .ruby .string { - 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 .coffeescript .javascript, -pre .javascript .xml, -pre .tex .formula, -pre .xml .javascript, -pre .xml .vbscript, -pre .xml .css, -pre .xml .cdata { - opacity: 0.5; -} - diff --git a/Codebox/packages.json b/Codebox/packages.json deleted file mode 100644 index 060a1fa..0000000 --- a/Codebox/packages.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "github": "0.1.8", - "request": "2.27.0" -} \ No newline at end of file diff --git a/Codebox/server/main.js b/Codebox/server/main.js deleted file mode 100644 index 15a1d9e..0000000 --- a/Codebox/server/main.js +++ /dev/null @@ -1,188 +0,0 @@ -request = Meteor.require('request'); - var GithubApi = Meteor.require('github'); - var github = new GithubApi({ - version: "3.0.0" - }); - - - - -Scraper = function(){ - this.storage = []; -} - -Scraper.prototype.scrape = function(url){ - var t = this; - Meteor.sync(function(done){ - request.get(url, function (error, response, body) { - t.storage.push(body); - console.log(body); - done(null, {}); - }) - }); -} - -Scraper.prototype.getStorage = function(){ - console.log('got'); - return this.storage; -} - -Snippet = function(title, description, code, language){ - this.title = title; - this.description = description; - if(typeof(language) != 'undefined'){ - this.description = language + ' ' + description; - } - this.code = code; -} - -Gister = function(user){ - - var gists = Meteor.sync(function(done) { - github.gists.getFromUser({user: user}, function(err, data) { - done(null, data); - }); - }); - - gists = gists.result; - - var snips = []; - console.log('Gists: ' + gists.length); - for(var i = 0; i < gists.length; i++){ - var s = new Scraper(); - var js = []; - for(var j in gists[i].files){ - js.push(j); - } - - s.scrape(gists[i].files[js[0]].raw_url); - - - var t = gists[i].id; - var d = gists[i].description; - var c = s.getStorage(); - console.log('over'); - - c = c.join('\n'); - - snips.push(new Snippet(t, d, c)); - } - - this.getSnips = function(){ - return snips; - } -} - - - - - - - - - -keys = ['java', 'c', 'c++', 'javascript', 'python', 'clojure', 'scala', 'erlang', 'method', 'class', 'function', 'struct', 'def', 'void', 'double', 'float', 'number', 'var', 'int', 'integer']; -nots = ['of', 'the', 'is', 'are', 'to', 'too']; - - - -if (Meteor.isServer) { - - LAST = 0; - i = 0; - scrape = function(url){ - request.get(url, function (error, response, body) { - out = body; - console.log(out); - i++; - LAST = out; - }); - } - - - Meteor.methods({ - analyze: function (query) { - var parts = query.split(' '); - var rs = []; - var db = Snippets.find().fetch(); - for(var i = 0; i < db.length; i++){ - var scr = 0; - - var dbparts = db[i].description.split(' '); - - for(var k = 0; k < keys.length; k++){ - if(parts.indexOf(keys[k]) != -1){ - if(dbparts.indexOf(keys[k]) != -1){ - scr += 7; - } - } - } - for(var k = 0; k < parts.length; k++){ - for(var m = 0; m < dbparts.length; m++){ - if(levenshteinDistance(parts[k], dbparts[m]) <= 1 && nots.indexOf(parts[k]) == -1){ - scr += 2; - } - } - } - rs.push({ - id: db[i].cbid, - score: scr - }); - } - rs.sort(function(a, b){return b.score - a.score;}); - a = []; - for(var i = 0; i < rs.length; i++){ - a.push(rs[i].id); - } - return a; - }, - - 'getGists': function getGists(user) { -// var GithubApi = Meteor.require('github'); -// var github = new GithubApi({ -// version: "3.0.0" -// }); -// -// var gists = Meteor.sync(function(done) { -// github.gists.getFromUser({user: user}, function(err, data) { -// done(null, data); -// }); -// }); -// -// return gists.result; - console.log('User: ' + user); - var test = new Gister(user); - return test.getSnips(); - }, - - getLast: function(url){ - scrape(url); - return LAST; - } - }); -} - - -var levenshteinDistance = function(u, v) { - var m = u.length; - var n = v.length; - var D = []; - for(var i = 0; i <= m; i++) { - D.push([]); - for(var j = 0; j <= n; j++) { - D[i][j] = 0; - } - } - for(var i = 1; i <= m; i++) { - for(var j = 1; j <= n; j++) { - if (j == 0) { - D[i][j] = i; - } else if (i == 0) { - D[i][j] = j; - } else { - D[i][j] = [D[i-1][j-1] + (u[i-1] != v[j-1]), D[i][j-1] + 1, D[i-1][j] + 1].sort()[0]; - } - } - } - return D[m][n]; - }; \ No newline at end of file diff --git a/Codebox/smart.lock b/Codebox/smart.lock deleted file mode 100644 index 44a160e..0000000 --- a/Codebox/smart.lock +++ /dev/null @@ -1,27 +0,0 @@ -{ - "meteor": {}, - "dependencies": { - "basePackages": { - "github": {}, - "require": {}, - "npm": {} - }, - "packages": { - "github": { - "git": "https://github.com/ndhoule/meteor-github.git", - "tag": "v0.1.8", - "commit": "7e995c903f287744387856870011abbf8ce8665b" - }, - "require": { - "git": "https://github.com/tomconnors/meteor-require.git", - "tag": "v0.1.0", - "commit": "b9c5a87e9f92019cca882234086b7d32719f67e2" - }, - "npm": { - "git": "https://github.com/arunoda/meteor-npm.git", - "tag": "v0.2.2", - "commit": "ad83acff83385d5ea05997c8bbc2d7493ba4c04e" - } - } - } -} diff --git a/Codebox/.meteor/.gitignore b/app/.meteor/.gitignore similarity index 100% rename from Codebox/.meteor/.gitignore rename to app/.meteor/.gitignore diff --git a/Codebox/.meteor/packages b/app/.meteor/packages similarity index 87% rename from Codebox/.meteor/packages rename to app/.meteor/packages index e5378dc..fffdb6c 100644 --- a/Codebox/.meteor/packages +++ b/app/.meteor/packages @@ -4,10 +4,6 @@ # but you can also edit it by hand. standard-app-packages -autopublish -insecure preserve-inputs -require accounts-github accounts-ui -npm diff --git a/app/.meteor/release b/app/.meteor/release new file mode 100644 index 0000000..b8053bf --- /dev/null +++ b/app/.meteor/release @@ -0,0 +1 @@ +0.6.6.3 diff --git a/app/both/codebox.js b/app/both/codebox.js new file mode 100644 index 0000000..f5f46e3 --- /dev/null +++ b/app/both/codebox.js @@ -0,0 +1,93 @@ +Snippets = new Meteor.Collection('Snippets'); + + + +Snippet = function(title, description, code, author){ + this.title = title; + this.author = author || 'Public'; + this.code = code; + this.description = description; + this.score = 0; + this.cbid = randKey(15); +} + + + +if(Meteor.isClient){ + Meteor.subscribe("Snippets"); +} + + + +if (Meteor.isServer) { + Meteor.startup(function () { + var tmp = Snippets.find().fetch(); + Snippets.remove({}); + }); + + Meteor.publish("Data", function () { + // return all datasets for user that are still in use + return Data.find({owner: this.userId, active: true}); + //return Data.find({owner: this.userId}, {fields: {}}); + }); + + + isValidDataset = function(set){ + try{ + check(set.name, String); + check(set.data, Array); + for(i in set.data){ + check(set.data[i], Object); + } + check(set.owner, String); + check(set.active, Boolean); + check(set.credit, Number); + check(set.stage, Number); + check(set.progress, Number); + } catch(e){ + return false; + } + // progress is [0, 100] + if(set.progress < 0) return false; + if(set.progress > 100) return false; + return true; + } + + Data.allow({ + insert: function (userId, doc) { + // deny if user not logged in or user isn't owner + if(!(userId && doc.owner === userId)){ + + } + }, + + remove: function(userId, doc){ + // can only remove own data + return doc.owner === userId; + }, + + update: function(userId, doc, fieldNames, modifier){ + // users can only modify these fields manually + var mods = ['name', 'stage']; + for(i in fieldNames){ + if(mods.indexOf(fieldNames[i]) == -1){ + return false; + } + } + return true; + } + }); + + + Data.deny({ + update: function (userId, docs, fields, modifier) { + // can't change owners + return _.contains(fields, 'owner'); + }, + remove: function (userId, doc) { + // can't remove locked documents + return doc.locked; + }, + fetch: ['locked'] // no need to fetch 'owner' + }); +} \ No newline at end of file diff --git a/app/both/counters.js b/app/both/counters.js new file mode 100644 index 0000000..e69de29 diff --git a/app/both/user.js b/app/both/user.js new file mode 100644 index 0000000..e69de29 diff --git a/Codebox/both/utility.js b/app/both/utility.js similarity index 100% rename from Codebox/both/utility.js rename to app/both/utility.js diff --git a/Codebox/client/css/main.css b/app/client/css/main.css similarity index 100% rename from Codebox/client/css/main.css rename to app/client/css/main.css diff --git a/Codebox/client/css/results.css b/app/client/css/results.css similarity index 100% rename from Codebox/client/css/results.css rename to app/client/css/results.css diff --git a/Codebox/client/css/submissions.css b/app/client/css/submissions.css similarity index 100% rename from Codebox/client/css/submissions.css rename to app/client/css/submissions.css diff --git a/Codebox/client/html/main.html b/app/client/html/main.html similarity index 100% rename from Codebox/client/html/main.html rename to app/client/html/main.html diff --git a/Codebox/client/html/templates.html b/app/client/html/templates.html similarity index 93% rename from Codebox/client/html/templates.html rename to app/client/html/templates.html index 46a8fa4..4fe71b5 100644 --- a/Codebox/client/html/templates.html +++ b/app/client/html/templates.html @@ -5,9 +5,8 @@
{{#each allResults}}
  • -

    {{title}}

    - {{author}} + {{author}}
    diff --git a/Codebox/client/main.js b/app/client/js/main.js similarity index 93% rename from Codebox/client/main.js rename to app/client/js/main.js index fc03ea3..4245f42 100644 --- a/Codebox/client/main.js +++ b/app/client/js/main.js @@ -76,11 +76,7 @@ Deps.autorun(function () { // should add a cancel call here if(Session.get('query') != '' && typeof(Session.get('query')) != 'undefined'){ Meteor.call('analyze', Session.get('query'), function(e, r){ - var rs = []; - for(var i = 0; i < r.length; i++){ - rs.push(Snippets.findOne({cbid: r[i]})); - } - Session.set('results', rs); + Session.set('results', r); }); } }); diff --git a/app/packages.json b/app/packages.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/app/packages.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/Codebox/packages/.gitignore b/app/packages/.gitignore similarity index 100% rename from Codebox/packages/.gitignore rename to app/packages/.gitignore diff --git a/Codebox/server/config.js b/app/server/config.js similarity index 100% rename from Codebox/server/config.js rename to app/server/config.js diff --git a/app/server/main.js b/app/server/main.js new file mode 100644 index 0000000..53b9991 --- /dev/null +++ b/app/server/main.js @@ -0,0 +1,49 @@ + + + + + + +keys = ['java', 'c', 'c++', 'javascript', 'python', 'clojure', 'scala', 'erlang', 'method', 'class', 'function', 'struct', 'def', 'void', 'double', 'float', 'number', 'var', 'int', 'integer']; +nots = ['of', 'the', 'is', 'are', 'to', 'too']; + + + +if (Meteor.isServer) { + + Meteor.methods({ + analyze: function (query) { + return Snippets.find().fetch(); + }, + + 'getGists': function getGists(user) { + var test = new Gister(user); + return test.getSnips(); + } + }); +} + + +var levenshteinDistance = function(u, v) { + var m = u.length; + var n = v.length; + var D = []; + for(var i = 0; i <= m; i++) { + D.push([]); + for(var j = 0; j <= n; j++) { + D[i][j] = 0; + } + } + for(var i = 1; i <= m; i++) { + for(var j = 1; j <= n; j++) { + if (j == 0) { + D[i][j] = i; + } else if (i == 0) { + D[i][j] = j; + } else { + D[i][j] = [D[i-1][j-1] + (u[i-1] != v[j-1]), D[i][j-1] + 1, D[i-1][j] + 1].sort()[0]; + } + } + } + return D[m][n]; + }; \ No newline at end of file diff --git a/Codebox/smart.json b/app/smart.json similarity index 50% rename from Codebox/smart.json rename to app/smart.json index f7b01d4..764262d 100644 --- a/Codebox/smart.json +++ b/app/smart.json @@ -1,7 +1,5 @@ { "packages": { - "github": {}, - "require": {}, "npm": {} } } diff --git a/app/smart.lock b/app/smart.lock new file mode 100644 index 0000000..4d5b64d --- /dev/null +++ b/app/smart.lock @@ -0,0 +1,10 @@ +{ + "meteor": {}, + "dependencies": { + "basePackages": { + "npm": {} + }, + "packages": { + } + } +} From 489b7c60e9334b6461e41d2360098ba7d481fead Mon Sep 17 00:00:00 2001 From: Douglas Adam Smith II Date: Fri, 15 Nov 2013 21:24:32 -0500 Subject: [PATCH 05/12] added 'counters' collection --- app/.meteor/packages | 1 + app/both/codebox.js | 80 ++++++++++++++++++--------------------- app/both/counters.js | 65 +++++++++++++++++++++++++++++++ app/client/html/main.html | 3 +- 4 files changed, 103 insertions(+), 46 deletions(-) diff --git a/app/.meteor/packages b/app/.meteor/packages index fffdb6c..c17bf4c 100644 --- a/app/.meteor/packages +++ b/app/.meteor/packages @@ -7,3 +7,4 @@ standard-app-packages preserve-inputs accounts-github accounts-ui +check diff --git a/app/both/codebox.js b/app/both/codebox.js index f5f46e3..174e012 100644 --- a/app/both/codebox.js +++ b/app/both/codebox.js @@ -2,13 +2,29 @@ Snippets = new Meteor.Collection('Snippets'); -Snippet = function(title, description, code, author){ +Snippet = function(title, description, code){ this.title = title; - this.author = author || 'Public'; + this.owner = Meteor.userId(); this.code = code; this.description = description; this.score = 0; - this.cbid = randKey(15); + this.comments = [] + this.visable = true; +} + +isValidSnippet = function(doc){ + try{ + check(doc.title, String); + check(doc.owner, String); + check(doc.code, String); + check(doc.description, String); + check(doc.score, Number); + check(doc.comments, Array); + check(doc.visable, Boolean); + } catch(e){ + return falses; + } + return true; } @@ -20,66 +36,42 @@ if(Meteor.isClient){ if (Meteor.isServer) { - Meteor.startup(function () { - var tmp = Snippets.find().fetch(); - Snippets.remove({}); - }); - - Meteor.publish("Data", function () { - // return all datasets for user that are still in use - return Data.find({owner: this.userId, active: true}); - //return Data.find({owner: this.userId}, {fields: {}}); + + Meteor.startup(function () { + //Snippets.remove({}); + }); + + Meteor.publish("Snippets", function () { + return Snippets.find({visable: true}); }); - isValidDataset = function(set){ - try{ - check(set.name, String); - check(set.data, Array); - for(i in set.data){ - check(set.data[i], Object); - } - check(set.owner, String); - check(set.active, Boolean); - check(set.credit, Number); - check(set.stage, Number); - check(set.progress, Number); - } catch(e){ - return false; - } - // progress is [0, 100] - if(set.progress < 0) return false; - if(set.progress > 100) return false; - return true; - } - Data.allow({ + Snippets.allow({ insert: function (userId, doc) { // deny if user not logged in or user isn't owner if(!(userId && doc.owner === userId)){ - + return false; } + + if(isValidSnippet(doc)){ + return true; + } + return false; }, remove: function(userId, doc){ - // can only remove own data + // can only remove own Snippets return doc.owner === userId; }, update: function(userId, doc, fieldNames, modifier){ - // users can only modify these fields manually - var mods = ['name', 'stage']; - for(i in fieldNames){ - if(mods.indexOf(fieldNames[i]) == -1){ - return false; - } - } - return true; + return false; } }); - Data.deny({ + Snippets.deny({ update: function (userId, docs, fields, modifier) { // can't change owners return _.contains(fields, 'owner'); diff --git a/app/both/counters.js b/app/both/counters.js index e69de29..cf4a085 100644 --- a/app/both/counters.js +++ b/app/both/counters.js @@ -0,0 +1,65 @@ +Counters = new Meteor.Collection('Counters'); + + + +Counter = function(title, value){ + this.title = title; + this.value = value || 0; +} + +isValidCounter = function(doc){ + try{ + check(doc.title, String); + check(doc.value, Number); + } catch(e){ + return false; + } + return true; +} + + + +if(Meteor.isClient){ + Meteor.subscribe("Counters"); +} + + + +if (Meteor.isServer) { + + Meteor.startup(function () { + // make counters here + }); + + Meteor.publish("Counters", function () { + return Counters.find(); + }); + + + Counters.allow({ + insert: function (userId, doc) { + return false; + }, + + remove: function(userId, doc){ + return false; + }, + + update: function(userId, doc, fieldNames, modifier){ + if(fieldNames == ['value']){ + if(modifier == {$inc: {value: 1}}){ + return true; + } + } + return false; + } + }); + + + Counters.deny({ + remove: function (userId, doc) { + // can't remove locked documents + return doc.locked; + } + }); +} \ No newline at end of file diff --git a/app/client/html/main.html b/app/client/html/main.html index 03d8811..c96f742 100644 --- a/app/client/html/main.html +++ b/app/client/html/main.html @@ -3,8 +3,7 @@ - Fork me on GitHub - +Fork me on GitHub {{loginButtons}}

  • +
  • {{title}}

    - {{author}} + {{author}}
    diff --git a/app/client/js/main.js b/app/client/js/main.js index 4245f42..be75699 100644 --- a/app/client/js/main.js +++ b/app/client/js/main.js @@ -4,17 +4,6 @@ Session.set('query', ""); if (Meteor.isClient) { - getGists = function getGists(user, callback) { - Meteor.call('getGists', user, callback); - } - - getDescription = function(gist){ - return gist.description; - } - - getCode = function(gist){ - - } Template.results.allResults = function(){ return Session.get('results'); @@ -25,11 +14,19 @@ if (Meteor.isClient) { } Template.results.author = function(){ - return this.author; + var user = Meteor.users.findOne(this.owner); + if(user){ + return user.profile.name; + } + return "unknown author"; } - - Template.results.cbid = function(){ - return this.cbid; + + Template.results.ref = function(){ + var user = Meteor.users.findOne(this.owner); + if(user){ + return 'http://github.com/' + user.services.github.username; + } + return ""; } Template.details.isInDetail = function(){ @@ -48,28 +45,24 @@ if (Meteor.isClient) { - focusOn = function(id){ - Session.set('details', true); - console.log('focussing on ' + id); - } - - openContributor = function(){ - $("html, body").animate({scrollTop: $("#inputTitle").offset().top}, 300); - } - - insertSnippet = function(){ - if(document.getElementById('inputTitle').value != "") - if(document.getElementById('inputDescription').value != "") - if(document.getElementById('inputCode').value != ""){ - Snippets.insert(new Snippet(document.getElementById('inputTitle').value - ,document.getElementById('inputDescription').value - ,document.getElementById('inputCode').value)); - } - document.getElementById('inputTitle').value = ""; - document.getElementById('inputDescription').value = ""; - document.getElementById('inputCode').value = ""; - Session.set('query', document.getElementById('searchbar').value); - } +openContributor = function(){ + $("html, body").animate({scrollTop: $("#inputTitle").offset().top}, 300); +} + +insertSnippet = function(){ + if(document.getElementById('inputTitle').value != "") + if(document.getElementById('inputDescription').value != "") + if(document.getElementById('inputCode').value != ""){ + Snippets.insert(new Snippet(document.getElementById('inputTitle').value + ,document.getElementById('inputDescription').value + ,document.getElementById('inputCode').value, + ['snippet'])); + } + document.getElementById('inputTitle').value = ""; + document.getElementById('inputDescription').value = ""; + document.getElementById('inputCode').value = ""; + Session.set('query', document.getElementById('searchbar').value); +} Deps.autorun(function () { From da2118beba472f8c82ea839da410b4a68a5956dd Mon Sep 17 00:00:00 2001 From: Douglas Adam Smith II Date: Fri, 15 Nov 2013 23:12:45 -0500 Subject: [PATCH 07/12] added like/dislike-based sorting --- app/both/codebox.js | 4 +- app/both/user.js | 7 ++-- app/client/css/results.css | 12 ++++-- app/client/html/templates.html | 3 ++ app/client/js/main.js | 67 +++++++++++++++++++++++++++++++++- app/server/main.js | 6 +-- 6 files changed, 85 insertions(+), 14 deletions(-) diff --git a/app/both/codebox.js b/app/both/codebox.js index 6eab1ba..1122acf 100644 --- a/app/both/codebox.js +++ b/app/both/codebox.js @@ -26,7 +26,7 @@ isValidSnippet = function(doc){ check(doc.codebox, String); check(doc.visable, Boolean); } catch(e){ - return falses; + return false; } return true; } @@ -70,7 +70,7 @@ if (Meteor.isServer) { }, update: function(userId, doc, fieldNames, modifier){ - return false; + return true; } }); diff --git a/app/both/user.js b/app/both/user.js index 151922c..a054ea7 100644 --- a/app/both/user.js +++ b/app/both/user.js @@ -22,14 +22,15 @@ if(Meteor.isServer){ user.emailCount = 0; // no initial credit user.score = 0; + user.votes = {}; return user; }); // Validate username, sending a specific error message on failure. Accounts.validateNewUser(function (user) { - if (!user.username || user.username.length < 3){ - throw new Meteor.Error(403, "Username must have at least 3 characters"); - } + // if (!user.username || user.username.length < 3){ + // throw new Meteor.Error(403, "Username must have at least 3 characters"); + // } return true; }); } \ No newline at end of file diff --git a/app/client/css/results.css b/app/client/css/results.css index c85ddb6..f871c29 100644 --- a/app/client/css/results.css +++ b/app/client/css/results.css @@ -14,9 +14,9 @@ -moz-box-shadow: 0px 1px 6px rgba(23, 69, 88, .5); /* rounded corners */ - -webkit-border-radius: 12px; - -moz-border-radius: 7px; - border-radius: 7px; + -webkit-border-radius: 20px; + -moz-border-radius: 20px; + border-radius: 20px; /* gradients */ background: -webkit-gradient(linear, left top, left bottom, @@ -57,4 +57,10 @@ -webkit-border-radius: 12px; -moz-border-radius: 7px; border-radius: 7px; +} + + + +button.true{ + border: 2px solid blue; } \ No newline at end of file diff --git a/app/client/html/templates.html b/app/client/html/templates.html index 1027ebf..036b6e1 100644 --- a/app/client/html/templates.html +++ b/app/client/html/templates.html @@ -4,13 +4,16 @@

    {{#each allResults}} + {{#isolate}}
  • {{title}}

    {{author}}
    + like it?

  • + {{/isolate}} {{/each}}
    diff --git a/app/client/js/main.js b/app/client/js/main.js index be75699..3a71c47 100644 --- a/app/client/js/main.js +++ b/app/client/js/main.js @@ -4,9 +4,33 @@ Session.set('query', ""); if (Meteor.isClient) { + + Template.results.score = function(){ + return this.score; + } + + Template.results.isNo = function(){ + if (Meteor.userId()) { + return Meteor.users.findOne(Meteor.userId()).votes[this._id] == -1; + }; + return false; + } + + Template.results.isYes = function(){ + if (Meteor.userId()) { + return Meteor.users.findOne(Meteor.userId()).votes[this._id] == 1; + }; + return false; + } Template.results.allResults = function(){ - return Session.get('results'); + var res = Session.get('results'); + sortedRes = res.sort(function(a,b){ + return b.score - a.score; + }); + console.log('sorted:'); + console.log(sortedRes); + return sortedRes; } Template.results.title = function(){ @@ -74,3 +98,44 @@ Deps.autorun(function () { } }); + +makeNo = function(id){ + if(Meteor.userId()){ + var usr = Meteor.users.findOne(Meteor.userId()); + if(usr){ + if(usr.votes[id] != -1){ + var newVotes = usr.votes; + newVotes[id] = -1; + Meteor.users.update(Meteor.userId(), {$set: {votes: newVotes}}); + // if prev liked, dislike + if(usr.votes[id] == 1){ + Snippets.update(id, {$inc: {score: -2}}) + // if prev nothing, dislike + } else{ + Snippets.update(id, {$inc: {score: -1}}) + } + } + } + } +} + +makeYes = function(id){ + if(Meteor.userId()){ + var usr = Meteor.users.findOne(Meteor.userId()); + if(usr){ + if(usr.votes[id] != 1){ + var newVotes = usr.votes; + newVotes[id] = 1; + Meteor.users.update(Meteor.userId(), {$set: {votes: newVotes}}); + // if prev disliked, like + if(usr.votes[id] == -1){ + Snippets.update(id, {$inc: {score: +2}}) + // if prev nothing, dislike + } else{ + Snippets.update(id, {$inc: {score: +1}}) + } + } + } + } +} + diff --git a/app/server/main.js b/app/server/main.js index 53b9991..1225c54 100644 --- a/app/server/main.js +++ b/app/server/main.js @@ -10,15 +10,11 @@ nots = ['of', 'the', 'is', 'are', 'to', 'too']; if (Meteor.isServer) { + Meteor.methods({ analyze: function (query) { return Snippets.find().fetch(); - }, - - 'getGists': function getGists(user) { - var test = new Gister(user); - return test.getSnips(); } }); } From edfa2cee333adb261c79f4c8e61ceac2abfad4db Mon Sep 17 00:00:00 2001 From: Douglas Adam Smith II Date: Sat, 16 Nov 2013 00:07:12 -0500 Subject: [PATCH 08/12] + simplistic search algorithm should be replaced with something more sophisticated later --- app/client/css/results.css | 2 +- app/server/main.js | 55 +++++++++++++------------------------- 2 files changed, 19 insertions(+), 38 deletions(-) diff --git a/app/client/css/results.css b/app/client/css/results.css index f871c29..0704aaa 100644 --- a/app/client/css/results.css +++ b/app/client/css/results.css @@ -62,5 +62,5 @@ button.true{ - border: 2px solid blue; + border: 2px solid #35607A; } \ No newline at end of file diff --git a/app/server/main.js b/app/server/main.js index 1225c54..f40a99b 100644 --- a/app/server/main.js +++ b/app/server/main.js @@ -1,45 +1,26 @@ - - - - - - -keys = ['java', 'c', 'c++', 'javascript', 'python', 'clojure', 'scala', 'erlang', 'method', 'class', 'function', 'struct', 'def', 'void', 'double', 'float', 'number', 'var', 'int', 'integer']; -nots = ['of', 'the', 'is', 'are', 'to', 'too']; - - - if (Meteor.isServer) { + igs = [' on', ' a', ' is', ' what', ' who', ' why', ' where', ' to', ',']; - Meteor.methods({ analyze: function (query) { - return Snippets.find().fetch(); - } - }); -} - - -var levenshteinDistance = function(u, v) { - var m = u.length; - var n = v.length; - var D = []; - for(var i = 0; i <= m; i++) { - D.push([]); - for(var j = 0; j <= n; j++) { - D[i][j] = 0; + for(i in igs){ + query = query.split(igs[i]).join(''); } - } - for(var i = 1; i <= m; i++) { - for(var j = 1; j <= n; j++) { - if (j == 0) { - D[i][j] = i; - } else if (i == 0) { - D[i][j] = j; - } else { - D[i][j] = [D[i-1][j-1] + (u[i-1] != v[j-1]), D[i][j-1] + 1, D[i-1][j] + 1].sort()[0]; + parts = query.split(' '); + var out = Snippets.find().fetch(); + for(p in parts){ + var tout = []; + for(i in out){ + if(out[i].description.indexOf(parts[p]) != -1){ + tout.push(out[i]); + } + } + out = tout; + if(out.length < 5){ + break; } } + return out; } - return D[m][n]; - }; \ No newline at end of file + }); +} \ No newline at end of file From 9535104fe0c8d1b8b233da449bb34cc6333a84c4 Mon Sep 17 00:00:00 2001 From: Douglas Adam Smith II Date: Sat, 16 Nov 2013 00:16:07 -0500 Subject: [PATCH 09/12] added some packages --- app/.meteor/packages | 4 ++++ app/client/js/main.js | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/.meteor/packages b/app/.meteor/packages index c17bf4c..0d98b48 100644 --- a/app/.meteor/packages +++ b/app/.meteor/packages @@ -8,3 +8,7 @@ preserve-inputs accounts-github accounts-ui check +appcache +spiderable +madewith +code-prettify diff --git a/app/client/js/main.js b/app/client/js/main.js index 3a71c47..641ac0d 100644 --- a/app/client/js/main.js +++ b/app/client/js/main.js @@ -28,8 +28,6 @@ if (Meteor.isClient) { sortedRes = res.sort(function(a,b){ return b.score - a.score; }); - console.log('sorted:'); - console.log(sortedRes); return sortedRes; } From 5f40eff8d5899c30e44c0b7c37b6ae38620090ab Mon Sep 17 00:00:00 2001 From: Douglas Adam Smith II Date: Sat, 16 Nov 2013 00:27:05 -0500 Subject: [PATCH 10/12] removed code prettify It is apparently disfunctional. --- app/.meteor/packages | 1 - app/client/html/main.html | 9 ++++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/.meteor/packages b/app/.meteor/packages index 0d98b48..d2ffe30 100644 --- a/app/.meteor/packages +++ b/app/.meteor/packages @@ -11,4 +11,3 @@ check appcache spiderable madewith -code-prettify diff --git a/app/client/html/main.html b/app/client/html/main.html index c96f742..2eb408d 100644 --- a/app/client/html/main.html +++ b/app/client/html/main.html @@ -3,18 +3,21 @@ -Fork me on GitHub {{loginButtons}} -
    + Fork me on GitHub
    + {{loginButtons}} +
    {{> results}} +
    +

    Feel free to share your wonderful code snippets with the world! Please don't submit broken code.


    {{> details}} {{> codeinput}} -
    +
    {{> footer}} \ No newline at end of file From 77e9d534a395bdd65ee1d8b2174c358e72791a29 Mon Sep 17 00:00:00 2001 From: Douglas Adam Smith II Date: Sat, 16 Nov 2013 00:52:57 -0500 Subject: [PATCH 11/12] updated readme --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 84c9856..fa2e129 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,10 @@ Codebox ======= -A search engine for code snippets. +The search engine for code snippets. HackMIT ======= -This is my hack! - +This was my hack! If you'd like to get involved, feel free to contact me @dasmithii - I'd love to collaborate. \ No newline at end of file From 1b06eba19975edb7dcedcc2394335a321d122dd6 Mon Sep 17 00:00:00 2001 From: Douglas Adam Smith II Date: Sat, 16 Nov 2013 01:05:09 -0500 Subject: [PATCH 12/12] added input length limits --- app/client/html/templates.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/client/html/templates.html b/app/client/html/templates.html index 036b6e1..dfea48e 100644 --- a/app/client/html/templates.html +++ b/app/client/html/templates.html @@ -36,11 +36,11 @@