diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..27b255a --- /dev/null +++ b/.eslintignore @@ -0,0 +1,3 @@ +node_modules/ +public/ +themes/navy/source/js/vendor/ \ No newline at end of file diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..92dab13 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,10 @@ +{ + "extends": "hexo", + "root": true, + "rules": { + "strict": "off" + }, + "env": { + "browser": true + } +} \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6891517 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +.idea/ +node_modules/ +*.log +db.json +.deploy*/ +package-lock.json +public/ diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..68e0a92 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,60 @@ +pipeline { + agent { label 'linux' } + + options { + disableConcurrentBuilds() + /* manage how many builds we keep */ + buildDiscarder(logRotator( + numToKeepStr: '20', + daysToKeepStr: '30', + )) + } + + environment { + GIT_USER = 'status-im-auto' + GIT_MAIL = 'auto@status.im' + } + + stages { + stage('Git Prep') { + steps { + sh "git config user.name ${env.GIT_USER}" + sh "git config user.email ${env.GIT_MAIL}" + } + } + + stage('Install Deps') { + steps { + sh 'npm install' + } + } + + stage('Build') { + steps { + sh 'npm run clean' + sh 'npm run build' + } + } + + stage('Publish Prod') { + when { expression { env.GIT_BRANCH ==~ /.*master/ } } + steps { script { + sshagent(credentials: ['status-im-auto-ssh']) { + sh 'npm run deploy' + } + } } + } + + stage('Publish Devel') { + when { expression { env.GIT_BRANCH ==~ /.*develop/ } } + steps { script { + sshagent(credentials: ['jenkins-ssh']) { + sh ''' + scp -o StrictHostKeyChecking=no -r public/. \ + jenkins@node-01.do-ams3.proxy.misc.statusim.net:/var/www/dev-docs/ + ''' + } + } } + } + } +} \ No newline at end of file diff --git a/LICENSE b/LICENSE index a612ad9..9ce4d32 100644 --- a/LICENSE +++ b/LICENSE @@ -1,373 +1,7 @@ -Mozilla Public License Version 2.0 -================================== +Copyright (c) 2013 Tommy Chen -1. Definitions --------------- +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or - - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -1.6. "Executable Form" - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -1.8. "License" - means this document. - -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -1.10. "Modifications" - means any of the following: - - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or - - (b) any new file in Source Code Form that contains any Covered - Software. - -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -1.13. "Source Code Form" - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants and Conditions --------------------------------- - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -(a) for any code that a Contributor has removed from Covered Software; - or - -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - -3. Responsibilities -------------------- - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - -4. Inability to Comply Due to Statute or Regulation ---------------------------------------------------- - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - -5. Termination --------------- - -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - -************************************************************************ -* * -* 6. Disclaimer of Warranty * -* ------------------------- * -* * -* Covered Software is provided under this License on an "as is" * -* basis, without warranty of any kind, either expressed, implied, or * -* statutory, including, without limitation, warranties that the * -* Covered Software is free of defects, merchantable, fit for a * -* particular purpose or non-infringing. The entire risk as to the * -* quality and performance of the Covered Software is with You. * -* Should any Covered Software prove defective in any respect, You * -* (not any Contributor) assume the cost of any necessary servicing, * -* repair, or correction. This disclaimer of warranty constitutes an * -* essential part of this License. No use of any Covered Software is * -* authorized under this License except under this disclaimer. * -* * -************************************************************************ - -************************************************************************ -* * -* 7. Limitation of Liability * -* -------------------------- * -* * -* Under no circumstances and under no legal theory, whether tort * -* (including negligence), contract, or otherwise, shall any * -* Contributor, or anyone who distributes Covered Software as * -* permitted above, be liable to You for any direct, indirect, * -* special, incidental, or consequential damages of any character * -* including, without limitation, damages for lost profits, loss of * -* goodwill, work stoppage, computer failure or malfunction, or any * -* and all other commercial damages or losses, even if such party * -* shall have been informed of the possibility of such damages. This * -* limitation of liability shall not apply to liability for death or * -* personal injury resulting from such party's negligence to the * -* extent applicable law prohibits such limitation. Some * -* jurisdictions do not allow the exclusion or limitation of * -* incidental or consequential damages, so this exclusion and * -* limitation may not apply to You. * -* * -************************************************************************ - -8. Litigation -------------- - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - -9. Miscellaneous ----------------- - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - -10. Versions of the License ---------------------------- - -10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice -------------------------------------------- - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------- - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index ddc9f58..ea9fcce 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,24 @@ -# nimbus.status.im -The website for the Nimbus Project +# Status Technical Docs + +This repo hosts the code for both [docs.status.im](https://docs.status.im) on the `master` branch (which builds and serves through `gh-pages`), and [dev-docs.status.im](https://dev-docs.status.im) on the `develop` branch. + +There is an `edit` button on each page, which will take you directly to the document you need to edit on the `develop` branch. We can then allow a large group of people to push directly to `develop` and show their changes on the staging site when asking for review, which should smooth out and speed up the process considerably for everyone. `master` is obviously protected, and will only have changes merged in from `develop` once accepted. + +## Adding a New Page + +If you want to add a page, rather than just edit, you'll need to make sure it appears on the sidebar and is accessible to everyone. + +1. Add your page to `source/docs/.md` +2. In `source/_data/sidebars.yml` add the appropriate text to the appropriate place. +3. In `themes/navy/languages/en.yml` edit the sidebars section to make sure that your new text in `sidebars.yml` is rendered correctly. + +## Testing locally + +Make sure you have node.js installed first. + +1. Open Terminal and navigate to the project root directory, +2. Run `npm install`, +3. Run `npm run build`, +4. Go to `public/` directory, +5. Start a simple HTTP server serving files, for example: `python -m SimpleHTTPServer 8000`, +6. Open http://localhost:8000 in a browser. diff --git a/_config.dev.yml b/_config.dev.yml new file mode 100644 index 0000000..3b5fb70 --- /dev/null +++ b/_config.dev.yml @@ -0,0 +1,33 @@ +title: Status +subtitle: "A new kind of tool for a new kind of internet" +description: "Status is the mobile windown onto Ethereum, the platform with which we will onboard the first million users of a truly distributed web." +author: Status +language: en +timezone: UTC + +url: https://dev-docs.status.im/ +root: / +permalink: news/:year/:month/:day/:title/ +archive_dir: news +code_dir: downloads/code +new_post_name: :year-:month-:day-:title.md # File name of new posts +post_asset_folder: true +per_page: 0 + +theme: navy +deploy: + type: git + branch: gh-pages + name: status-im-auto + repo: git@github.com:status-im/docs.status.im.git + +theme_config: + favicon: img/logo-32.png + +highlight: + enable: true + line_number: false + +disqus_shortname: hexojs +twitter: ethstatus +github: staus-im diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..91d64c1 --- /dev/null +++ b/_config.yml @@ -0,0 +1,33 @@ +title: Nimbus +subtitle: "Light clients for everyone!" +description: "Nimbus is a research project and a client implementation for Ethereum 2.0 designed to perform well on embedded systems and personal mobile devices, including older smartphones with resource-restricted hardware." +author: Nimbus +language: en +timezone: UTC + +url: https://nimbus.status.im/ +root: / +permalink: news/:year/:month/:day/:title/ +archive_dir: news +code_dir: downloads/code +new_post_name: :year-:month-:day-:title.md # File name of new posts +post_asset_folder: true +per_page: 0 + +theme: navy +deploy: + type: git + branch: gh-pages + name: status-im-auto + repo: git@github.com:status-im/nimbus.status.im.git + +theme_config: + favicon: img/logo-32.png + +highlight: + enable: true + line_number: false + +disqus_shortname: hexojs +twitter: ethstatus +github: staus-im diff --git a/package.json b/package.json new file mode 100644 index 0000000..c38caf0 --- /dev/null +++ b/package.json @@ -0,0 +1,34 @@ +{ + "name": "hexo-site", + "version": "0.0.0", + "private": true, + "hexo": { + "version": "3.7.1" + }, + "scripts": { + "clean": "rm -rf public/*", + "build": "hexo generate", + "eslint": "eslint .", + "deploy": "hexo deploy" + }, + "dependencies": { + "cheerio": "^0.20.0", + "hexo": "^3.7.1", + "hexo-deployer-git": "^0.3.1", + "hexo-generator-archive": "^0.1.4", + "hexo-generator-feed": "^1.1.0", + "hexo-generator-sitemap": "^1.1.2", + "hexo-renderer-jade": "^0.4.1", + "hexo-renderer-marked": "^0.2.10", + "hexo-renderer-stylus": "^0.3.1", + "hexo-server": "^0.2.0", + "lodash": "^4.5.1", + "lunr": "^2.1.2" + }, + "devDependencies": { + "del": "^3.0.0", + "eslint": "^4.3.0", + "eslint-config-hexo": "^2.0.0", + "rename": "^1.0.4" + } +} diff --git a/scaffolds/page.md b/scaffolds/page.md new file mode 100644 index 0000000..93e57c5 --- /dev/null +++ b/scaffolds/page.md @@ -0,0 +1,2 @@ +title: {{ title }} +--- \ No newline at end of file diff --git a/scaffolds/post.md b/scaffolds/post.md new file mode 100644 index 0000000..93e57c5 --- /dev/null +++ b/scaffolds/post.md @@ -0,0 +1,2 @@ +title: {{ title }} +--- \ No newline at end of file diff --git a/scripts/helpers.js b/scripts/helpers.js new file mode 100644 index 0000000..dda4784 --- /dev/null +++ b/scripts/helpers.js @@ -0,0 +1,161 @@ +/* global hexo */ + +'use strict'; + +var pathFn = require('path'); +var _ = require('lodash'); +var cheerio = require('cheerio'); +var lunr = require('lunr'); + +var localizedPath = ['docs', 'api']; + +function startsWith(str, start) { + return str.substring(0, start.length) === start; +} + +hexo.extend.helper.register('page_nav', function() { + var type = this.page.canonical_path.split('/')[0]; + var sidebar = this.site.data.sidebar[type]; + var path = pathFn.basename(this.path); + var list = {}; + var prefix = 'sidebar.' + type + '.'; + + for (var i in sidebar) { + for (var j in sidebar[i]) { + list[sidebar[i][j]] = j; + } + } + + var keys = Object.keys(list); + var index = keys.indexOf(path); + var result = ''; + + if (index > 0) { + result += '' + + '' + this.__('page.prev') + ''; + } + + if (index < keys.length - 1) { + result += '' + + '' + this.__('page.next') + ''; + } + + return result; +}); + +hexo.extend.helper.register('doc_sidebar', function(className) { + var type = this.page.canonical_path.split('/')[0]; + var sidebar = this.site.data.sidebar[type]; + var path = pathFn.basename(this.path); + var result = ''; + var self = this; + var prefix = 'sidebar.' + type + '.'; + + _.each(sidebar, function(menu, title) { + result += '' + self.__(prefix + title) + ''; + + _.each(menu, function(link, text) { + var itemClass = className + '-link'; + if (link === path) itemClass += ' current'; + + result += '' + self.__(prefix + text) + ''; + }); + }); + + return result; +}); + +hexo.extend.helper.register('header_menu', function(className) { + var menu = this.site.data.menu; + var result = ''; + var self = this; + var lang = this.page.lang; + var isEnglish = lang === 'en'; + + _.each(menu, function(path, title) { + if (!isEnglish && ~localizedPath.indexOf(title)) path = lang + path; + + result += '' + self.__('menu.' + title) + ''; + }); + + return result; +}); + +hexo.extend.helper.register('canonical_url', function(lang) { + var path = this.page.canonical_path; + if (lang && lang !== 'en') path = lang + '/' + path; + + return this.config.url + '/' + path; +}); + +hexo.extend.helper.register('url_for_lang', function(path) { + var lang = this.page.lang; + var url = this.url_for(path); + + if (lang !== 'en' && url[0] === '/') url = '/' + lang + url; + + return url; +}); + +hexo.extend.helper.register('raw_link', function(path) { + return 'https://github.com/status-im/docs.status.im/edit/develop/source/' + path; +}); + +hexo.extend.helper.register('page_anchor', function(str) { + var $ = cheerio.load(str, {decodeEntities: false}); + var headings = $('h1, h2, h3, h4, h5, h6'); + + if (!headings.length) return str; + + headings.each(function() { + var id = $(this).attr('id'); + + $(this) + .addClass('article-heading') + .append(''); + }); + + return $.html(); +}); + +hexo.extend.helper.register('lunr_index', function(data) { + var index = lunr(function() { + this.field('name', {boost: 10}); + this.field('tags', {boost: 50}); + this.field('description'); + this.ref('id'); + + _.sortBy(data, 'name').forEach((item, i) => { + this.add(_.assign({ id: i }, item)); + }); + }); + + return JSON.stringify(index); +}); + +hexo.extend.helper.register('canonical_path_for_nav', function() { + var path = this.page.canonical_path; + + if (startsWith(path, 'docs/') || startsWith(path, 'api/')) { + return path; + } + return ''; + +}); + +hexo.extend.helper.register('lang_name', function(lang) { + var data = this.site.data.languages[lang]; + return data.name || data; +}); + +hexo.extend.helper.register('disqus_lang', function() { + var lang = this.page.lang; + var data = this.site.data.languages[lang]; + + return data.disqus_lang || lang; +}); + +hexo.extend.helper.register('hexo_version', function() { + return this.env.version; +}); + diff --git a/scripts/tags.js b/scripts/tags.js new file mode 100644 index 0000000..252ec4f --- /dev/null +++ b/scripts/tags.js @@ -0,0 +1,19 @@ +/* global hexo */ + +'use strict'; + +hexo.extend.tag.register('note', function(args, content) { + var className = args.shift(); + var header = ''; + var result = ''; + + if (args.length) { + header += '' + args.join(' ') + ''; + } + + result += '
' + header; + result += hexo.render.renderSync({text: content, engine: 'markdown'}); + result += '
'; + + return result; +}, true); diff --git a/source/CNAME b/source/CNAME new file mode 100644 index 0000000..3f03175 --- /dev/null +++ b/source/CNAME @@ -0,0 +1 @@ +docs.status.im diff --git a/source/_data/languages.yml b/source/_data/languages.yml new file mode 100644 index 0000000..6cf5ad2 --- /dev/null +++ b/source/_data/languages.yml @@ -0,0 +1 @@ +en: English diff --git a/source/_data/menu.yml b/source/_data/menu.yml new file mode 100644 index 0000000..8368157 --- /dev/null +++ b/source/_data/menu.yml @@ -0,0 +1,6 @@ +docs: /docs/ +tutorials: /tutorials/ +plugins: /plugins/ +chat: /chat/ +blog: /news/ +wip: /wip/ diff --git a/source/_data/plugins.yml b/source/_data/plugins.yml new file mode 100644 index 0000000..8bfe696 --- /dev/null +++ b/source/_data/plugins.yml @@ -0,0 +1,15 @@ +- name: pluto + description: A grammar for data manipulation + link: https://status-im.github.io/pluto/ + thumbnail: pluto.jpg + tags: + - grammar + - data +- name: collectibles-chat + description: Extension for sending NFTs through Chat + link: https://gist.github.com/janherich/92747e730b2e115bcbe145114d024e66 + thumbnail: cryptokitty.jpg + tags: + - chat + - NFTs + - collectibles diff --git a/source/_data/sidebar.yml b/source/_data/sidebar.yml new file mode 100644 index 0000000..c349adc --- /dev/null +++ b/source/_data/sidebar.yml @@ -0,0 +1,5 @@ +docs: + Nimbus: + introduction: nimbus.html + contributor_guide: contributor_guide.html + \ No newline at end of file diff --git a/source/_data/templates.yml b/source/_data/templates.yml new file mode 100644 index 0000000..cf0a2df --- /dev/null +++ b/source/_data/templates.yml @@ -0,0 +1,28 @@ +- name: Embark Vortex Template + description: A React Application showing what can be done with Vortex when using Embark. + link: https://github.com/Horyus/vortex-demo-embark/ + tags: + - react + +- name: Solidity Gas Golfing Contest Template + description: Boilerplate and tests for the first Solidity Gas Golfing Contest + link: https://github.com/embark-framework/sggc + tags: + - solidity + - tests + - fun + +- name: Vyper Template + description: Template to demonstrate the use of the Vyper contracts + link: https://github.com/embark-framework/embark-vyper-template + tags: + - vyper + - contracts + +- name: Bamboo Template + description: Template to demonstrate use of the Bamboo contracts + link: https://github.com/embark-framework/embark-bamboo-template + tags: + - bamboo + - contracts + diff --git a/source/_data/tutorials.yml b/source/_data/tutorials.yml new file mode 100644 index 0000000..33bb890 --- /dev/null +++ b/source/_data/tutorials.yml @@ -0,0 +1,7 @@ +- name: How to extend your DApp via chat in Status + description: Send collectibles directly in chat + link: /tutorials/extensions_tutorial_chat_command.html + tags: + - extensions + - chat + - Ethereum diff --git a/source/_data/wip.yml b/source/_data/wip.yml new file mode 100644 index 0000000..6880eff --- /dev/null +++ b/source/_data/wip.yml @@ -0,0 +1,26 @@ +- name: PFS + description: Perfect Forward Secrecy and Group Chats + link: https://github.com/status-im/status-react/pull/5646 + thumbnail: secrecy.jpg + tags: + - security + - key exchange + - privacy + - secrecy + - communication + - chat +- name: Mail Servers + description: Cryptoeconomics and Whisper Messages, oh my! + link: https://github.com/status-im/ideas/tree/master/ideas/280-discoverable-trusted-server-nodes + thumbnail: mail.jpg + tags: + - chat + - NFTs + - collectibles +- name: Add back an option to run LES on Ropsten + description: Make the Light Ethereum Service great again and let us run it on our phones! + link: https://github.com/status-im/status-react/pull/6007 + thumbnail: light_client.jpg + tags: + - light client + - decentralization diff --git a/source/_posts/2018-09-27-nimbus-partnership.md b/source/_posts/2018-09-27-nimbus-partnership.md new file mode 100644 index 0000000..884a1c4 --- /dev/null +++ b/source/_posts/2018-09-27-nimbus-partnership.md @@ -0,0 +1,43 @@ +title: Nimbus +--- + +# Status Partners with the team behind the programming language Nim + +*To bolster research efforts for Nimbus – a sharding client for Ethereum – status.im have partnered with the core team developing the Nim programming language.* + +On August 1st, we [posted](https://our.status.im/introducing-nimbus-an/) about our research initiative called Nimbus – a Nim implementation of a sharding client for Ethereum. Today we are pleased to announce our partnership with the team behind the [Nim programming language](https://nim-lang.org/); lead by [Andreas Rumpf](https://github.com/Araq). This partnership will not only support our ongoing sharding research, but promote the continued development of the underlying open source language serving as the basis of our work. The more developed, documented, and robust Nim is, the more in depth our R&D can be. Andreas and team have a strong vision for the future of the programming language and we want to support them in their efforts. This marks our ongoing support for open source projects as well as our commitment to our sharding research. + +## Why Nim +We chose to work in Nim because it is a lightweight and efficient programming language that suits itself well to resource restricted devices. It also allows us to better learn the Ethereum protocol, as well as attract highly specialized developers with a deep understanding and appreciation for the advanced language features, such as its powerful meta-programming capabilities that give us the flexibility to meet future needs of creating intuitive domain-specific languages tailored to specific facets of Ethereum 2.0 development. + +Finally, the language is backed by a very strong team of talented developers. Andreas started Nim's development in 2006, only two years later the compiler reached the important milestone of being able to compile itself, a process that is known as "bootstrapping". For years now users are deploying Nim applications in production. + +Nim can be summarised as combining the very best aspects of the well known programming languages C, Python and Lisp: Nim is as fast as C, as readable as Python and as extensible as Lisp. This aspect makes Nim unique in the large landscape of existing programming languages. + +Nim was envisioned from the start as a simple language with a focus on metaprogramming and with Status' support Nim's metaprogramming will not only cover its syntactic elements but also its semantics and its type system. + +## The Partnership +Status will support Andreas and the Nim team with funding and resources needed to stay focused on the development of the programming language. The Nim team will add at least 2 paid full-time developers! They will fix bugs, respond to issues, and of course develop the compiler, the standard library as well as its tooling. So far, the language has been supported by the open source community and generous volunteers and donors who believe in the work. This has created a unique commitment to the project by all those involved but has meant a lack of dedicated and focused computer scientists solely focused on its development. + +The Status Nimbus team is very familiar with Nim as core Status contributors [Dustin Brody](https://github.com/tersec), [Eugene Kabanov](https://github.com/cheatfate), [Jacek Sieka](https://github.com/arnetheduck), [Mamy Ratsimbazafy](https://github.com/mratsim), [Ryan Lipscombe](https://github.com/coffeepots), [Yuriy Glukhov](https://github.com/yglukhov) and [Zahary Karadjov](https://github.com/zah) are active contributors to the Nim ecosystem. There is already deep integration and collaboration between the Nimbus and Nim teams and this partnership will see even further collaboration and support of each other's work. + +## A Look Ahead at the Roadmap +With Status' sponsorship, the Nim team has come up with an ambitious roadmap which makes Nim one of the most exciting languages to watch in the following years. Nim version 1.0 is the long overdue commitment to a stable language core that will preserve backwards compatibility for years to come. There are no hard deadlines to a release date, but a detailed milestone tracking all the issues that need to be resolved for v1.0 is available [here](https://github.com/nim-lang/Nim/milestone/2). + +## Beyond the Partnership +In addition to the sponsorship of Nim's ongoing core development there will be a "grants program for Nim". Inspired by Google's Summer of Code, developers will be hired to work on specific Nim-related projects. + +Examples for grants: + +* Add [Language Server Protocol](https://langserver.org/) support to nimsuggest, for better editor and IDE integration. +* Improve Nim's package manager, "Nimble", to support reproducible builds. +* Improve Nim's tooling so that the result of macro expansions becomes easier to look at. + +We look forward to working with Andreas and the team to push the development of Nim. + +For more information about Nimbus, join us on [Riot](https://chat.status.im/) or [Github](https://github.com/status-im/nimbus). + +You can learn more and get involved with Nim on [Github](https://github.com/nim-lang). + + + diff --git a/source/browserconfig.xml b/source/browserconfig.xml new file mode 100644 index 0000000..3b85dc3 --- /dev/null +++ b/source/browserconfig.xml @@ -0,0 +1,12 @@ + + + + + + + + + #ff9c00 + + + diff --git a/source/chat/index.md b/source/chat/index.md new file mode 100644 index 0000000..01c00f6 --- /dev/null +++ b/source/chat/index.md @@ -0,0 +1,9 @@ +title: Chat +layout: chat +--- + +

+ Join us at gitter.im/embark-framework/Lobby +

+ + diff --git a/source/docs/contributor_guide.md b/source/docs/contributor_guide.md new file mode 100644 index 0000000..f99e987 --- /dev/null +++ b/source/docs/contributor_guide.md @@ -0,0 +1,7 @@ +--- +id: contributor_guide +title: Contributor Guide +--- + + +# How To Get Involved In Research At Status \ No newline at end of file diff --git a/source/docs/nimbus.md b/source/docs/nimbus.md new file mode 100644 index 0000000..3f146e2 --- /dev/null +++ b/source/docs/nimbus.md @@ -0,0 +1,350 @@ +--- +id: nimbus +title: Nimbus +--- + + +## An Ethereum 2.0 Sharding Client +Draft 2018-05-22 + + +## OVERVIEW + +Nimbus aims to be a [sharding](https://github.com/ethereum/wiki/wiki/Sharding-FAQ) client implementation for the Ethereum Blockchain Application Platform. Because the largest deployment of Ethereum will potentially be on embedded systems, Nimbus will be designed to perform well on IoT and personal mobile devices, including older smartphones with resource-restricted hardware. The extensible, configurable, and modular design of Nimbus will make it production ready for Web 3.0 and will ensure that it can be supported and maintained across all goals of Ethereum 2.0. + + +## GOALS + + +1. Create an Ethereum implementation suitable for resource-restricted devices. +1. Create an implementation team for the [Applied Research Objectives](https://hackmd.io/s/HkLkj55yb#objectives-in-applied-research) of [Ethereum Research](http://ethereumresearch.org/) (aka Ethereum Asia Pacific Limited), with focus on the following: + 1. Proof of Stake (PoS) + 1. Sharding + 1. Stateless Clients + 1. LES2 + 1. eWASM +1. Close the gap between research modeling and production. +1. Pledge to participate in, help implement, and conform to the [Ethereum Improvement Proposal](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1.md). +1. Implement permissive licensing. +1. Focus on production-ready [Web 3.0](https://medium.com/@matteozago/why-the-web-3-0-matters-and-you-should-know-about-it-a5851d63c949) Stack ([Whisper](https://github.com/ethereum/wiki/wiki/Whisper), [PSS](https://github.com/nolash/psstalk/blob/master/README.md), and [Swarm](https://swarm-guide.readthedocs.io/en/latest/introduction.html)) and its ongoing research and development. +1. Focus on marketing and promotion to address community concerns on scalability and to bolster Ethereum's dominant mindshare. + + +## REQUIREMENTS + +[Nim](https://nim-lang.org/) is an efficient, general-purpose systems programming language with a Python-like syntax that compiles to C. Nim will allow us to implement Ethereum rapidly and to take advantage of the mature C-language tooling: in compilation of machine code, and in the analysis of static code. + +With Ethereum research currently modeled in Python, the end result of implementing in Nim should be code that: + +1. Enables us to easily bring research into production +1. Has a high degree of reasonability for researchers +1. Is performant in production + +The core contributors and Nim community have been very supportive and enthusiastic for the project. + + +## Development on Embedded Systems + +We believe that the largest successful deployment of Ethereum will reside on embedded systems: IoT devices and mobile personal devices, such as smartphones. Although Nimbus will support archival nodes, its first implementation will be as a light client, with focus on Proof of Stake and sharding. + +Existing implementations of Ethereum have focused on desktop computers and servers. These implementations have played a major role in the initial success of Ethereum, and they are suitable for full and archival nodes. However, their deployment onto embedded systems has been an afterthought. + +In addition, throughout the development of Status, we have found that the dominant Ethereum implementations, Geth and Parity, are unsuitable for our target platform unless they are profiled and optimised (in progress). + +During the deployment of Status among 40,000 alpha testers, we found that a significant portion (23.6%) of users were still running old mobile devices. In addition, recently discovered [Spectre vulnerabilities](https://en.wikipedia.org/wiki/Spectre_(security_vulnerability)) have led to an increase in the demand for open processors. For these reasons, we propose a self-imposed constraint and a requirement that Status perform well on the following: + + +1. 2014 [SoC](https://en.wikipedia.org/wiki/System_on_a_chip) architectures, such as the [Cortex-A53](https://developer.arm.com/products/processors/cortex-a/cortex-a53) (Samsung Note 4 & [Raspberry Pi 3](https://www.raspberrypi.org/products/raspberry-pi-3-model-b/)) and the Apple A8 (iPhone 6) +1. [MIPS](https://en.wikipedia.org/wiki/MIPS_architecture)-based architectures, such as the [Onion Omega2](https://onion.io/omega2/) +1. Open-source processors, such as [RISC-V](https://en.wikipedia.org/wiki/RISC-V) + +When the 2020 scalability goal is fully realised, this constraint will help ensure that Ethereum runs performantly on resource-restricted hardware that is at least 6 years old. + +## Extensible, Configurable, and Modular Design + +The application architecture should have modular abstractions for the following: + +1. Networking layer +1. Sub-protocols +1. Consensus +1. Privacy +1. Database +1. Virtual Machine + +In addition, the implementation must pass the [common tests for all Ethereum implementations](https://github.com/ethereum/tests). + +## Commitment to Ethereum Improvement Proposals (EIP) + +Nimbus is committed to open standards and to maintaining consensus with other Ethereum-compliant implementations. The development of Nimbus and the changes in its protocols will follow [the EIP process](https://github.com/ethereum/EIPs/). + +## User Experience + +Access to shards and mainchain state should be fast and responsive, the application binary should be lightweight in terms of the resources used, and the client should be dependable and robust against crashes. + +## Licensing: MIT, Apache v2.0 + +We propose that Nimbus be licensed under Apache 2.0 and MIT. A permissive licensing structure with patent protection would + +1. Ensure the compatibility with GPL 2.0 and LGPL 2.0 +1. Extend the reach of the Ethereum platform +1. Foster the highest degree of adoption by governments and enterprise + +One unsolved hurdle faced by Status is the [LGPLv3](https://opensource.org/licenses/LGPL-3.0) license, whose requirement for runtime linking is incompatible with major mobile app distribution channels, such as the App Store of Apple Inc. + +Numerous requests for a static-linking exception have gone unanswered. This has blocked the deployment of any legally sound, full Ethereum client on popular channels for distribution of mobile devices. LGPL also prevents the adoption of Ethereum on closed hardware platforms, such as XBox. Still, we remain optimistic this issue will be rectified. + +## Biweekly Development Reports, Technical Writing, and Promotion + +In addition to the implementation, Nimbus will have a biweekly process for reporting development-related updates. A technical writer will document implementation efforts and translate ongoing research discussions into articles easily understood by the community. + +Within the community at large, we will promote Ethereum as the leader of scalable public blockchains. + +## Bounty-Based Development + +To entice the community to accelerate the development, we will attach bounties to and **[publish](https://openbounty.status.im/app#/) **the tasks that can be self-contained and defined clearly. + +## TEAM + +In addition to a dedicated Nimbus team, Status as an organization will support development through our expertise in smart contracts, Ethereum and mobile development, and marketing and user experience research. + +### Alex Mandel + +Alex is a technical communicator with extensive experience in IT and biotechnology. He has honed his skills at several leading IT companies whose success is intimately tied to the quality of their documentation. Alex's passion is to present complex ideas with clarity, conciseness, and precision of the kind that inspires action. His interests include emerging, potentially disruptive technologies; he can't wait to see blockchain make the world a better place. + +### Eugene Kabanov + +Eugene has deep background and interest in systems programming, reverse engineering, development of high-load and high-performance networking services, and information security. He joined Nim community 3 years ago and has contributed to Nim networking, threading, and multiprocessing. + +### [Jacek Sieka](https://www.linkedin.com/in/sieka/) + +With a keen interest and background in peer-to-peer applications and compilers, Jacek joined Status as Head of Research, coming most recently from the high-frequency trading world. Fun hobby projects from the past include DC++ (a file sharing app), nlvm (an llvm-based Nim compiler) and more! + +### [Mamy Ratsimbazafy](https://www.linkedin.com/in/mamyratsimbazafy) + +Mamy joined Status as a Nim developer in the research team. After a career in leading American and French banks and non-profits, he decided that tech, blockchain and AI will eat the world. On the side, instead of mining he is teaching deep learning tricks to his GPU. + +### Ryan Lipscombe + +Fascinated by the transformative potential of blockchain and distributed systems, Ryan joined Status research as a Nim developer. His career spans from data science to embedded systems and has been part of the Nim community since 2015, working on database components and virtual machines for evolutionary systems. + + +### Yuriy Glukhov + +Yuriy has deep passion for new technologies and keen interest in many areas of IT. He was one of the first CTOs to successfully use Nim in a commercial project. + + +### [Zahary Karadjov](https://www.linkedin.com/in/zahary/) + +Zahary is member of the core compiler team of the Nim programming language. He joined the project 5 years ago, hoping that one day Nim will surpass C++ in usage and popularity. His career started as a game engine developer, where he learned how to push the modern hardware to its limits, but eventually he went on to become the CTO of a company shipping an IoT device, a SaaS platform for web publishers and even a defunct Chromium fork. + + +## MILESTONES + +Timelines are approximate and affected by research, implementation considerations, and revisions made while the team produces a detailed implementation timeline. + + +## Formation of the Team, and Detailed Project Implementation Timeline + + +### January - February 2018 + + +### Completed: + +1. Form the initial team +1. Define the project's scope, architecture, and implementation timelines + +### Goals: + + +1. Hire core contributors: + 1. Five (5) full-time core contributors + 1. Up to five (5) part-time core contributors + 1. One (1) Technical Program Manager + 1. One (1) Technical Writer + 1. Up to ten (10) full-time core contributors by 2019 +1. Create a detailed timeline for implementing the project as a deliverable + + +## Compatibility with Ethereum 1.0 + + +### January - November 2018 + +As an initial goal, we will focus on implementing all components required for interoperability with the Ethereum ecosystem. We will publish these components as independently reusable modules and libraries. + +However, before starting the implementation in Nim, we will develop an understanding of the existing implementations of Ethereum: [Go Ethereum](https://github.com/ethereum/go-ethereum/), [Pyethereum](https://github.com/ethereum/pyethereum), [Py-EVM](https://github.com/ethereum/py-evm), and [Parity](https://github.com/paritytech/parity). + +The code will consist of independently reusable libraries that have the same permissive license as that of Nimbus itself: + + + +1. [RLP encoding and decoding](https://github.com/status-im/nim-rlp) +1. [Handling of the state database and users' keyfiles](https://github.com/status-im/nim-eth-keyfile/blob/master/README.md) +1. Connecting to the Ethereum network +1. Ethereum Patricia Trees +1. [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md#introduction) sub-protocols +1. Ethereum [Ethash](https://github.com/ethereum/wiki/wiki/Ethash) function +1. Implementation of EVM + + +### Goals: + +1. Nimbus is able to + 1. Sync with the latest blockchain, from scratch + 1. Accurately execute the entire transaction history +1. The team is familiar with all codebases used to implement Ethereum. +1. The team understands the main themes from [ethresear.ch](https://ethresear.ch/) and actively participates in EIPs. + + +## Sharding Phase 1 + + +### July - November 2018 + +While implementing compatibility with Ethereum 1.0, we will gain early experience with the complete setup of sharding. As a result: + + +1. The client will implement the core features necessary for sharding Phase 1. +1. The team will actively participate in sharding-related EIPs. + + +### Goal: + +The architecture of Nimbus supports sharding nodes. + + +## Auditing of Beta and Security + + +### November 2018 - March 2019 + +An independent security partner will continuously perform a security audit on the Nimbus codebase. We will also adopt frequent reviews of code, testing with automated fuzzing frameworks, and other practices that enhance security. In addition, we will develop a Nim-optimized fuzzing framework and will release it for use by the community at large. + +### Goal: + +Deliver a security-audited, production-ready client. + +## Implementation of Whisper and PSS + +### July - November 2018 + +We will set and advertise the bounties as soon as the P2P layer gets implemented. The core team will start working on this in July, unless already completed. + +### Goals: + +1. Make Nimbus the leading platform for conducting research into the scalability aspects of Whisper and PSS. We consider this a key requirement for implementing a fully decentralised Status messaging platform within the Ethereum network. +1. Deliver easy-to-use APIs for conducting large-scale and small-scale experiments within the network. + +## Support for LES + +### July - November 2018 + +We will optimize the architecture of Nimbus for implementing the [LES protocol](https://github.com/ethereum/wiki/wiki/Light-client-protocol). We will also optimize all internal state-handling operations such that they work efficiently and asynchronously. This will enable on-demand fetching of data from the network. This will also ensure that Nimbus runs with a high degree of concurrency and that the client UI is responsive. + +### Goals: + +1. Enable a Light Mode switch in Nimbus. +1. Successfully operate Nimbus in a mobile environment, without relying on a proxy service. + +## Sharding Phase 2 + +### November 2018 - July 2019 + +We will focus on achieving compatibility with all other clients. In addition, we will implement an [eWASM](https://github.com/ewasm/design/blob/master/README.md) runtime and will add Nim as one of the languages that can target the new VM. + +### Goals: + +Implement the following in Nim: + +1. CLI tools and APIs for running Phase 2 nodes and for interacting with the Validator Manager Contract (VMC) +1. The development tools that will target the eWASM runtime environment + +## Casper Implementation + +### December 2018 - February 2019 + +The team will closely follow the development of [Casper](https://blockgeeks.com/guides/ethereum-casper/) and will try to achieve and maintain compatibility with the existing Casper deployments. + +## Implementation of Swarm + +### January - July 2019 + +We will set and advertise the bounties as soon as the P2P layer gets implemented. The core team will start working on this in January, unless already completed. + +### Goals: + +Implement the following: + +1. Ability to embed Nimbus into applications that deliver the complete Web 3.0 experience +1. Support for the [Ethereum Name Service](https://ens.domains/) +1. Support for a virtual file-system interface for accessing web content published on Swarm +1. Reusable APIs for publishing and obtaining content from Swarm + +## Sharding Phase 3 + +### March - August 2019 + +We will leverage our LES-optimized architecture to deliver a fully stateless client optimized for mobile devices. + +### Goals: + +Implement support for the following: + +1. Always-on operations on mobile devices, without disrupting the battery life or inducing significant bandwidth charges +1. Running stateless executor nodes in deployments of headless servers + +## Ongoing Improvements in Sharding + +### August - December 2019 + +### Goals: + +1. Become one of the leading production-ready sharding implementations in the Ethereum ecosystem. +1. Take active part in the effort to specify the new programming models required for cross-shard interactions. +1. Provide an ongoing research into the applicability and performance characteristics of all super-quadratic sharding designs in a mobile environment. + + +# ETYMOLOGY + +Nimbus, a reference to: + +* A different kind of "dark cloud" computing +* Spiritual symbolism of sanctity and holiness +* Nim, the language it will be written in +* A Bus in computing architecture + + +# Ideas Considered for Implementation + +1. Create [devp2p](https://github.com/ethereum/wiki/wiki/%C3%90%CE%9EVp2p-Wire-Protocol) and an abstraction to allow for [libp2p](https://github.com/Agorise/c-libp2p), [Node Discovery](https://github.com/ethereum/wiki/wiki/Node-discovery-protocol), [RLP encoding](https://github.com/ethereum/wiki/wiki/RLP), [Modified Patricia Merkle Tree](https://easythereentropy.wordpress.com/2014/06/04/understanding-the-ethereum-trie/), [bigint's](https://github.com/def-/nim-bigints), [keccak256](https://github.com/ethereum/eth-hash), and [secp256k1](https://en.bitcoin.it/wiki/Secp256k1). +1. Create an abstraction that would allow sub-protocols: ETH, [SHH](https://gist.github.com/gluk256/9812e59ed0481050350a11308ada4096), [PSS](https://gist.github.com/zelig/d52dab6a4509125f842bbd0dce1e9440), [Swarm](https://github.com/ethersphere/swarm), [LES](https://github.com/ethereum/wiki/wiki/Light-client-protocol), [Stateless Clients](https://nordicapis.com/defining-stateful-vs-stateless-web-services/), Sharding, [Plasma](https://plasma.io/), [State Channels](https://blog.stephantual.com/what-are-state-channels-32a81f7accab). For now, we can ignore all but LES and Sharding. +1. DB: Most implementations of Ethereum use [LevelDB](https://github.com/google/leveldb). Parity has a DB abstraction and uses [HashDB](https://github.com/NPS-DEEP/hashdb/wiki) and [RocksDB](https://rocksdb.org/docs/getting-started.html). +1. RocksDB is an interesting choice, because it solves the issues that have troubled leveldb. Rocksdb also has a [light version](https://github.com/facebook/rocksdb/blob/master/ROCKSDB_LITE.md) for mobile usage; it's in C++, which would be an issue only if we go for pure C. +1. [EVM](https://github.com/pirapira/awesome-ethereum-virtual-machine): basic VM, [eWASM](https://github.com/ewasm/design) ([Hera](https://github.com/ewasm/hera) is also in C++) +1. IPC/RPC abstraction, [external API methods](https://github.com/ethereum/wiki/wiki/JSON-RPC) that can be consumed by application bindings: react-native module, IPC, RPC HTTP server, or web sockets +1. Encryption library is a little unclear. [Libgcrypt](https://www.gnupg.org/software/libgcrypt/index.html) has everything we need but might be problematic from the standpoint of LGPL licensing. If we have an abstraction for Libgcrypt, we could use it now and swap it out later for something more permissive. +1. Alternatively, we could roll out our own library. However, implementing our own encryption would not be a great idea, and our version would have to be audited and tested. Suggestions are welcome. +1. Monitor [ethereum/py-evm](https://github.com/ethereum/py-evm/tree/sharding). Connect with Chang-Wu Chen, Hsiao-Wei Wang, and anyone else working on sharding. + + +# Resources + + + +1. [Awesome Ethereum Virtual Machine](https://github.com/pirapira/awesome-ethereum-virtual-machine) +1. [Detailed introduction to the sharding proposal](https://github.com/ethereum/sharding/blob/develop/docs/doc.md) +1. [Sharding FAQ](https://github.com/ethereum/wiki/wiki/Sharding-FAQ) +1. [Ethereum 2.0: A presentation by Vitalik Buterin at BeyondBlock Taipei 2017](https://www.youtube.com/watch?v=9RtSod8EXn4&feature=youtu.be&t=11493) +1. [The Stateless Client Concept](https://ethresear.ch/t/the-stateless-client-concept/172) +1. [A Modest Proposal for Ethereum 2.0: A presentation by Vitalik Buterin at devcon three](https://youtu.be/hAhUfCjjkXc) +1. [Python Implementation of the EVM](https://github.com/ethereum/py-evm/blob/master/README.md) +1. [Discussion about sharding](https://ethresear.ch/c/sharding) +1. [Discussion on Casper, scalability, abstraction and other low-level protocol research topics](https://gitter.im/ethereum/research) +1. [ethereum/py-evm](https://gitter.im/ethereum/py-evm) +1. [Ethereum Sharding: Overview and Finality](https://medium.com/@icebearhww/ethereum-sharding-and-finality-65248951f649) +1. [Sharding - Mind Map](https://www.mindomo.com/mindmap/sharding-d7cf8b6dee714d01a77388cb5d9d2a01) +1. [On Settlement Finality](https://blog.ethereum.org/2016/05/09/on-settlement-finality/) +1. [Casper contract and full POS](https://ethresear.ch/t/casper-contract-and-full-pos/136/2) +1. [Ethereum Casper 101](http://notes.eth.sg/MYEwhswJwMzAtADgCwEYBM9kAYBGJ4wBTETKdGZdXAVmRvUQDYg=?view#) +1. [ethersphere/swarm, Light mode of operation](https://github.com/ethersphere/swarm/wiki/Light-mode-of-operation) diff --git a/source/extensions/index.md b/source/extensions/index.md new file mode 100644 index 0000000..6ee1859 --- /dev/null +++ b/source/extensions/index.md @@ -0,0 +1,6 @@ +layout: plugins +title: Extensions +data: plugins +partial: plugin +comments: false +--- diff --git a/source/extensions/thumbnails/cryptokitty.jpg b/source/extensions/thumbnails/cryptokitty.jpg new file mode 100644 index 0000000..65cd185 Binary files /dev/null and b/source/extensions/thumbnails/cryptokitty.jpg differ diff --git a/source/extensions/thumbnails/pluto.jpg b/source/extensions/thumbnails/pluto.jpg new file mode 100644 index 0000000..75d32ce Binary files /dev/null and b/source/extensions/thumbnails/pluto.jpg differ diff --git a/source/extensions/thumbnails/status.png b/source/extensions/thumbnails/status.png new file mode 100644 index 0000000..4cd8623 Binary files /dev/null and b/source/extensions/thumbnails/status.png differ diff --git a/source/index.md b/source/index.md new file mode 100644 index 0000000..a435361 --- /dev/null +++ b/source/index.md @@ -0,0 +1,3 @@ +title: Status Docs +layout: index +--- diff --git a/source/robots.txt b/source/robots.txt new file mode 100644 index 0000000..7d329b1 --- /dev/null +++ b/source/robots.txt @@ -0,0 +1 @@ +User-agent: * diff --git a/source/templates/index.md b/source/templates/index.md new file mode 100644 index 0000000..268eb61 --- /dev/null +++ b/source/templates/index.md @@ -0,0 +1,6 @@ +layout: templates +title: Templates +data: templates +partial: template +comments: false +--- diff --git a/source/tutorials/extensions_tutorial_chat_command.md b/source/tutorials/extensions_tutorial_chat_command.md new file mode 100644 index 0000000..bddce52 --- /dev/null +++ b/source/tutorials/extensions_tutorial_chat_command.md @@ -0,0 +1,181 @@ +--- +id: extensions_tutorial_chat_command +title: Extension chat command tutorial +--- + +# Write a chat command + +One of the main use case for extensions is to add new chat commands. This tutorial will go step by step through the creation and deployment of a chat command allowing to send NFTs. + +## Add meta data + +First step is to create the skeleton extension with some relevant metadata: + +```clojure +{meta {:name "My command name" + :description "My command description" + :documentation "Some more details can go there"}} +``` + +Metadata will be displayed to the end user before installing an extension. + +## Define hook entry point (chat command) + +Hooks identify what part of status will be extended. Each hook has a unique identifier and a set of key/value elements specific to this hook. +An extension can implement several hooks. + +In this tutorial a chat command is created: it's specific id is `collectible` and the generic hook type for a chat command is `commands`. + +A `command` hook requires the following properties to be set: + +* scope +* preview and short-preview +* parameters + +### Scope + +Scope can be any combination of: + +* personal-chats +* group-chats +* public-chats + +Here we will demonstrate `personal-chats`. + +```clojure +{hooks/commands.collectible + {... + :scope #{:personal-chats}} ;; Could be #{:personal-chats :group-chats} +``` + +### Previews + +`Previews` are used to display the result of a command execution in a chat. + +`Short previews` will be displayed as last message in the chat item of the Home tab of Status. + +Both previews must point to definition of UI in [Hiccup syntax](https://github.com/weavejester/hiccup/wiki/Syntax) using a combination of views, queries and events supported by status host. + +More details can be found [here](https://status-im.github.io/pluto/docs/concepts/Anatomy.html). + +Previews receive data from status encapsulating the parameters provided by the end user and some relevant contextual information. Those can be accessed in a view using the `properties` reference. + +Our short preview definition: + +```clojure +{views/short-preview + (let [{{{symbol :symbol} :params} :content outgoing :outgoing} properties] + [view {:flex-direction :row + :align-items :flex-start} + [text (if outgoing "Sent " "Received ")] + [text symbol]])} +``` + +`properties` data is accessed using [destructuring](https://status-im.github.io/pluto/docs/concepts/View.html#destructuring). +`text` and `view` are view elements available for all hosts. +`if` is a block providing conditional logic. + +Our preview definition: + +```clojure +{views/preview + (let [{{{symbol :symbol token :token tx-hash :tx-hash} :params} :content outgoing :outgoing timestamp-str :timestamp-str} properties + collectible-token [get-collectible-token {:symbol symbol :token token}] + [view {:flex-direction :column + :align-items :flex-start} + [status/nft-token collectible-token] + [view {:color (if outgoing "#707caf" "#939ba1") + :margin-top 6 + :font-size 12 + :flex-direction :row} + [text "Sent at "] + [text timestamp-str]] + [status/send-status {:tx-hash tx-hash :outgoing outgoing}]])} +``` + +`status/nft-token` and `status/send-status` are view element specific to status. +`[status/get-collectible-token {:symbol symbol :token token}]` is a query giving access to details for a specific collectible. + +### Parameters + +The NFT chat command has 2 required parameters: the NFT type and the specific NFT you want to exchange. +Both will use Status UI components to provide a nice visual selection experience. + +A parameter is identified by its `id` and must define a `type` and a `placeholder` (any string). +In this tutorial `:text` and `:number` will be used. +`suggestions` can be optionally provided and must point to a `view`. + +```clojure +{hooks/commands.collectible + {... + :parameters [{:id :symbol + :type :text + :placeholder "Collectible symbol" + :suggestions status/asset-selector} + {:id :token + :type :number + :placeholder "Collectible token" + :suggestions status/token-selector}]}} +``` + +## Deploy + +Extensions are identified by a URI and can be loaded in status via a universal link. + +Currently only GitHub gist is supported as provider. + +A universal link pointing to an extension would then look like: `https://get.status.im/extension/gist@janherich/92747e730b2e115bcbe145114d024e66` + +## Use + +The simplest option is to scan a QR code pointing to your extension. You can also navigate to status user profile and open the `Extensions` item in the `Advanced` section. This option is only available in developer mode. + +Once loaded, details about an extension are available. An extension can then be installed. Once installed all hooks are `active`. Any extension can then be `deactivated` or re-`activated`. Associated hooks will then be removed/added from Status. + +You can now use your new extension from within a 1-1 chat! + +![collectibles in chat](/tutorials/thumbnails/collectible-chat-command.gif) + + +## Full extension code + + +```clojure +{meta {:name "Collectibles" + :description "Demonstration of collectible command" + :documentation "Some nice documentation"} + + views/preview + (let [{{{symbol :symbol token :token tx-hash :tx-hash} :params} :content outgoing :outgoing timestamp-str :timestamp-str} properties + collectible-token [get-collectible-token {:symbol symbol :token token}] + [view {:flex-direction :column + :align-items :flex-start} + [status/nft-token collectible-token] + [view {:color (if outgoing "#707caf" "#939ba1") + :margin-top 6 + :font-size 12 + :flex-direction :row} + [text "Sent at "] + [text timestamp-str]] + [status/send-status {:tx-hash tx-hash :outgoing outgoing}]]) + + views/short-preview + (let [{{{symbol :symbol} :params} :content outgoing :outgoing} properties] + [view {:flex-direction :row + :align-items :flex-start} + [text (if outgoing "Sent " "Received ")] + [text symbol]]) + +hooks/commands.collectible +{:scope #{:personal-chats} + :preview preview + :short-preview short-preview + :parameters [{:id :symbol + :type :text + :placeholder "Collectible symbol" + :suggestions status/asset-selector} + {:id :token + :type :number + :placeholder "Collectible token" + :suggestions status/token-selector}]}} +``` diff --git a/source/tutorials/index.md b/source/tutorials/index.md new file mode 100644 index 0000000..29430c1 --- /dev/null +++ b/source/tutorials/index.md @@ -0,0 +1,7 @@ +layout: tutorials +title: Tutorials +data: tutorials +partial: tutorial +comments: false +--- + diff --git a/source/tutorials/thumbnails/collectible-chat-command.gif b/source/tutorials/thumbnails/collectible-chat-command.gif new file mode 100644 index 0000000..0288731 Binary files /dev/null and b/source/tutorials/thumbnails/collectible-chat-command.gif differ diff --git a/source/wip/index.md b/source/wip/index.md new file mode 100644 index 0000000..7e2809b --- /dev/null +++ b/source/wip/index.md @@ -0,0 +1,6 @@ +layout: wip +title: WIP Features +data: wip +partial: wip +comments: false +--- diff --git a/source/wip/thumbnails/light_client.jpg b/source/wip/thumbnails/light_client.jpg new file mode 100644 index 0000000..7d0b47e Binary files /dev/null and b/source/wip/thumbnails/light_client.jpg differ diff --git a/source/wip/thumbnails/mail.jpg b/source/wip/thumbnails/mail.jpg new file mode 100644 index 0000000..3c7026d Binary files /dev/null and b/source/wip/thumbnails/mail.jpg differ diff --git a/source/wip/thumbnails/secrecy.jpg b/source/wip/thumbnails/secrecy.jpg new file mode 100644 index 0000000..92f2076 Binary files /dev/null and b/source/wip/thumbnails/secrecy.jpg differ diff --git a/themes/navy/languages/en.yml b/themes/navy/languages/en.yml new file mode 100644 index 0000000..ae303a9 --- /dev/null +++ b/themes/navy/languages/en.yml @@ -0,0 +1,26 @@ +menu: + docs: Docs + news: News + plugins: Plugins + themes: Themes + search: Search + chat: Chat + blog: Blog + tutorials: Tutorials + +index: + get_started: Get started + +page: + contents: Contents + back_to_top: Back to Top + improve: Improve this doc + prev: Prev + next: Next + last_updated: "Last updated: %s" + +sidebar: + docs: + Nimbus: Nimbus + introduction: What Is Nimbus? + contributor_guide: How Can I Contribute? diff --git a/themes/navy/layout/archive.swig b/themes/navy/layout/archive.swig new file mode 100644 index 0000000..e7a256a --- /dev/null +++ b/themes/navy/layout/archive.swig @@ -0,0 +1,19 @@ +{% set page.title = 'News' %} +
+
+
+ {% for post in page.posts %} + {% if loop.index == 1 %} + {{ partial('partial/post', {post: post}) }} + {% else %} + + {% endif %} + {% endfor %} +
+
+
\ No newline at end of file diff --git a/themes/navy/layout/chat.swig b/themes/navy/layout/chat.swig new file mode 100644 index 0000000..f175a78 --- /dev/null +++ b/themes/navy/layout/chat.swig @@ -0,0 +1,7 @@ +
+
+
+ {{ page.content }} +
+
+
diff --git a/themes/navy/layout/index.swig b/themes/navy/layout/index.swig new file mode 100644 index 0000000..8d4b990 --- /dev/null +++ b/themes/navy/layout/index.swig @@ -0,0 +1,190 @@ +
+
+
+
+ +
+ + +
+ +
+
+
+ +
+ +
+ Status Public Chat + + + +
+
+ +
+

Nimbus

+

Nimbus is a research project and a client implementation for Ethereum 2.0 designed to perform well on embedded systems and personal mobile devices, including older smartphones with resource-restricted hardware.

+ +
+ +
+ +
+ +
+

Future Plans

+

The Nimbus team kicked off research in March 2018 and has been steadily making progress on X,Y,Z. Below is a list of activities the team will be working on. +

+ See all the documentation here + + +
+
+

Work#1

+

Simple description of work.

+ +
+
+
+
+ +
+

Work#2

+

Simple description of work.

+
+
+
+
+
+

Work#3

+

Simple description of work.

+ +
+
+
+
+ +
+

Work#4

+

Simple description of work.

+
+
+
+
+ +
+
+

Contribute

+

Nimbus is an open source initiative in which anyone can get involved. There are a number of ways to contribute:

+
+
+
+

Join the Team

+

We are always looking for passionate and talented individuals to join our team.

+ See list of open roles + +

+
+

Work on Bounties

+

As an open source project, anyone anywhere can get involved and contribute code.

+ See open bounties + +

+
+

Join the Conversation

+

We are an open community and happy to answer your questions and help you learn more about Nimbus.

+ Join us in Status + +

+
+ +
+ +

Team

+

We’re a diverse group of researchers, engineers, and scientists with a passion for web3 technologies. We work primarily in Nim

+
+
+
+

Jacek Sieka

+

Engineer

+ +

+
+

Zahary Karadjov

+

Engineer

+ +

+
+

Yevhen Kabanov

+

Engineer

+ +

+
+

Mamy Ratsimbazafy

+

Engineer

+ +

+
+

Andreas Rumpf

+

Engineer

+ +

+
+

Yuriy Glukhov

+

Engineer

+ +

+
+

Dustin Brody

+

Engineer

+ +

+
+

Ryan Lipscombe

+

Engineer

+ +

+
+

Yuriy Glukhov

+

Engineer

+ +

+
+ +
+

Read our Blog

+

Check out the latest Nimbus news and blog posts:

+
+
+
+

Status Partners with the team behind the programming language Nim

+

To bolster research efforts for Nimbus – a sharding client for Ethereum – status.im have partnered with the core team developing the Nim programming language...

+ Read More + +

+
+

Ethereum Client Developers Conference Retrospective

+

A large part of what makes possible "magic internet money" occurs deep down where most people will never see it - in the actual clients. We hosted all the developers in Berlin. Find out what went down...

+ Read More + +

+
+

Introducing Nimbus, An Ethereum 2.0 Sharding Client

+

In order to advance the collective work on scaling Ethereum, we have been building our own client, called Nimbus, which has a particular focus on sharding and resource-restricted devices...

+ Read More + +

+
+
+
+ + \ No newline at end of file diff --git a/themes/navy/layout/layout.swig b/themes/navy/layout/layout.swig new file mode 100644 index 0000000..3b5df95 --- /dev/null +++ b/themes/navy/layout/layout.swig @@ -0,0 +1,16 @@ + + +{{ partial('partial/head') }} + +
+ {% if page.source != 'index.md' %} + {{ partial('partial/header') }} + {% endif %} + {{ body }} + {{ partial('partial/footer') }} +
+
+ {{ partial('partial/mobile_nav') }} + {{ partial('partial/after_footer') }} + + diff --git a/themes/navy/layout/page.swig b/themes/navy/layout/page.swig new file mode 100644 index 0000000..bb901ab --- /dev/null +++ b/themes/navy/layout/page.swig @@ -0,0 +1,33 @@ +
+
+
+
+
+
+
+
+

{{ page.title }}

+ +
+
+ {{ page_anchor(page.content) }} +
+
+ + {{ page_nav() }} +
+
+
+ +
+
+ {{ partial('partial/sidebar') }} +
+
+
diff --git a/themes/navy/layout/partial/after_footer.swig b/themes/navy/layout/partial/after_footer.swig new file mode 100644 index 0000000..1effe0a --- /dev/null +++ b/themes/navy/layout/partial/after_footer.swig @@ -0,0 +1,111 @@ + + + + +{{ js('js/lang_select') }} +{{ js('js/toc') }} +{{ js('js/mobile_nav') }} +{{ js('js/search') }} + +{% if page.layout === 'plugins' %} + + + + + +{{ js('js/plugins') }} + +{% endif %} + + + + + + +{% if config.algolia[page.lang] %} + + +{% endif %} diff --git a/themes/navy/layout/partial/carbonads.swig b/themes/navy/layout/partial/carbonads.swig new file mode 100644 index 0000000..4349890 --- /dev/null +++ b/themes/navy/layout/partial/carbonads.swig @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/navy/layout/partial/comment.swig b/themes/navy/layout/partial/comment.swig new file mode 100644 index 0000000..3c1cc10 --- /dev/null +++ b/themes/navy/layout/partial/comment.swig @@ -0,0 +1,18 @@ +{% if page.comments && config.disqus_shortname %} +
+
+
+ +{% endif %} \ No newline at end of file diff --git a/themes/navy/layout/partial/footer.swig b/themes/navy/layout/partial/footer.swig new file mode 100644 index 0000000..804556a --- /dev/null +++ b/themes/navy/layout/partial/footer.swig @@ -0,0 +1,35 @@ + + + diff --git a/themes/navy/layout/partial/head.swig b/themes/navy/layout/partial/head.swig new file mode 100644 index 0000000..77e948b --- /dev/null +++ b/themes/navy/layout/partial/head.swig @@ -0,0 +1,37 @@ + + + {% if page.title %}{{ page.title }} | {% endif %}{{ config.title }} + + + + + + {% if page.layout == 'page' or page.layout == 'index' %} + {% for lang in site.data.languages %} + + {% endfor %} + {% endif %} + + + + + + + + + + + + + + + {{ css('css/navy') }} + + + + + + {{ feed_tag('atom.xml') }} + + + diff --git a/themes/navy/layout/partial/header.swig b/themes/navy/layout/partial/header.swig new file mode 100644 index 0000000..a880a26 --- /dev/null +++ b/themes/navy/layout/partial/header.swig @@ -0,0 +1,35 @@ + diff --git a/themes/navy/layout/partial/mobile_nav.swig b/themes/navy/layout/partial/mobile_nav.swig new file mode 100644 index 0000000..22fac03 --- /dev/null +++ b/themes/navy/layout/partial/mobile_nav.swig @@ -0,0 +1,21 @@ + \ No newline at end of file diff --git a/themes/navy/layout/partial/plugin.swig b/themes/navy/layout/partial/plugin.swig new file mode 100644 index 0000000..394d3b7 --- /dev/null +++ b/themes/navy/layout/partial/plugin.swig @@ -0,0 +1,10 @@ +
  • + + {{ plugin.name }} +

    {{ plugin.description }}

    +
    + {% for tag in plugin.tags %} + {{ tag }} + {% endfor %} +
    +
  • diff --git a/themes/navy/layout/partial/post.swig b/themes/navy/layout/partial/post.swig new file mode 100644 index 0000000..ace5b9f --- /dev/null +++ b/themes/navy/layout/partial/post.swig @@ -0,0 +1,16 @@ +
    +
    + {% if is_post() %} +

    {{ post.title }}

    + {% else %} +

    + {{ post.title }} +

    + {% endif %} + +
    +
    + {{ page_anchor(post.content) }} +
    + {{ partial('partial/comment') }} +
    diff --git a/themes/navy/layout/partial/share.swig b/themes/navy/layout/partial/share.swig new file mode 100644 index 0000000..9dd0a97 --- /dev/null +++ b/themes/navy/layout/partial/share.swig @@ -0,0 +1,10 @@ + +Star + +Fork + +Follow @ethstatus + + + + diff --git a/themes/navy/layout/partial/sidebar.swig b/themes/navy/layout/partial/sidebar.swig new file mode 100644 index 0000000..a46f4af --- /dev/null +++ b/themes/navy/layout/partial/sidebar.swig @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/themes/navy/layout/partial/template.swig b/themes/navy/layout/partial/template.swig new file mode 100644 index 0000000..0732001 --- /dev/null +++ b/themes/navy/layout/partial/template.swig @@ -0,0 +1,9 @@ +
  • + {{ template.name }} +

    {{ template.description }}

    +
    + {% for tag in template.tags %} + {{ tag }} + {% endfor %} +
    +
  • diff --git a/themes/navy/layout/partial/theme.swig b/themes/navy/layout/partial/theme.swig new file mode 100644 index 0000000..6ca98d1 --- /dev/null +++ b/themes/navy/layout/partial/theme.swig @@ -0,0 +1,18 @@ +
  • +
    + + {{ plugin.name }} + {% if plugin.preview %} + + {% endif %} +
    + {{ plugin.name }} +

    {{ plugin.description }}

    +
    + {% for tag in plugin.tags %} + {{ tag }} + {% endfor %} +
    +
  • \ No newline at end of file diff --git a/themes/navy/layout/partial/tutorial.swig b/themes/navy/layout/partial/tutorial.swig new file mode 100644 index 0000000..75308de --- /dev/null +++ b/themes/navy/layout/partial/tutorial.swig @@ -0,0 +1,9 @@ +
  • + {{ tutorial.name }} +

    {{ tutorial.description }}

    +
    + {% for tag in tutorial.tags %} + {{ tag }} + {% endfor %} +
    +
  • diff --git a/themes/navy/layout/partial/wip.swig b/themes/navy/layout/partial/wip.swig new file mode 100644 index 0000000..ef60064 --- /dev/null +++ b/themes/navy/layout/partial/wip.swig @@ -0,0 +1,10 @@ +
  • + + {{ wip.name }} +

    {{ wip.description }}

    +
    + {% for tag in wip.tags %} + {{ tag }} + {% endfor %} +
    +
  • diff --git a/themes/navy/layout/plugins.swig b/themes/navy/layout/plugins.swig new file mode 100644 index 0000000..a2bd950 --- /dev/null +++ b/themes/navy/layout/plugins.swig @@ -0,0 +1,14 @@ +
    +
    +
    +
    +

    {{ page.title }}

    +
    +
      + {% for plugin in site.data[page.data] %} + {{ partial('partial/' + page.partial, {plugin: plugin}) }} + {% endfor %} +
    +
    +
    +
    diff --git a/themes/navy/layout/post.swig b/themes/navy/layout/post.swig new file mode 100644 index 0000000..a2c545a --- /dev/null +++ b/themes/navy/layout/post.swig @@ -0,0 +1,7 @@ +
    +
    +
    + {{ partial('partial/post', {post: page}) }} +
    +
    +
    \ No newline at end of file diff --git a/themes/navy/layout/templates.swig b/themes/navy/layout/templates.swig new file mode 100644 index 0000000..f3b8cf1 --- /dev/null +++ b/themes/navy/layout/templates.swig @@ -0,0 +1,14 @@ +
    +
    +
    +
    +

    {{ page.title }}

    +
    +
      + {% for template in _.sortBy(site.data[page.data], 'name') %} + {{ partial('partial/' + page.partial, {template: template}) }} + {% endfor %} +
    +
    +
    +
    diff --git a/themes/navy/layout/tutorial.swig b/themes/navy/layout/tutorial.swig new file mode 100644 index 0000000..7e97066 --- /dev/null +++ b/themes/navy/layout/tutorial.swig @@ -0,0 +1,33 @@ +
    +
    +
    +
    +
    +
    +
    +
    +

    {{ page.title }}

    +
    +
    + {{ page_anchor(page.content) }} +
    +
    + + {{ page_nav() }} +
    +
    +
    + +
    +
    + {{ partial('partial/sidebar') }} +
    +
    +
    + diff --git a/themes/navy/layout/tutorials.swig b/themes/navy/layout/tutorials.swig new file mode 100644 index 0000000..59eb1cb --- /dev/null +++ b/themes/navy/layout/tutorials.swig @@ -0,0 +1,14 @@ +
    +
    +
    +
    +

    {{ page.title }}

    +
    +
      + {% for tutorial in _.sortBy(site.data[page.data], 'name') %} + {{ partial('partial/' + page.partial, {tutorial: tutorial}) }} + {% endfor %} +
    +
    +
    +
    diff --git a/themes/navy/layout/wip.swig b/themes/navy/layout/wip.swig new file mode 100644 index 0000000..6290eed --- /dev/null +++ b/themes/navy/layout/wip.swig @@ -0,0 +1,14 @@ +
    +
    +
    +
    +

    {{ page.title }}

    +
    +
      + {% for wip in site.data[page.data] %} + {{ partial('partial/' + page.partial, {wip: wip}) }} + {% endfor %} +
    +
    +
    +
    diff --git a/themes/navy/source/css/_partial/archive.styl b/themes/navy/source/css/_partial/archive.styl new file mode 100644 index 0000000..4c4d7ca --- /dev/null +++ b/themes/navy/source/css/_partial/archive.styl @@ -0,0 +1,24 @@ +.archive-post + padding: 1em 0 + border-top: 1px solid color-border + &:last-child + padding-bottom: 40px + +.archive-post-link + clearfix() + display: block + color: color-default + text-decoration: none + line-height: line-height + &:hover + color: color-link-hover + +.archive-post-title + font-family: font-title + float: left + font-weight: bold + +.archive-post-date + color: color-gray + float: right + font-size: 0.9em \ No newline at end of file diff --git a/themes/navy/source/css/_partial/base.styl b/themes/navy/source/css/_partial/base.styl new file mode 100644 index 0000000..cb38b76 --- /dev/null +++ b/themes/navy/source/css/_partial/base.styl @@ -0,0 +1,52 @@ +global-reset() + +html + box-sizing: border-box + +*, *:before, *:after + box-sizing: inherit + +button +input[type="reset"] +input[type="button"] +input[type="submit"] + &::-moz-focus-inner + padding: 0 + margin: 0 + border: 0 + +input, button, select + margin: 0 + padding: 0 + border: 0 + +html, body + @media screen + height: 100% + // overflow: hidden + +body + background: color-navy + font-size: font-size + font-family: font-sans + color: color-default + text-rendering: optimizeLegibility + -webkit-font-smoothing: antialiased + -moz-osx-font-smoothing: grayscale + overflow-x: hidden + +.wrapper + clearfix() + @media screen + max-width: max-width + margin: 0 auto + +.inner + clearfix() + @media screen + padding: 0 gutter-width + +#content-wrap + background: color-background-light + border-bottom: 1px solid darken(color-navy, 5%) + margin: -1px 0 diff --git a/themes/navy/source/css/_partial/carbonads.styl b/themes/navy/source/css/_partial/carbonads.styl new file mode 100644 index 0000000..503a2da --- /dev/null +++ b/themes/navy/source/css/_partial/carbonads.styl @@ -0,0 +1,32 @@ +#carbonads + display: block + overflow: hidden + margin-top: 40px + max-width: 130px + text-align: left + font-size: 13px + line-height: 1.5 + a + color: inherit + text-decoration: none + &:hover + color: inherit + span + display: block + overflow: hidden + +.carbon-img + display: block + margin: 0 auto 8px + line-height: 1 + +.carbon-text + display: block + margin-bottom: 8px + +.carbon-poweredby + display: block + text-transform: uppercase + letter-spacing: 1px + font-size: 9px + line-height: 1 \ No newline at end of file diff --git a/themes/navy/source/css/_partial/footer.styl b/themes/navy/source/css/_partial/footer.styl new file mode 100644 index 0000000..33b879c --- /dev/null +++ b/themes/navy/source/css/_partial/footer.styl @@ -0,0 +1,41 @@ +#footer + clearfix() + padding: 40px 0 + color: rgba(255, 255, 255, 0.6) + font-family: font-title + position: relative + background: color-navy + text-align: center + @media mq-normal + text-align: left + @media print + display: none + a + color: inherit + text-decoration: none + transition: 0.2s + &:hover + color: #fff + +#footer-copyright + line-height: 1.4 + @media mq-normal + float: left + a + font-weight: bold + +#footer-links + margin-top: 1em + @media mq-normal + float: right + margin-top: 0 + +.footer-link + font-size: 30px + margin-left: 20px + &:first-child + margin-left: 0 + +.download + color: #fff + text-decoration: none \ No newline at end of file diff --git a/themes/navy/source/css/_partial/header.styl b/themes/navy/source/css/_partial/header.styl new file mode 100644 index 0000000..7210bc3 --- /dev/null +++ b/themes/navy/source/css/_partial/header.styl @@ -0,0 +1,155 @@ +header-padding-normal = 10px +header-padding-max = 30px +logo-size = 50px + +#header + position: relative + padding: header-padding-normal 0 + @media print + display: none + +#header-inner + display: flex + flex-flow: row nowrap + align-items: center + @media mq-mobile + justify-content: center + +#logo-wrap + flex: 0 logo-size + margin-top: 19px + +#logo + hide-text() + display: block + width: 40px; + height: 40px; + background-image: url(../img/status_logo.svg); + text-decoration: none; + margin: -20px 0 0 30px; + background-color: rgba(0,0,0,0.1); + border-radius: 50%; + background-size: 22px; + background-position: center; + background-repeat: no-repeat; + +#main-nav + display: none + flex: 1 auto + padding-left: 20px + @media mq-normal + display: block + +.main-nav-link + color: color-main-link + text-decoration: none + line-height: logo-size + opacity: 1.0 + transition: 0.2s + font-family: font-sans + font-size: 15px + font-weight: bold; + display: inline-block + padding: 0 15px + &:hover + opacity: 1 + color: color-link-hover + +#search-input-wrap + display: none + height: 40px + width: 180px + background-color: #ff9c00 + border-radius: 22px + padding: 0 12px + align-items: center + transition: 0.2s + &.on + display: flex + @media mq-mobile + width: 40px + cursor: pointer + &.standalone + position: absolute + right: 20px + &.active + width: 180px + background-color: color-background-light + +#search-input-icon + color: rgba(255, 255, 255, 1) + height: 24px + width: 24px + margin: 0 2px 0 0 + display: inline-block + opacity: 1 + @media mq-mobile + height: auto; + +#search-input-wrap.active #search-input-icon + color: color-navy + +#search-input-wrap.active #search-input + color: color-navy + +#search-input + background: none + width: 126px + height: 24px + font-size: 15px + color: color-main-link + outline: none + -webkit-appearance: none + @media mq-mobile + display: none + +#search-input-wrap.active #search-input + display: inline; + +#search-input::-webkit-input-placeholder { + color:rgba(255, 255, 255, .4) +} + +#search-input::-moz-placeholder { + color:rgba(255, 255, 255, .4) +} + +#search-input:-ms-input-placeholder { + color:rgba(255, 255, 255, .4) +} + +#search-input:-moz-placeholder { + color:rgba(255, 255, 255, .4) +} + +#search-input-wrap .algolia-autocomplete .ds-dropdown-menu + @media (max-width: 560px) + min-width: 400px + @media (max-width: 470px) + min-width: 300px + +#lang-select-wrap + display: none + position: relative + @media mq-normal + display: block + +#lang-select-label + color: color-main-link + opacity: 0.7 + font-family: font-title + line-height: logo-size + span + padding-left: 8px + i + opacity: 0.7 + +#lang-select + opacity: 0 + position: absolute + top: 0 + left: 0 + width: 100% + height: 100% + -webkit-appearance: menulist-button + font-size: inherit diff --git a/themes/navy/source/css/_partial/highlight.styl b/themes/navy/source/css/_partial/highlight.styl new file mode 100644 index 0000000..5352d40 --- /dev/null +++ b/themes/navy/source/css/_partial/highlight.styl @@ -0,0 +1,105 @@ +// https://github.com/chriskempson/tomorrow-theme +highlight-background = #fff +highlight-current-line = #efefef +highlight-selection = #d6d6d6 +highlight-foreground = #4d4d4c +highlight-comment = #8e908c +highlight-red = #c82829 +highlight-orange = #f5871f +highlight-yellow = #eab700 +highlight-green = #718c00 +highlight-aqua = #3e999f +highlight-blue = #4271ae +highlight-purple = #8959a8 + +pre, code + font-family: font-mono + color: highlight-foreground + background: #eee + font-size: 0.95em + +code + padding: 0 5px + +pre + padding: 10px 15px + line-height: 22px + code + border: none + display: block + padding: 0 + +.highlight + background: #eee + padding: 10px 15px + color: highlight-foreground + overflow: auto + margin: 0 + table + margin: 0 !important + border: 0 + th, td + padding: 0 + figcaption + clearfix() + margin: -5px 0 5px + font-size: 0.9em + color: color-gray + a + float: right + pre + padding: 0 + border: none + background: none + .line + height: 22px + +pre + .comment + .title + color: highlight-comment + .variable + .attribute + .tag + .regexp + .ruby .constant + .xml .tag .title + .xml .pi + .xml .doctype + .html .doctype + .css .id + .css .class + .css .pseudo + color: highlight-red + .number + .preprocessor + .built_in + .literal + .params + .constant + color: highlight-orange + .class + .ruby .class .title + .css .rules .attribute + color: highlight-green + .string + .value + .inheritance + .header + .ruby .symbol + .xml .cdata + color: highlight-green + .css .hexcolor + color: highlight-aqua + .function + .python .decorator + .python .title + .ruby .function .title + .ruby .title .keyword + .perl .sub + .javascript .title + .coffeescript .title + color: highlight-blue + .keyword + .javascript .function + color: highlight-purple \ No newline at end of file diff --git a/themes/navy/source/css/_partial/index.styl b/themes/navy/source/css/_partial/index.styl new file mode 100644 index 0000000..3ba58b4 --- /dev/null +++ b/themes/navy/source/css/_partial/index.styl @@ -0,0 +1,125 @@ +#banner + color: rgba(255, 255, 255, 1.0) + text-align: center + +#banner-title + padding-top: 20px + font-size: 40px + line-height: 1.15 + font-weight: 300 + font-family: font-title + @media mq-normal + padding-top: 100px + font-size: 50px + +#banner-start + text-align: center + padding: 40px 0 + @media mq-normal + padding: 60px 0 + font-size: 18px + +#banner-start-command + background: lighten(color-navy, 10%) + font-family: font-mono + display: inline-block + padding: 15px 20px + &:before + content: "$" + opacity: 0.5 + padding-right: 10px + +#banner-start-link + color: #fff + background: color-link + display: inline-block + padding: 15px + text-decoration: none + transition: 0.2s + &:hover + background: color-link-hover + +#banner-share + display: none + padding-bottom: 60px + @media mq-normal + display: block + +#intro-feature-list + padding-top: 20px + display: flex + flex-flow: column + @media mq-normal + flex-flow: row wrap + +.intro-feature-wrap + padding-top: 20px + @media mq-normal + flex: 0 0 50% + padding-top: 50px + +.intro-feature + position: relative + text-align: center + @media mq-normal + text-align: left + padding-left: 70px + +.intro-feature-icon + color: color-link + font-size: 36px + padding-bottom: 26px + text-align: center + @media mq-normal + position: absolute + top: 0 + left: 20px + font-size: 24px + width: @font-size + +.intro-feature-title + color: color-link + font-family: font-title + font-size: 24px + +.intro-feature-desc + margin: line-height 0 + line-height: line-height + +#intro-cmd-wrap + max-width: 700px + background: #eee + padding: 15px 0 + margin: 25px gutter-width * -1 0 + @media mq-normal + margin: 50px auto 0 + +.intro-cmd-item + font-size: 16px + font-family: font-mono + line-height: 2 + padding: 0 30px + &:before + content: "$" + color: color-link + padding-right: 15px + +#intro-get-started-wrap + text-align: center + +#intro-get-started-link + font-size: 18px + font-family: font-title + display: inline-block + color: color-link + text-decoration: none + margin: 40px 0 + border: 3px solid + border-color: lighten(color-link, 20%) + padding: 12px 24px + position: relative + transition: 0.2s + &:hover + background: @border-color + color: #fff + diff --git a/themes/navy/source/css/_partial/main.styl b/themes/navy/source/css/_partial/main.styl new file mode 100644 index 0000000..0aa1030 --- /dev/null +++ b/themes/navy/source/css/_partial/main.styl @@ -0,0 +1,1465 @@ +@import url("https://fonts.googleapis.com/css?family=Roboto+Mono"); +html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, a, abbr, acronym, address, big, cite, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + vertical-align: baseline; +} + +article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { + display: block; +} + +body { + line-height: 1; +} + +ol, ul { + list-style: none; +} + +blockquote, q { + quotes: none; +} + +blockquote:before, blockquote:after { + content: ""; + content: none; +} + +q:before, q:after { + content: ""; + content: none; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +div { + box-sizing: border-box; +} + +/* ---------------------------------------------------------------------------------------------------- + +Super Form Reset + +A couple of things to watch out for: + +- IE8: If a text input doesn't have padding on all sides or none the text won't be centered. +- The default border sizes on text inputs in all UAs seem to be slightly different. You're better off using custom borders. +- You NEED to set the font-size and family on all form elements +- Search inputs need to have their appearance reset and the box-sizing set to content-box to match other UAs +- You can style the upload button in webkit using ::-webkit-file-upload-button +- ::-webkit-file-upload-button selectors can't be used in the same selector as normal ones. FF and IE freak out. +- IE: You don't need to fake inline-block with labels and form controls in IE. They function as inline-block. +- By turning off ::-webkit-search-decoration, it removes the extra whitespace on the left on search inputs + +----------------------------------------------------------------------------------------------------*/ +input, +label, +select, +button, +textarea { + margin: 0; + border: 0; + padding: 0; + display: inline-block; + vertical-align: middle; + white-space: normal; + background: none; + line-height: 1; + /* Browsers have different default form fonts */ + font-size: 13px; + font-family: Arial; +} + +/* Remove the stupid outer glow in Webkit */ +input:focus { + outline: 0; +} + +/* Box Sizing Reset +-----------------------------------------------*/ +/* All of our custom controls should be what we expect them to be */ +input, +textarea { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +/* These elements are usually rendered a certain way by the browser */ +button, +input[type=reset], +input[type=button], +input[type=submit], +input[type=checkbox], +input[type=radio], +select { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* Text Inputs +-----------------------------------------------*/ +/* Button Controls +-----------------------------------------------*/ +input[type=checkbox], +input[type=radio] { + width: 13px; + height: 13px; +} + +/* File Uploads +-----------------------------------------------*/ +/* Search Input +-----------------------------------------------*/ +/* Make webkit render the search input like a normal text field */ +input[type=search] { + -webkit-appearance: textfield; + -webkit-box-sizing: content-box; +} + +/* Turn off the recent search for webkit. It adds about 15px padding on the left */ +::-webkit-search-decoration { + display: none; +} + +/* Buttons +-----------------------------------------------*/ +button, +input[type="reset"], +input[type="button"], +input[type="submit"] { + /* Fix IE7 display bug */ + overflow: visible; + width: auto; +} + +.home-wrap, .pre-footer + .button, .community a.button + width: auto + +/* IE8 and FF freak out if this rule is within another selector */ +::-webkit-file-upload-button { + padding: 0; + border: 0; + background: none; +} + +/* Textarea +-----------------------------------------------*/ +textarea { + /* Move the label to the top */ + vertical-align: top; + /* Turn off scroll bars in IE unless needed */ + overflow: auto; +} + +/* Selects +-----------------------------------------------*/ +select[multiple] { + /* Move the label to the top */ + vertical-align: top; +} + +@font-face { + font-family: PostGrotesk-Medium; + src: url(../fonts/PostGrotesk-Medium.eot); + src: url(../fonts/PostGrotesk-Medium.eot?#iefix) format("embedded-opentype"), url(../fonts/PostGrotesk-Medium.woff) format("woff"), url(../fonts/PostGrotesk-Medium.svg#PostGrotesk-Medium) format("svg"); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: PostGrotesk-Book; + src: url(../fonts/PostGrotesk-Book.eot); + src: url(../fonts/PostGrotesk-Book.eot?#iefix) format("embedded-opentype"), url(../fonts/PostGrotesk-Book.woff) format("woff"), url(../fonts/PostGrotesk-Book.svg#PostGrotesk-Book) format("svg"); + font-weight: 400; + font-style: normal; +} + +.header { + position: absolute; + display: flex; + justify-content: space-between; + width: 1024px; + height: 56px; + left: 50%; + top: 0; + margin: 24px 0 0 -512px; +} + +.header-left { + display: flex; + align-items: center; +} + +.logo-wrap { + display: block; + width: 116px; + height: 26px; + position: relative; +} + +.logo { + display: block; + width: 40px; + height: 40px; + background-image: url(../img/status_logo.svg); + text-decoration: none; + margin: -4px 0 0 30px; + background-color: rgba(0,0,0,0.1); + border-radius: 50%; + background-size: 22px; + background-position: center; + background-repeat: no-repeat; +} + +.logo-sign { + display: block; + position: absolute; + font-size: 15px; + color: rgba(255, 255, 255, 0.6); + bottom: -28px; + text-decoration: none; +} + +.logo-sign:hover, .by-status:hover { + color: white; +} + +.main-nav { + display: flex; + align-items: center; + margin-left: 32px; +} + +.main-nav li { + margin: 16px; +} + +.main-nav li:first-child { + margin-left: 0; +} + +.main-nav li:last-child { + margin-right: 0; +} + +.main-nav a { + color: #FFFFFF; + text-decoration: none; + font-weight: bold; +} + +.main-nav a:hover { + opacity: .7; +} + +.secondary-nav { + display: flex; + align-items: center; + margin-left: 32px; +} + +.second-nav-links + display: inherit + @media mq-mobile + display: none + +.secondary-nav a { + color: #FFFFFF; + text-decoration: none; +} + +.secondary-nav a:hover { + opacity: .7; +} + +.secondary-nav span.social-link a:hover { + opacity: 1; +} + +.secondary-nav span.social-link { + margin: 8px; +} + +.secondary-nav span.social-link a { + display: block; + width: 40px; + height: 40px; + background-color: rgba(0, 0, 0, 0.1); + border-radius: 50%; + background-position: center; + background-repeat: no-repeat; +} + +.secondary-nav span.social-link a:hover { + background-color: rgba(0, 0, 0, 0.2); +} + +.secondary-nav span.social-link.social-link--twitter a { + background-image: url(../img/icon-twitter.svg); +} + +.secondary-nav span.social-link.social-link--github a { + background-image: url(../img/icon-github.svg); +} + +.secondary-nav span.social-link.social-link--gitter a { + background-image: url(../img/icon-gitter.svg); +} + +.secondary-nav span:first-child { + margin-left: 0; +} + +.secondary-nav span:last-child { + margin-right: 0; +} + +@media (max-width: 1072px) { + .header { + width: 100%; + left: 0; + top: 0; + margin: 24px 0 0 0; + padding: 0 24px; + } +} + +@media (max-width: 710px) { + .header { + margin-top: 8px; + padding: 0 16px; + } + + .logo-wrap { + width: 91px; + height: 21px; + } + + .logo { + width: 91px; + height: 21px; + background-size: 91px; + } + + .main-nav { + display: none; + } + + .secondary-nav li { + margin-right: 12px; + } + + .secondary-nav li.social-link { + margin-left: 2px; + } +} + +.home-cover { + position: fixed; + left: 0; + top: 0; + right: 0; + bottom: 0; + display: flex; + align-items: center; + justify-content: center; + background-color: #ff9c00; + background-image: url("../img/head_bg.png"); + height: 550px; +} + +.intro { + display: flex; + align-items: center; + flex-direction: column; + padding: 0 0 32px 0; + color: #FFFFFF; + text-align: center; + width: 540px; +} + +.intro-buttons { + display: flex; +} + +.intro .button { + margin: 0 6px; + width: 194px; + padding: 10px 0 8px; +} + +.button.button--main { + background-color: rgba(255, 205, 127, 0.4); + color: #ffffff; +} + +.button.button--main:hover { + background-color: rgba(255, 255, 255, 0.9); + color: #363763; +} + +.button.button--secondary { + background-color: rgba(43, 59, 71, 0.124066) + color: gba(255, 255, 255, 1); +} + +.button.button--secondary:hover { + background-color: rgba(255, 255, 255, 0.2); + color: gba(255, 255, 255, 1); +} + +.intro h1 { + font-family: "PostGrotesk-Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; + font-size: 36px; + padding: 0 0 12px 0; +} + +.intro p { + font-family: "PostGrotesk-Book", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 25px; + opacity: .6; + padding: 0 0 16px 0; +} + +.command-wrap { + width: 400px; + margin: 24px auto 0; +} + +.command { + display: flex; + align-items: center; + justify-content: center; + height: 56px; + border-radius: 28px; + background-color: #FFFFFF; + font-family: "Roboto Mono", monospace; + color: black; + font-size: 21px; + text-align: center; + + font-weight: bold; + color: white; + background-color: #232323; +} + +.command-description { + text-align: center; + color: #777f86; + padding: 8px 0 0 0; +} + +@media (max-width: 710px) { + .intro { + width: 100%; + margin: 0; + padding: 128px 24px 0; + height: 400px; + } + + .intro h1 { + font-size: 22px; + line-height: 26px; + padding: 0 0 4px 0; + } + + .intro-buttons { + flex-direction: column; + } + + .intro .button { + width: 220px; + margin: 0 0 12px 0; + } + + .home-cover { + height: 400px; + } + + .command-wrap { + width: 100%; + margin: 0; + border-radius: 0; + } + + .command { + border-radius: 0; + font-size: 18px; + } +} + +.features { + width: 1024px; + margin: 0 auto; +} + +.features-wrap { + margin: 0 0 0 0; + display: flex; + flex-wrap: wrap; +} + +.features-wrap-2 { + margin: 60px 0; + display: flex; + flex-wrap: wrap; +} + +.features-item { + display: flex; + width: 100%; + position: relative; + margin: 0 0 16px 0; + width: 100%; + height: 156px; + border-color: #E0E3E6; + border-style: solid; +} + +.features-item:last-child { + margin-bottom: 0; +} + +.features-item-inner { + display: flex; + position: relative; + width: 100%; + justify-content: space-between; + background-color: #FFFFFF; + border-radius: 12px; + padding: 22px 24px 24px 24px; + z-index: 200; +} + +.features-item-top { + width: 620px; +} + +.features-item h2 { + font-size: 20px; + line-height: 24px; + font-family: "PostGrotesk-Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; + padding: 0 0 8px 0; + transition: color .2s ease; +} + +.features-item p { + font-family: "PostGrotesk-Book", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; + color: #777f86; + font-size: 16px; + line-height: 24px; + padding: 0 0 8px 0; +} + +.features-item p:last-child { + padding: 0; +} + +.features-button-wrap { + display: flex; + align-items: center; +} + +.button--features { + width: 200px; + text-align: center; +} + +.button.button--features { + color: #363763; +} + +@media (max-width: 1072px) { + .features { + width: 100%; + margin: 0 auto; + padding: 0 12px; + } + + .features-item { + margin: 0 0 12px 0; + height: auto; + } + + .features-item-top { + width: auto; + } + + .features-item-inner { + flex-direction: column; + justify-content: flex-start; + align-items: flex-start; + } + + .button.button--features { + margin: 16px 0 0 0; + width: auto; + } +} + +.email-form { + width: 460px; + margin: 0 0 70px 0; + border-radius: 8px; +} + +.email-form .hbspt-form { + width: 460px; +} + +.email-form .hbspt-form form { + display: flex; + width: 460px; + position: relative; +} + +.email-form .hbspt-form .hs-error-msgs { + color: rgba(255, 255, 255, 0.5); + line-height: 14px; + position: absolute; + transform: translate3d(0, 10px, 0); + transition: transform .2s ease, opacity .2s ease; +} + +.email-form .hbspt-form .hs-error-msgs li { + text-align: left; +} + +.email-form .hbspt-form .hs-error-msgs li label { + font-size: 14px; + font-family: 'PostGrotesk-Book', sans-serif; +} + +.email-form .hbspt-form .hs_error_rollup { + display: none; +} + +.email-form .hbspt-form .submitted-message { + padding: 12px; + border-radius: 22px; + background-color: rgba(0, 0, 0, 0.2); + color: white; +} + +.email-form .hbspt-form .hs_email { + width: 300px; + box-sizing: border-box; +} + +.email-form .hbspt-form .hs_email > label { + display: none; +} + +.email-form .hbspt-form .hs_email input[type="email"]::-webkit-input-placeholder, .email-form .hbspt-form .hs_email input[type="email"]::-moz-placeholder, .email-form .hbspt-form .hs_email input[type="email"]:-ms-input-placeholder { + color: #8D99A4; +} + +.email-form .hbspt-form .hs_email input[type="email"]:-moz-placeholder { + color: #8D99A4; +} + +.email-form .hbspt-form .hs-input { + box-sizing: border-box; + height: 44px; + width: 100%; + text-align: left; + background-color: #F2F6F8; + color: #000000; + padding: 0 15px; + margin: 0; + font-family: "PostGrotesk-Book", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; + border-radius: 22px 0 0 22px; + transition: background-color .2s ease; + font-weight: 400; + font-size: 16px; +} + +.email-form .hbspt-form .hs_submit { + width: 160px; + box-sizing: border-box; + flex-shrink: 0; + flex-grow: 0; +} + +.email-form .hbspt-form .hs_submit input[type="submit"].hs-button { + height: 44px; + width: 100%; + box-sizing: border-box; + line-height: 45px; + padding: 0 20px; + font-family: "PostGrotesk-Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; + font-size: 14px; + text-transform: uppercase; + text-align: center; + letter-spacing: 1px; + color: #262A39; + background-color: #D7D7E0; + border-radius: 0 22px 22px 0; + transform: translate3d(0, 0, 0) scale(1); + transition: transform .1s ease, box-shadow .2s ease, background-color .2s ease; + -webkit-appearance: none; + cursor: pointer; +} + +.email-form .hbspt-form .hs_submit input[type="submit"].hs-button:hover { + background-color: #C2C3D0; +} + +@media (max-width: 640px) { + .email-form { + width: 240px; + } + + .email-form .hbspt-form { + width: 100%; + } + + .email-form .hbspt-form form { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + margin: 0 auto; + width: 100%; + } + + .email-form .hbspt-form form .hs_email input[type="email"] { + width: 240px; + border-radius: 22px; + margin: 0 0 8px 0; + text-align: center; + padding-top: 3px; + } + + .email-form .hbspt-form form .hs_submit, + .email-form .hbspt-form form .hs_submit input[type="submit"].hs-button { + width: 240px; + border-radius: 22px; + } + + .email-form .hbspt-form .hs-error-msgs { + line-height: 20px; + margin-top: 44px; + width: 100%; + } + + .email-form .hbspt-form .hs-error-msgs li { + text-align: center; + } + + .email-form .hbspt-form .hs_email { + width: 240px; + } +} + +.pre-footer { + width: 100%; + background-color: #262A39; + position: relative; +} + +.pre-footer h3 { + font-family: "PostGrotesk-Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; + font-size: 20px; + line-height: 24px; + color: white; + padding: 0 0 8px 0; +} + +.pre-footer p { + color: rgba(255, 255, 255, 0.6); + padding: 0 0 12px 0; +} + +.pre-footer .button { + background-color: rgba(255, 255, 255, 0.1); +} + +.pre-footer .button:hover { + background-color: rgba(255, 255, 255, 0.2); +} + +.pre-footer-inner { + display: flex; + flex-direction: column; + align-items: center; + margin: 0 auto; +} + +.community { + width: 1024px; + display: flex; +} + +.community-item { + width: 50%; + display: flex; + text-align: center; + align-items: center; + flex-direction: column; + justify-content: center; + height: 220px; +} + +.community a.button { + width: 100px; +} + +.mail { + width: 100%; + display: flex; + text-align: center; + align-items: center; + flex-direction: column; + justify-content: flex-start; + border-top: 1px solid rgba(255, 255, 255, 0.1); +} + +.mail-inner { + width: 460px; + padding-top: 32px; +} + +@media (max-width: 1072px) { + .community { + width: 100%; + flex-wrap: wrap; + } + + .community-item { + width: 100%; + height: auto; + padding: 32px; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + } + + .community-item:last-child { + border-bottom: none; + } + + .mail-inner { + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + padding: 32px 32px 0; + } +} + +.footer { + width: 100%; + display: flex; + justify-content: center; + background-color: #262A39; + position: relative; + z-index: 999; +} + +.footer-inner { + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + width: 1024px; +} + +.footer-logo-wrap { + width: 317px; + display: flex; + text-align: center; +} + +.footer-logo-wrap__inner { + width: 100%; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + padding: 24px 0 75px 0; +} + +a.footer-logo { + display: block; + width: 52px; + height: 52px; + background-size: 52px; + background-image: url(../img/footer-logo.svg); +} + +a.footer-logo:hover { + opacity: .8; +} + +.footer-address { + color: #FFFFFF; + padding: 20px 0 0 0; + opacity: .5; +} + +.footer-table { + width: 317px; + display: flex; + justify-content: space-between; +} + +.footer-table__column { + box-sizing: border-box; + padding: 56px 0; +} + +.footer-header { + color: #FFFFFF; + opacity: .5; + font-size: 17px; + margin: 0 0 40px 0; +} + +.footer-link { + height: 32px; + line-height: 32px; + font-size: 16px; + margin: 0 0 15px 0; +} + +.footer-link a { + text-decoration: none; + display: flex; + align-items: center; +} + +.footer-icon { + display: inline-block; + width: 32px; + height: 32px; + background-color: rgba(255, 255, 255, 0.1); + border-radius: 50%; + margin: 0 15px 0 0; + background-repeat: no-repeat; + background-size: 24px; + background-position: center; +} + +.footer-link--fb .footer-icon { + background-image: url(../img/icon_fb.svg); +} + +.footer-link--tw .footer-icon { + background-image: url(../img/icon_tw2.svg); +} + +.footer-link--sl .footer-icon { + background-image: url(../img/icon_sl2.svg); +} + +.footer-link--gh .footer-icon { + background-image: url(../img/icon_gh2.svg); +} + +.footer-link--rd .footer-icon { + background-image: url(../img/icon_rd2.svg); +} + +.footer-link--yt .footer-icon { + background-image: url(../img/icon_yt.svg); +} + +.footer-link a { + color: #FFFFFF; +} + +.footer-link a:hover { + opacity: .8; +} + +.language-switcher { + font-family: "PostGrotesk-Book", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; + color: #FFFFFF; + -webkit-appearance: none; + font-size: 16px; + line-height: 32px; + padding: 0 24px 0 0; + background-image: url(../img/icon_dropdown-white.svg); + background-size: 24px; + background-repeat: no-repeat; + background-position: right center; +} + +.language-switcher:focus { + outline: none; +} + +@media (max-width: 1140px) { + .footer-inner { + width: 820px; + justify-content: space-around; + } + + .footer-logo-wrap { + width: 200px; + } +} + +@media (max-width: 767px) { + .footer { + border-top: 0px; + } + + .footer.footer--page { + border-top: 0px solid #4A5C69; + } + + .footer-inner { + padding: 0 0 0 0; + flex-direction: column; + } + + .footer-table { + flex-direction: column; + align-items: center; + justify-content: center; + } + + .footer-table__column { + text-align: center; + padding: 10px 16px; + } + + .footer-logo-wrap { + width: auto; + order: 2; + } + + .footer-header { + margin: 0 0 10px 0; + } + + .footer-logo-wrap__inner { + width: 100%; + padding: 0 0 64px 0; + align-items: center; + text-align: center; + } + + .footer-link { + text-align: center; + height: 24px; + line-height: 24px; + margin: 0 0 10px 0; + } + + .footer-link a { + justify-content: center; + text-align: center; + } + + .footer-icon { + display: none; + } +} + +body { + font-family: "PostGrotesk-Book", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; + font-weight: 400; + font-size: 16px; + line-height: 24px; + color: #000000; + background-color: #ff9c00; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; +} + +.button, a.button { + display: block; + font-family: "PostGrotesk-Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; + text-decoration: none; + font-size: 14px; + text-transform: uppercase; + letter-spacing: 1px; + color: #FFFFFF; + line-height: 24px; + padding: 10px 32px 9px; + border-radius: 22px; + background-color: rgba(0, 0, 0, 0.1); +} + +.button.button--light, a.button.button--light { + background-color: rgba(54, 55, 99, 0.1); +} + +.button:hover, a.button:hover { + background-color: rgba(0, 0, 0, 0.2); +} + +.button.button--light:hover, a.button.button--light:hover { + background-color: rgba(54, 55, 99, 0.2); +} + +.home-wrap { + position: relative; + background-color: #F5F3F1; + align-content: center; + display: flex; + flex-direction: column; + margin: 440px 0 0 0; + box-shadow: 0 -20px 11px 0 rgba(43, 55, 107, 0.08); +} + +@media (max-width: 710px) { + .home-wrap { + margin: 400px 0 0 0; + } +} + +.section-header { + margin: -60px auto; + width: 1200px; + padding: 60px 0 32px 0; + text-align: center; + background: #ffffff; + border-radius: 5px +} + +.section-header h2 { + font-size: 26px; + font-family: "PostGrotesk-Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; + padding: 0 0 8px 0; +} + +.section-header p { + font-size: 16px; + width: 590px; + color: #8D99A4; + line-height: 24px; + margin: 0 auto 20px auto; +} + +.section-header a { + color: #ff9c00; + text-decoration: none; +} + +.clear { + clear: both; +} + +.work-item { + margin: 30px auto; + text-align: left; + padding: 100px 200px; +} + +.work-item-image { + width: 250px; + height: 250px; + margin: -150px 0; +} + +.work-item-left p { + margin: 0; +} + + +.work-item-right { + float: right; + text-align: right; +} + +.work-item-right p { + margin: 0; +} + +.work-item-image-right { + float: right; +} + +.work-item-image-left { + width: 200px; + height: 200px; + margin: -120px 0; +} + +.inner-header { + margin: 0 auto; + display: flex; + flex-direction: column; + width: 1000px; + padding: 42px 0 16px 0; +} + +.inner-header h2 { + font-size: 26px; + font-family: "PostGrotesk-Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; + padding: 0 0 8px 0; + text-align: left; +} + +.inner-header p { + font-size: 16px; + color: #777f86; + line-height: 24px; + width: 590px; +} + +.sections { + width: 100%; + margin: 60px 0 0 0; + padding: 0 0 60px 0; + display: flex; + align-items: center; + flex-direction: column; + background-color: #F5F3F1; +} + +.section { + width: 976px; + height: 300px; + display: flex; + align-items: center; + justify-content: flex-start; +} + +.section:last-child { + border-bottom: none; +} + +.section__text { + width: 500px; + text-align: left; +} + +.section__text h2 { + font-family: "PostGrotesk-Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; + font-size: 20px; + line-height: 24px; + color: black; + margin: 0 0 8px 0; +} + +.section__text .text { + font-family: "PostGrotesk-Book", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + color: #777f86; +} + +.section__text .text strong { + font-family: "Roboto Mono", monospace; + font-size: 14px; + line-height: 24px; + color: black; + background-color: rgba(54, 55, 99, 0.1); + border-radius: 4px; + padding: 0 5px; +} + +.section__text a { + text-decoration: none; + color: #7367A4; + opacity: .8; +} + +.section-link { + padding: 0 12px 0 0; +} + +.section__text a:hover { + opacity: 1; +} + +.section__text .text p { + padding: 0 0 12px 0; +} + +.section__text .text p:last-child { + padding: 0 0 0 0; +} + +.section__image { + position: relative; + width: 300px; + height: 300px; + background-repeat: no-repeat; +} + +.section.section--one .section__image { + width: 212px; + height: 186px; + background-image: url(../img/image-2@2x.png); + background-size: 212px; +} + +.section.section--two .section__image { + width: 248px; + height: 184px; + background-image: url(../img/image-2@2x.png); + background-size: 248px; +} + +.section.section--three .section__image { + width: 258px; + height: 162px; + background-image: url(../img/image-3@2x.png); + background-size: 258px; +} + +.section.section--four .section__image { + width: 208px; + height: 151px; + background-image: url(../img/image-4@2x.png); + background-size: 208px; +} + +.section:nth-child(even) { + justify-content: flex-end; +} + +.section:nth-child(odd) { + justify-content: flex-start; +} + +.section:nth-child(even) .section__text { + margin-left: 90px; +} + +.section:nth-child(odd) .section__text { + margin-right: 90px; +} + +.section:nth-child(even) .section__text { + order: 1; +} + +.section:nth-child(even) .section__image { + order: 0; +} + +pre { + background-color: white; + padding: 0px; + + code { + padding: 1em !important; + border-radius: 8px; + font-size: 1em; + } +} + +@media (max-width: 1072px) { + .sections { + margin: 12px 0 0 0; + padding-bottom: 32px; + } + + .section-header, .inner-header { + width: 100%; + max-width: 680px; + padding: 32px 24px 16px 24px; + } + + .section-header h2, .inner-header h2 { + font-size: 22px; + padding: 0 0 8px 0; + } + + .section-header p, .inner-header p { + width: 100%; + } + + .section { + width: 100%; + height: auto; + padding: 0 24px; + flex-direction: column; + padding: 0; + border-bottom: 1px solid #E7E5EB; + } + + .section__text { + width: 100%; + text-align: left; + padding: 16px 24px 32px; + } + + .section__text h2 { + font-size: 20px; + line-height: 24px; + margin: 0 0 4px 0; + } + + .section .section__text { + order: 1; + } + + .section .section__image { + order: 0; + margin: 32px 0 32px 0; + } + + .section:nth-child(even) .section__text { + margin-left: 0px; + } + + .section:nth-child(odd) .section__text { + margin-right: 0px; + } +} + +.contribute-wrap { + width: 1000px; +} + +.contribute { + width: 27%; + height: 280px; + background-color: #ffffff; + border-radius: 5px; + padding: 40px; + float: left; + margin: 20px; +} + +.team { + height: 240px; +} + +.contribute h3 { + font-style: normal; + font-weight: bold; + line-height: 25px; + font-size: 18px; + margin-bottom: 8px; +} + +.contribute p { + font-style: normal; + font-weight: normal; + line-height: 25px; + font-size: 16px; + color: #939BA1; + margin-bottom: 50px; +} + +.contribute a { + line-height: 24px; + font-size: 16px; + color: #FF9C00; + text-decoration: none; +} + +.contribute span { + margin-left: 8px; +} + +.blog { + height: 400px; +} diff --git a/themes/navy/source/css/_partial/mobile_nav.styl b/themes/navy/source/css/_partial/mobile_nav.styl new file mode 100644 index 0000000..cce4268 --- /dev/null +++ b/themes/navy/source/css/_partial/mobile_nav.styl @@ -0,0 +1,136 @@ +toggle-width = 25px +toggle-height = toggle-width * 0.8 +toggle-line = 2px +transition-duration = 0.4s +lang-select-height = 40px + +#mobile-nav + position: fixed + top: 0 + width: mobile-nav-width + left: @width * -1 + height: 100% + background: color-navy + transition: transition-duration + font-family: font-title + .mobile-nav-on & + transform: translateX(100%) + +#mobile-nav-inner + overflow-y: auto + padding: 10px 0 + position: absolute + top: 0 + bottom: lang-select-height + left: 0 + right: 0 + -webkit-overflow-scrolling: touch + +#mobile-nav-toggle + position: absolute + top: 0 + bottom: 0 + left: gutter-width + width: toggle-width + height: toggle-height + margin: auto + opacity: 0.5 + cursor: pointer + transition: 0.2s + &:active, .mobile-nav-on & + opacity: 1 + @media mq-normal + display: none + +.mobile-nav-toggle-bar + background: #fff + position: absolute + left: 0 + width: 100% + height: toggle-line + transition: transition-duration + transform-origin: 0 + border-radius: toggle-line + &:first-child + top: 0 + .mobile-nav-on & + transform: rotate(45deg) + &:nth-child(2) + top: (toggle-height - toggle-line) * 0.5 + .mobile-nav-on & + opacity: 0 + &:last-child + top: toggle-height - toggle-line + .mobile-nav-on & + transform: rotate(-45deg) + +.mobile-nav-link + color: #fff + text-decoration: none + display: block + padding: 10px 15px + line-height: 1 + white-space: nowrap + overflow: hidden + text-overflow: ellipsis + +.mobile-nav-title + color: color-link + font-weight: bold + padding: 10px 15px + line-height: 1 + display: block + border-top: 1px solid #444 + margin-top: 10px + white-space: nowrap + overflow: hidden + text-overflow: ellipsis + +#mobile-lang-select-wrap + position: absolute + bottom: 0 + left: 0 + width: 100% + background: color-navy + border-top: 1px solid #444 + +#mobile-lang-select-label + line-height: lang-select-height + color: #fff + padding: 10px 15px + i + opacity: 0.7 + span + padding-left: 8px + +#mobile-lang-select + -webkit-appearance: menulist-button + opacity: 0 + position: absolute + top: 0 + left: 0 + width: 100% + height: 100% + +#container + transition: transition-duration + height: 100% + // overflow: auto + -webkit-overflow-scrolling: touch + .mobile-nav-on & + transform: translateX(mobile-nav-width) + overflow: hidden + +#mobile-nav-dimmer + position: absolute + top: 0 + left: 100% + height: 100% + background: #000 + opacity: 0 + transition: opacity transition-duration, transform 0s transition-duration + .mobile-nav-on & + width: 100% + opacity: 0.7 + transform: translateX(-100%) + transition: opacity transition-duration diff --git a/themes/navy/source/css/_partial/page.styl b/themes/navy/source/css/_partial/page.styl new file mode 100644 index 0000000..4044727 --- /dev/null +++ b/themes/navy/source/css/_partial/page.styl @@ -0,0 +1,256 @@ +note-tip = hsl(40, 100%, 50%) +note-info = hsl(200, 100%, 50%) +note-warn = hsl(0, 100%, 50%) + +#content + clearfix() + position: relative + +#content-inner + clearfix() + @media mq-normal + margin-left: sidebar-width + @media screen and (min-width: 1500px) + margin-left: 2px + +#content-inner-full + clearfix() + @media mq-normal + margin-left: 0 + +.article-container + @media mq-normal + float: right + width: 100% + +.article-inner + clearfix() + +.article + float: left + width: 100% + padding: 40px 0 + @media print + padding: 0 + +#article-toc + display: none + float: right + width: sidebar-width + margin-right: sidebar-width * -1 + opacity: 0.8 + @media mq-normal + display: block + @media screen and (max-width: 1450px) + display: none + &.fixed + position: absolute + top: 0 + bottom: 0 + right: 0 + +#article-toc-inner + @extend .inner + overflow-x: hidden + overflow-y: auto + width: sidebar-width + .fixed & + position: fixed + top: 0 + bottom: 0 + +.toc-link + @extend .sidebar-link + +.toc-child + padding-left: 1em + font-size: 0.9em + +#article-toc-top + margin-top: 2em + font-size: 0.9em + text-decoration: none + color: color-default + display: block + margin-bottom: 40px + font-family: font-title + &:hover + color: color-link-hover + +.article-header + clearfix() + padding-bottom: 20px + +.article-title + float: left + font-family: font-title + font-size: 26px + line-height: 32px + font-weight: 300 + text-decoration: none + color: color-title + transition: 0.2s + a&:hover + color: color-link-hover + .post & + float: none + +.article-date + color: color-gray + text-decoration: none + display: inline-block + margin-top: 1em + &:hover + color: color-link-hover + +.article-edit-link + float: right + color: #bbb + font-size: 24px + line-height: 36px + transition: 0.2s + display: none + &:hover + color: color-link-hover + @media mq-normal + display: block + +.article-anchor + margin-left: 10px + display: none + &:before + content: "#" + @media print + display: none !important + .article-heading:hover & + display: inline-block + +.article-content + line-height: line-height + color: color-default + @media print + font-size: 12pt + p, ol, ul, dl, table, blockquote, iframe, .highlight + margin: 1em 0 + h1 + font-size: 26px + h2 + font-size: 20px + h3 + font-size: 18px + h1, h2, h3, h4, h5, h6 + line-height: 1em + font-weight: bold + margin: 1em 0 + color: color-title + a + color: color-link + text-decoration: none + &:hover + color: color-link-hover + text-decoration: underline + @media print + color: color-default + text-decoration: underline + &:after + content: " (" attr(href) ")" + font-size: 80% + strong + font-weight: bold + em + font-style: italic + ul, ol, dl + margin-left: 20px + ul, ol, dl + margin-top: 0 + margin-bottom: 0 + ul + list-style: disc + ol + list-style: decimal + dl + list-style: square + li + p + margin: 0 + table, blockquote, iframe, .highlight + margin: 1em 0 + img, video + max-width: 100% + blockquote + padding: 0 20px + position: relative + border: 1px solid color-border + border-left: 5px solid #ddd + footer + margin: 1em 0 + font-style: italic + cite + &:before + content: "—" + padding: 0 0.3em + a + color: color-grey + .note + &.tip + border-left-color: note-tip + &.info + border-left-color: note-info + &.warn + border-left-color: note-warn + .note-title + margin: 1em 0 + display: block + font-size: 1.3em + font-weight: bold + table + max-width: 100% + border: 1px solid color-border + th + font-weight: bold + th, td + padding: 5px 15px + tr + &:nth-child(2n) + background: #eee + +.article-footer + clearfix() + margin: 1em 0 + border-top: 1px solid color-border + text-align: center + color: color-gray + line-height: 1em + padding-top: 1em + position: relative + @media print + display: none + +$article-footer-link + color: color-link + text-decoration: none + font-weight: bold + font-family: font-title + text-transform: uppercase + position: absolute + &:hover + color: color-link-hover + @media print + display: none + span + padding: 0 6px + +.article-footer-prev + @extend $article-footer-link + left: 0 + +.article-footer-next + @extend $article-footer-link + right: 0 + +.article-footer-updated + font-size: 0.9em + +#comments + @media print + display: none diff --git a/themes/navy/source/css/_partial/plugins.styl b/themes/navy/source/css/_partial/plugins.styl new file mode 100644 index 0000000..a395f2c --- /dev/null +++ b/themes/navy/source/css/_partial/plugins.styl @@ -0,0 +1,131 @@ +#plugin-list-header + clearfix() + margin: 40px 0 + +#plugin-list-title + font-family: font-title + font-size: 36px + font-weight: 300 + line-height: 1 + float: left + +#plugin-list-count + color: color-gray + padding-top: 1em + text-align: right + @media mq-normal + float: right + line-height: 40px + padding-top: 0 + padding-right: 15px + +#plugin-search-input + font-size: 16px + font-family: inherit + -webkit-appearance: none + border: 1px solid color-border + padding: 10px 10px + width: 100% + margin-top: 25px + @media mq-normal + float: right + width: 50% + margin-top: 0 + +#plugin-list + margin: 40px -20px + display: flex + flex-flow: column + @media mq-tablet + flex-flow: row wrap + +.plugin + display: none + padding: 20px + @media mq-tablet + flex: 0 0 50% + @media mq-normal + flex: 0 0 (100 / 3)% + &.on + display: block + +.plugin-name + font-family: font-title + font-weight: bold + color: color-link + font-size: 20px + text-decoration: none + line-height: 1 + display: block + &:hover + color: color-link-hover + +.plugin-desc + line-height: line-height + margin: 1em 0 + +.plugin-tag-list + clearfix() + line-height: 1.3 + +.plugin-tag + color: color-gray + font-size: 0.9em + text-decoration: none + float: left + margin-right: 10px + &:hover + color: color-link-hover + &:before + content: "#" + +.plugin-screenshot + margin-bottom: 15px + position: relative + padding-top: (10 / 16 * 100)% // 16:10 ratio + height: 0 + overflow: hidden + +.plugin-screenshot-img + position: absolute + top: 0 + left: 0 + width: 100% + height: 100% + transition: opacity 0.3s + &.lazyload + &.lazyloading + opacity: 0 + &.lazyloaded + opacity: 1 + +.plugin-preview-link + position: absolute + top: 0 + left: 0 + width: 100% + height: 100% + background: rgba(0, 0, 0, 0.7) + color: #fff + text-align: center + opacity: 0 + transition: 0.15s + &:hover + opacity: 1 + .fa + opacity: 1 + transform: scale(1) + .fa + position: absolute + top: 0 + left: 0 + bottom: 0 + right: 0 + margin: auto + font-size: 50px + width: @font-size + height: @font-size + opacity: 0 + transform: scale(6) + transition: 0.2s + transition-delay: 0.15s diff --git a/themes/navy/source/css/_partial/post.styl b/themes/navy/source/css/_partial/post.styl new file mode 100644 index 0000000..f97045e --- /dev/null +++ b/themes/navy/source/css/_partial/post.styl @@ -0,0 +1,5 @@ +.post + margin: 0 auto + float: none + @media screen + max-width: 800px \ No newline at end of file diff --git a/themes/navy/source/css/_partial/sidebar.styl b/themes/navy/source/css/_partial/sidebar.styl new file mode 100644 index 0000000..497f005 --- /dev/null +++ b/themes/navy/source/css/_partial/sidebar.styl @@ -0,0 +1,36 @@ +#sidebar + width: sidebar-width + float: left + padding-bottom: 40px + opacity: 0.8 + margin-left: sidebar-width * -1 + display: none + @media mq-normal + display: block + +.sidebar-title + margin-top: 40px + padding: 10px 0 + font-family: font-title + font-weight: bold + color: color-title + display: inline-block + border-top: 1px solid color-border + line-height: 1 + +.sidebar-link + font-family: font-sans + display: block + color: color-default + text-decoration: none + padding: 7px 0 + line-height: 1 + position: relative + width: 100% + text-overflow: ellipsis + overflow: hidden + white-space: nowrap + &.current + color: color-link + &:hover + color: color-link-hover diff --git a/themes/navy/source/css/_variables.styl b/themes/navy/source/css/_variables.styl new file mode 100644 index 0000000..8d47af6 --- /dev/null +++ b/themes/navy/source/css/_variables.styl @@ -0,0 +1,47 @@ +// Fonts +@font-face { + font-family: "Post Grotesk Medium"; + src: url("/fonts/PostGrotesk-Medium.ttf") format("ttf"), + url("/fonts/PostGrotesk-Medium.woff") format("woff"), + url("/fonts/PostGrotesk-Medium.eot") format("eot"); +} +@font-face { + font-family: "Post Grotesk Book"; + src: url("/fonts/PostGrotesk-Book.ttf") format("ttf"), + url("/fonts/PostGrotesk-Book.woff") format("woff"), + url("/fonts/PostGrotesk-Book.eot") format("eot"); +} + +// Config +support-for-ie = false +vendor-prefixes = webkit moz ms official + +// Colors +color-default = #40444b +color-title = #000 +color-gray = #777F86 +color-border = #e3e3e3 +color-navy = #363763 +color-background = #F2F2F5 +color-background-light = #fff +color-main-link = #fff +color-link = #7c7db6 +color-link-hover = lighten(color-link, 10%) + +// Typography +font-sans = "Post Grotesk Book", "Helvetica Neue", Helvetica, Arial, sans-serif +font-mono = "Source Code Pro", Monaco, Menlo, Consolas, monospace +font-title = "Post Grotesk Medium", font-sans +font-size = 16px +line-height = 24px + +// Layout +max-width = 1024px +gutter-width = 20px +sidebar-width = 220px +mobile-nav-width = 260px + +// Media queries +mq-mobile = "screen and (max-width: 819px)" +mq-normal = "screen and (min-width: 820px)" +mq-tablet = "screen and (min-width: 480px)" diff --git a/themes/navy/source/css/navy.styl b/themes/navy/source/css/navy.styl new file mode 100644 index 0000000..6d26207 --- /dev/null +++ b/themes/navy/source/css/navy.styl @@ -0,0 +1,16 @@ +@import "nib" +@import "_variables" + +@import "_partial/base" +@import "_partial/header" +@import "_partial/index" +@import "_partial/sidebar" +@import "_partial/page" +@import "_partial/post" +@import "_partial/plugins" +@import "_partial/archive" +@import "_partial/mobile_nav" +@import "_partial/footer" +@import "_partial/highlight" +@import "_partial/carbonads" +@import "_partial/main" diff --git a/themes/navy/source/fonts/PostGrotesk-Book.eot b/themes/navy/source/fonts/PostGrotesk-Book.eot new file mode 100644 index 0000000..06846d3 Binary files /dev/null and b/themes/navy/source/fonts/PostGrotesk-Book.eot differ diff --git a/themes/navy/source/fonts/PostGrotesk-Book.svg b/themes/navy/source/fonts/PostGrotesk-Book.svg new file mode 100644 index 0000000..dd80f2c --- /dev/null +++ b/themes/navy/source/fonts/PostGrotesk-Book.svg @@ -0,0 +1,3 @@ + + + diff --git a/themes/navy/source/fonts/PostGrotesk-Book.ttf b/themes/navy/source/fonts/PostGrotesk-Book.ttf new file mode 100644 index 0000000..331a1ba Binary files /dev/null and b/themes/navy/source/fonts/PostGrotesk-Book.ttf differ diff --git a/themes/navy/source/fonts/PostGrotesk-Book.woff b/themes/navy/source/fonts/PostGrotesk-Book.woff new file mode 100644 index 0000000..47b48d0 Binary files /dev/null and b/themes/navy/source/fonts/PostGrotesk-Book.woff differ diff --git a/themes/navy/source/fonts/PostGrotesk-Medium.eot b/themes/navy/source/fonts/PostGrotesk-Medium.eot new file mode 100644 index 0000000..e0171ff Binary files /dev/null and b/themes/navy/source/fonts/PostGrotesk-Medium.eot differ diff --git a/themes/navy/source/fonts/PostGrotesk-Medium.svg b/themes/navy/source/fonts/PostGrotesk-Medium.svg new file mode 100644 index 0000000..2e26fe7 --- /dev/null +++ b/themes/navy/source/fonts/PostGrotesk-Medium.svg @@ -0,0 +1,3 @@ + + + diff --git a/themes/navy/source/fonts/PostGrotesk-Medium.ttf b/themes/navy/source/fonts/PostGrotesk-Medium.ttf new file mode 100644 index 0000000..8c14518 Binary files /dev/null and b/themes/navy/source/fonts/PostGrotesk-Medium.ttf differ diff --git a/themes/navy/source/fonts/PostGrotesk-Medium.woff b/themes/navy/source/fonts/PostGrotesk-Medium.woff new file mode 100644 index 0000000..933c51b Binary files /dev/null and b/themes/navy/source/fonts/PostGrotesk-Medium.woff differ diff --git a/themes/navy/source/fonts/RobotoRegular/RobotoRegular.eot b/themes/navy/source/fonts/RobotoRegular/RobotoRegular.eot new file mode 100644 index 0000000..466f3a7 Binary files /dev/null and b/themes/navy/source/fonts/RobotoRegular/RobotoRegular.eot differ diff --git a/themes/navy/source/fonts/RobotoRegular/RobotoRegular.ttf b/themes/navy/source/fonts/RobotoRegular/RobotoRegular.ttf new file mode 100644 index 0000000..a4ebaf7 Binary files /dev/null and b/themes/navy/source/fonts/RobotoRegular/RobotoRegular.ttf differ diff --git a/themes/navy/source/fonts/RobotoRegular/RobotoRegular.woff b/themes/navy/source/fonts/RobotoRegular/RobotoRegular.woff new file mode 100644 index 0000000..0871062 Binary files /dev/null and b/themes/navy/source/fonts/RobotoRegular/RobotoRegular.woff differ diff --git a/themes/navy/source/img/SendTransaction_flow_new.png b/themes/navy/source/img/SendTransaction_flow_new.png new file mode 100644 index 0000000..2a4ad80 Binary files /dev/null and b/themes/navy/source/img/SendTransaction_flow_new.png differ diff --git a/themes/navy/source/img/Status-react_structure.png b/themes/navy/source/img/Status-react_structure.png new file mode 100644 index 0000000..ab0d20b Binary files /dev/null and b/themes/navy/source/img/Status-react_structure.png differ diff --git a/themes/navy/source/img/apple-touch-icon-1024.png b/themes/navy/source/img/apple-touch-icon-1024.png new file mode 100644 index 0000000..26e85b1 Binary files /dev/null and b/themes/navy/source/img/apple-touch-icon-1024.png differ diff --git a/themes/navy/source/img/apple-touch-icon-120.png b/themes/navy/source/img/apple-touch-icon-120.png new file mode 100644 index 0000000..5acfcdf Binary files /dev/null and b/themes/navy/source/img/apple-touch-icon-120.png differ diff --git a/themes/navy/source/img/apple-touch-icon-152.png b/themes/navy/source/img/apple-touch-icon-152.png new file mode 100644 index 0000000..97aabc5 Binary files /dev/null and b/themes/navy/source/img/apple-touch-icon-152.png differ diff --git a/themes/navy/source/img/apple-touch-icon-180.png b/themes/navy/source/img/apple-touch-icon-180.png new file mode 100644 index 0000000..67a494f Binary files /dev/null and b/themes/navy/source/img/apple-touch-icon-180.png differ diff --git a/themes/navy/source/img/apple-touch-icon-76.png b/themes/navy/source/img/apple-touch-icon-76.png new file mode 100644 index 0000000..79d5463 Binary files /dev/null and b/themes/navy/source/img/apple-touch-icon-76.png differ diff --git a/themes/navy/source/img/arrow_ogn.png b/themes/navy/source/img/arrow_ogn.png new file mode 100644 index 0000000..47be0ab Binary files /dev/null and b/themes/navy/source/img/arrow_ogn.png differ diff --git a/themes/navy/source/img/arrow_orange.png b/themes/navy/source/img/arrow_orange.png new file mode 100644 index 0000000..f330933 Binary files /dev/null and b/themes/navy/source/img/arrow_orange.png differ diff --git a/themes/navy/source/img/circle.png b/themes/navy/source/img/circle.png new file mode 100644 index 0000000..25005d7 Binary files /dev/null and b/themes/navy/source/img/circle.png differ diff --git a/themes/navy/source/img/clippy.svg b/themes/navy/source/img/clippy.svg new file mode 100644 index 0000000..e1b1703 --- /dev/null +++ b/themes/navy/source/img/clippy.svg @@ -0,0 +1,3 @@ + + + diff --git a/themes/navy/source/img/dd.png b/themes/navy/source/img/dd.png new file mode 100644 index 0000000..5337538 Binary files /dev/null and b/themes/navy/source/img/dd.png differ diff --git a/themes/navy/source/img/ellipse.png b/themes/navy/source/img/ellipse.png new file mode 100644 index 0000000..068195f Binary files /dev/null and b/themes/navy/source/img/ellipse.png differ diff --git a/themes/navy/source/img/footer-logo.svg b/themes/navy/source/img/footer-logo.svg new file mode 100644 index 0000000..1faeef8 --- /dev/null +++ b/themes/navy/source/img/footer-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/navy/source/img/grey-square.png b/themes/navy/source/img/grey-square.png new file mode 100644 index 0000000..d4f46b2 Binary files /dev/null and b/themes/navy/source/img/grey-square.png differ diff --git a/themes/navy/source/img/head_bg.png b/themes/navy/source/img/head_bg.png new file mode 100644 index 0000000..e2a7ba0 Binary files /dev/null and b/themes/navy/source/img/head_bg.png differ diff --git a/themes/navy/source/img/icon-close.svg b/themes/navy/source/img/icon-close.svg new file mode 100644 index 0000000..118dad8 --- /dev/null +++ b/themes/navy/source/img/icon-close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/navy/source/img/icon-github.svg b/themes/navy/source/img/icon-github.svg new file mode 100644 index 0000000..82d147d --- /dev/null +++ b/themes/navy/source/img/icon-github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/navy/source/img/icon-gitter.svg b/themes/navy/source/img/icon-gitter.svg new file mode 100644 index 0000000..c13d4b1 --- /dev/null +++ b/themes/navy/source/img/icon-gitter.svg @@ -0,0 +1,3 @@ + + + diff --git a/themes/navy/source/img/icon-twitter.svg b/themes/navy/source/img/icon-twitter.svg new file mode 100644 index 0000000..f1991f6 --- /dev/null +++ b/themes/navy/source/img/icon-twitter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/navy/source/img/icon_fb.svg b/themes/navy/source/img/icon_fb.svg new file mode 100644 index 0000000..e69de29 diff --git a/themes/navy/source/img/icon_gh2.svg b/themes/navy/source/img/icon_gh2.svg new file mode 100644 index 0000000..d6c40df --- /dev/null +++ b/themes/navy/source/img/icon_gh2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/navy/source/img/icon_rd2.svg b/themes/navy/source/img/icon_rd2.svg new file mode 100644 index 0000000..be215b3 --- /dev/null +++ b/themes/navy/source/img/icon_rd2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/navy/source/img/icon_tw2.svg b/themes/navy/source/img/icon_tw2.svg new file mode 100644 index 0000000..672e79e --- /dev/null +++ b/themes/navy/source/img/icon_tw2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/navy/source/img/icon_yt.svg b/themes/navy/source/img/icon_yt.svg new file mode 100644 index 0000000..36ab55f --- /dev/null +++ b/themes/navy/source/img/icon_yt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/navy/source/img/lisp.jpg b/themes/navy/source/img/lisp.jpg new file mode 100644 index 0000000..b0563f6 Binary files /dev/null and b/themes/navy/source/img/lisp.jpg differ diff --git a/themes/navy/source/img/logo-16.png b/themes/navy/source/img/logo-16.png new file mode 100644 index 0000000..278cbc6 Binary files /dev/null and b/themes/navy/source/img/logo-16.png differ diff --git a/themes/navy/source/img/logo-32.png b/themes/navy/source/img/logo-32.png new file mode 100644 index 0000000..412777a Binary files /dev/null and b/themes/navy/source/img/logo-32.png differ diff --git a/themes/navy/source/img/logo-blue.svg b/themes/navy/source/img/logo-blue.svg new file mode 100644 index 0000000..3c86f19 --- /dev/null +++ b/themes/navy/source/img/logo-blue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/navy/source/img/logo-dribbble.svg b/themes/navy/source/img/logo-dribbble.svg new file mode 100644 index 0000000..9584258 --- /dev/null +++ b/themes/navy/source/img/logo-dribbble.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/navy/source/img/logo-embark.svg b/themes/navy/source/img/logo-embark.svg new file mode 100644 index 0000000..9e76583 --- /dev/null +++ b/themes/navy/source/img/logo-embark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/navy/source/img/logo-flat.svg b/themes/navy/source/img/logo-flat.svg new file mode 100644 index 0000000..f5a9973 --- /dev/null +++ b/themes/navy/source/img/logo-flat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/navy/source/img/logo-github.svg b/themes/navy/source/img/logo-github.svg new file mode 100644 index 0000000..ccb525e --- /dev/null +++ b/themes/navy/source/img/logo-github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/navy/source/img/logo-youtube.svg b/themes/navy/source/img/logo-youtube.svg new file mode 100644 index 0000000..0ffeea9 --- /dev/null +++ b/themes/navy/source/img/logo-youtube.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/navy/source/img/logo.png b/themes/navy/source/img/logo.png new file mode 100644 index 0000000..752cfbb Binary files /dev/null and b/themes/navy/source/img/logo.png differ diff --git a/themes/navy/source/img/logo.svg b/themes/navy/source/img/logo.svg new file mode 100644 index 0000000..f93c6d5 --- /dev/null +++ b/themes/navy/source/img/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/navy/source/img/padlock.svg b/themes/navy/source/img/padlock.svg new file mode 100755 index 0000000..22a498d --- /dev/null +++ b/themes/navy/source/img/padlock.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/themes/navy/source/img/pattern.png b/themes/navy/source/img/pattern.png new file mode 100644 index 0000000..cd9c5c2 Binary files /dev/null and b/themes/navy/source/img/pattern.png differ diff --git a/themes/navy/source/img/share.png b/themes/navy/source/img/share.png new file mode 100644 index 0000000..84a7c38 Binary files /dev/null and b/themes/navy/source/img/share.png differ diff --git a/themes/navy/source/img/status_logo.svg b/themes/navy/source/img/status_logo.svg new file mode 100644 index 0000000..811c916 --- /dev/null +++ b/themes/navy/source/img/status_logo.svg @@ -0,0 +1 @@ +Artboard 2 copy 9 \ No newline at end of file diff --git a/themes/navy/source/img/triangle.svg b/themes/navy/source/img/triangle.svg new file mode 100644 index 0000000..5842c66 --- /dev/null +++ b/themes/navy/source/img/triangle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/themes/navy/source/js/bundle.js b/themes/navy/source/js/bundle.js new file mode 100644 index 0000000..026380e --- /dev/null +++ b/themes/navy/source/js/bundle.js @@ -0,0 +1,3 @@ +(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i/g,">")}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0===t.index}function a(e){return k.test(e)}function i(e){var n,t,r,i,o=e.className+" ";if(o+=e.parentNode?e.parentNode.className:"",t=B.exec(o))return w(t[1])?t[1]:"no-highlight";for(o=o.split(/\s+/),n=0,r=o.length;r>n;n++)if(i=o[n],a(i)||w(i))return i}function o(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3===i.nodeType?a+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!==r[0].offset?e[0].offset"}function u(e){s+=""}function c(e){("start"===e.event?o:u)(e.node)}for(var l=0,s="",f=[];e.length||r.length;){var g=i();if(s+=n(a.substring(l,g[0].offset)),l=g[0].offset,g===e){f.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g===e&&g.length&&g[0].offset===l);f.reverse().forEach(o)}else"start"===g[0].event?f.push(g[0].node):f.pop(),c(g.splice(0,1)[0])}return s+n(a.substr(l))}function l(e){return e.v&&!e.cached_variants&&(e.cached_variants=e.v.map(function(n){return o(e,{v:null},n)})),e.cached_variants||e.eW&&[o(e)]||[e]}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),"m"+(e.cI?"i":"")+(r?"g":""))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var o={},u=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(" ").forEach(function(e){var t=e.split("|");o[t[0]]=[n,t[1]?Number(t[1]):1]})};"string"==typeof a.k?u("keyword",a.k):x(a.k).forEach(function(e){u(e,a.k[e])}),a.k=o}a.lR=t(a.l||/\w+/,!0),i&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||"",a.eW&&i.tE&&(a.tE+=(a.e?"|":"")+i.tE)),a.i&&(a.iR=t(a.i)),null==a.r&&(a.r=1),a.c||(a.c=[]),a.c=Array.prototype.concat.apply([],a.c.map(function(e){return l("self"===e?a:e)})),a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var c=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=c.length?t(c.join("|"),!0):{exec:function(){return null}}}}r(e)}function f(e,t,a,i){function o(e,n){var t,a;for(t=0,a=n.c.length;a>t;t++)if(r(n.c[t].bR,e))return n.c[t]}function u(e,n){if(r(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?u(e.parent,n):void 0}function c(e,n){return!a&&r(n.iR,e)}function l(e,n){var t=N.cI?n[0].toLowerCase():n[0];return e.k.hasOwnProperty(t)&&e.k[t]}function p(e,n,t,r){var a=r?"":I.classPrefix,i='',i+n+o}function h(){var e,t,r,a;if(!E.k)return n(k);for(a="",t=0,E.lR.lastIndex=0,r=E.lR.exec(k);r;)a+=n(k.substring(t,r.index)),e=l(E,r),e?(B+=e[1],a+=p(e[0],n(r[0]))):a+=n(r[0]),t=E.lR.lastIndex,r=E.lR.exec(k);return a+n(k.substr(t))}function d(){var e="string"==typeof E.sL;if(e&&!y[E.sL])return n(k);var t=e?f(E.sL,k,!0,x[E.sL]):g(k,E.sL.length?E.sL:void 0);return E.r>0&&(B+=t.r),e&&(x[E.sL]=t.top),p(t.language,t.value,!1,!0)}function b(){L+=null!=E.sL?d():h(),k=""}function v(e){L+=e.cN?p(e.cN,"",!0):"",E=Object.create(e,{parent:{value:E}})}function m(e,n){if(k+=e,null==n)return b(),0;var t=o(n,E);if(t)return t.skip?k+=n:(t.eB&&(k+=n),b(),t.rB||t.eB||(k=n)),v(t,n),t.rB?0:n.length;var r=u(E,n);if(r){var a=E;a.skip?k+=n:(a.rE||a.eE||(k+=n),b(),a.eE&&(k=n));do E.cN&&(L+=C),E.skip||(B+=E.r),E=E.parent;while(E!==r.parent);return r.starts&&v(r.starts,""),a.rE?0:n.length}if(c(n,E))throw new Error('Illegal lexeme "'+n+'" for mode "'+(E.cN||"")+'"');return k+=n,n.length||1}var N=w(e);if(!N)throw new Error('Unknown language: "'+e+'"');s(N);var R,E=i||N,x={},L="";for(R=E;R!==N;R=R.parent)R.cN&&(L=p(R.cN,"",!0)+L);var k="",B=0;try{for(var M,j,O=0;;){if(E.t.lastIndex=O,M=E.t.exec(t),!M)break;j=m(t.substring(O,M.index),M[0]),O=M.index+j}for(m(t.substr(O)),R=E;R.parent;R=R.parent)R.cN&&(L+=C);return{r:B,value:L,language:e,top:E}}catch(T){if(T.message&&-1!==T.message.indexOf("Illegal"))return{r:0,value:n(t)};throw T}}function g(e,t){t=t||I.languages||x(y);var r={r:0,value:n(e)},a=r;return t.filter(w).forEach(function(n){var t=f(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}),a.language&&(r.second_best=a),r}function p(e){return I.tabReplace||I.useBR?e.replace(M,function(e,n){return I.useBR&&"\n"===e?"
    ":I.tabReplace?n.replace(/\t/g,I.tabReplace):""}):e}function h(e,n,t){var r=n?L[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}function d(e){var n,t,r,o,l,s=i(e);a(s)||(I.useBR?(n=document.createElementNS("http://www.w3.org/1999/xhtml","div"),n.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n")):n=e,l=n.textContent,r=s?f(s,l,!0):g(l),t=u(n),t.length&&(o=document.createElementNS("http://www.w3.org/1999/xhtml","div"),o.innerHTML=r.value,r.value=c(t,u(o),l)),r.value=p(r.value),e.innerHTML=r.value,e.className=h(e.className,s,r.language),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function b(e){I=o(I,e)}function v(){if(!v.called){v.called=!0;var e=document.querySelectorAll("pre code");E.forEach.call(e,d)}}function m(){addEventListener("DOMContentLoaded",v,!1),addEventListener("load",v,!1)}function N(n,t){var r=y[n]=t(e);r.aliases&&r.aliases.forEach(function(e){L[e]=n})}function R(){return x(y)}function w(e){return e=(e||"").toLowerCase(),y[e]||y[L[e]]}var E=[],x=Object.keys,y={},L={},k=/^(no-?highlight|plain|text)$/i,B=/\blang(?:uage)?-([\w-]+)\b/i,M=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,C="
    ",I={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};return e.highlight=f,e.highlightAuto=g,e.fixMarkup=p,e.highlightBlock=d,e.configure=b,e.initHighlighting=v,e.initHighlightingOnLoad=m,e.registerLanguage=N,e.listLanguages=R,e.getLanguage=w,e.inherit=o,e.IR="[a-zA-Z]\\w*",e.UIR="[a-zA-Z_]\\w*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},e.C=function(n,t,r){var a=e.inherit({cN:"comment",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},e.CLCM=e.C("//","$"),e.CBCM=e.C("/\\*","\\*/"),e.HCM=e.C("#","$"),e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e.METHOD_GUARD={b:"\\.\\s*"+e.UIR,r:0},e});hljs.registerLanguage("xml",function(s){var e="[A-Za-z0-9\\._:-]+",t={eW:!0,i:/`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],cI:!0,c:[{cN:"meta",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},s.C("",{r:10}),{b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{b:/<\?(php)?/,e:/\?>/,sL:"php",c:[{b:"/\\*",e:"\\*/",skip:!0}]},{cN:"tag",b:"|$)",e:">",k:{name:"style"},c:[t],starts:{e:"",rE:!0,sL:["css","xml"]}},{cN:"tag",b:"|$)",e:">",k:{name:"script"},c:[t],starts:{e:"",rE:!0,sL:["actionscript","javascript","handlebars","xml"]}},{cN:"meta",v:[{b:/<\?xml/,e:/\?>/,r:10},{b:/<\?\w+/,e:/\?>/}]},{cN:"tag",b:"",c:[{cN:"name",b:/[^\/><\s]+/,r:0},t]}]}});hljs.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],c:[{cN:"section",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"quote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"^```w*s*$",e:"^```s*$"},{b:"`.+?`"},{b:"^( {4}| )",e:"$",r:0}]},{b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].*?[\\)\\]]",rB:!0,c:[{cN:"string",b:"\\[",e:"\\]",eB:!0,rE:!0,r:0},{cN:"link",b:"\\]\\(",e:"\\)",eB:!0,eE:!0},{cN:"symbol",b:"\\]\\[",e:"\\]",eB:!0,eE:!0}],r:10},{b:/^\[[^\n]+\]:/,rB:!0,c:[{cN:"symbol",b:/\[/,e:/\]/,eB:!0,eE:!0},{cN:"link",b:/:\s*/,e:/$/,eB:!0}]}]}});hljs.registerLanguage("javascript",function(e){var r="[A-Za-z$_][0-9A-Za-z$_]*",t={keyword:"in of 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 export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},a={cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},n={cN:"subst",b:"\\$\\{",e:"\\}",k:t,c:[]},c={cN:"string",b:"`",e:"`",c:[e.BE,n]};n.c=[e.ASM,e.QSM,c,a,e.RM];var s=n.c.concat([e.CBCM,e.CLCM]);return{aliases:["js","jsx"],k:t,c:[{cN:"meta",r:10,b:/^\s*['"]use (strict|asm)['"]/},{cN:"meta",b:/^#!/,e:/$/},e.ASM,e.QSM,c,e.CLCM,e.CBCM,a,{b:/[{,]\s*/,r:0,c:[{b:r+"\\s*:",rB:!0,r:0,c:[{cN:"attr",b:r,r:0}]}]},{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBCM,e.RM,{cN:"function",b:"(\\(.*?\\)|"+r+")\\s*=>",rB:!0,e:"\\s*=>",c:[{cN:"params",v:[{b:r},{b:/\(\s*\)/},{b:/\(/,e:/\)/,eB:!0,eE:!0,k:t,c:s}]}]},{b://,sL:"xml",c:[{b:/<\w+\s*\/>/,skip:!0},{b:/<\w+/,e:/(\/\w+|\w+\/)>/,skip:!0,c:[{b:/<\w+\s*\/>/,skip:!0},"self"]}]}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:r}),{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,c:s}],i:/\[|%/},{b:/\$[(.]/},e.METHOD_GUARD,{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]},{bK:"constructor",e:/\{/,eE:!0}],i:/#(?!!)/}});hljs.registerLanguage("ruby",function(e){var b="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",r={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},c={cN:"doctag",b:"@[A-Za-z]+"},a={b:"#<",e:">"},s=[e.C("#","$",{c:[c]}),e.C("^\\=begin","^\\=end",{c:[c],r:10}),e.C("^__END__","\\n$")],n={cN:"subst",b:"#\\{",e:"}",k:r},t={cN:"string",c:[e.BE,n],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:/`/,e:/`/},{b:"%[qQwWx]?\\(",e:"\\)"},{b:"%[qQwWx]?\\[",e:"\\]"},{b:"%[qQwWx]?{",e:"}"},{b:"%[qQwWx]?<",e:">"},{b:"%[qQwWx]?/",e:"/"},{b:"%[qQwWx]?%",e:"%"},{b:"%[qQwWx]?-",e:"-"},{b:"%[qQwWx]?\\|",e:"\\|"},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{b:/<<(-?)\w+$/,e:/^\s*\w+$/}]},i={cN:"params",b:"\\(",e:"\\)",endsParent:!0,k:r},d=[t,a,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{b:"<\\s*",c:[{b:"("+e.IR+"::)?"+e.IR}]}].concat(s)},{cN:"function",bK:"def",e:"$|;",c:[e.inherit(e.TM,{b:b}),i].concat(s)},{b:e.IR+"::"},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"symbol",b:":(?!\\s)",c:[t,{b:b}],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:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{cN:"params",b:/\|/,e:/\|/,k:r},{b:"("+e.RSR+"|unless)\\s*",k:"unless",c:[a,{cN:"regexp",c:[e.BE,n],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}].concat(s),r:0}].concat(s);n.c=d,i.c=d;var l="[>?]>",o="[\\w#]+\\(\\w+\\):\\d+:\\d+>",u="(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>",w=[{b:/^\s*=>/,starts:{e:"$",c:d}},{cN:"meta",b:"^("+l+"|"+o+"|"+u+")",starts:{e:"$",c:d}}];return{aliases:["rb","gemspec","podspec","thor","irb"],k:r,i:/\/\*/,c:s.concat(w).concat(d)}});hljs.registerLanguage("haml",function(s){return{cI:!0,c:[{cN:"meta",b:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",r:10},s.C("^\\s*(!=#|=#|-#|/).*$",!1,{r:0}),{b:"^\\s*(-|=|!=)(?!#)",starts:{e:"\\n",sL:"ruby"}},{cN:"tag",b:"^\\s*%",c:[{cN:"selector-tag",b:"\\w+"},{cN:"selector-id",b:"#[\\w-]+"},{cN:"selector-class",b:"\\.[\\w-]+"},{b:"{\\s*",e:"\\s*}",c:[{b:":\\w+\\s*=>",e:",\\s+",rB:!0,eW:!0,c:[{cN:"attr",b:":\\w+"},s.ASM,s.QSM,{b:"\\w+",r:0}]}]},{b:"\\(\\s*",e:"\\s*\\)",eE:!0,c:[{b:"\\w+\\s*=",e:"\\s+",rB:!0,eW:!0,c:[{cN:"attr",b:"\\w+",r:0},s.ASM,s.QSM,{b:"\\w+",r:0}]}]}]},{b:"^\\s*[=~]\\s*"},{b:"#{",starts:{e:"}",sL:"ruby"}}]}});hljs.registerLanguage("bash",function(e){var t={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)}/}]},s={cN:"string",b:/"/,e:/"/,c:[e.BE,t,{cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]}]},a={cN:"string",b:/'/,e:/'/};return{aliases:["sh","zsh"],l:/\b-?[a-z\._]+\b/,k:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"meta",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:!0,c:[e.inherit(e.TM,{b:/\w[\w\d_]*/})],r:0},e.HCM,s,a,t]}});hljs.registerLanguage("shell",function(s){return{aliases:["console"],c:[{cN:"meta",b:"^\\s{0,3}[\\w\\d\\[\\]()@-]*[>%$#]",starts:{e:"$",sL:"bash"}}]}});hljs.registerLanguage("clojure",function(e){var t={"builtin-name":"def defonce 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 dosync 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 refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias 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! to-array future future-call into-array aset gen-class reduce 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"},r="a-zA-Z_\\-!.?+*=<>&#'",n="["+r+"]["+r+"0-9/;:]*",a="[-+]?\\d+(\\.\\d+)?",o={b:n,r:0},s={cN:"number",b:a,r:0},c=e.inherit(e.QSM,{i:null}),i=e.C(";","$",{r:0}),d={cN:"literal",b:/\b(true|false|nil)\b/},l={b:"[\\[\\{]",e:"[\\]\\}]"},m={cN:"comment",b:"\\^"+n},p=e.C("\\^\\{","\\}"),u={cN:"symbol",b:"[:]{1,2}"+n},f={b:"\\(",e:"\\)"},h={eW:!0,r:0},y={k:t,l:n,cN:"name",b:n,starts:h},b=[f,c,m,p,i,u,l,s,d,o];return f.c=[e.C("comment",""),y,h],h.c=b,l.c=b,p.c=[l],{aliases:["clj"],i:/\S/,c:[f,c,m,p,i,u,l,s,d]}});hljs.registerLanguage("rust",function(e){var t="([ui](8|16|32|64|128|size)|f(32|64))?",r="alignof as be box break const continue crate do else enum extern false fn for if impl in let loop match mod mut offsetof once priv proc pub pure ref return self Self sizeof static struct super trait true type typeof unsafe unsized use virtual while where yield move default",n="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!";return{aliases:["rs"],k:{keyword:r,literal:"true false Some None Ok Err",built_in:n},l:e.IR+"!?",i:""}]}});hljs.registerLanguage("scss",function(e){var t="[a-zA-Z-][a-zA-Z0-9_-]*",i={cN:"variable",b:"(\\$"+t+")\\b"},r={cN:"number",b:"#[0-9A-Fa-f]+"};({cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:!0,i:"[^\\s]",starts:{eW:!0,eE:!0,c:[r,e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"meta",b:"!important"}]}});return{cI:!0,i:"[=/|']",c:[e.CLCM,e.CBCM,{cN:"selector-id",b:"\\#[A-Za-z0-9_-]+",r:0},{cN:"selector-class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"selector-attr",b:"\\[",e:"\\]",i:"$"},{cN:"selector-tag",b:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",r:0},{b:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{b:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},i,{cN:"attribute",b:"\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",i:"[^\\s]"},{b:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{b:":",e:";",c:[i,r,e.CSSNM,e.QSM,e.ASM,{cN:"meta",b:"!important"}]},{b:"@",e:"[{;]",k:"mixin include extend for if else each while charset import debug media page content font-face namespace warn",c:[i,e.QSM,e.ASM,r,e.CSSNM,{b:"\\s[A-Za-z0-9_.-]+",r:0}]}]}});hljs.registerLanguage("ini",function(e){var b={cN:"string",c:[e.BE],v:[{b:"'''",e:"'''",r:10},{b:'"""',e:'"""',r:10},{b:'"',e:'"'},{b:"'",e:"'"}]};return{aliases:["toml"],cI:!0,i:/\S/,c:[e.C(";","$"),e.HCM,{cN:"section",b:/^\s*\[+/,e:/\]+/},{b:/^[a-z0-9\[\]_-]+\s*=\s*/,e:"$",rB:!0,c:[{cN:"attr",b:/[a-z0-9\[\]_-]+/},{b:/=/,eW:!0,r:0,c:[{cN:"literal",b:/\bon|off|true|false|yes|no\b/},{cN:"variable",v:[{b:/\$[\w\d"][\w\d_]*/},{b:/\$\{(.*?)}/}]},b,{cN:"number",b:/([\+\-]+)?[\d]+_[\d_]+/},e.NM]}]}]}});hljs.registerLanguage("python",function(e){var r={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 async await nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},b={cN:"meta",b:/^(>>>|\.\.\.) /},c={cN:"subst",b:/\{/,e:/\}/,k:r,i:/#/},a={cN:"string",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[b],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[b],r:10},{b:/(fr|rf|f)'''/,e:/'''/,c:[b,c]},{b:/(fr|rf|f)"""/,e:/"""/,c:[b,c]},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)"/,e:/"/},{b:/(fr|rf|f)'/,e:/'/,c:[c]},{b:/(fr|rf|f)"/,e:/"/,c:[c]},e.ASM,e.QSM]},s={cN:"number",r:0,v:[{b:e.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:e.CNR+"[lLjJ]?"}]},i={cN:"params",b:/\(/,e:/\)/,c:["self",b,s,a]};return c.c=[a,s,b],{aliases:["py","gyp"],k:r,i:/(<\/|->|\?)|=>/,c:[b,s,a,e.HCM,{v:[{cN:"function",bK:"def"},{cN:"class",bK:"class"}],e:/:/,i:/[${=;\n,]/,c:[e.UTM,i,{b:/->/,eW:!0,k:"None"}]},{cN:"meta",b:/^[\t ]*@/,e:/$/},{b:/\b(print|exec)\(/}]}});hljs.registerLanguage("css",function(e){var c="[a-zA-Z-][a-zA-Z0-9_-]*",t={b:/[A-Z\_\.\-]+\s*:/,rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:/\S/,e:":",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\w-]+\(/,rB:!0,c:[{cN:"built_in",b:/[\w-]+/},{b:/\(/,e:/\)/,c:[e.ASM,e.QSM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"number",b:"#[0-9A-Fa-f]+"},{cN:"meta",b:"!important"}]}}]};return{cI:!0,i:/[=\/|'\$]/,c:[e.CBCM,{cN:"selector-id",b:/#[A-Za-z0-9_-]+/},{cN:"selector-class",b:/\.[A-Za-z0-9_-]+/},{cN:"selector-attr",b:/\[/,e:/\]/,i:"$"},{cN:"selector-pseudo",b:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{b:"@",e:"[{;]",i:/:/,c:[{cN:"keyword",b:/\w+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[e.ASM,e.QSM,e.CSSNM]}]},{cN:"selector-tag",b:c,r:0},{b:"{",e:"}",i:/\S/,c:[e.CBCM,t]}]}});hljs.registerLanguage("json",function(e){var i={literal:"true false null"},n=[e.QSM,e.CNM],r={e:",",eW:!0,eE:!0,c:n,k:i},t={b:"{",e:"}",c:[{cN:"attr",b:/"/,e:/"/,c:[e.BE],i:"\\n"},e.inherit(r,{b:/:/})],i:"\\S"},c={b:"\\[",e:"\\]",c:[e.inherit(r)],i:"\\S"};return n.splice(n.length,0,t,c),{c:n,k:i,i:"\\S"}}); \ No newline at end of file diff --git a/themes/navy/source/js/lang_select.js b/themes/navy/source/js/lang_select.js new file mode 100644 index 0000000..b24b9e3 --- /dev/null +++ b/themes/navy/source/js/lang_select.js @@ -0,0 +1,21 @@ +(function() { + 'use strict'; + + function changeLang() { + var lang = this.value; + var canonical = this.dataset.canonical; + if (lang === 'en') lang = ''; + if (lang) lang += '/'; + + location.href = '/' + lang + canonical; + } + + var langSelect = document.getElementById('lang-select'); + if (langSelect) { + langSelect.addEventListener('change', changeLang); + } + var langSelectMobile = document.getElementById('mobile-lang-select'); + if (langSelectMobile) { + langSelectMobile.addEventListener('change', changeLang); + } +}()); diff --git a/themes/navy/source/js/mobile_nav.js b/themes/navy/source/js/mobile_nav.js new file mode 100644 index 0000000..de54fd6 --- /dev/null +++ b/themes/navy/source/js/mobile_nav.js @@ -0,0 +1,22 @@ +(function() { + 'use strict'; + + var body = document.getElementsByTagName('body')[0]; + var navToggle = document.getElementById('mobile-nav-toggle'); + var dimmer = document.getElementById('mobile-nav-dimmer'); + var CLASS_NAME = 'mobile-nav-on'; + if (!navToggle) return; + + navToggle.addEventListener('click', function(e) { + e.preventDefault(); + e.stopPropagation(); + body.classList.toggle(CLASS_NAME); + }); + + dimmer.addEventListener('click', function(e) { + if (!body.classList.contains(CLASS_NAME)) return; + + e.preventDefault(); + body.classList.remove(CLASS_NAME); + }); +}()); diff --git a/themes/navy/source/js/plugins.js b/themes/navy/source/js/plugins.js new file mode 100644 index 0000000..7cb474c --- /dev/null +++ b/themes/navy/source/js/plugins.js @@ -0,0 +1,66 @@ +(function() { + /* global lunr */ + 'use strict'; + + var elements = document.getElementsByClassName('plugin'); + var $count = document.getElementById('plugin-list-count'); + var $input = document.getElementById('plugin-search-input'); + var elementLen = elements.length; + var index = lunr.Index.load(window.SEARCH_INDEX); + + function updateCount(count) { + $count.innerHTML = count + (count === 1 ? ' item' : ' items'); + } + + function addClass(elem, className) { + var classList = elem.classList; + + if (!classList.contains(className)) { + classList.add(className); + } + } + + function removeClass(elem, className) { + var classList = elem.classList; + + if (classList.contains(className)) { + classList.remove(className); + } + } + + function search(value) { + var result = index.search('*' + value + '* ' + value); + var len = result.length; + var selected = {}; + var i = 0; + + for (i = 0; i < len; i++) { + selected[result[i].ref] = true; + } + + for (i = 0; i < elementLen; i++) { + if (selected[i]) { + addClass(elements[i], 'on'); + } else { + removeClass(elements[i], 'on'); + } + } + + updateCount(len); + } + + function displayAll() { + for (var i = 0; i < elementLen; i++) { + addClass(elements[i], 'on'); + } + + updateCount(elements.length); + } + + $input.addEventListener('input', function() { + var value = this.value; + + if (!value) return displayAll(); + search(value); + }); +}()); diff --git a/themes/navy/source/js/search.js b/themes/navy/source/js/search.js new file mode 100644 index 0000000..9e5900c --- /dev/null +++ b/themes/navy/source/js/search.js @@ -0,0 +1,16 @@ +(function() { + 'use strict'; + + var searchWrap = document.getElementById('search-input-wrap'); + var searchInput = document.getElementById('search-input'); + var className = 'active'; + + searchWrap.onclick = function(e) { + searchWrap.classList.add(className); + searchInput.focus(); + }; + + searchInput.onblur = function(e) { + searchWrap.classList.remove(className); + }; +}()); diff --git a/themes/navy/source/js/solidity.js b/themes/navy/source/js/solidity.js new file mode 100644 index 0000000..b756d6d --- /dev/null +++ b/themes/navy/source/js/solidity.js @@ -0,0 +1,170 @@ +/** + * highlight.js Solidity syntax highlighting definition + * + * @see https://github.com/isagalaev/highlight.js + * + * :TODO: + * - fixed point numbers + * - `_` inside modifiers + * - assembly block keywords + * + * @package: highlightjs-solidity + * @author: Sam Pospischil + * @since: 2016-07-01 + */ + +module || (module = {}); // shim for browser use + +function hljsDefineSolidity(hljs) { + var SOL_KEYWORDS = { + keyword: + 'var bool string ' + + 'int uint int8 uint8 int16 uint16 int24 uint24 int32 uint32 ' + + 'int40 uint40 int48 uint48 int56 uint56 int64 uint64 ' + + 'int72 uint72 int80 uint80 int88 uint88 int96 uint96 ' + + 'int104 uint104 int112 uint112 int120 uint120 int128 uint128 ' + + 'int136 uint136 int144 uint144 int152 uint152 int160 uint160 ' + + 'int168 uint168 int176 uint176 int184 uint184 int192 uint192 ' + + 'int200 uint200 int208 uint208 int216 uint216 int224 uint224 ' + + 'int232 uint232 int240 uint240 int248 uint248 int256 uint256 ' + + 'byte bytes bytes1 bytes2 bytes3 bytes4 bytes5 bytes6 bytes7 bytes8 ' + + 'bytes9 bytes10 bytes11 bytes12 bytes13 bytes14 bytes15 bytes16 ' + + 'bytes17 bytes18 bytes19 bytes20 bytes21 bytes22 bytes23 bytes24 ' + + 'bytes25 bytes26 bytes27 bytes28 bytes29 bytes30 bytes31 bytes32 ' + + 'enum struct mapping address ' + + + 'new delete ' + + 'if else for while continue break return throw assert require revert ' + + + 'function modifier event ' + + 'constant anonymous indexed ' + + 'storage memory ' + + 'external public internal pure view private returns ' + + + 'import using ' + + 'contract interface library ' + + 'assembly', + literal: + 'true false ' + + 'wei szabo finney ether ' + + 'second seconds minute minutes hour hours day days week weeks year years', + built_in: + 'self ' + // :NOTE: not a real keyword, but a convention used in storage manipulation libraries + 'this super selfdestruct ' + + 'now ' + + 'msg ' + + 'block ' + + 'tx ' + + 'sha3 sha256 ripemd160 erecover addmod mulmod ' + + // :NOTE: not really toplevel, but advantageous to have highlighted as if reserved to + // avoid newcomers making mistakes due to accidental name collisions. + 'send call callcode delegatecall', + }; + + var SOL_NUMBER = { + className: 'number', + variants: [ + { begin: '\\b(0[bB][01]+)' }, + { begin: '\\b(0[oO][0-7]+)' }, + { begin: hljs.C_NUMBER_RE }, + ], + relevance: 0, + }; + + var SOL_FUNC_PARAMS = { + className: 'params', + begin: /\(/, end: /\)/, + excludeBegin: true, + excludeEnd: true, + keywords: SOL_KEYWORDS, + contains: [ + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE, + hljs.APOS_STRING_MODE, + hljs.QUOTE_STRING_MODE, + SOL_NUMBER, + ], + }; + + var SOL_RESERVED_MEMBERS = { + begin: /\.\s*/, // match any property access up to start of prop + end: /[^A-Za-z0-9$_\.]/, + excludeBegin: true, + excludeEnd: true, + keywords: { + built_in: 'gas value send call callcode delegatecall balance length push', + }, + relevance: 2, + }; + + function makeBuiltinProps(obj, props) { + return { + begin: obj + '\\.\\s*', + end: /[^A-Za-z0-9$_\.]/, + excludeBegin: false, + excludeEnd: true, + keywords: { + built_in: obj + ' ' + props, + }, + contains: [ + SOL_RESERVED_MEMBERS, + ], + relevance: 10, + }; + } + + return { + aliases: ['sol'], + keywords: SOL_KEYWORDS, + contains: [ + // basic literal definitions + hljs.APOS_STRING_MODE, + hljs.QUOTE_STRING_MODE, + hljs.C_LINE_COMMENT_MODE, + hljs.C_BLOCK_COMMENT_MODE, + SOL_NUMBER, + { // functions + className: 'function', + beginKeywords: 'function modifier event', end: /[{;]/, excludeEnd: true, + contains: [ + hljs.inherit(hljs.TITLE_MODE, { + begin: /[A-Za-z$_][0-9A-Za-z$_]*/, + keywords: SOL_KEYWORDS, + }), + SOL_FUNC_PARAMS, + ], + illegal: /\[|%/, + }, + // built-in members + makeBuiltinProps('msg', 'data sender sig'), + makeBuiltinProps('block', 'blockhash coinbase difficulty gaslimit number timestamp '), + makeBuiltinProps('tx', 'gasprice origin'), + SOL_RESERVED_MEMBERS, + { // contracts & libraries & interfaces + className: 'class', + beginKeywords: 'contract interface library', end: /[{]/, excludeEnd: true, + illegal: /[:"\[\]]/, + contains: [ + { beginKeywords: 'is' }, + hljs.UNDERSCORE_TITLE_MODE, + SOL_FUNC_PARAMS, + ], + }, + { // imports + beginKeywords: 'import', end: '[;$]', + keywords: 'import * from as', + contains: [ + hljs.APOS_STRING_MODE, + hljs.QUOTE_STRING_MODE, + ], + }, + ], + illegal: /#/, + }; +} + +module.exports = function(hljs) { + hljs.registerLanguage('solidity', hljsDefineSolidity); +}; + +module.exports.definer = hljsDefineSolidity; diff --git a/themes/navy/source/js/styles/agate.css b/themes/navy/source/js/styles/agate.css new file mode 100644 index 0000000..8d64547 --- /dev/null +++ b/themes/navy/source/js/styles/agate.css @@ -0,0 +1,108 @@ +/*! + * Agate by Taufik Nurrohman + * ---------------------------------------------------- + * + * #ade5fc + * #a2fca2 + * #c6b4f0 + * #d36363 + * #fcc28c + * #fc9b9b + * #ffa + * #fff + * #333 + * #62c8f3 + * #888 + * + */ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #333; + color: white; +} + +.hljs-name, +.hljs-strong { + font-weight: bold; +} + +.hljs-code, +.hljs-emphasis { + font-style: italic; +} + +.hljs-tag { + color: #62c8f3; +} + +.hljs-variable, +.hljs-template-variable, +.hljs-selector-id, +.hljs-selector-class { + color: #ade5fc; +} + +.hljs-string, +.hljs-bullet { + color: #a2fca2; +} + +.hljs-type, +.hljs-title, +.hljs-section, +.hljs-attribute, +.hljs-quote, +.hljs-built_in, +.hljs-builtin-name { + color: #ffa; +} + +.hljs-number, +.hljs-symbol, +.hljs-bullet { + color: #d36363; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-literal { + color: #fcc28c; +} + +.hljs-comment, +.hljs-deletion, +.hljs-code { + color: #888; +} + +.hljs-regexp, +.hljs-link { + color: #c6b4f0; +} + +.hljs-meta { + color: #fc9b9b; +} + +.hljs-deletion { + background-color: #fc9b9b; + color: #333; +} + +.hljs-addition { + background-color: #a2fca2; + color: #333; +} + +.hljs a { + color: inherit; +} + +.hljs a:focus, +.hljs a:hover { + color: inherit; + text-decoration: underline; +} diff --git a/themes/navy/source/js/styles/androidstudio.css b/themes/navy/source/js/styles/androidstudio.css new file mode 100644 index 0000000..bc8e473 --- /dev/null +++ b/themes/navy/source/js/styles/androidstudio.css @@ -0,0 +1,66 @@ +/* +Date: 24 Fev 2015 +Author: Pedro Oliveira +*/ + +.hljs { + color: #a9b7c6; + background: #282b2e; + display: block; + overflow-x: auto; + padding: 0.5em; +} + +.hljs-number, +.hljs-literal, +.hljs-symbol, +.hljs-bullet { + color: #6897BB; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-deletion { + color: #cc7832; +} + +.hljs-variable, +.hljs-template-variable, +.hljs-link { + color: #629755; +} + +.hljs-comment, +.hljs-quote { + color: #808080; +} + +.hljs-meta { + color: #bbb529; +} + +.hljs-string, +.hljs-attribute, +.hljs-addition { + color: #6A8759; +} + +.hljs-section, +.hljs-title, +.hljs-type { + color: #ffc66d; +} + +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #e8bf6a; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/arduino-light.css b/themes/navy/source/js/styles/arduino-light.css new file mode 100644 index 0000000..4b8b7fd --- /dev/null +++ b/themes/navy/source/js/styles/arduino-light.css @@ -0,0 +1,88 @@ +/* + +Arduino® Light Theme - Stefania Mellai + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #FFFFFF; +} + +.hljs, +.hljs-subst { + color: #434f54; +} + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-doctag, +.hljs-name { + color: #00979D; +} + +.hljs-built_in, +.hljs-literal, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #D35400; +} + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #00979D; +} + +.hljs-type, +.hljs-string, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #005C5F; +} + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; +} + +.hljs-comment { + color: rgba(149,165,166,.8); +} + +.hljs-meta-keyword { + color: #728E00; +} + +.hljs-meta { + color: #728E00; + color: #434f54; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-function { + color: #728E00; +} + +.hljs-number { + color: #8A7B52; +} diff --git a/themes/navy/source/js/styles/arta.css b/themes/navy/source/js/styles/arta.css new file mode 100644 index 0000000..75ef3a9 --- /dev/null +++ b/themes/navy/source/js/styles/arta.css @@ -0,0 +1,73 @@ +/* +Date: 17.V.2011 +Author: pumbur +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #222; +} + +.hljs, +.hljs-subst { + color: #aaa; +} + +.hljs-section { + color: #fff; +} + +.hljs-comment, +.hljs-quote, +.hljs-meta { + color: #444; +} + +.hljs-string, +.hljs-symbol, +.hljs-bullet, +.hljs-regexp { + color: #ffcc33; +} + +.hljs-number, +.hljs-addition { + color: #00cc66; +} + +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-template-variable, +.hljs-attribute, +.hljs-link { + color: #32aaee; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #6644aa; +} + +.hljs-title, +.hljs-variable, +.hljs-deletion, +.hljs-template-tag { + color: #bb1166; +} + +.hljs-section, +.hljs-doctag, +.hljs-strong { + font-weight: bold; +} + +.hljs-emphasis { + font-style: italic; +} diff --git a/themes/navy/source/js/styles/ascetic.css b/themes/navy/source/js/styles/ascetic.css new file mode 100644 index 0000000..48397e8 --- /dev/null +++ b/themes/navy/source/js/styles/ascetic.css @@ -0,0 +1,45 @@ +/* + +Original style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: white; + color: black; +} + +.hljs-string, +.hljs-variable, +.hljs-template-variable, +.hljs-symbol, +.hljs-bullet, +.hljs-section, +.hljs-addition, +.hljs-attribute, +.hljs-link { + color: #888; +} + +.hljs-comment, +.hljs-quote, +.hljs-meta, +.hljs-deletion { + color: #ccc; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-section, +.hljs-name, +.hljs-type, +.hljs-strong { + font-weight: bold; +} + +.hljs-emphasis { + font-style: italic; +} diff --git a/themes/navy/source/js/styles/atelier-cave-dark.css b/themes/navy/source/js/styles/atelier-cave-dark.css new file mode 100644 index 0000000..65428f3 --- /dev/null +++ b/themes/navy/source/js/styles/atelier-cave-dark.css @@ -0,0 +1,83 @@ +/* Base16 Atelier Cave Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Cave Comment */ +.hljs-comment, +.hljs-quote { + color: #7e7887; +} + +/* Atelier-Cave Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-regexp, +.hljs-link, +.hljs-tag, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #be4678; +} + +/* Atelier-Cave Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #aa573c; +} + +/* Atelier-Cave Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #2a9292; +} + +/* Atelier-Cave Blue */ +.hljs-title, +.hljs-section { + color: #576ddb; +} + +/* Atelier-Cave Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #955ae7; +} + +.hljs-deletion, +.hljs-addition { + color: #19171c; + display: inline-block; + width: 100%; +} + +.hljs-deletion { + background-color: #be4678; +} + +.hljs-addition { + background-color: #2a9292; +} + +.hljs { + display: block; + overflow-x: auto; + background: #19171c; + color: #8b8792; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-cave-light.css b/themes/navy/source/js/styles/atelier-cave-light.css new file mode 100644 index 0000000..b419f9f --- /dev/null +++ b/themes/navy/source/js/styles/atelier-cave-light.css @@ -0,0 +1,85 @@ +/* Base16 Atelier Cave Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Cave Comment */ +.hljs-comment, +.hljs-quote { + color: #655f6d; +} + +/* Atelier-Cave Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #be4678; +} + +/* Atelier-Cave Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #aa573c; +} + +/* Atelier-Cave Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #2a9292; +} + +/* Atelier-Cave Blue */ +.hljs-title, +.hljs-section { + color: #576ddb; +} + +/* Atelier-Cave Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #955ae7; +} + +.hljs-deletion, +.hljs-addition { + color: #19171c; + display: inline-block; + width: 100%; +} + +.hljs-deletion { + background-color: #be4678; +} + +.hljs-addition { + background-color: #2a9292; +} + +.hljs { + display: block; + overflow-x: auto; + background: #efecf4; + color: #585260; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-dune-dark.css b/themes/navy/source/js/styles/atelier-dune-dark.css new file mode 100644 index 0000000..1684f52 --- /dev/null +++ b/themes/navy/source/js/styles/atelier-dune-dark.css @@ -0,0 +1,69 @@ +/* Base16 Atelier Dune Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Dune Comment */ +.hljs-comment, +.hljs-quote { + color: #999580; +} + +/* Atelier-Dune Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #d73737; +} + +/* Atelier-Dune Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #b65611; +} + +/* Atelier-Dune Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #60ac39; +} + +/* Atelier-Dune Blue */ +.hljs-title, +.hljs-section { + color: #6684e1; +} + +/* Atelier-Dune Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #b854d4; +} + +.hljs { + display: block; + overflow-x: auto; + background: #20201d; + color: #a6a28c; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-dune-light.css b/themes/navy/source/js/styles/atelier-dune-light.css new file mode 100644 index 0000000..547719d --- /dev/null +++ b/themes/navy/source/js/styles/atelier-dune-light.css @@ -0,0 +1,69 @@ +/* Base16 Atelier Dune Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Dune Comment */ +.hljs-comment, +.hljs-quote { + color: #7d7a68; +} + +/* Atelier-Dune Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #d73737; +} + +/* Atelier-Dune Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #b65611; +} + +/* Atelier-Dune Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #60ac39; +} + +/* Atelier-Dune Blue */ +.hljs-title, +.hljs-section { + color: #6684e1; +} + +/* Atelier-Dune Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #b854d4; +} + +.hljs { + display: block; + overflow-x: auto; + background: #fefbec; + color: #6e6b5e; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-estuary-dark.css b/themes/navy/source/js/styles/atelier-estuary-dark.css new file mode 100644 index 0000000..a5e5071 --- /dev/null +++ b/themes/navy/source/js/styles/atelier-estuary-dark.css @@ -0,0 +1,84 @@ +/* Base16 Atelier Estuary Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Estuary Comment */ +.hljs-comment, +.hljs-quote { + color: #878573; +} + +/* Atelier-Estuary Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #ba6236; +} + +/* Atelier-Estuary Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #ae7313; +} + +/* Atelier-Estuary Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #7d9726; +} + +/* Atelier-Estuary Blue */ +.hljs-title, +.hljs-section { + color: #36a166; +} + +/* Atelier-Estuary Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #5f9182; +} + +.hljs-deletion, +.hljs-addition { + color: #22221b; + display: inline-block; + width: 100%; +} + +.hljs-deletion { + background-color: #ba6236; +} + +.hljs-addition { + background-color: #7d9726; +} + +.hljs { + display: block; + overflow-x: auto; + background: #22221b; + color: #929181; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-estuary-light.css b/themes/navy/source/js/styles/atelier-estuary-light.css new file mode 100644 index 0000000..1daee5d --- /dev/null +++ b/themes/navy/source/js/styles/atelier-estuary-light.css @@ -0,0 +1,84 @@ +/* Base16 Atelier Estuary Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Estuary Comment */ +.hljs-comment, +.hljs-quote { + color: #6c6b5a; +} + +/* Atelier-Estuary Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #ba6236; +} + +/* Atelier-Estuary Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #ae7313; +} + +/* Atelier-Estuary Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #7d9726; +} + +/* Atelier-Estuary Blue */ +.hljs-title, +.hljs-section { + color: #36a166; +} + +/* Atelier-Estuary Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #5f9182; +} + +.hljs-deletion, +.hljs-addition { + color: #22221b; + display: inline-block; + width: 100%; +} + +.hljs-deletion { + background-color: #ba6236; +} + +.hljs-addition { + background-color: #7d9726; +} + +.hljs { + display: block; + overflow-x: auto; + background: #f4f3ec; + color: #5f5e4e; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-forest-dark.css b/themes/navy/source/js/styles/atelier-forest-dark.css new file mode 100644 index 0000000..0ef4fae --- /dev/null +++ b/themes/navy/source/js/styles/atelier-forest-dark.css @@ -0,0 +1,69 @@ +/* Base16 Atelier Forest Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Forest Comment */ +.hljs-comment, +.hljs-quote { + color: #9c9491; +} + +/* Atelier-Forest Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #f22c40; +} + +/* Atelier-Forest Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #df5320; +} + +/* Atelier-Forest Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #7b9726; +} + +/* Atelier-Forest Blue */ +.hljs-title, +.hljs-section { + color: #407ee7; +} + +/* Atelier-Forest Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #6666ea; +} + +.hljs { + display: block; + overflow-x: auto; + background: #1b1918; + color: #a8a19f; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-forest-light.css b/themes/navy/source/js/styles/atelier-forest-light.css new file mode 100644 index 0000000..bbedde1 --- /dev/null +++ b/themes/navy/source/js/styles/atelier-forest-light.css @@ -0,0 +1,69 @@ +/* Base16 Atelier Forest Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Forest Comment */ +.hljs-comment, +.hljs-quote { + color: #766e6b; +} + +/* Atelier-Forest Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #f22c40; +} + +/* Atelier-Forest Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #df5320; +} + +/* Atelier-Forest Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #7b9726; +} + +/* Atelier-Forest Blue */ +.hljs-title, +.hljs-section { + color: #407ee7; +} + +/* Atelier-Forest Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #6666ea; +} + +.hljs { + display: block; + overflow-x: auto; + background: #f1efee; + color: #68615e; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-heath-dark.css b/themes/navy/source/js/styles/atelier-heath-dark.css new file mode 100644 index 0000000..fe01ff7 --- /dev/null +++ b/themes/navy/source/js/styles/atelier-heath-dark.css @@ -0,0 +1,69 @@ +/* Base16 Atelier Heath Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Heath Comment */ +.hljs-comment, +.hljs-quote { + color: #9e8f9e; +} + +/* Atelier-Heath Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #ca402b; +} + +/* Atelier-Heath Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #a65926; +} + +/* Atelier-Heath Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #918b3b; +} + +/* Atelier-Heath Blue */ +.hljs-title, +.hljs-section { + color: #516aec; +} + +/* Atelier-Heath Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #7b59c0; +} + +.hljs { + display: block; + overflow-x: auto; + background: #1b181b; + color: #ab9bab; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-heath-light.css b/themes/navy/source/js/styles/atelier-heath-light.css new file mode 100644 index 0000000..ee43786 --- /dev/null +++ b/themes/navy/source/js/styles/atelier-heath-light.css @@ -0,0 +1,69 @@ +/* Base16 Atelier Heath Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Heath Comment */ +.hljs-comment, +.hljs-quote { + color: #776977; +} + +/* Atelier-Heath Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #ca402b; +} + +/* Atelier-Heath Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #a65926; +} + +/* Atelier-Heath Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #918b3b; +} + +/* Atelier-Heath Blue */ +.hljs-title, +.hljs-section { + color: #516aec; +} + +/* Atelier-Heath Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #7b59c0; +} + +.hljs { + display: block; + overflow-x: auto; + background: #f7f3f7; + color: #695d69; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-lakeside-dark.css b/themes/navy/source/js/styles/atelier-lakeside-dark.css new file mode 100644 index 0000000..a937d3b --- /dev/null +++ b/themes/navy/source/js/styles/atelier-lakeside-dark.css @@ -0,0 +1,69 @@ +/* Base16 Atelier Lakeside Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Lakeside Comment */ +.hljs-comment, +.hljs-quote { + color: #7195a8; +} + +/* Atelier-Lakeside Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #d22d72; +} + +/* Atelier-Lakeside Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #935c25; +} + +/* Atelier-Lakeside Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #568c3b; +} + +/* Atelier-Lakeside Blue */ +.hljs-title, +.hljs-section { + color: #257fad; +} + +/* Atelier-Lakeside Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #6b6bb8; +} + +.hljs { + display: block; + overflow-x: auto; + background: #161b1d; + color: #7ea2b4; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-lakeside-light.css b/themes/navy/source/js/styles/atelier-lakeside-light.css new file mode 100644 index 0000000..6c7e8f9 --- /dev/null +++ b/themes/navy/source/js/styles/atelier-lakeside-light.css @@ -0,0 +1,69 @@ +/* Base16 Atelier Lakeside Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Lakeside Comment */ +.hljs-comment, +.hljs-quote { + color: #5a7b8c; +} + +/* Atelier-Lakeside Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #d22d72; +} + +/* Atelier-Lakeside Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #935c25; +} + +/* Atelier-Lakeside Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #568c3b; +} + +/* Atelier-Lakeside Blue */ +.hljs-title, +.hljs-section { + color: #257fad; +} + +/* Atelier-Lakeside Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #6b6bb8; +} + +.hljs { + display: block; + overflow-x: auto; + background: #ebf8ff; + color: #516d7b; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-plateau-dark.css b/themes/navy/source/js/styles/atelier-plateau-dark.css new file mode 100644 index 0000000..3bb0526 --- /dev/null +++ b/themes/navy/source/js/styles/atelier-plateau-dark.css @@ -0,0 +1,84 @@ +/* Base16 Atelier Plateau Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Plateau Comment */ +.hljs-comment, +.hljs-quote { + color: #7e7777; +} + +/* Atelier-Plateau Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #ca4949; +} + +/* Atelier-Plateau Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #b45a3c; +} + +/* Atelier-Plateau Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #4b8b8b; +} + +/* Atelier-Plateau Blue */ +.hljs-title, +.hljs-section { + color: #7272ca; +} + +/* Atelier-Plateau Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #8464c4; +} + +.hljs-deletion, +.hljs-addition { + color: #1b1818; + display: inline-block; + width: 100%; +} + +.hljs-deletion { + background-color: #ca4949; +} + +.hljs-addition { + background-color: #4b8b8b; +} + +.hljs { + display: block; + overflow-x: auto; + background: #1b1818; + color: #8a8585; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-plateau-light.css b/themes/navy/source/js/styles/atelier-plateau-light.css new file mode 100644 index 0000000..5f0222b --- /dev/null +++ b/themes/navy/source/js/styles/atelier-plateau-light.css @@ -0,0 +1,84 @@ +/* Base16 Atelier Plateau Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Plateau Comment */ +.hljs-comment, +.hljs-quote { + color: #655d5d; +} + +/* Atelier-Plateau Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #ca4949; +} + +/* Atelier-Plateau Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #b45a3c; +} + +/* Atelier-Plateau Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #4b8b8b; +} + +/* Atelier-Plateau Blue */ +.hljs-title, +.hljs-section { + color: #7272ca; +} + +/* Atelier-Plateau Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #8464c4; +} + +.hljs-deletion, +.hljs-addition { + color: #1b1818; + display: inline-block; + width: 100%; +} + +.hljs-deletion { + background-color: #ca4949; +} + +.hljs-addition { + background-color: #4b8b8b; +} + +.hljs { + display: block; + overflow-x: auto; + background: #f4ecec; + color: #585050; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-savanna-dark.css b/themes/navy/source/js/styles/atelier-savanna-dark.css new file mode 100644 index 0000000..38f8314 --- /dev/null +++ b/themes/navy/source/js/styles/atelier-savanna-dark.css @@ -0,0 +1,84 @@ +/* Base16 Atelier Savanna Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Savanna Comment */ +.hljs-comment, +.hljs-quote { + color: #78877d; +} + +/* Atelier-Savanna Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #b16139; +} + +/* Atelier-Savanna Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #9f713c; +} + +/* Atelier-Savanna Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #489963; +} + +/* Atelier-Savanna Blue */ +.hljs-title, +.hljs-section { + color: #478c90; +} + +/* Atelier-Savanna Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #55859b; +} + +.hljs-deletion, +.hljs-addition { + color: #171c19; + display: inline-block; + width: 100%; +} + +.hljs-deletion { + background-color: #b16139; +} + +.hljs-addition { + background-color: #489963; +} + +.hljs { + display: block; + overflow-x: auto; + background: #171c19; + color: #87928a; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-savanna-light.css b/themes/navy/source/js/styles/atelier-savanna-light.css new file mode 100644 index 0000000..1ccd7c6 --- /dev/null +++ b/themes/navy/source/js/styles/atelier-savanna-light.css @@ -0,0 +1,84 @@ +/* Base16 Atelier Savanna Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Savanna Comment */ +.hljs-comment, +.hljs-quote { + color: #5f6d64; +} + +/* Atelier-Savanna Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #b16139; +} + +/* Atelier-Savanna Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #9f713c; +} + +/* Atelier-Savanna Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #489963; +} + +/* Atelier-Savanna Blue */ +.hljs-title, +.hljs-section { + color: #478c90; +} + +/* Atelier-Savanna Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #55859b; +} + +.hljs-deletion, +.hljs-addition { + color: #171c19; + display: inline-block; + width: 100%; +} + +.hljs-deletion { + background-color: #b16139; +} + +.hljs-addition { + background-color: #489963; +} + +.hljs { + display: block; + overflow-x: auto; + background: #ecf4ee; + color: #526057; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-seaside-dark.css b/themes/navy/source/js/styles/atelier-seaside-dark.css new file mode 100644 index 0000000..df29949 --- /dev/null +++ b/themes/navy/source/js/styles/atelier-seaside-dark.css @@ -0,0 +1,69 @@ +/* Base16 Atelier Seaside Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Seaside Comment */ +.hljs-comment, +.hljs-quote { + color: #809980; +} + +/* Atelier-Seaside Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #e6193c; +} + +/* Atelier-Seaside Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #87711d; +} + +/* Atelier-Seaside Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #29a329; +} + +/* Atelier-Seaside Blue */ +.hljs-title, +.hljs-section { + color: #3d62f5; +} + +/* Atelier-Seaside Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #ad2bee; +} + +.hljs { + display: block; + overflow-x: auto; + background: #131513; + color: #8ca68c; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-seaside-light.css b/themes/navy/source/js/styles/atelier-seaside-light.css new file mode 100644 index 0000000..9d960f2 --- /dev/null +++ b/themes/navy/source/js/styles/atelier-seaside-light.css @@ -0,0 +1,69 @@ +/* Base16 Atelier Seaside Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Seaside Comment */ +.hljs-comment, +.hljs-quote { + color: #687d68; +} + +/* Atelier-Seaside Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #e6193c; +} + +/* Atelier-Seaside Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #87711d; +} + +/* Atelier-Seaside Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #29a329; +} + +/* Atelier-Seaside Blue */ +.hljs-title, +.hljs-section { + color: #3d62f5; +} + +/* Atelier-Seaside Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #ad2bee; +} + +.hljs { + display: block; + overflow-x: auto; + background: #f4fbf4; + color: #5e6e5e; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-sulphurpool-dark.css b/themes/navy/source/js/styles/atelier-sulphurpool-dark.css new file mode 100644 index 0000000..c2ab793 --- /dev/null +++ b/themes/navy/source/js/styles/atelier-sulphurpool-dark.css @@ -0,0 +1,69 @@ +/* Base16 Atelier Sulphurpool Dark - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Sulphurpool Comment */ +.hljs-comment, +.hljs-quote { + color: #898ea4; +} + +/* Atelier-Sulphurpool Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #c94922; +} + +/* Atelier-Sulphurpool Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #c76b29; +} + +/* Atelier-Sulphurpool Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #ac9739; +} + +/* Atelier-Sulphurpool Blue */ +.hljs-title, +.hljs-section { + color: #3d8fd1; +} + +/* Atelier-Sulphurpool Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #6679cc; +} + +.hljs { + display: block; + overflow-x: auto; + background: #202746; + color: #979db4; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atelier-sulphurpool-light.css b/themes/navy/source/js/styles/atelier-sulphurpool-light.css new file mode 100644 index 0000000..96c47d0 --- /dev/null +++ b/themes/navy/source/js/styles/atelier-sulphurpool-light.css @@ -0,0 +1,69 @@ +/* Base16 Atelier Sulphurpool Light - Theme */ +/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */ +/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ + +/* Atelier-Sulphurpool Comment */ +.hljs-comment, +.hljs-quote { + color: #6b7394; +} + +/* Atelier-Sulphurpool Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-regexp, +.hljs-link, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #c94922; +} + +/* Atelier-Sulphurpool Orange */ +.hljs-number, +.hljs-meta, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #c76b29; +} + +/* Atelier-Sulphurpool Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet { + color: #ac9739; +} + +/* Atelier-Sulphurpool Blue */ +.hljs-title, +.hljs-section { + color: #3d8fd1; +} + +/* Atelier-Sulphurpool Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #6679cc; +} + +.hljs { + display: block; + overflow-x: auto; + background: #f5f7ff; + color: #5e6687; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/atom-one-dark.css b/themes/navy/source/js/styles/atom-one-dark.css new file mode 100644 index 0000000..1616aaf --- /dev/null +++ b/themes/navy/source/js/styles/atom-one-dark.css @@ -0,0 +1,96 @@ +/* + +Atom One Dark by Daniel Gamage +Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax + +base: #282c34 +mono-1: #abb2bf +mono-2: #818896 +mono-3: #5c6370 +hue-1: #56b6c2 +hue-2: #61aeee +hue-3: #c678dd +hue-4: #98c379 +hue-5: #e06c75 +hue-5-2: #be5046 +hue-6: #d19a66 +hue-6-2: #e6c07b + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + color: #abb2bf; + background: #282c34; +} + +.hljs-comment, +.hljs-quote { + color: #5c6370; + font-style: italic; +} + +.hljs-doctag, +.hljs-keyword, +.hljs-formula { + color: #c678dd; +} + +.hljs-section, +.hljs-name, +.hljs-selector-tag, +.hljs-deletion, +.hljs-subst { + color: #e06c75; +} + +.hljs-literal { + color: #56b6c2; +} + +.hljs-string, +.hljs-regexp, +.hljs-addition, +.hljs-attribute, +.hljs-meta-string { + color: #98c379; +} + +.hljs-built_in, +.hljs-class .hljs-title { + color: #e6c07b; +} + +.hljs-attr, +.hljs-variable, +.hljs-template-variable, +.hljs-type, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo, +.hljs-number { + color: #d19a66; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-link, +.hljs-meta, +.hljs-selector-id, +.hljs-title { + color: #61aeee; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-link { + text-decoration: underline; +} diff --git a/themes/navy/source/js/styles/atom-one-light.css b/themes/navy/source/js/styles/atom-one-light.css new file mode 100644 index 0000000..d5bd1d2 --- /dev/null +++ b/themes/navy/source/js/styles/atom-one-light.css @@ -0,0 +1,96 @@ +/* + +Atom One Light by Daniel Gamage +Original One Light Syntax theme from https://github.com/atom/one-light-syntax + +base: #fafafa +mono-1: #383a42 +mono-2: #686b77 +mono-3: #a0a1a7 +hue-1: #0184bb +hue-2: #4078f2 +hue-3: #a626a4 +hue-4: #50a14f +hue-5: #e45649 +hue-5-2: #c91243 +hue-6: #986801 +hue-6-2: #c18401 + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + color: #383a42; + background: #fafafa; +} + +.hljs-comment, +.hljs-quote { + color: #a0a1a7; + font-style: italic; +} + +.hljs-doctag, +.hljs-keyword, +.hljs-formula { + color: #a626a4; +} + +.hljs-section, +.hljs-name, +.hljs-selector-tag, +.hljs-deletion, +.hljs-subst { + color: #e45649; +} + +.hljs-literal { + color: #0184bb; +} + +.hljs-string, +.hljs-regexp, +.hljs-addition, +.hljs-attribute, +.hljs-meta-string { + color: #50a14f; +} + +.hljs-built_in, +.hljs-class .hljs-title { + color: #c18401; +} + +.hljs-attr, +.hljs-variable, +.hljs-template-variable, +.hljs-type, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo, +.hljs-number { + color: #986801; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-link, +.hljs-meta, +.hljs-selector-id, +.hljs-title { + color: #4078f2; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-link { + text-decoration: underline; +} diff --git a/themes/navy/source/js/styles/brown-paper.css b/themes/navy/source/js/styles/brown-paper.css new file mode 100644 index 0000000..f0197b9 --- /dev/null +++ b/themes/navy/source/js/styles/brown-paper.css @@ -0,0 +1,64 @@ +/* + +Brown Paper style from goldblog.com.ua (c) Zaripov Yura + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background:#b7a68e url(./brown-papersq.png); +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-literal { + color:#005599; + font-weight:bold; +} + +.hljs, +.hljs-subst { + color: #363c69; +} + +.hljs-string, +.hljs-title, +.hljs-section, +.hljs-type, +.hljs-attribute, +.hljs-symbol, +.hljs-bullet, +.hljs-built_in, +.hljs-addition, +.hljs-variable, +.hljs-template-tag, +.hljs-template-variable, +.hljs-link, +.hljs-name { + color: #2c009f; +} + +.hljs-comment, +.hljs-quote, +.hljs-meta, +.hljs-deletion { + color: #802022; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-literal, +.hljs-doctag, +.hljs-title, +.hljs-section, +.hljs-type, +.hljs-name, +.hljs-strong { + font-weight: bold; +} + +.hljs-emphasis { + font-style: italic; +} diff --git a/themes/navy/source/js/styles/brown-papersq.png b/themes/navy/source/js/styles/brown-papersq.png new file mode 100644 index 0000000..3813903 Binary files /dev/null and b/themes/navy/source/js/styles/brown-papersq.png differ diff --git a/themes/navy/source/js/styles/codepen-embed.css b/themes/navy/source/js/styles/codepen-embed.css new file mode 100644 index 0000000..195c4a0 --- /dev/null +++ b/themes/navy/source/js/styles/codepen-embed.css @@ -0,0 +1,60 @@ +/* + codepen.io Embed Theme + Author: Justin Perry + Original theme - https://github.com/chriskempson/tomorrow-theme +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #222; + color: #fff; +} + +.hljs-comment, +.hljs-quote { + color: #777; +} + +.hljs-variable, +.hljs-template-variable, +.hljs-tag, +.hljs-regexp, +.hljs-meta, +.hljs-number, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-params, +.hljs-symbol, +.hljs-bullet, +.hljs-link, +.hljs-deletion { + color: #ab875d; +} + +.hljs-section, +.hljs-title, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class, +.hljs-type, +.hljs-attribute { + color: #9b869b; +} + +.hljs-string, +.hljs-keyword, +.hljs-selector-tag, +.hljs-addition { + color: #8f9c6c; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/color-brewer.css b/themes/navy/source/js/styles/color-brewer.css new file mode 100644 index 0000000..7934d98 --- /dev/null +++ b/themes/navy/source/js/styles/color-brewer.css @@ -0,0 +1,71 @@ +/* + +Colorbrewer theme +Original: https://github.com/mbostock/colorbrewer-theme (c) Mike Bostock +Ported by Fabrício Tavares de Oliveira + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #fff; +} + +.hljs, +.hljs-subst { + color: #000; +} + +.hljs-string, +.hljs-meta, +.hljs-symbol, +.hljs-template-tag, +.hljs-template-variable, +.hljs-addition { + color: #756bb1; +} + +.hljs-comment, +.hljs-quote { + color: #636363; +} + +.hljs-number, +.hljs-regexp, +.hljs-literal, +.hljs-bullet, +.hljs-link { + color: #31a354; +} + +.hljs-deletion, +.hljs-variable { + color: #88f; +} + + + +.hljs-keyword, +.hljs-selector-tag, +.hljs-title, +.hljs-section, +.hljs-built_in, +.hljs-doctag, +.hljs-type, +.hljs-tag, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class, +.hljs-strong { + color: #3182bd; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-attribute { + color: #e6550d; +} diff --git a/themes/navy/source/js/styles/darcula.css b/themes/navy/source/js/styles/darcula.css new file mode 100644 index 0000000..be182d0 --- /dev/null +++ b/themes/navy/source/js/styles/darcula.css @@ -0,0 +1,77 @@ +/* + +Darcula color scheme from the JetBrains family of IDEs + +*/ + + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #2b2b2b; +} + +.hljs { + color: #bababa; +} + +.hljs-strong, +.hljs-emphasis { + color: #a8a8a2; +} + +.hljs-bullet, +.hljs-quote, +.hljs-link, +.hljs-number, +.hljs-regexp, +.hljs-literal { + color: #6896ba; +} + +.hljs-code, +.hljs-selector-class { + color: #a6e22e; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-section, +.hljs-attribute, +.hljs-name, +.hljs-variable { + color: #cb7832; +} + +.hljs-params { + color: #b9b9b9; +} + +.hljs-string { + color: #6a8759; +} + +.hljs-subst, +.hljs-type, +.hljs-built_in, +.hljs-builtin-name, +.hljs-symbol, +.hljs-selector-id, +.hljs-selector-attr, +.hljs-selector-pseudo, +.hljs-template-tag, +.hljs-template-variable, +.hljs-addition { + color: #e0c46c; +} + +.hljs-comment, +.hljs-deletion, +.hljs-meta { + color: #7f7f7f; +} diff --git a/themes/navy/source/js/styles/dark.css b/themes/navy/source/js/styles/dark.css new file mode 100644 index 0000000..b4724f5 --- /dev/null +++ b/themes/navy/source/js/styles/dark.css @@ -0,0 +1,63 @@ +/* + +Dark style from softwaremaniacs.org (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #444; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-literal, +.hljs-section, +.hljs-link { + color: white; +} + +.hljs, +.hljs-subst { + color: #ddd; +} + +.hljs-string, +.hljs-title, +.hljs-name, +.hljs-type, +.hljs-attribute, +.hljs-symbol, +.hljs-bullet, +.hljs-built_in, +.hljs-addition, +.hljs-variable, +.hljs-template-tag, +.hljs-template-variable { + color: #d88; +} + +.hljs-comment, +.hljs-quote, +.hljs-deletion, +.hljs-meta { + color: #777; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-literal, +.hljs-title, +.hljs-section, +.hljs-doctag, +.hljs-type, +.hljs-name, +.hljs-strong { + font-weight: bold; +} + +.hljs-emphasis { + font-style: italic; +} diff --git a/themes/navy/source/js/styles/darkula.css b/themes/navy/source/js/styles/darkula.css new file mode 100644 index 0000000..f4646c3 --- /dev/null +++ b/themes/navy/source/js/styles/darkula.css @@ -0,0 +1,6 @@ +/* + Deprecated due to a typo in the name and left here for compatibility purpose only. + Please use darcula.css instead. +*/ + +@import url('darcula.css'); diff --git a/themes/navy/source/js/styles/default.css b/themes/navy/source/js/styles/default.css new file mode 100644 index 0000000..f1bfade --- /dev/null +++ b/themes/navy/source/js/styles/default.css @@ -0,0 +1,99 @@ +/* + +Original highlight.js style (c) Ivan Sagalaev + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #F0F0F0; +} + + +/* Base color: saturation 0; */ + +.hljs, +.hljs-subst { + color: #444; +} + +.hljs-comment { + color: #888888; +} + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; +} + + +/* User color: hue: 0 */ + +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; +} + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; +} + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #BC6060; +} + + +/* Language color: hue: 90; */ + +.hljs-literal { + color: #78A960; +} + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; +} + + +/* Meta color: hue: 200 */ + +.hljs-meta { + color: #1f7199; +} + +.hljs-meta-string { + color: #4d99bf; +} + + +/* Misc effects */ + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/docco.css b/themes/navy/source/js/styles/docco.css new file mode 100644 index 0000000..db366be --- /dev/null +++ b/themes/navy/source/js/styles/docco.css @@ -0,0 +1,97 @@ +/* +Docco style used in http://jashkenas.github.com/docco/ converted by Simon Madine (@thingsinjars) +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + color: #000; + background: #f8f8ff; +} + +.hljs-comment, +.hljs-quote { + color: #408080; + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-literal, +.hljs-subst { + color: #954121; +} + +.hljs-number { + color: #40a070; +} + +.hljs-string, +.hljs-doctag { + color: #219161; +} + +.hljs-selector-id, +.hljs-selector-class, +.hljs-section, +.hljs-type { + color: #19469d; +} + +.hljs-params { + color: #00f; +} + +.hljs-title { + color: #458; + font-weight: bold; +} + +.hljs-tag, +.hljs-name, +.hljs-attribute { + color: #000080; + font-weight: normal; +} + +.hljs-variable, +.hljs-template-variable { + color: #008080; +} + +.hljs-regexp, +.hljs-link { + color: #b68; +} + +.hljs-symbol, +.hljs-bullet { + color: #990073; +} + +.hljs-built_in, +.hljs-builtin-name { + color: #0086b3; +} + +.hljs-meta { + color: #999; + font-weight: bold; +} + +.hljs-deletion { + background: #fdd; +} + +.hljs-addition { + background: #dfd; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/dracula.css b/themes/navy/source/js/styles/dracula.css new file mode 100644 index 0000000..d591db6 --- /dev/null +++ b/themes/navy/source/js/styles/dracula.css @@ -0,0 +1,76 @@ +/* + +Dracula Theme v1.2.0 + +https://github.com/zenorocha/dracula-theme + +Copyright 2015, All rights reserved + +Code licensed under the MIT license +http://zenorocha.mit-license.org + +@author Éverton Ribeiro +@author Zeno Rocha + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #282a36; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-literal, +.hljs-section, +.hljs-link { + color: #8be9fd; +} + +.hljs-function .hljs-keyword { + color: #ff79c6; +} + +.hljs, +.hljs-subst { + color: #f8f8f2; +} + +.hljs-string, +.hljs-title, +.hljs-name, +.hljs-type, +.hljs-attribute, +.hljs-symbol, +.hljs-bullet, +.hljs-addition, +.hljs-variable, +.hljs-template-tag, +.hljs-template-variable { + color: #f1fa8c; +} + +.hljs-comment, +.hljs-quote, +.hljs-deletion, +.hljs-meta { + color: #6272a4; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-literal, +.hljs-title, +.hljs-section, +.hljs-doctag, +.hljs-type, +.hljs-name, +.hljs-strong { + font-weight: bold; +} + +.hljs-emphasis { + font-style: italic; +} diff --git a/themes/navy/source/js/styles/far.css b/themes/navy/source/js/styles/far.css new file mode 100644 index 0000000..2b3f87b --- /dev/null +++ b/themes/navy/source/js/styles/far.css @@ -0,0 +1,71 @@ +/* + +FAR Style (c) MajestiC + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #000080; +} + +.hljs, +.hljs-subst { + color: #0ff; +} + +.hljs-string, +.hljs-attribute, +.hljs-symbol, +.hljs-bullet, +.hljs-built_in, +.hljs-builtin-name, +.hljs-template-tag, +.hljs-template-variable, +.hljs-addition { + color: #ff0; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-section, +.hljs-type, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class, +.hljs-variable { + color: #fff; +} + +.hljs-comment, +.hljs-quote, +.hljs-doctag, +.hljs-deletion { + color: #888; +} + +.hljs-number, +.hljs-regexp, +.hljs-literal, +.hljs-link { + color: #0f0; +} + +.hljs-meta { + color: #008080; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-title, +.hljs-section, +.hljs-name, +.hljs-strong { + font-weight: bold; +} + +.hljs-emphasis { + font-style: italic; +} diff --git a/themes/navy/source/js/styles/foundation.css b/themes/navy/source/js/styles/foundation.css new file mode 100644 index 0000000..f1fe64b --- /dev/null +++ b/themes/navy/source/js/styles/foundation.css @@ -0,0 +1,88 @@ +/* +Description: Foundation 4 docs style for highlight.js +Author: Dan Allen +Website: http://foundation.zurb.com/docs/ +Version: 1.0 +Date: 2013-04-02 +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #eee; color: black; +} + +.hljs-link, +.hljs-emphasis, +.hljs-attribute, +.hljs-addition { + color: #070; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong, +.hljs-string, +.hljs-deletion { + color: #d14; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-quote, +.hljs-comment { + color: #998; + font-style: italic; +} + +.hljs-section, +.hljs-title { + color: #900; +} + +.hljs-class .hljs-title, +.hljs-type { + color: #458; +} + +.hljs-variable, +.hljs-template-variable { + color: #336699; +} + +.hljs-bullet { + color: #997700; +} + +.hljs-meta { + color: #3344bb; +} + +.hljs-code, +.hljs-number, +.hljs-literal, +.hljs-keyword, +.hljs-selector-tag { + color: #099; +} + +.hljs-regexp { + background-color: #fff0ff; + color: #880088; +} + +.hljs-symbol { + color: #990073; +} + +.hljs-tag, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #007700; +} diff --git a/themes/navy/source/js/styles/github-gist.css b/themes/navy/source/js/styles/github-gist.css new file mode 100644 index 0000000..155f0b9 --- /dev/null +++ b/themes/navy/source/js/styles/github-gist.css @@ -0,0 +1,71 @@ +/** + * GitHub Gist Theme + * Author : Louis Barranqueiro - https://github.com/LouisBarranqueiro + */ + +.hljs { + display: block; + background: white; + padding: 0.5em; + color: #333333; + overflow-x: auto; +} + +.hljs-comment, +.hljs-meta { + color: #969896; +} + +.hljs-string, +.hljs-variable, +.hljs-template-variable, +.hljs-strong, +.hljs-emphasis, +.hljs-quote { + color: #df5000; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #a71d5d; +} + +.hljs-literal, +.hljs-symbol, +.hljs-bullet, +.hljs-attribute { + color: #0086b3; +} + +.hljs-section, +.hljs-name { + color: #63a35c; +} + +.hljs-tag { + color: #333333; +} + +.hljs-title, +.hljs-attr, +.hljs-selector-id, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #795da3; +} + +.hljs-addition { + color: #55a532; + background-color: #eaffea; +} + +.hljs-deletion { + color: #bd2c00; + background-color: #ffecec; +} + +.hljs-link { + text-decoration: underline; +} diff --git a/themes/navy/source/js/styles/github.css b/themes/navy/source/js/styles/github.css new file mode 100644 index 0000000..791932b --- /dev/null +++ b/themes/navy/source/js/styles/github.css @@ -0,0 +1,99 @@ +/* + +github.com style (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + color: #333; + background: #f8f8f8; +} + +.hljs-comment, +.hljs-quote { + color: #998; + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-subst { + color: #333; + font-weight: bold; +} + +.hljs-number, +.hljs-literal, +.hljs-variable, +.hljs-template-variable, +.hljs-tag .hljs-attr { + color: #008080; +} + +.hljs-string, +.hljs-doctag { + color: #d14; +} + +.hljs-title, +.hljs-section, +.hljs-selector-id { + color: #900; + font-weight: bold; +} + +.hljs-subst { + font-weight: normal; +} + +.hljs-type, +.hljs-class .hljs-title { + color: #458; + font-weight: bold; +} + +.hljs-tag, +.hljs-name, +.hljs-attribute { + color: #000080; + font-weight: normal; +} + +.hljs-regexp, +.hljs-link { + color: #009926; +} + +.hljs-symbol, +.hljs-bullet { + color: #990073; +} + +.hljs-built_in, +.hljs-builtin-name { + color: #0086b3; +} + +.hljs-meta { + color: #999; + font-weight: bold; +} + +.hljs-deletion { + background: #fdd; +} + +.hljs-addition { + background: #dfd; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/googlecode.css b/themes/navy/source/js/styles/googlecode.css new file mode 100644 index 0000000..884ad63 --- /dev/null +++ b/themes/navy/source/js/styles/googlecode.css @@ -0,0 +1,89 @@ +/* + +Google Code style (c) Aahan Krish + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: white; + color: black; +} + +.hljs-comment, +.hljs-quote { + color: #800; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-section, +.hljs-title, +.hljs-name { + color: #008; +} + +.hljs-variable, +.hljs-template-variable { + color: #660; +} + +.hljs-string, +.hljs-selector-attr, +.hljs-selector-pseudo, +.hljs-regexp { + color: #080; +} + +.hljs-literal, +.hljs-symbol, +.hljs-bullet, +.hljs-meta, +.hljs-number, +.hljs-link { + color: #066; +} + +.hljs-title, +.hljs-doctag, +.hljs-type, +.hljs-attr, +.hljs-built_in, +.hljs-builtin-name, +.hljs-params { + color: #606; +} + +.hljs-attribute, +.hljs-subst { + color: #000; +} + +.hljs-formula { + background-color: #eee; + font-style: italic; +} + +.hljs-selector-id, +.hljs-selector-class { + color: #9B703F +} + +.hljs-addition { + background-color: #baeeba; +} + +.hljs-deletion { + background-color: #ffc8bd; +} + +.hljs-doctag, +.hljs-strong { + font-weight: bold; +} + +.hljs-emphasis { + font-style: italic; +} diff --git a/themes/navy/source/js/styles/grayscale.css b/themes/navy/source/js/styles/grayscale.css new file mode 100644 index 0000000..5376f34 --- /dev/null +++ b/themes/navy/source/js/styles/grayscale.css @@ -0,0 +1,101 @@ +/* + +grayscale style (c) MY Sun + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + color: #333; + background: #fff; +} + +.hljs-comment, +.hljs-quote { + color: #777; + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-subst { + color: #333; + font-weight: bold; +} + +.hljs-number, +.hljs-literal { + color: #777; +} + +.hljs-string, +.hljs-doctag, +.hljs-formula { + color: #333; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAJ0lEQVQIW2O8e/fufwYGBgZBQUEQxcCIIfDu3Tuwivfv30NUoAsAALHpFMMLqZlPAAAAAElFTkSuQmCC) repeat; +} + +.hljs-title, +.hljs-section, +.hljs-selector-id { + color: #000; + font-weight: bold; +} + +.hljs-subst { + font-weight: normal; +} + +.hljs-class .hljs-title, +.hljs-type, +.hljs-name { + color: #333; + font-weight: bold; +} + +.hljs-tag { + color: #333; +} + +.hljs-regexp { + color: #333; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAAPUlEQVQYV2NkQAN37979r6yszIgujiIAU4RNMVwhuiQ6H6wQl3XI4oy4FMHcCJPHcDS6J2A2EqUQpJhohQDexSef15DBCwAAAABJRU5ErkJggg==) repeat; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-link { + color: #000; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAKElEQVQIW2NkQAO7d+/+z4gsBhJwdXVlhAvCBECKwIIwAbhKZBUwBQA6hBpm5efZsgAAAABJRU5ErkJggg==) repeat; +} + +.hljs-built_in, +.hljs-builtin-name { + color: #000; + text-decoration: underline; +} + +.hljs-meta { + color: #999; + font-weight: bold; +} + +.hljs-deletion { + color: #fff; + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAADCAYAAABS3WWCAAAAE0lEQVQIW2MMDQ39zzhz5kwIAQAyxweWgUHd1AAAAABJRU5ErkJggg==) repeat; +} + +.hljs-addition { + color: #000; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAALUlEQVQYV2N89+7dfwYk8P79ewZBQUFkIQZGOiu6e/cuiptQHAPl0NtNxAQBAM97Oejj3Dg7AAAAAElFTkSuQmCC) repeat; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/gruvbox-dark.css b/themes/navy/source/js/styles/gruvbox-dark.css new file mode 100644 index 0000000..f563811 --- /dev/null +++ b/themes/navy/source/js/styles/gruvbox-dark.css @@ -0,0 +1,108 @@ +/* + +Gruvbox style (dark) (c) Pavel Pertsev (original style at https://github.com/morhetz/gruvbox) + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #282828; +} + +.hljs, +.hljs-subst { + color: #ebdbb2; +} + +/* Gruvbox Red */ +.hljs-deletion, +.hljs-formula, +.hljs-keyword, +.hljs-link, +.hljs-selector-tag { + color: #fb4934; +} + +/* Gruvbox Blue */ +.hljs-built_in, +.hljs-emphasis, +.hljs-name, +.hljs-quote, +.hljs-strong, +.hljs-title, +.hljs-variable { + color: #83a598; +} + +/* Gruvbox Yellow */ +.hljs-attr, +.hljs-params, +.hljs-template-tag, +.hljs-type { + color: #fabd2f; +} + +/* Gruvbox Purple */ +.hljs-builtin-name, +.hljs-doctag, +.hljs-literal, +.hljs-number { + color: #8f3f71; +} + +/* Gruvbox Orange */ +.hljs-code, +.hljs-meta, +.hljs-regexp, +.hljs-selector-id, +.hljs-template-variable { + color: #fe8019; +} + +/* Gruvbox Green */ +.hljs-addition, +.hljs-meta-string, +.hljs-section, +.hljs-selector-attr, +.hljs-selector-class, +.hljs-string, +.hljs-symbol { + color: #b8bb26; +} + +/* Gruvbox Aqua */ +.hljs-attribute, +.hljs-bullet, +.hljs-class, +.hljs-function, +.hljs-function .hljs-keyword, +.hljs-meta-keyword, +.hljs-selector-pseudo, +.hljs-tag { + color: #8ec07c; +} + +/* Gruvbox Gray */ +.hljs-comment { + color: #928374; +} + +/* Gruvbox Purple */ +.hljs-link_label, +.hljs-literal, +.hljs-number { + color: #d3869b; +} + +.hljs-comment, +.hljs-emphasis { + font-style: italic; +} + +.hljs-section, +.hljs-strong, +.hljs-tag { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/gruvbox-light.css b/themes/navy/source/js/styles/gruvbox-light.css new file mode 100644 index 0000000..ff45468 --- /dev/null +++ b/themes/navy/source/js/styles/gruvbox-light.css @@ -0,0 +1,108 @@ +/* + +Gruvbox style (light) (c) Pavel Pertsev (original style at https://github.com/morhetz/gruvbox) + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #fbf1c7; +} + +.hljs, +.hljs-subst { + color: #3c3836; +} + +/* Gruvbox Red */ +.hljs-deletion, +.hljs-formula, +.hljs-keyword, +.hljs-link, +.hljs-selector-tag { + color: #9d0006; +} + +/* Gruvbox Blue */ +.hljs-built_in, +.hljs-emphasis, +.hljs-name, +.hljs-quote, +.hljs-strong, +.hljs-title, +.hljs-variable { + color: #076678; +} + +/* Gruvbox Yellow */ +.hljs-attr, +.hljs-params, +.hljs-template-tag, +.hljs-type { + color: #b57614; +} + +/* Gruvbox Purple */ +.hljs-builtin-name, +.hljs-doctag, +.hljs-literal, +.hljs-number { + color: #8f3f71; +} + +/* Gruvbox Orange */ +.hljs-code, +.hljs-meta, +.hljs-regexp, +.hljs-selector-id, +.hljs-template-variable { + color: #af3a03; +} + +/* Gruvbox Green */ +.hljs-addition, +.hljs-meta-string, +.hljs-section, +.hljs-selector-attr, +.hljs-selector-class, +.hljs-string, +.hljs-symbol { + color: #79740e; +} + +/* Gruvbox Aqua */ +.hljs-attribute, +.hljs-bullet, +.hljs-class, +.hljs-function, +.hljs-function .hljs-keyword, +.hljs-meta-keyword, +.hljs-selector-pseudo, +.hljs-tag { + color: #427b58; +} + +/* Gruvbox Gray */ +.hljs-comment { + color: #928374; +} + +/* Gruvbox Purple */ +.hljs-link_label, +.hljs-literal, +.hljs-number { + color: #8f3f71; +} + +.hljs-comment, +.hljs-emphasis { + font-style: italic; +} + +.hljs-section, +.hljs-strong, +.hljs-tag { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/hopscotch.css b/themes/navy/source/js/styles/hopscotch.css new file mode 100644 index 0000000..32e60d2 --- /dev/null +++ b/themes/navy/source/js/styles/hopscotch.css @@ -0,0 +1,83 @@ +/* + * Hopscotch + * by Jan T. Sott + * https://github.com/idleberg/Hopscotch + * + * This work is licensed under the Creative Commons CC0 1.0 Universal License + */ + +/* Comment */ +.hljs-comment, +.hljs-quote { + color: #989498; +} + +/* Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-attribute, +.hljs-tag, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class, +.hljs-regexp, +.hljs-link, +.hljs-deletion { + color: #dd464c; +} + +/* Orange */ +.hljs-number, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params { + color: #fd8b19; +} + +/* Yellow */ +.hljs-class .hljs-title { + color: #fdcc59; +} + +/* Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet, +.hljs-addition { + color: #8fc13e; +} + +/* Aqua */ +.hljs-meta { + color: #149b93; +} + +/* Blue */ +.hljs-function, +.hljs-section, +.hljs-title { + color: #1290bf; +} + +/* Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #c85e7c; +} + +.hljs { + display: block; + background: #322931; + color: #b9b5b8; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/hybrid.css b/themes/navy/source/js/styles/hybrid.css new file mode 100644 index 0000000..29735a1 --- /dev/null +++ b/themes/navy/source/js/styles/hybrid.css @@ -0,0 +1,102 @@ +/* + +vim-hybrid theme by w0ng (https://github.com/w0ng/vim-hybrid) + +*/ + +/*background color*/ +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #1d1f21; +} + +/*selection color*/ +.hljs::selection, +.hljs span::selection { + background: #373b41; +} + +.hljs::-moz-selection, +.hljs span::-moz-selection { + background: #373b41; +} + +/*foreground color*/ +.hljs { + color: #c5c8c6; +} + +/*color: fg_yellow*/ +.hljs-title, +.hljs-name { + color: #f0c674; +} + +/*color: fg_comment*/ +.hljs-comment, +.hljs-meta, +.hljs-meta .hljs-keyword { + color: #707880; +} + +/*color: fg_red*/ +.hljs-number, +.hljs-symbol, +.hljs-literal, +.hljs-deletion, +.hljs-link { + color: #cc6666 +} + +/*color: fg_green*/ +.hljs-string, +.hljs-doctag, +.hljs-addition, +.hljs-regexp, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #b5bd68; +} + +/*color: fg_purple*/ +.hljs-attribute, +.hljs-code, +.hljs-selector-id { + color: #b294bb; +} + +/*color: fg_blue*/ +.hljs-keyword, +.hljs-selector-tag, +.hljs-bullet, +.hljs-tag { + color: #81a2be; +} + +/*color: fg_aqua*/ +.hljs-subst, +.hljs-variable, +.hljs-template-tag, +.hljs-template-variable { + color: #8abeb7; +} + +/*color: fg_orange*/ +.hljs-type, +.hljs-built_in, +.hljs-builtin-name, +.hljs-quote, +.hljs-section, +.hljs-selector-class { + color: #de935f; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/idea.css b/themes/navy/source/js/styles/idea.css new file mode 100644 index 0000000..3bf1892 --- /dev/null +++ b/themes/navy/source/js/styles/idea.css @@ -0,0 +1,97 @@ +/* + +Intellij Idea-like styling (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + color: #000; + background: #fff; +} + +.hljs-subst, +.hljs-title { + font-weight: normal; + color: #000; +} + +.hljs-comment, +.hljs-quote { + color: #808080; + font-style: italic; +} + +.hljs-meta { + color: #808000; +} + +.hljs-tag { + background: #efefef; +} + +.hljs-section, +.hljs-name, +.hljs-literal, +.hljs-keyword, +.hljs-selector-tag, +.hljs-type, +.hljs-selector-id, +.hljs-selector-class { + font-weight: bold; + color: #000080; +} + +.hljs-attribute, +.hljs-number, +.hljs-regexp, +.hljs-link { + font-weight: bold; + color: #0000ff; +} + +.hljs-number, +.hljs-regexp, +.hljs-link { + font-weight: normal; +} + +.hljs-string { + color: #008000; + font-weight: bold; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-formula { + color: #000; + background: #d0eded; + font-style: italic; +} + +.hljs-doctag { + text-decoration: underline; +} + +.hljs-variable, +.hljs-template-variable { + color: #660e7a; +} + +.hljs-addition { + background: #baeeba; +} + +.hljs-deletion { + background: #ffc8bd; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/ir-black.css b/themes/navy/source/js/styles/ir-black.css new file mode 100644 index 0000000..bd4c755 --- /dev/null +++ b/themes/navy/source/js/styles/ir-black.css @@ -0,0 +1,73 @@ +/* + IR_Black style (c) Vasily Mikhailitchenko +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #000; + color: #f8f8f8; +} + +.hljs-comment, +.hljs-quote, +.hljs-meta { + color: #7c7c7c; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-tag, +.hljs-name { + color: #96cbfe; +} + +.hljs-attribute, +.hljs-selector-id { + color: #ffffb6; +} + +.hljs-string, +.hljs-selector-attr, +.hljs-selector-pseudo, +.hljs-addition { + color: #a8ff60; +} + +.hljs-subst { + color: #daefa3; +} + +.hljs-regexp, +.hljs-link { + color: #e9c062; +} + +.hljs-title, +.hljs-section, +.hljs-type, +.hljs-doctag { + color: #ffffb6; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-variable, +.hljs-template-variable, +.hljs-literal { + color: #c6c5fe; +} + +.hljs-number, +.hljs-deletion { + color:#ff73fd; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/kimbie.dark.css b/themes/navy/source/js/styles/kimbie.dark.css new file mode 100644 index 0000000..d139cb5 --- /dev/null +++ b/themes/navy/source/js/styles/kimbie.dark.css @@ -0,0 +1,74 @@ +/* + Name: Kimbie (dark) + Author: Jan T. Sott + License: Creative Commons Attribution-ShareAlike 4.0 Unported License + URL: https://github.com/idleberg/Kimbie-highlight.js +*/ + +/* Kimbie Comment */ +.hljs-comment, +.hljs-quote { + color: #d6baad; +} + +/* Kimbie Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-tag, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class, +.hljs-regexp, +.hljs-meta { + color: #dc3958; +} + +/* Kimbie Orange */ +.hljs-number, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params, +.hljs-deletion, +.hljs-link { + color: #f79a32; +} + +/* Kimbie Yellow */ +.hljs-title, +.hljs-section, +.hljs-attribute { + color: #f06431; +} + +/* Kimbie Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet, +.hljs-addition { + color: #889b4a; +} + +/* Kimbie Purple */ +.hljs-keyword, +.hljs-selector-tag, +.hljs-function { + color: #98676a; +} + +.hljs { + display: block; + overflow-x: auto; + background: #221a0f; + color: #d3af86; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/kimbie.light.css b/themes/navy/source/js/styles/kimbie.light.css new file mode 100644 index 0000000..04ff6ed --- /dev/null +++ b/themes/navy/source/js/styles/kimbie.light.css @@ -0,0 +1,74 @@ +/* + Name: Kimbie (light) + Author: Jan T. Sott + License: Creative Commons Attribution-ShareAlike 4.0 Unported License + URL: https://github.com/idleberg/Kimbie-highlight.js +*/ + +/* Kimbie Comment */ +.hljs-comment, +.hljs-quote { + color: #a57a4c; +} + +/* Kimbie Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-tag, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class, +.hljs-regexp, +.hljs-meta { + color: #dc3958; +} + +/* Kimbie Orange */ +.hljs-number, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params, +.hljs-deletion, +.hljs-link { + color: #f79a32; +} + +/* Kimbie Yellow */ +.hljs-title, +.hljs-section, +.hljs-attribute { + color: #f06431; +} + +/* Kimbie Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet, +.hljs-addition { + color: #889b4a; +} + +/* Kimbie Purple */ +.hljs-keyword, +.hljs-selector-tag, +.hljs-function { + color: #98676a; +} + +.hljs { + display: block; + overflow-x: auto; + background: #fbebd4; + color: #84613d; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/magula.css b/themes/navy/source/js/styles/magula.css new file mode 100644 index 0000000..44dee5e --- /dev/null +++ b/themes/navy/source/js/styles/magula.css @@ -0,0 +1,70 @@ +/* +Description: Magula style for highligh.js +Author: Ruslan Keba +Website: http://rukeba.com/ +Version: 1.0 +Date: 2009-01-03 +Music: Aphex Twin / Xtal +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background-color: #f4f4f4; +} + +.hljs, +.hljs-subst { + color: black; +} + +.hljs-string, +.hljs-title, +.hljs-symbol, +.hljs-bullet, +.hljs-attribute, +.hljs-addition, +.hljs-variable, +.hljs-template-tag, +.hljs-template-variable { + color: #050; +} + +.hljs-comment, +.hljs-quote { + color: #777; +} + +.hljs-number, +.hljs-regexp, +.hljs-literal, +.hljs-type, +.hljs-link { + color: #800; +} + +.hljs-deletion, +.hljs-meta { + color: #00e; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-doctag, +.hljs-title, +.hljs-section, +.hljs-built_in, +.hljs-tag, +.hljs-name { + font-weight: bold; + color: navy; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/mono-blue.css b/themes/navy/source/js/styles/mono-blue.css new file mode 100644 index 0000000..884c97c --- /dev/null +++ b/themes/navy/source/js/styles/mono-blue.css @@ -0,0 +1,59 @@ +/* + Five-color theme from a single blue hue. +*/ +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #eaeef3; +} + +.hljs { + color: #00193a; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-title, +.hljs-section, +.hljs-doctag, +.hljs-name, +.hljs-strong { + font-weight: bold; +} + +.hljs-comment { + color: #738191; +} + +.hljs-string, +.hljs-title, +.hljs-section, +.hljs-built_in, +.hljs-literal, +.hljs-type, +.hljs-addition, +.hljs-tag, +.hljs-quote, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #0048ab; +} + +.hljs-meta, +.hljs-subst, +.hljs-symbol, +.hljs-regexp, +.hljs-attribute, +.hljs-deletion, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-bullet { + color: #4c81c9; +} + +.hljs-emphasis { + font-style: italic; +} diff --git a/themes/navy/source/js/styles/monokai-sublime.css b/themes/navy/source/js/styles/monokai-sublime.css new file mode 100644 index 0000000..2864170 --- /dev/null +++ b/themes/navy/source/js/styles/monokai-sublime.css @@ -0,0 +1,83 @@ +/* + +Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/ + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #23241f; +} + +.hljs, +.hljs-tag, +.hljs-subst { + color: #f8f8f2; +} + +.hljs-strong, +.hljs-emphasis { + color: #a8a8a2; +} + +.hljs-bullet, +.hljs-quote, +.hljs-number, +.hljs-regexp, +.hljs-literal, +.hljs-link { + color: #ae81ff; +} + +.hljs-code, +.hljs-title, +.hljs-section, +.hljs-selector-class { + color: #a6e22e; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-name, +.hljs-attr { + color: #f92672; +} + +.hljs-symbol, +.hljs-attribute { + color: #66d9ef; +} + +.hljs-params, +.hljs-class .hljs-title { + color: #f8f8f2; +} + +.hljs-string, +.hljs-type, +.hljs-built_in, +.hljs-builtin-name, +.hljs-selector-id, +.hljs-selector-attr, +.hljs-selector-pseudo, +.hljs-addition, +.hljs-variable, +.hljs-template-variable { + color: #e6db74; +} + +.hljs-comment, +.hljs-deletion, +.hljs-meta { + color: #75715e; +} diff --git a/themes/navy/source/js/styles/monokai.css b/themes/navy/source/js/styles/monokai.css new file mode 100644 index 0000000..775d53f --- /dev/null +++ b/themes/navy/source/js/styles/monokai.css @@ -0,0 +1,70 @@ +/* +Monokai style - ported by Luigi Maselli - http://grigio.org +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #272822; color: #ddd; +} + +.hljs-tag, +.hljs-keyword, +.hljs-selector-tag, +.hljs-literal, +.hljs-strong, +.hljs-name { + color: #f92672; +} + +.hljs-code { + color: #66d9ef; +} + +.hljs-class .hljs-title { + color: white; +} + +.hljs-attribute, +.hljs-symbol, +.hljs-regexp, +.hljs-link { + color: #bf79db; +} + +.hljs-string, +.hljs-bullet, +.hljs-subst, +.hljs-title, +.hljs-section, +.hljs-emphasis, +.hljs-type, +.hljs-built_in, +.hljs-builtin-name, +.hljs-selector-attr, +.hljs-selector-pseudo, +.hljs-addition, +.hljs-variable, +.hljs-template-tag, +.hljs-template-variable { + color: #a6e22e; +} + +.hljs-comment, +.hljs-quote, +.hljs-deletion, +.hljs-meta { + color: #75715e; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-literal, +.hljs-doctag, +.hljs-title, +.hljs-section, +.hljs-type, +.hljs-selector-id { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/obsidian.css b/themes/navy/source/js/styles/obsidian.css new file mode 100644 index 0000000..356630f --- /dev/null +++ b/themes/navy/source/js/styles/obsidian.css @@ -0,0 +1,88 @@ +/** + * Obsidian style + * ported by Alexander Marenin (http://github.com/ioncreature) + */ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #282b2e; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-literal, +.hljs-selector-id { + color: #93c763; +} + +.hljs-number { + color: #ffcd22; +} + +.hljs { + color: #e0e2e4; +} + +.hljs-attribute { + color: #668bb0; +} + +.hljs-code, +.hljs-class .hljs-title, +.hljs-section { + color: white; +} + +.hljs-regexp, +.hljs-link { + color: #d39745; +} + +.hljs-meta { + color: #557182; +} + +.hljs-tag, +.hljs-name, +.hljs-bullet, +.hljs-subst, +.hljs-emphasis, +.hljs-type, +.hljs-built_in, +.hljs-selector-attr, +.hljs-selector-pseudo, +.hljs-addition, +.hljs-variable, +.hljs-template-tag, +.hljs-template-variable { + color: #8cbbad; +} + +.hljs-string, +.hljs-symbol { + color: #ec7600; +} + +.hljs-comment, +.hljs-quote, +.hljs-deletion { + color: #818e96; +} + +.hljs-selector-class { + color: #A082BD +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-literal, +.hljs-doctag, +.hljs-title, +.hljs-section, +.hljs-type, +.hljs-name, +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/ocean.css b/themes/navy/source/js/styles/ocean.css new file mode 100644 index 0000000..5901581 --- /dev/null +++ b/themes/navy/source/js/styles/ocean.css @@ -0,0 +1,74 @@ +/* Ocean Dark Theme */ +/* https://github.com/gavsiu */ +/* Original theme - https://github.com/chriskempson/base16 */ + +/* Ocean Comment */ +.hljs-comment, +.hljs-quote { + color: #65737e; +} + +/* Ocean Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-tag, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class, +.hljs-regexp, +.hljs-deletion { + color: #bf616a; +} + +/* Ocean Orange */ +.hljs-number, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params, +.hljs-meta, +.hljs-link { + color: #d08770; +} + +/* Ocean Yellow */ +.hljs-attribute { + color: #ebcb8b; +} + +/* Ocean Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet, +.hljs-addition { + color: #a3be8c; +} + +/* Ocean Blue */ +.hljs-title, +.hljs-section { + color: #8fa1b3; +} + +/* Ocean Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #b48ead; +} + +.hljs { + display: block; + overflow-x: auto; + background: #2b303b; + color: #c0c5ce; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/paraiso-dark.css b/themes/navy/source/js/styles/paraiso-dark.css new file mode 100644 index 0000000..e729240 --- /dev/null +++ b/themes/navy/source/js/styles/paraiso-dark.css @@ -0,0 +1,72 @@ +/* + Paraíso (dark) + Created by Jan T. Sott (http://github.com/idleberg) + Inspired by the art of Rubens LP (http://www.rubenslp.com.br) +*/ + +/* Paraíso Comment */ +.hljs-comment, +.hljs-quote { + color: #8d8687; +} + +/* Paraíso Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-tag, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class, +.hljs-regexp, +.hljs-link, +.hljs-meta { + color: #ef6155; +} + +/* Paraíso Orange */ +.hljs-number, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params, +.hljs-deletion { + color: #f99b15; +} + +/* Paraíso Yellow */ +.hljs-title, +.hljs-section, +.hljs-attribute { + color: #fec418; +} + +/* Paraíso Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet, +.hljs-addition { + color: #48b685; +} + +/* Paraíso Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #815ba4; +} + +.hljs { + display: block; + overflow-x: auto; + background: #2f1e2e; + color: #a39e9b; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/paraiso-light.css b/themes/navy/source/js/styles/paraiso-light.css new file mode 100644 index 0000000..944857c --- /dev/null +++ b/themes/navy/source/js/styles/paraiso-light.css @@ -0,0 +1,72 @@ +/* + Paraíso (light) + Created by Jan T. Sott (http://github.com/idleberg) + Inspired by the art of Rubens LP (http://www.rubenslp.com.br) +*/ + +/* Paraíso Comment */ +.hljs-comment, +.hljs-quote { + color: #776e71; +} + +/* Paraíso Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-tag, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class, +.hljs-regexp, +.hljs-link, +.hljs-meta { + color: #ef6155; +} + +/* Paraíso Orange */ +.hljs-number, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params, +.hljs-deletion { + color: #f99b15; +} + +/* Paraíso Yellow */ +.hljs-title, +.hljs-section, +.hljs-attribute { + color: #fec418; +} + +/* Paraíso Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet, +.hljs-addition { + color: #48b685; +} + +/* Paraíso Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #815ba4; +} + +.hljs { + display: block; + overflow-x: auto; + background: #e7e9db; + color: #4f424c; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/pojoaque.css b/themes/navy/source/js/styles/pojoaque.css new file mode 100644 index 0000000..2e07847 --- /dev/null +++ b/themes/navy/source/js/styles/pojoaque.css @@ -0,0 +1,83 @@ +/* + +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 + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + color: #dccf8f; + background: url(./pojoaque.jpg) repeat scroll left top #181914; +} + +.hljs-comment, +.hljs-quote { + color: #586e75; + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-literal, +.hljs-addition { + color: #b64926; +} + +.hljs-number, +.hljs-string, +.hljs-doctag, +.hljs-regexp { + color: #468966; +} + +.hljs-title, +.hljs-section, +.hljs-built_in, +.hljs-name { + color: #ffb03b; +} + +.hljs-variable, +.hljs-template-variable, +.hljs-class .hljs-title, +.hljs-type, +.hljs-tag { + color: #b58900; +} + +.hljs-attribute { + color: #b89859; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-link, +.hljs-subst, +.hljs-meta { + color: #cb4b16; +} + +.hljs-deletion { + color: #dc322f; +} + +.hljs-selector-id, +.hljs-selector-class { + color: #d3a60c; +} + +.hljs-formula { + background: #073642; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/pojoaque.jpg b/themes/navy/source/js/styles/pojoaque.jpg new file mode 100644 index 0000000..9c07d4a Binary files /dev/null and b/themes/navy/source/js/styles/pojoaque.jpg differ diff --git a/themes/navy/source/js/styles/purebasic.css b/themes/navy/source/js/styles/purebasic.css new file mode 100644 index 0000000..5ce9b9e --- /dev/null +++ b/themes/navy/source/js/styles/purebasic.css @@ -0,0 +1,96 @@ +/* + +PureBASIC native IDE style ( version 1.0 - April 2016 ) + +by Tristano Ajmone + +Public Domain + +NOTE_1: PureBASIC code syntax highlighting only applies the following classes: + .hljs-comment + .hljs-function + .hljs-keywords + .hljs-string + .hljs-symbol + + Other classes are added here for the benefit of styling other languages with the look and feel of PureBASIC native IDE style. + If you need to customize a stylesheet for PureBASIC only, remove all non-relevant classes -- PureBASIC-related classes are followed by + a "--- used for PureBASIC ... ---" comment on same line. + +NOTE_2: Color names provided in comments were derived using "Name that Color" online tool: + http://chir.ag/projects/name-that-color +*/ + +.hljs { /* Common set of rules required by highlight.js (don'r remove!) */ + display: block; + overflow-x: auto; + padding: 0.5em; + background: #FFFFDF; /* Half and Half (approx.) */ +/* --- Uncomment to add PureBASIC native IDE styled font! + font-family: Consolas; +*/ +} + +.hljs, /* --- used for PureBASIC base color --- */ +.hljs-type, /* --- used for PureBASIC Procedures return type --- */ +.hljs-function, /* --- used for wrapping PureBASIC Procedures definitions --- */ +.hljs-name, +.hljs-number, +.hljs-attr, +.hljs-params, +.hljs-subst { + color: #000000; /* Black */ +} + +.hljs-comment, /* --- used for PureBASIC Comments --- */ +.hljs-regexp, +.hljs-section, +.hljs-selector-pseudo, +.hljs-addition { + color: #00AAAA; /* Persian Green (approx.) */ +} + +.hljs-title, /* --- used for PureBASIC Procedures Names --- */ +.hljs-tag, +.hljs-variable, +.hljs-code { + color: #006666; /* Blue Stone (approx.) */ +} + +.hljs-keyword, /* --- used for PureBASIC Keywords --- */ +.hljs-class, +.hljs-meta-keyword, +.hljs-selector-class, +.hljs-built_in, +.hljs-builtin-name { + color: #006666; /* Blue Stone (approx.) */ + font-weight: bold; +} + +.hljs-string, /* --- used for PureBASIC Strings --- */ +.hljs-selector-attr { + color: #0080FF; /* Azure Radiance (approx.) */ +} + +.hljs-symbol, /* --- used for PureBASIC Constants --- */ +.hljs-link, +.hljs-deletion, +.hljs-attribute { + color: #924B72; /* Cannon Pink (approx.) */ +} + +.hljs-meta, +.hljs-literal, +.hljs-selector-id { + color: #924B72; /* Cannon Pink (approx.) */ + font-weight: bold; +} + +.hljs-strong, +.hljs-name { + font-weight: bold; +} + +.hljs-emphasis { + font-style: italic; +} diff --git a/themes/navy/source/js/styles/qtcreator_dark.css b/themes/navy/source/js/styles/qtcreator_dark.css new file mode 100644 index 0000000..7aa56a3 --- /dev/null +++ b/themes/navy/source/js/styles/qtcreator_dark.css @@ -0,0 +1,83 @@ +/* + +Qt Creator dark color scheme + +*/ + + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #000000; +} + +.hljs, +.hljs-subst, +.hljs-tag, +.hljs-title { + color: #aaaaaa; +} + +.hljs-strong, +.hljs-emphasis { + color: #a8a8a2; +} + +.hljs-bullet, +.hljs-quote, +.hljs-number, +.hljs-regexp, +.hljs-literal { + color: #ff55ff; +} + +.hljs-code +.hljs-selector-class { + color: #aaaaff; +} + +.hljs-emphasis, +.hljs-stronge, +.hljs-type { + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-function, +.hljs-section, +.hljs-symbol, +.hljs-name { + color: #ffff55; +} + +.hljs-attribute { + color: #ff5555; +} + +.hljs-variable, +.hljs-params, +.hljs-class .hljs-title { + color: #8888ff; +} + +.hljs-string, +.hljs-selector-id, +.hljs-selector-attr, +.hljs-selector-pseudo, +.hljs-type, +.hljs-built_in, +.hljs-builtin-name, +.hljs-template-tag, +.hljs-template-variable, +.hljs-addition, +.hljs-link { + color: #ff55ff; +} + +.hljs-comment, +.hljs-meta, +.hljs-deletion { + color: #55ffff; +} diff --git a/themes/navy/source/js/styles/qtcreator_light.css b/themes/navy/source/js/styles/qtcreator_light.css new file mode 100644 index 0000000..1efa2c6 --- /dev/null +++ b/themes/navy/source/js/styles/qtcreator_light.css @@ -0,0 +1,83 @@ +/* + +Qt Creator light color scheme + +*/ + + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #ffffff; +} + +.hljs, +.hljs-subst, +.hljs-tag, +.hljs-title { + color: #000000; +} + +.hljs-strong, +.hljs-emphasis { + color: #000000; +} + +.hljs-bullet, +.hljs-quote, +.hljs-number, +.hljs-regexp, +.hljs-literal { + color: #000080; +} + +.hljs-code +.hljs-selector-class { + color: #800080; +} + +.hljs-emphasis, +.hljs-stronge, +.hljs-type { + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-function, +.hljs-section, +.hljs-symbol, +.hljs-name { + color: #808000; +} + +.hljs-attribute { + color: #800000; +} + +.hljs-variable, +.hljs-params, +.hljs-class .hljs-title { + color: #0055AF; +} + +.hljs-string, +.hljs-selector-id, +.hljs-selector-attr, +.hljs-selector-pseudo, +.hljs-type, +.hljs-built_in, +.hljs-builtin-name, +.hljs-template-tag, +.hljs-template-variable, +.hljs-addition, +.hljs-link { + color: #008000; +} + +.hljs-comment, +.hljs-meta, +.hljs-deletion { + color: #008000; +} diff --git a/themes/navy/source/js/styles/railscasts.css b/themes/navy/source/js/styles/railscasts.css new file mode 100644 index 0000000..008cdc5 --- /dev/null +++ b/themes/navy/source/js/styles/railscasts.css @@ -0,0 +1,106 @@ +/* + +Railscasts-like style (c) Visoft, Inc. (Damien White) + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #232323; + color: #e6e1dc; +} + +.hljs-comment, +.hljs-quote { + color: #bc9458; + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag { + color: #c26230; +} + +.hljs-string, +.hljs-number, +.hljs-regexp, +.hljs-variable, +.hljs-template-variable { + color: #a5c261; +} + +.hljs-subst { + color: #519f50; +} + +.hljs-tag, +.hljs-name { + color: #e8bf6a; +} + +.hljs-type { + color: #da4939; +} + + +.hljs-symbol, +.hljs-bullet, +.hljs-built_in, +.hljs-builtin-name, +.hljs-attr, +.hljs-link { + color: #6d9cbe; +} + +.hljs-params { + color: #d0d0ff; +} + +.hljs-attribute { + color: #cda869; +} + +.hljs-meta { + color: #9b859d; +} + +.hljs-title, +.hljs-section { + color: #ffc66d; +} + +.hljs-addition { + background-color: #144212; + color: #e6e1dc; + display: inline-block; + width: 100%; +} + +.hljs-deletion { + background-color: #600; + color: #e6e1dc; + display: inline-block; + width: 100%; +} + +.hljs-selector-class { + color: #9b703f; +} + +.hljs-selector-id { + color: #8b98ab; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-link { + text-decoration: underline; +} diff --git a/themes/navy/source/js/styles/rainbow.css b/themes/navy/source/js/styles/rainbow.css new file mode 100644 index 0000000..905eb8e --- /dev/null +++ b/themes/navy/source/js/styles/rainbow.css @@ -0,0 +1,85 @@ +/* + +Style with support for rainbow parens + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #474949; + color: #d1d9e1; +} + + +.hljs-comment, +.hljs-quote { + color: #969896; + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-literal, +.hljs-type, +.hljs-addition { + color: #cc99cc; +} + +.hljs-number, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #f99157; +} + +.hljs-string, +.hljs-doctag, +.hljs-regexp { + color: #8abeb7; +} + +.hljs-title, +.hljs-name, +.hljs-section, +.hljs-built_in { + color: #b5bd68; +} + +.hljs-variable, +.hljs-template-variable, +.hljs-selector-id, +.hljs-class .hljs-title { + color: #ffcc66; +} + +.hljs-section, +.hljs-name, +.hljs-strong { + font-weight: bold; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-subst, +.hljs-meta, +.hljs-link { + color: #f99157; +} + +.hljs-deletion { + color: #dc322f; +} + +.hljs-formula { + background: #eee8d5; +} + +.hljs-attr, +.hljs-attribute { + color: #81a2be; +} + +.hljs-emphasis { + font-style: italic; +} diff --git a/themes/navy/source/js/styles/routeros.css b/themes/navy/source/js/styles/routeros.css new file mode 100644 index 0000000..ebe2399 --- /dev/null +++ b/themes/navy/source/js/styles/routeros.css @@ -0,0 +1,108 @@ +/* + + highlight.js style for Microtik RouterOS script + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #F0F0F0; +} + +/* Base color: saturation 0; */ + +.hljs, +.hljs-subst { + color: #444; +} + +.hljs-comment { + color: #888888; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-meta-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; +} + +.hljs-attribute { + color: #0E9A00; +} + +.hljs-function { + color: #99069A; +} + +.hljs-builtin-name { + color: #99069A; +} + +/* User color: hue: 0 */ + +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; +} + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; +} + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #BC6060; +} + + +/* Language color: hue: 90; */ + +.hljs-literal { + color: #78A960; +} + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #0C9A9A; +} + + +/* Meta color: hue: 200 */ + +.hljs-meta { + color: #1f7199; +} + +.hljs-meta-string { + color: #4d99bf; +} + + +/* Misc effects */ + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/school-book.css b/themes/navy/source/js/styles/school-book.css new file mode 100644 index 0000000..964b51d --- /dev/null +++ b/themes/navy/source/js/styles/school-book.css @@ -0,0 +1,72 @@ +/* + +School Book style from goldblog.com.ua (c) Zaripov Yura + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 15px 0.5em 0.5em 30px; + font-size: 11px; + line-height:16px; +} + +pre{ + background:#f6f6ae url(./school-book.png); + border-top: solid 2px #d2e8b9; + border-bottom: solid 1px #d2e8b9; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-literal { + color:#005599; + font-weight:bold; +} + +.hljs, +.hljs-subst { + color: #3e5915; +} + +.hljs-string, +.hljs-title, +.hljs-section, +.hljs-type, +.hljs-symbol, +.hljs-bullet, +.hljs-attribute, +.hljs-built_in, +.hljs-builtin-name, +.hljs-addition, +.hljs-variable, +.hljs-template-tag, +.hljs-template-variable, +.hljs-link { + color: #2c009f; +} + +.hljs-comment, +.hljs-quote, +.hljs-deletion, +.hljs-meta { + color: #e60415; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-literal, +.hljs-doctag, +.hljs-title, +.hljs-section, +.hljs-type, +.hljs-name, +.hljs-selector-id, +.hljs-strong { + font-weight: bold; +} + +.hljs-emphasis { + font-style: italic; +} diff --git a/themes/navy/source/js/styles/school-book.png b/themes/navy/source/js/styles/school-book.png new file mode 100644 index 0000000..956e979 Binary files /dev/null and b/themes/navy/source/js/styles/school-book.png differ diff --git a/themes/navy/source/js/styles/solarized-dark.css b/themes/navy/source/js/styles/solarized-dark.css new file mode 100644 index 0000000..b4c0da1 --- /dev/null +++ b/themes/navy/source/js/styles/solarized-dark.css @@ -0,0 +1,84 @@ +/* + +Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #002b36; + color: #839496; +} + +.hljs-comment, +.hljs-quote { + color: #586e75; +} + +/* Solarized Green */ +.hljs-keyword, +.hljs-selector-tag, +.hljs-addition { + color: #859900; +} + +/* Solarized Cyan */ +.hljs-number, +.hljs-string, +.hljs-meta .hljs-meta-string, +.hljs-literal, +.hljs-doctag, +.hljs-regexp { + color: #2aa198; +} + +/* Solarized Blue */ +.hljs-title, +.hljs-section, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #268bd2; +} + +/* Solarized Yellow */ +.hljs-attribute, +.hljs-attr, +.hljs-variable, +.hljs-template-variable, +.hljs-class .hljs-title, +.hljs-type { + color: #b58900; +} + +/* Solarized Orange */ +.hljs-symbol, +.hljs-bullet, +.hljs-subst, +.hljs-meta, +.hljs-meta .hljs-keyword, +.hljs-selector-attr, +.hljs-selector-pseudo, +.hljs-link { + color: #cb4b16; +} + +/* Solarized Red */ +.hljs-built_in, +.hljs-deletion { + color: #dc322f; +} + +.hljs-formula { + background: #073642; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/solarized-light.css b/themes/navy/source/js/styles/solarized-light.css new file mode 100644 index 0000000..fdcfcc7 --- /dev/null +++ b/themes/navy/source/js/styles/solarized-light.css @@ -0,0 +1,84 @@ +/* + +Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #fdf6e3; + color: #657b83; +} + +.hljs-comment, +.hljs-quote { + color: #93a1a1; +} + +/* Solarized Green */ +.hljs-keyword, +.hljs-selector-tag, +.hljs-addition { + color: #859900; +} + +/* Solarized Cyan */ +.hljs-number, +.hljs-string, +.hljs-meta .hljs-meta-string, +.hljs-literal, +.hljs-doctag, +.hljs-regexp { + color: #2aa198; +} + +/* Solarized Blue */ +.hljs-title, +.hljs-section, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #268bd2; +} + +/* Solarized Yellow */ +.hljs-attribute, +.hljs-attr, +.hljs-variable, +.hljs-template-variable, +.hljs-class .hljs-title, +.hljs-type { + color: #b58900; +} + +/* Solarized Orange */ +.hljs-symbol, +.hljs-bullet, +.hljs-subst, +.hljs-meta, +.hljs-meta .hljs-keyword, +.hljs-selector-attr, +.hljs-selector-pseudo, +.hljs-link { + color: #cb4b16; +} + +/* Solarized Red */ +.hljs-built_in, +.hljs-deletion { + color: #dc322f; +} + +.hljs-formula { + background: #eee8d5; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/sunburst.css b/themes/navy/source/js/styles/sunburst.css new file mode 100644 index 0000000..f56dd5e --- /dev/null +++ b/themes/navy/source/js/styles/sunburst.css @@ -0,0 +1,102 @@ +/* + +Sunburst-like style (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #000; + color: #f8f8f8; +} + +.hljs-comment, +.hljs-quote { + color: #aeaeae; + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #e28964; +} + +.hljs-string { + color: #65b042; +} + +.hljs-subst { + color: #daefa3; +} + +.hljs-regexp, +.hljs-link { + color: #e9c062; +} + +.hljs-title, +.hljs-section, +.hljs-tag, +.hljs-name { + color: #89bdff; +} + +.hljs-class .hljs-title, +.hljs-doctag { + text-decoration: underline; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-number { + color: #3387cc; +} + +.hljs-params, +.hljs-variable, +.hljs-template-variable { + color: #3e87e3; +} + +.hljs-attribute { + color: #cda869; +} + +.hljs-meta { + color: #8996a8; +} + +.hljs-formula { + background-color: #0e2231; + color: #f8f8f8; + font-style: italic; +} + +.hljs-addition { + background-color: #253b22; + color: #f8f8f8; +} + +.hljs-deletion { + background-color: #420e09; + color: #f8f8f8; +} + +.hljs-selector-class { + color: #9b703f; +} + +.hljs-selector-id { + color: #8b98ab; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/tomorrow-night-blue.css b/themes/navy/source/js/styles/tomorrow-night-blue.css new file mode 100644 index 0000000..78e59cc --- /dev/null +++ b/themes/navy/source/js/styles/tomorrow-night-blue.css @@ -0,0 +1,75 @@ +/* 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 */ +.hljs-comment, +.hljs-quote { + color: #7285b7; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-tag, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class, +.hljs-regexp, +.hljs-deletion { + color: #ff9da4; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params, +.hljs-meta, +.hljs-link { + color: #ffc58f; +} + +/* Tomorrow Yellow */ +.hljs-attribute { + color: #ffeead; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet, +.hljs-addition { + color: #d1f1a9; +} + +/* Tomorrow Blue */ +.hljs-title, +.hljs-section { + color: #bbdaff; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #ebbbff; +} + +.hljs { + display: block; + overflow-x: auto; + background: #002451; + color: white; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/tomorrow-night-bright.css b/themes/navy/source/js/styles/tomorrow-night-bright.css new file mode 100644 index 0000000..e05af8a --- /dev/null +++ b/themes/navy/source/js/styles/tomorrow-night-bright.css @@ -0,0 +1,74 @@ +/* Tomorrow Night Bright Theme */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-quote { + color: #969896; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-tag, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class, +.hljs-regexp, +.hljs-deletion { + color: #d54e53; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params, +.hljs-meta, +.hljs-link { + color: #e78c45; +} + +/* Tomorrow Yellow */ +.hljs-attribute { + color: #e7c547; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet, +.hljs-addition { + color: #b9ca4a; +} + +/* Tomorrow Blue */ +.hljs-title, +.hljs-section { + color: #7aa6da; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #c397d8; +} + +.hljs { + display: block; + overflow-x: auto; + background: black; + color: #eaeaea; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/tomorrow-night-eighties.css b/themes/navy/source/js/styles/tomorrow-night-eighties.css new file mode 100644 index 0000000..08fd51c --- /dev/null +++ b/themes/navy/source/js/styles/tomorrow-night-eighties.css @@ -0,0 +1,74 @@ +/* Tomorrow Night Eighties Theme */ +/* Original theme - https://github.com/chriskempson/tomorrow-theme */ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-quote { + color: #999999; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-tag, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class, +.hljs-regexp, +.hljs-deletion { + color: #f2777a; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params, +.hljs-meta, +.hljs-link { + color: #f99157; +} + +/* Tomorrow Yellow */ +.hljs-attribute { + color: #ffcc66; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet, +.hljs-addition { + color: #99cc99; +} + +/* Tomorrow Blue */ +.hljs-title, +.hljs-section { + color: #6699cc; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #cc99cc; +} + +.hljs { + display: block; + overflow-x: auto; + background: #2d2d2d; + color: #cccccc; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/tomorrow-night.css b/themes/navy/source/js/styles/tomorrow-night.css new file mode 100644 index 0000000..ddd270a --- /dev/null +++ b/themes/navy/source/js/styles/tomorrow-night.css @@ -0,0 +1,75 @@ +/* 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 */ +.hljs-comment, +.hljs-quote { + color: #969896; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-tag, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class, +.hljs-regexp, +.hljs-deletion { + color: #cc6666; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params, +.hljs-meta, +.hljs-link { + color: #de935f; +} + +/* Tomorrow Yellow */ +.hljs-attribute { + color: #f0c674; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet, +.hljs-addition { + color: #b5bd68; +} + +/* Tomorrow Blue */ +.hljs-title, +.hljs-section { + color: #81a2be; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #b294bb; +} + +.hljs { + display: block; + overflow-x: auto; + background: #1d1f21; + color: #c5c8c6; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/tomorrow.css b/themes/navy/source/js/styles/tomorrow.css new file mode 100644 index 0000000..026a62f --- /dev/null +++ b/themes/navy/source/js/styles/tomorrow.css @@ -0,0 +1,72 @@ +/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ + +/* Tomorrow Comment */ +.hljs-comment, +.hljs-quote { + color: #8e908c; +} + +/* Tomorrow Red */ +.hljs-variable, +.hljs-template-variable, +.hljs-tag, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class, +.hljs-regexp, +.hljs-deletion { + color: #c82829; +} + +/* Tomorrow Orange */ +.hljs-number, +.hljs-built_in, +.hljs-builtin-name, +.hljs-literal, +.hljs-type, +.hljs-params, +.hljs-meta, +.hljs-link { + color: #f5871f; +} + +/* Tomorrow Yellow */ +.hljs-attribute { + color: #eab700; +} + +/* Tomorrow Green */ +.hljs-string, +.hljs-symbol, +.hljs-bullet, +.hljs-addition { + color: #718c00; +} + +/* Tomorrow Blue */ +.hljs-title, +.hljs-section { + color: #4271ae; +} + +/* Tomorrow Purple */ +.hljs-keyword, +.hljs-selector-tag { + color: #8959a8; +} + +.hljs { + display: block; + overflow-x: auto; + background: white; + color: #4d4d4c; + padding: 0.5em; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/vs.css b/themes/navy/source/js/styles/vs.css new file mode 100644 index 0000000..c5d07d3 --- /dev/null +++ b/themes/navy/source/js/styles/vs.css @@ -0,0 +1,68 @@ +/* + +Visual Studio-like style based on original C# coloring by Jason Diamond + +*/ +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: white; + color: black; +} + +.hljs-comment, +.hljs-quote, +.hljs-variable { + color: #008000; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-built_in, +.hljs-name, +.hljs-tag { + color: #00f; +} + +.hljs-string, +.hljs-title, +.hljs-section, +.hljs-attribute, +.hljs-literal, +.hljs-template-tag, +.hljs-template-variable, +.hljs-type, +.hljs-addition { + color: #a31515; +} + +.hljs-deletion, +.hljs-selector-attr, +.hljs-selector-pseudo, +.hljs-meta { + color: #2b91af; +} + +.hljs-doctag { + color: #808080; +} + +.hljs-attr { + color: #f00; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-link { + color: #00b0e8; +} + + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/styles/vs2015.css b/themes/navy/source/js/styles/vs2015.css new file mode 100644 index 0000000..d1d9be3 --- /dev/null +++ b/themes/navy/source/js/styles/vs2015.css @@ -0,0 +1,115 @@ +/* + * Visual Studio 2015 dark style + * Author: Nicolas LLOBERA + */ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #1E1E1E; + color: #DCDCDC; +} + +.hljs-keyword, +.hljs-literal, +.hljs-symbol, +.hljs-name { + color: #569CD6; +} +.hljs-link { + color: #569CD6; + text-decoration: underline; +} + +.hljs-built_in, +.hljs-type { + color: #4EC9B0; +} + +.hljs-number, +.hljs-class { + color: #B8D7A3; +} + +.hljs-string, +.hljs-meta-string { + color: #D69D85; +} + +.hljs-regexp, +.hljs-template-tag { + color: #9A5334; +} + +.hljs-subst, +.hljs-function, +.hljs-title, +.hljs-params, +.hljs-formula { + color: #DCDCDC; +} + +.hljs-comment, +.hljs-quote { + color: #57A64A; + font-style: italic; +} + +.hljs-doctag { + color: #608B4E; +} + +.hljs-meta, +.hljs-meta-keyword, +.hljs-tag { + color: #9B9B9B; +} + +.hljs-variable, +.hljs-template-variable { + color: #BD63C5; +} + +.hljs-attr, +.hljs-attribute, +.hljs-builtin-name { + color: #9CDCFE; +} + +.hljs-section { + color: gold; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} + +/*.hljs-code { + font-family:'Monospace'; +}*/ + +.hljs-bullet, +.hljs-selector-tag, +.hljs-selector-id, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #D7BA7D; +} + +.hljs-addition { + background-color: #144212; + display: inline-block; + width: 100%; +} + +.hljs-deletion { + background-color: #600; + display: inline-block; + width: 100%; +} diff --git a/themes/navy/source/js/styles/xcode.css b/themes/navy/source/js/styles/xcode.css new file mode 100644 index 0000000..43dddad --- /dev/null +++ b/themes/navy/source/js/styles/xcode.css @@ -0,0 +1,93 @@ +/* + +XCode style (c) Angel Garcia + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #fff; + color: black; +} + +.hljs-comment, +.hljs-quote { + color: #006a00; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-literal { + color: #aa0d91; +} + +.hljs-name { + color: #008; +} + +.hljs-variable, +.hljs-template-variable { + color: #660; +} + +.hljs-string { + color: #c41a16; +} + +.hljs-regexp, +.hljs-link { + color: #080; +} + +.hljs-title, +.hljs-tag, +.hljs-symbol, +.hljs-bullet, +.hljs-number, +.hljs-meta { + color: #1c00cf; +} + +.hljs-section, +.hljs-class .hljs-title, +.hljs-type, +.hljs-attr, +.hljs-built_in, +.hljs-builtin-name, +.hljs-params { + color: #5c2699; +} + +.hljs-attribute, +.hljs-subst { + color: #000; +} + +.hljs-formula { + background-color: #eee; + font-style: italic; +} + +.hljs-addition { + background-color: #baeeba; +} + +.hljs-deletion { + background-color: #ffc8bd; +} + +.hljs-selector-id, +.hljs-selector-class { + color: #9b703f; +} + +.hljs-doctag, +.hljs-strong { + font-weight: bold; +} + +.hljs-emphasis { + font-style: italic; +} diff --git a/themes/navy/source/js/styles/xt256.css b/themes/navy/source/js/styles/xt256.css new file mode 100644 index 0000000..58df82c --- /dev/null +++ b/themes/navy/source/js/styles/xt256.css @@ -0,0 +1,92 @@ + +/* + xt256.css + + Contact: initbar [at] protonmail [dot] ch + : github.com/initbar +*/ + +.hljs { + display: block; + overflow-x: auto; + color: #eaeaea; + background: #000; + padding: 0.5; +} + +.hljs-subst { + color: #eaeaea; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-builtin-name, +.hljs-type { + color: #eaeaea; +} + +.hljs-params { + color: #da0000; +} + +.hljs-literal, +.hljs-number, +.hljs-name { + color: #ff0000; + font-weight: bolder; +} + +.hljs-comment { + color: #969896; +} + +.hljs-selector-id, +.hljs-quote { + color: #00ffff; +} + +.hljs-template-variable, +.hljs-variable, +.hljs-title { + color: #00ffff; + font-weight: bold; +} + +.hljs-selector-class, +.hljs-keyword, +.hljs-symbol { + color: #fff000; +} + +.hljs-string, +.hljs-bullet { + color: #00ff00; +} + +.hljs-tag, +.hljs-section { + color: #000fff; +} + +.hljs-selector-tag { + color: #000fff; + font-weight: bold; +} + +.hljs-attribute, +.hljs-built_in, +.hljs-regexp, +.hljs-link { + color: #ff00ff; +} + +.hljs-meta { + color: #fff; + font-weight: bolder; +} diff --git a/themes/navy/source/js/styles/zenburn.css b/themes/navy/source/js/styles/zenburn.css new file mode 100644 index 0000000..07be502 --- /dev/null +++ b/themes/navy/source/js/styles/zenburn.css @@ -0,0 +1,80 @@ +/* + +Zenburn style from voldmar.ru (c) Vladimir Epifanov +based on dark.css by Ivan Sagalaev + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #3f3f3f; + color: #dcdcdc; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-tag { + color: #e3ceab; +} + +.hljs-template-tag { + color: #dcdcdc; +} + +.hljs-number { + color: #8cd0d3; +} + +.hljs-variable, +.hljs-template-variable, +.hljs-attribute { + color: #efdcbc; +} + +.hljs-literal { + color: #efefaf; +} + +.hljs-subst { + color: #8f8f8f; +} + +.hljs-title, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class, +.hljs-section, +.hljs-type { + color: #efef8f; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-link { + color: #dca3a3; +} + +.hljs-deletion, +.hljs-string, +.hljs-built_in, +.hljs-builtin-name { + color: #cc9393; +} + +.hljs-addition, +.hljs-comment, +.hljs-quote, +.hljs-meta { + color: #7f9f7f; +} + + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/themes/navy/source/js/toc.js b/themes/navy/source/js/toc.js new file mode 100644 index 0000000..1a3c046 --- /dev/null +++ b/themes/navy/source/js/toc.js @@ -0,0 +1,34 @@ +(function() { + 'use strict'; + + var header = document.getElementById('header'); + if (!header) { + return; + } + var toc = document.getElementById('article-toc'); + var tocTop = document.getElementById('article-toc-top'); + var headerHeight = header.clientHeight; + + if (!toc) return; + + function updateSidebarPosition() { + var scrollTop = document.scrollingElement.scrollTop; + + if (scrollTop > headerHeight) { + toc.classList.add('fixed'); + } else { + toc.classList.remove('fixed'); + } + } + + window.addEventListener('scroll', function() { + window.requestAnimationFrame(updateSidebarPosition); + }); + + updateSidebarPosition(); + + tocTop.addEventListener('click', function(e) { + e.preventDefault(); + document.scrollingElement.scrollTop = 0; + }); +}());