├── CHANGELOG.md ├── .gitignore ├── .travis.yml ├── .npmignore ├── README.md ├── .editorconfig ├── package.json ├── index.js ├── LICENSE ├── theme.css └── .eslintrc /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *~ 3 | 4 | node_modules/ 5 | npm-debug.log 6 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | node_js: 4 | - stable 5 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | .gitignore 2 | 3 | node_modules/ 4 | npm-debug.log 5 | 6 | .eslinrc 7 | .editorconfig 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Sitnik’s theme for ShowBox [![Travis Build Status][ci-img]][ci] 2 | 3 | [ci-img]: https://travis-ci.org/ai/showbox-ai.svg 4 | [ci]: https://travis-ci.org/ai/showbox-ai 5 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 4 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | 11 | [*.{json,yml}] 12 | indent_size = 2 13 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "showbox-ai", 3 | "version": "0.0.0", 4 | "description": "Sitnik’s theme for ShowBox", 5 | "keywords": [ 6 | "showbox-theme", 7 | "shower" 8 | ], 9 | "author": "Andrey Sitnik ", 10 | "license": "MIT", 11 | "repository": "ai/showbox-ai", 12 | "dependencies": { 13 | "showbox-bright": "ai/showbox-bright" 14 | }, 15 | "devDependencies": { 16 | "eslint": "1.4.1" 17 | }, 18 | "scripts": { 19 | "test": "eslint *.js" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | var bright = require('showbox-bright'); 2 | var path = require('path'); 3 | var fs = require('fs'); 4 | 5 | module.exports = function (talk) { 6 | return bright(talk).then(function (data) { 7 | var cssFile = path.join(__dirname, 'theme.css'); 8 | return new Promise(function (resolve, reject) { 9 | fs.readFile(cssFile, function (err, css) { 10 | if ( err ) { 11 | reject(err); 12 | } else { 13 | data.css += css.toString(); 14 | resolve(data); 15 | } 16 | }); 17 | }); 18 | }); 19 | }; 20 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright 2015 Andrey Sitnik 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /theme.css: -------------------------------------------------------------------------------- 1 | /* Change default color */ 2 | 3 | a { 4 | color: #0080e0; 5 | } 6 | 7 | .slide mark { 8 | color: #0080e0; 9 | background: transparent; 10 | } 11 | 12 | .slide mark.important { 13 | background: #0080e0; 14 | color: white; 15 | } 16 | 17 | .slide mark.important mark { 18 | color: white; 19 | } 20 | 21 | .slide pre mark.important { 22 | background: #0080e0; 23 | } 24 | 25 | .slide pre mark.comment { 26 | color: #888; 27 | } 28 | 29 | @media screen { 30 | .list .slide:target:before { 31 | box-shadow: 0 0 10px 0 #3c99db, 0 0 0 12px #0080e0; 32 | } 33 | .full .progress div { 34 | background: #0080e0; 35 | } 36 | } 37 | 38 | .hljs-string, .hljs-keyword, .hljs-attribute { 39 | color: #0080e0; 40 | } 41 | 42 | .slide.shout { 43 | background: #0080e0; 44 | h2 { 45 | font-family: Open Sans; 46 | font-size: 120px; 47 | line-height: 1.2; 48 | } 49 | } 50 | 51 | /* Change mark paddings */ 52 | 53 | .slide mark.important { 54 | padding: 3px 7px 0; 55 | } 56 | 57 | .slide pre mark { 58 | padding: 0; 59 | } 60 | 61 | /* Change overview title */ 62 | 63 | .caption { 64 | color: black 65 | } 66 | 67 | /* Move slide index to right */ 68 | 69 | .slide::after { 70 | text-align: right; 71 | right: 50px; 72 | } 73 | 74 | .list .slide:after { 75 | padding-top: 35px; 76 | right: 0; 77 | text-align: center; 78 | } 79 | 80 | /* Add more space to slide */ 81 | 82 | .slide > div { 83 | padding-top: 80px; 84 | height: 560px; 85 | } 86 | 87 | /* Remove line numbers on code examples */ 88 | 89 | .slide pre code:before { 90 | display: none 91 | } 92 | 93 | /* Hide progress on covers */ 94 | 95 | .slide.cover { 96 | z-index: 2; 97 | } 98 | 99 | /* Cover subheaders */ 100 | 101 | .slide h2 em { 102 | display: block; 103 | position: absolute; 104 | margin-top: -40px; 105 | font-size: 30px; 106 | font-style: normal; 107 | font-weight: normal; 108 | padding-bottom: 6px; 109 | } 110 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "space-before-function-paren": [2, { "named": "never" }], 4 | "no-shadow-restricted-names": [2], 5 | "computed-property-spacing": [2], 6 | "no-empty-character-class": [2], 7 | "no-irregular-whitespace": [2], 8 | "no-unexpected-multiline": [2], 9 | "no-multiple-empty-lines": [2], 10 | "space-return-throw-case": [2], 11 | "no-constant-condition": [2], 12 | "no-extra-boolean-cast": [2], 13 | "no-inner-declarations": [2], 14 | "no-this-before-super": [2], 15 | "no-use-before-define": [2], 16 | "no-array-constructor": [2], 17 | "object-curly-spacing": [2, "always"], 18 | "no-floating-decimal": [2], 19 | "no-warning-comments": [2], 20 | "handle-callback-err": [2], 21 | "no-unneeded-ternary": [2], 22 | "operator-assignment": [2], 23 | "space-before-blocks": [2], 24 | "no-native-reassign": [2], 25 | "no-trailing-spaces": [2], 26 | "operator-linebreak": [2, "after"], 27 | "consistent-return": [2], 28 | "no-duplicate-case": [2], 29 | "no-invalid-regexp": [2], 30 | "no-negated-in-lhs": [2], 31 | "constructor-super": [2], 32 | "no-nested-ternary": [2], 33 | "no-extend-native": [2], 34 | "block-scoped-var": [2], 35 | "no-control-regex": [2], 36 | "no-sparse-arrays": [2], 37 | "no-throw-literal": [2], 38 | "no-return-assign": [2], 39 | "no-const-assign": [2], 40 | "no-class-assign": [2], 41 | "no-extra-parens": [2], 42 | "no-regex-spaces": [2], 43 | "no-implied-eval": [2], 44 | "no-useless-call": [2], 45 | "no-self-compare": [2], 46 | "no-octal-escape": [2], 47 | "no-new-wrappers": [2], 48 | "no-process-exit": [2], 49 | "no-catch-shadow": [2], 50 | "linebreak-style": [2], 51 | "space-infix-ops": [2], 52 | "space-unary-ops": [2], 53 | "no-cond-assign": [2], 54 | "no-func-assign": [2], 55 | "no-unreachable": [2], 56 | "accessor-pairs": [2], 57 | "no-empty-label": [2], 58 | "no-fallthrough": [2], 59 | "no-path-concat": [2], 60 | "no-new-require": [2], 61 | "no-spaced-func": [2], 62 | "no-unused-vars": [2], 63 | "spaced-comment": [2], 64 | "no-delete-var": [2], 65 | "comma-spacing": [2], 66 | "no-extra-semi": [2], 67 | "no-extra-bind": [2], 68 | "arrow-spacing": [2], 69 | "prefer-spread": [2], 70 | "no-new-object": [2], 71 | "no-multi-str": [2], 72 | "semi-spacing": [2], 73 | "no-lonely-if": [2], 74 | "dot-notation": [2], 75 | "dot-location": [2, "property"], 76 | "comma-dangle": [2, "never"], 77 | "no-dupe-args": [2], 78 | "no-dupe-keys": [2], 79 | "no-ex-assign": [2], 80 | "no-obj-calls": [2], 81 | "valid-typeof": [2], 82 | "default-case": [2], 83 | "no-redeclare": [2], 84 | "no-div-regex": [2], 85 | "no-sequences": [2], 86 | "no-label-var": [2], 87 | "comma-style": [2], 88 | "brace-style": [2], 89 | "no-debugger": [2], 90 | "quote-props": [2, "as-needed"], 91 | "no-iterator": [2], 92 | "no-new-func": [2], 93 | "key-spacing": [2, { "align": "value" }], 94 | "complexity": [2], 95 | "new-parens": [2], 96 | "no-eq-null": [2], 97 | "no-bitwise": [2], 98 | "wrap-iife": [2], 99 | "no-caller": [2], 100 | "use-isnan": [2], 101 | "no-labels": [2], 102 | "no-shadow": [2], 103 | "camelcase": [2], 104 | "eol-last": [2], 105 | "no-octal": [2], 106 | "no-empty": [2], 107 | "no-alert": [2], 108 | "no-proto": [2], 109 | "no-undef": [2], 110 | "no-eval": [2], 111 | "no-with": [2], 112 | "no-void": [2], 113 | "max-len": [2, 80], 114 | "new-cap": [2], 115 | "eqeqeq": [2], 116 | "no-new": [2], 117 | "quotes": [2, "single"], 118 | "indent": [2, 4], 119 | "semi": [2, "always"], 120 | "yoda": [2, "never"] 121 | }, 122 | "env": { 123 | "mocha": true, 124 | "node": true 125 | } 126 | } 127 | --------------------------------------------------------------------------------