├── .browserslistrc ├── .editorconfig ├── .eleventy.js ├── .gitignore ├── .lightserverrc ├── .nvmrc ├── LICENSE ├── README.md ├── package-lock.json ├── package.json ├── postcss.config.js ├── renovate.json ├── src ├── _data │ └── siteData.json ├── _includes │ └── layouts │ │ └── base.njk ├── images │ └── placeholder.gif ├── index.njk ├── scripts │ ├── index.js │ └── modules │ │ └── list.js └── styles │ ├── _reset.scss │ └── index.scss └── webpack.config.js /.browserslistrc: -------------------------------------------------------------------------------- 1 | > 0.5% 2 | Explorer >= 10 3 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false -------------------------------------------------------------------------------- /.eleventy.js: -------------------------------------------------------------------------------- 1 | module.exports = function(eleventyConfig) { 2 | eleventyConfig.addPassthroughCopy('src/images') 3 | 4 | return { 5 | dir: { input: 'src', output: 'dist', data: '_data' }, 6 | passthroughFileCopy: true, 7 | templateFormats: ['njk', 'md', 'css', 'html', 'yml'], 8 | htmlTemplateEngine: 'njk' 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (https://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # TypeScript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | 60 | # next.js build output 61 | .next 62 | 63 | # eleventy.js build output 64 | dist 65 | -------------------------------------------------------------------------------- /.lightserverrc: -------------------------------------------------------------------------------- 1 | { 2 | "port": 4000, 3 | "serve": "dist", 4 | "bind": "localhost", 5 | "delay": 100, 6 | "quiet": true, 7 | "watchexps": [ 8 | "src/scripts/**/*.js # npm run scripts:dev", 9 | "src/styles/**/*.scss # npm run styles:dev # reloadcss", 10 | "dist/**/*.html", 11 | "src/images/" 12 | ], 13 | "http2": false, 14 | "open": false 15 | } 16 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 12 -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Ian Rose 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, 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, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Deventy 2 | 3 | A minimal 11ty starting point for building static websites with modern tools. Preferring the CLI of each development tool, allowing for an easier upgrade path. 4 | 5 | Features: 6 | - [11ty](https://www.11ty.io/) 7 | - [Sass/SCSS](https://github.com/sass/node-sass) 8 | - [Webpack](https://webpack.js.org/) 9 | - [Babel](https://babeljs.io/) 10 | - [light-server](https://github.com/txchen/light-server) 11 | - [PostCSS](https://postcss.org/) 12 | - [CSSnano](https://cssnano.co/) 13 | - [Autoprefixer](https://github.com/postcss/autoprefixer) 14 | 15 | ## Getting Started 16 | 17 | Install all dependencies using npm: 18 | 19 | ``` 20 | $ nvm use 21 | $ npm install 22 | ``` 23 | 24 | ### To Develop 25 | 26 | ``` 27 | $ npm run dev 28 | ``` 29 | And in debug mode: 30 | 31 | ``` 32 | $ npm run dev:debug 33 | ``` 34 | 35 | You can view the website at the given access URL: 36 | ``` 37 | $ light-server is listening at http://localhost:4000 38 | ``` 39 | 40 | The local url is configured in `.lightserverrc` 41 | 42 | ### To Build 43 | 44 | ``` 45 | npm run build 46 | ``` 47 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "deventy", 3 | "version": "1.5.0", 4 | "description": "A minimal 11ty starter with modern tools", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "clean": "rm -rf dist", 9 | "eleventy:default": "npx eleventy", 10 | "eleventy:watch": "npx eleventy --watch", 11 | "styles:prod": "node-sass src/styles/ --output dist/styles/ && postcss ./dist/styles/*.css --replace", 12 | "styles:dev": "node-sass src/styles/ --output dist/styles/ --source-map true --source-map-contents true && postcss ./dist/styles/*.css --replace", 13 | "scripts:prod": "webpack --mode=production", 14 | "scripts:dev": "webpack --mode=development", 15 | "serve": "light-server -c .lightserverrc", 16 | "dev": "npm-run-all clean styles:dev scripts:dev eleventy:default --parallel eleventy:watch serve --print-label", 17 | "dev:debug": "DEBUG=* npm run dev", 18 | "build": "run-s clean styles:prod scripts:prod eleventy:default --print-label" 19 | }, 20 | "repository": { 21 | "type": "git", 22 | "url": "git+https://ianrose@github.com/ianrose/deventy.git" 23 | }, 24 | "author": "", 25 | "license": "MIT", 26 | "bugs": { 27 | "url": "https://github.com/ianrose/deventy/issues" 28 | }, 29 | "homepage": "https://github.com/ianrose/deventy#readme", 30 | "devDependencies": { 31 | "light-server": "2.9.1" 32 | }, 33 | "dependencies": { 34 | "@11ty/eleventy": "^0.11.0", 35 | "@babel/core": "^7.6.4", 36 | "@babel/preset-env": "^7.6.3", 37 | "acorn": "^8.0.0", 38 | "autoprefixer": "^10.0.0", 39 | "babel-loader": "^8.0.6", 40 | "cssnano": "^4.1.10", 41 | "cssnano-preset-advanced": "^4.0.7", 42 | "node-sass": "^5.0.0", 43 | "npm-run-all": "^4.1.5", 44 | "postcss": "^8.1.1", 45 | "postcss-cli": "^8.1.0", 46 | "webpack": "^5.1.3", 47 | "webpack-cli": "^4.0.0" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = ({ 2 | plugins: { 3 | autoprefixer: true, 4 | cssnano: { 5 | preset: 'default' 6 | } 7 | } 8 | }) 9 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "config:base" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /src/_data/siteData.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Hello World" 3 | } 4 | -------------------------------------------------------------------------------- /src/_includes/layouts/base.njk: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 8 | 9 | 10 |