├── .eslintrc.js ├── .github ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── custom.md │ └── feature_request.md ├── PULL_REQUEST_TEMPLATE.md ├── dependabot.yml ├── semantic.yml └── splash.png ├── .gitignore ├── .nvmrc ├── .prettierrc ├── .release-it.json ├── .remarkignore ├── .remarkrc.js ├── CHANGELOG.md ├── LICENSE ├── README.md ├── assets └── css │ └── main.css ├── components ├── Footer.vue ├── Header.vue └── Hero.vue ├── content ├── about.md ├── blog │ ├── 2016-12-17-making-sense-of-the-scaas-new-flavor-wheel.md │ ├── 2017-01-04-a-beginners-guide-to-brewing-with-chemex.md │ └── 2017-01-04-just-in-small-batch-of-jamaican-blue-mountain-in-store-next-week.md ├── index.md ├── products.md └── site │ └── info.json ├── jsconfig.json ├── layouts ├── default.vue └── error.vue ├── netlify.toml ├── nuxt.config.js ├── package-lock.json ├── package.json ├── pages ├── about.vue ├── blog │ ├── _slug.vue │ └── index.vue ├── contact │ ├── index.vue │ └── thanks.vue ├── index.vue ├── products.vue └── tags │ ├── _slug.vue │ └── index.vue ├── static ├── admin │ ├── config.yml │ ├── index.html │ └── netlify-preview.css ├── icon.png └── img │ ├── apple-touch-icon.png │ ├── blog-index.jpg │ ├── chemex.jpg │ ├── coffee-gear.png │ ├── coffee.png │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── flavor_wheel.jpg │ ├── home-jumbotron.jpg │ ├── img_4432.jpg │ ├── jumbotron.jpg │ ├── logo.svg │ ├── meeting-space.png │ ├── og-image.jpg │ ├── placeholder-320x180.png │ ├── products-full-width.jpg │ ├── products-grid1.jpg │ ├── products-grid2.jpg │ ├── products-grid3.jpg │ ├── safari-pinned-tab.svg │ └── tutorials.png └── tailwind.config.js /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | browser: true, 5 | node: true, 6 | }, 7 | parserOptions: { 8 | parser: 'babel-eslint', 9 | }, 10 | extends: [ 11 | '@nuxtjs', 12 | 'prettier', 13 | 'prettier/vue', 14 | 'plugin:prettier/recommended', 15 | 'plugin:nuxt/recommended', 16 | ], 17 | // plugins 18 | plugins: ['prettier'], 19 | // add your custom rules here 20 | rules: {}, 21 | } 22 | -------------------------------------------------------------------------------- /.github/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at david@netlify.com. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at 72 | 73 | For answers to common questions about this code of conduct, see 74 | 75 | 76 | [homepage]: https://www.contributor-covenant.org -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # CONTRIBUTING 2 | 3 | Contributions are always welcome, no matter how large or small. Before contributing, 4 | please read the [code of conduct](CODE_OF_CONDUCT.md). 5 | 6 | ## Setup 7 | 8 | > Install npm on your system: [https://www.npmjs.com/get-npm](https://www.npmjs.com/get-npm) 9 | 10 | ### Install dependencies 11 | 12 | ```sh 13 | git clone https://github.com/lukeocodes/nuxt-starter-netlify-cms 14 | npm install 15 | ``` 16 | 17 | ## Development Environment 18 | 19 | To launch Nuxt in development mode with [hot module replacement](https://webpack.js.org/concepts/hot-module-replacement/) on `http://localhost:3000`: 20 | 21 | ```bash 22 | npm run dev 23 | ``` 24 | 25 | ### `netlify dev` 26 | 27 | Starts the netlify dev environment, including the Nuxt Development Environment. 28 | For more infor check the [Netlify Dev Docs](https://github.com/netlify/cli/blob/master/docs/netlify-dev.md) 29 | 30 | ```sh 31 | netlify dev 32 | ``` 33 | 34 | ## Available scripts 35 | 36 | These are included in your `package.json`. 37 | 38 | ```json 39 | "scripts": { 40 | "dev": "nuxt", 41 | "build": "nuxt build", 42 | "start": "nuxt start", 43 | "generate": "nuxt generate" 44 | } 45 | ``` 46 | 47 | You can run different commands depending on the [target](/docs/2.x/features/deployment-targets): 48 | 49 | ### target: `server` (default value) 50 | 51 | - **nuxt dev** - Launch the development server. 52 | - **nuxt build** - Build and optimize your application with webpack for production. 53 | - **nuxt start** - Start the production server (after running `nuxt build`). Use it for Node.js hosting like Heroku, Digital Ocean, etc. 54 | 55 | ### target: `static` 56 | 57 | - **nuxt dev** - Launch the development server. 58 | - **nuxt generate** - Build the application (if needed), generate every route as a HTML file and statically export to `dist/` directory (used for static hosting). 59 | - **nuxt start** - serve the `dist/` directory like your static hosting would do (Netlify, Vercel, Surge, etc), great for testing before deploying. 60 | 61 | ## Production Deployment 62 | 63 | Nuxt.js lets you choose between Server or Static deployments. 64 | 65 | ### Server Deployment 66 | 67 | To deploy a SSR application we use `target: server`, where server is the default value. 68 | 69 | ```bash 70 | npm run build 71 | ``` 72 | 73 | Nuxt.js will create a `.nuxt` directory with everything inside ready to be deployed on your server hosting. 74 | 75 | > We recommend putting `.nuxt` in `.npmignore` or `.gitignore`. 76 | 77 | Once your application is built you can use the `start` command to see a production version of your application. 78 | 79 | ```bash 80 | npm run start 81 | ``` 82 | 83 | ### Static Deployment (Pre-rendered) 84 | 85 | Nuxt.js gives you the ability to host your web application on any static hosting. 86 | 87 | To deploy a static generated site make sure you have `target: static` in your `nuxt.config.js`.(For Nuxt >= 2.13:) 88 | 89 | ```js{}[nuxt.config.js] 90 | export default { 91 | target: 'static' 92 | } 93 | ``` 94 | 95 | ```bash 96 | npm run generate 97 | ``` 98 | 99 | Nuxt.js will create a `dist/` directory with everything inside ready to be deployed on a static hosting service. 100 | 101 | As of Nuxt v2.13 there is a crawler installed that will now crawl your link tags and generate your routes when using the command `nuxt generate` based on those links. 102 | 103 | > **Warning:** dynamic routes are ignored by the `generate` command when using Nuxt <= v2.12: [API Configuration generate](/docs/2.x/configuration-glossary/configuration-generate) 104 | 105 | > When generating your web application with `nuxt generate`, [the context](/docs/2.x/internals-glossary/context) given to [asyncData](/docs/2.x/features/data-fetching#async-data) and [fetch](/docs/2.x/features/data-fetching#the-fetch-hook) will not have `req` and `res`. 106 | 107 | #### **Fail on Error** 108 | 109 | To return a non-zero status code when a page error is encountered and let the CI/CD fail the deployment or build, you can use the `--fail-on-error` argument. 110 | 111 | ```bash 112 | npm run generate --fail-on-error 113 | ``` 114 | 115 | ## Pull Requests 116 | 117 | We actively welcome your pull requests! 118 | 119 | If you need help with Git or our workflow, please ask on [Gitter.im](https://gitter.im/netlify/NetlifyCMS). We want your contributions even if you're just learning Git. Our maintainers are happy to help! 120 | 121 | Netlify CMS uses the [Forking Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow) + [Feature Branches](https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow). Additionally, PR's should be [rebased](https://www.atlassian.com/git/tutorials/merging-vs-rebasing) on master when opened, and again before merging. 122 | 123 | 1. Fork the repo. 124 | 2. Create a branch from `main`. If you're addressing a specific issue, prefix your branch name with the issue number. 125 | 2. If you've added code that should be tested, add tests. 126 | 3. If you've changed APIs, update the documentation. 127 | 4. Run `npm run test` and ensure the test suite passes. (Not applicable yet) 128 | 5. Use `npm run lint` to format and lint your code. 129 | 6. PR's must be rebased before merge (feel free to ask for help). 130 | 7. PR should be reviewed by two maintainers prior to merging. 131 | 132 | ## License 133 | 134 | By contributing to the Nuxt - Netlify CMS starter, you agree that your contributions will be licensed under its [MIT license](../LICENSE). 135 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | --- 11 | name: Bug report 12 | about: Create a report to help us improve 13 | --- 14 | 15 | 16 | 17 | 18 | # Bug report 19 | 20 | 21 | 22 | 23 | 24 | 25 | **What is the current behavior?** 26 | 27 | 28 | **If the current behavior is a bug, please provide the steps to reproduce.** 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | **What is the expected behavior?** 38 | 39 | 40 | 41 | 42 | 43 | **Other relevant information:** 44 | 45 | 46 | 47 | Node.js version: 48 | NPM/Yarn version 49 | Operating System: 50 | Additional tools: 51 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/custom.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Custom issue template 3 | about: Describe this issue template's purpose here. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | --- 11 | name: Other 12 | about: Something else 13 | 14 | --- 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | --- 11 | name: Feature request 12 | about: Suggest an idea for this project 13 | 14 | --- 15 | 16 | 17 | 18 | ## Feature request 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | **What is the expected behavior?** 27 | 28 | 29 | **What is motivation or use case for adding/changing the behavior?** 30 | 31 | 32 | **How should this be implemented in your opinion?** 33 | 34 | 35 | **Are you willing to work on this yourself?** 36 | yes 37 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | **What kind of change does this PR introduce?** 9 | 10 | 11 | 12 | **Does this PR introduce a breaking change?** 13 | 14 | 15 | 16 | **What needs to be documented once your changes are merged?** 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | # Fetch and update latest `npm` packages 4 | - package-ecosystem: npm 5 | directory: '/' 6 | schedule: 7 | interval: daily 8 | time: '00:00' 9 | open-pull-requests-limit: 10 10 | commit-message: 11 | prefix: fix 12 | prefix-development: chore 13 | include: scope 14 | -------------------------------------------------------------------------------- /.github/semantic.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukeocodes/nuxt-starter-netlify-cms/db405b969cd10b3e223d5658a659fda91c6ebf72/.github/semantic.yml -------------------------------------------------------------------------------- /.github/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukeocodes/nuxt-starter-netlify-cms/db405b969cd10b3e223d5658a659fda91c6ebf72/.github/splash.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | ### Node template 3 | # Logs 4 | logs 5 | *.log 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* 9 | 10 | # Runtime data 11 | pids 12 | *.pid 13 | *.seed 14 | *.pid.lock 15 | 16 | # Directory for instrumented libs generated by jscoverage/JSCover 17 | lib-cov 18 | 19 | # Coverage directory used by tools like istanbul 20 | coverage 21 | 22 | # nyc test coverage 23 | .nyc_output 24 | 25 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 26 | .grunt 27 | 28 | # Bower dependency directory (https://bower.io/) 29 | bower_components 30 | 31 | # node-waf configuration 32 | .lock-wscript 33 | 34 | # Compiled binary addons (https://nodejs.org/api/addons.html) 35 | build/Release 36 | 37 | # Dependency directories 38 | node_modules/ 39 | jspm_packages/ 40 | 41 | # TypeScript v1 declaration files 42 | typings/ 43 | 44 | # Optional npm cache directory 45 | .npm 46 | 47 | # Optional eslint cache 48 | .eslintcache 49 | 50 | # Optional REPL history 51 | .node_repl_history 52 | 53 | # Output of 'npm pack' 54 | *.tgz 55 | 56 | # Yarn Integrity file 57 | .yarn-integrity 58 | 59 | # dotenv environment variables file 60 | .env 61 | 62 | # parcel-bundler cache (https://parceljs.org/) 63 | .cache 64 | 65 | # next.js build output 66 | .next 67 | 68 | # nuxt.js build output 69 | .nuxt 70 | 71 | # Nuxt generate 72 | dist 73 | 74 | # vuepress build output 75 | .vuepress/dist 76 | 77 | # Serverless directories 78 | .serverless 79 | 80 | # IDE / Editor 81 | .idea 82 | .editorconfig 83 | .code-workspace 84 | 85 | # Service worker 86 | sw.* 87 | 88 | # Mac OSX 89 | .DS_Store 90 | 91 | # Vim swap files 92 | *.swp 93 | 94 | # Local Netlify folder 95 | .netlify 96 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v13.7.0 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "singleQuote": true 4 | } 5 | -------------------------------------------------------------------------------- /.release-it.json: -------------------------------------------------------------------------------- 1 | { 2 | "git": { 3 | "commitMessage": "chore: release v${version}" 4 | }, 5 | "github": { 6 | "release": true 7 | }, 8 | "npm": { 9 | "publish": false 10 | }, 11 | "hooks": { 12 | "before:init": ["npm run lint", "npm test"], 13 | "after:release": "echo Successfully released ${name} v${version} to ${repo.repository}." 14 | }, 15 | "plugins": { 16 | "@release-it/conventional-changelog": { 17 | "preset": "angular", 18 | "infile": "CHANGELOG.md" 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /.remarkignore: -------------------------------------------------------------------------------- 1 | CHANGELOG.md -------------------------------------------------------------------------------- /.remarkrc.js: -------------------------------------------------------------------------------- 1 | exports.plugins = [ 2 | require('remark-frontmatter'), 3 | require('remark-preset-lint-consistent'), 4 | require('remark-preset-lint-recommended'), 5 | require('remark-preset-lint-markdown-style-guide'), 6 | require('remark-preset-prettier') 7 | ]; 8 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## [1.0.1](https://github.com/lukeocodes/nuxt-starter-netlify-cms/compare/1.0.0...1.0.1) (2020-11-14) 2 | 3 | 4 | ### Bug Fixes 5 | 6 | * **styling:** tailwind background colour and border on page elements ([03a76c6](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/03a76c626500a836240e09c8d50f7c4389fa2e19)) 7 | 8 | # [1.0.0](https://github.com/lukeocodes/nuxt-starter-netlify-cms/compare/0.2.1...1.0.0) (2020-11-14) 9 | 10 | 11 | ### Bug Fixes 12 | 13 | * replace last of missing files ([3f994f2](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/3f994f20f4a194261872dbe236c5b540ae8c327d)) 14 | * update the contributing guide for nuxt ([512866f](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/512866fcbe03475059d1bb1a29cb34174448e370)) 15 | * **admin:** fix netlify cms config ([38ed05e](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/38ed05e4ff3003e558becb7d4235708a523f1441)) 16 | * **cms:** admin config blog format ([d5ba0b6](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/d5ba0b650c1847788b442aa877d28c8237aecab2)) 17 | * **cms:** admin isn't accessible when linking to admin from a component - fixes [#7](https://github.com/lukeocodes/nuxt-starter-netlify-cms/issues/7) ([780ec84](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/780ec84e342c7315bb3b12adc48e10094798fb6a)) 18 | * **cms:** branch settings ([1306281](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/13062815f6fa15790b95255e7a8613109e63fc24)) 19 | * **cms:** fix missing config for page cms ([50d869e](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/50d869ef0bef080e6ff0a59b7fbf29020b7f3745)) 20 | * **component:** products spacing images oddly at different breakpoints ([9b77a63](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/9b77a634fd96408f3b1e6ec269a2690397c13e42)) 21 | * **docs:** broken image for netlify build status ([a5153f4](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/a5153f4423f23a30c4f1a46c352d9ba0bb6c32fe)) 22 | * fix the admin directory problem ([021fa67](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/021fa67582c586d77b734328b99de9132b918257)) 23 | 24 | 25 | ### Code Refactoring 26 | 27 | * remove static entirely to try and force this fix ([2f72a27](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/2f72a2702200a054faf6cbc3497cfd06d25e3eb1)) 28 | 29 | 30 | ### Features 31 | 32 | * configure remark and release ([95c492a](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/95c492a2e5b75da49f68043a1e00e7e5d7e27ce8)) 33 | * **add commitizen:** install commitizen and initialize it for the project ([d32693d](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/d32693d89f9d1e76249f902a5edf6f7757f36a2f)) 34 | * **admin:** add static content back in trying to get /admin to work ([1f9d843](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/1f9d843fa59ade01fe5446932817e108f45a23b5)) 35 | * **cms:** better post preview and preview styling ([00bec80](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/00bec809414b01a003654d044baf15097ca7bea9)) 36 | 37 | 38 | ### BREAKING CHANGES 39 | 40 | * removes /admin entirely 41 | 42 | ## [0.2.1](https://github.com/lukeocodes/nuxt-starter-netlify-cms/compare/0.2.0...0.2.1) (2020-11-09) 43 | 44 | # [0.2.0](https://github.com/lukeocodes/nuxt-starter-netlify-cms/compare/0.1.1...0.2.0) (2020-11-09) 45 | 46 | 47 | ### Features 48 | 49 | * tweaking netlify cms config and file structure ([c5592f8](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/c5592f8f1a5ca9c1e4add983fd8ace6efe366e96)) 50 | 51 | ## [0.1.1](https://github.com/lukeocodes/nuxt-starter-netlify-cms/compare/0.1.0...0.1.1) (2020-11-08) 52 | 53 | 54 | ### Bug Fixes 55 | 56 | * dependabot nuxtjs/eslint-module broke builds ([de52e90](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/de52e905831fa5661b3ea1c9ac8d3c10527066e2)) 57 | 58 | # [0.1.0](https://github.com/lukeocodes/nuxt-starter-netlify-cms/compare/0.0.1...0.1.0) (2020-11-08) 59 | 60 | 61 | ### Features 62 | 63 | * add semantic PRs ([#3](https://github.com/lukeocodes/nuxt-starter-netlify-cms/issues/3)) ([ddcd4eb](https://github.com/lukeocodes/nuxt-starter-netlify-cms/commit/ddcd4eb8177a410184aa9289746f99cbfcc5371a)) 64 | 65 | ## 0.0.1 (2020-11-08) 66 | 67 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Luke Oliff @lukeocodes 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 | # Nuxt Content + Netlify CMS Starter Blog 2 | 3 | [![Netlify Status](https://api.netlify.com/api/v1/badges/90509489-1678-40fa-aac3-ac1ce864a5d6/deploy-status)](https://app.netlify.com/sites/nuxt-starter-netlify-cms/deploys) 4 | 5 | **Note:** This starter uses [Nuxt 2.14](https://nuxtjs.org/blog/nuxt-static-improvements/) and [@nuxt/content v1.1.0](https://content.nuxtjs.org/). This is a port of the [Gatsby + Netlify CMS Starter](https://github.com/netlify-templates/gatsby-starter-netlify-cms). 6 | 7 | This repo contains an example business website that is built with [Nuxt.js](https://nuxtjs.org/), [@nuxt/content](https://content.nuxtjs.org/), and [Netlify CMS](https://www.netlifycms.org): **[Demo Link](https://nuxt-starter-netlify-cms.netlify.app/)**. 8 | 9 | It follows the [Jamstack architecture](https://jamstack.org) by using Git as a single source of truth, and [Netlify](https://www.netlify.com) for continuous deployment, and CDN distribution. 10 | 11 | ## Features 12 | 13 | - A simple landing page with blog functionality built with Netlify CMS and [@nuxt/content](https://content.nuxtjs.org/) 14 | - Editable Pages: Landing, About, Product, Blog-Collection and Contact page with Netlify Form support 15 | - Create Blog posts from Netlify CMS 16 | - Tags: Separate page for posts under each tag 17 | - Basic directory organization 18 | - Uses TailwindCSS for styling from the [`@nuxtjs/tailwindcss`](https://github.com/nuxt-community/tailwindcss-module) module, with PurgeCSS included for minimal CSS. 19 | - [`@tailwind/typography`](https://tailwindcss.com/docs/typography-plugin) configured for prose and responsive prose. 20 | - Blazing fast loading times thanks to server-side rendering in [full static mode](https://nuxtjs.org/blog/going-full-static/). 21 | - Separate components for everything 22 | - Netlify deploy configuration 23 | - ..and more 24 | 25 | ## Sites Based On This 26 | 27 | - [Vonage Learn](https://vonage-deved-platform.netlify.app) - Developer Education Platform for Vonage.com 28 | - [Hacktoberfest Ninja](https://hacktoberfest.ninja) - Unofficial Hacktoberfest Site for Repo Tracking and Rules 29 | 30 | ## Prerequisites 31 | 32 | - Node (I recommend using v8.2.0 or higher) 33 | - [Nuxt](https://nuxtjs.org/docs/2.x/get-started/installation) 34 | - [Netlify CLI](https://github.com/netlify/cli) 35 | 36 | ## Getting Started (Recommended) 37 | 38 | Netlify CMS can run in any frontend web environment, but the quickest way to try it out is by running it on a pre-configured starter site with Netlify. Use the button below to build and deploy your own copy of the repository: 39 | 40 | Deploy to Netlify 41 | 42 | After clicking that button, you’ll authenticate with GitHub and choose a repository name. Netlify will then automatically create a repository in your GitHub account with a copy of the files from the template. Next, it will build and deploy the new site on Netlify, bringing you to the site dashboard when the build is complete. Next, you’ll need to set up Netlify’s Identity service to authorize users to log in to the CMS. 43 | 44 | ### Access Locally 45 | 46 | Pulldown a local copy of the Github repository Netlify created for you, with the name you specified in the previous step 47 | 48 | ```sh 49 | git clone https://github.com/[GITHUB_USERNAME]/[REPO_NAME].git 50 | cd [REPO_NAME] 51 | npm install 52 | netlify dev # or ntl dev 53 | ``` 54 | 55 | This uses the new [Netlify Dev](https://www.netlify.com/products/dev/?utm_source=blog&utm_medium=netlifycms&utm_campaign=devex) CLI feature to serve any functions you have in the `lambda` folder. 56 | 57 | To test the CMS locally, you'll need to run a production build of the site: 58 | 59 | ```sh 60 | netlify dev # or ntl dev 61 | ``` 62 | 63 | ## Getting Started (Without Netlify) 64 | 65 | ```sh 66 | git clone https://github.com/lukeocodes/gatsby-starter-netlify-cms/ [SITE_DIRECTORY_NAME] 67 | cd [SITE_DIRECTORY_NAME] 68 | npm install 69 | 70 | # dev start 71 | npm run dev 72 | 73 | # prod build and start 74 | npm run generate 75 | npm run start 76 | ``` 77 | 78 | ### Setting up the CMS 79 | 80 | Follow the [Netlify CMS Quick Start Guide](https://www.netlifycms.org/docs/quick-start/#authentication) to set up authentication, and hosting. 81 | 82 | ## Debugging 83 | 84 | Windows users might encounter `node-gyp` errors when trying to npm install. 85 | To resolve, make sure that you have both Python 2.7 and the Visual C++ build environment installed. 86 | 87 | ```sh 88 | npm config set python python2.7 89 | npm install --global --production windows-build-tools 90 | ``` 91 | 92 | [Full details here](https://www.npmjs.com/package/node-gyp 'NPM node-gyp page') 93 | 94 | MacOS users might also encounter some errors, for more info check [node-gyp](https://github.com/nodejs/node-gyp). We recommend using the latest stable node version. 95 | 96 | ## Contributing 97 | 98 | Contributions are always welcome, no matter how large or small. Before contributing, 99 | please read the [code of conduct](./github/CODE_OF_CONDUCT.md). Then, check out the [contributing guidelines](./.github/CONTRIBUTING.md). 100 | -------------------------------------------------------------------------------- /assets/css/main.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lukeocodes/nuxt-starter-netlify-cms/db405b969cd10b3e223d5658a659fda91c6ebf72/assets/css/main.css -------------------------------------------------------------------------------- /components/Footer.vue: -------------------------------------------------------------------------------- 1 | 107 | 108 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /components/Header.vue: -------------------------------------------------------------------------------- 1 | 180 | 181 | 196 | 197 | 198 | -------------------------------------------------------------------------------- /components/Hero.vue: -------------------------------------------------------------------------------- 1 | 22 | 23 | 41 | 42 | 47 | -------------------------------------------------------------------------------- /content/about.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: About our values 3 | --- 4 | ### Shade-grown coffee 5 | Coffee is a small tree or shrub that grows in the forest understory in its wild form, and traditionally was grown commercially under other trees that provided shade. The forest-like structure of shade coffee farms provides habitat for a great number of migratory and resident species. 6 | 7 | ### Single origin 8 | Single-origin coffee is coffee grown within a single known geographic origin. Sometimes, this is a single farm or a specific collection of beans from a single country. The name of the coffee is then usually the place it was grown to whatever degree available. 9 | 10 | ### Sustainable farming 11 | Sustainable agriculture is farming in sustainable ways based on an understanding of ecosystem services, the study of relationships between organisms and their environment. What grows where and how it is grown are a matter of choice and careful consideration for nature and communities. 12 | 13 | ### Direct sourcing 14 | Direct trade is a form of sourcing practiced by some coffee roasters. Advocates of direct trade practices promote direct communication and price negotiation between buyer and farmer, along with systems that encourage and incentivize quality. 15 | 16 | ### Reinvest profits 17 | We want to truly empower the communities that bring amazing coffee to you. That’s why we reinvest 20% of our profits into farms, local businesses and schools everywhere our coffee is grown. You can see the communities grow and learn more about coffee farming on our blog. 18 | -------------------------------------------------------------------------------- /content/blog/2016-12-17-making-sense-of-the-scaas-new-flavor-wheel.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Making sense of the SCAA’s new Flavor Wheel 3 | date: 2016-12-17T15:04:10.000Z 4 | description: The Coffee Taster’s Flavor Wheel, the official resource used by coffee tasters, has been revised for the first time this year. 5 | tags: 6 | - flavor 7 | - tasting 8 | --- 9 | ![flavor wheel](/img/flavor_wheel.jpg) 10 | 11 | The SCAA updated the wheel to reflect the finer nuances needed to describe flavors more precisely. The new descriptions are more detailed and hence allow cuppers to distinguish between more flavors. 12 | 13 | While this is going to be a big change for professional coffee tasters, it means a lot to you as a consumer as well. We’ll explain how the wheel came to be, how pros use it and what the flavors actually mean. 14 | 15 | ## What the updates mean to you 16 | 17 | The Specialty Coffee Association of America (SCAA), founded in 1982, is a non-profit trade organization for the specialty coffee industry. With members located in more than 40 countries, SCAA represents every segment of the specialty coffee industry, including: 18 | 19 | * producers 20 | * roasters 21 | * importers/exporters 22 | * retailers 23 | * manufacturers 24 | * baristas 25 | 26 | For over 30 years, SCAA has been dedicated to creating a vibrant specialty coffee community by recognizing, developing and promoting specialty coffee. SCAA sets and maintains quality standards for the industry, conducts market research, and provides education, training, resources, and business services for its members. 27 | 28 | Coffee cupping, or coffee tasting, is the practice of observing the tastes and aromas of brewed coffee. It is a professional practice but can be done informally by anyone or by professionals known as "Q Graders". A standard coffee cupping procedure involves deeply sniffing the coffee, then loudly slurping the coffee so it spreads to the back of the tongue. 29 | 30 | The coffee taster attempts to measure aspects of the coffee's taste, specifically the body (the texture or mouthfeel, such as oiliness), sweetness, acidity (a sharp and tangy feeling, like when biting into an orange), flavour (the characters in the cup), and aftertaste. Since coffee beans embody telltale flavours from the region where they were grown, cuppers may attempt to identify the coffee's origin. 31 | -------------------------------------------------------------------------------- /content/blog/2017-01-04-a-beginners-guide-to-brewing-with-chemex.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: A beginners’ guide to brewing with Chemex 3 | date: 2017-01-04T15:04:10.000Z 4 | description: Brewing with a Chemex probably seems like a complicated, time-consuming ordeal, but once you get used to the process, it becomes a soothing ritual that's worth the effort every time. 5 | tags: 6 | - brewing 7 | - chemex 8 | --- 9 | ![chemex](/img/chemex.jpg) 10 | 11 | This week we’ll **take** a look at all the steps required to make astonishing coffee with a Chemex at home. The Chemex Coffeemaker is a manual, pour-over style glass-container coffeemaker that Peter Schlumbohm invented in 1941, and which continues to be manufactured by the Chemex Corporation in Chicopee, Massachusetts. 12 | 13 | In 1958, designers at the [Illinois Institute of Technology](https://www.spacefarm.digital) said that the Chemex Coffeemaker is _"one of the best-designed products of modern times"_, and so is included in the collection of the Museum of Modern Art in New York City. 14 | 15 | ## The little secrets of Chemex brewing 16 | 17 | The Chemex Coffeemaker consists of an hourglass-shaped glass flask with a conical funnel-like neck (rather than the cylindrical neck of an Erlenmeyer flask) and uses proprietary filters, made of bonded paper (thicker-gauge paper than the standard paper filters for a drip-method coffeemaker) that removes most of the coffee oils, brewing coffee with a taste that is different than coffee brewed in other coffee-making systems; also, the thicker paper of the Chemex coffee filters may assist in removing cafestol, a cholesterol-containing compound found in coffee oils. Here’s three important tips newbies forget about: 18 | 19 | 1. Always buy dedicated Chemex filters. 20 | 2. Use a scale, don’t try to eyeball it. 21 | 3. Never skip preheating the glass. 22 | 4. Timing is key, don’t forget the clock. 23 | 24 | The most visually distinctive feature of the Chemex is the heatproof wooden collar around the neck, allowing it to be handled and poured when full of hot water. This is turned, then split in two to allow it to fit around the glass neck. The two pieces are held loosely in place by a tied leather thong. The pieces are not tied tightly and can still move slightly, retained by the shape of the conical glass. 25 | 26 | For a design piece that became popular post-war at a time of Modernism and precision manufacture, this juxtaposition of natural wood and the organic nature of a hand-tied knot with the laboratory nature of glassware was a distinctive feature of its appearance. 27 | -------------------------------------------------------------------------------- /content/blog/2017-01-04-just-in-small-batch-of-jamaican-blue-mountain-in-store-next-week.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 'Just in: small batch of Jamaican Blue Mountain in store next week' 3 | date: 2017-01-04T15:04:10.000Z 4 | description: >- 5 | We’re proud to announce that we’ll be offering a small batch of Jamaica Blue 6 | Mountain coffee beans in our store next week. 7 | tags: 8 | - jamaica 9 | - green beans 10 | - flavor 11 | - tasting 12 | --- 13 | 14 | We expect the shipment of a limited quantity of green beans next Monday. We’ll be offering the roasted beans from Tuesday, but quantities are limited, so be quick. 15 | 16 | Blue Mountain Peak is the highest mountain in Jamaica and one of the highest peaks in the Caribbean at 7,402 ft. It is the home of Blue Mountain coffee and their famous tours. It is located on the border of the Portland and Saint Thomas parishes of Jamaica. 17 | 18 | ## A little history 19 | 20 | The Blue Mountains are considered by many to be a hiker's and camper's paradise. The traditional Blue Mountain trek is a 7-mile hike to the peak and consists of a 3,000-foot increase in elevation. Jamaicans prefer to reach the peak at sunrise, thus the 3–4 hour hike is usually undertaken in darkness. Since the sky is usually very clear in the mornings, Cuba can be seen in the distance. 21 | 22 | >Some of the plants found on the Blue Mountain cannot be found anywhere else in the world and they are often of a dwarfed sort. 23 | 24 | This is mainly due to the cold climate which inhibits growth. The small coffee farming communities of Claverty Cottage and Hagley Gap are located near the peak. 25 | 26 | ## What you need to know before trying 27 | 28 | Jamaican Blue Mountain Coffee or Jamaica Blue Mountain Coffee is a classification of coffee grown in the Blue Mountains of Jamaica. The best lots of Blue Mountain coffee are noted for their mild flavor and lack of bitterness. Over the past few decades, this coffee has developed a reputation that has made it one of the most expensive and sought-after coffees in the world. Over 80% of all Jamaican Blue Mountain Coffee is exported to Japan. In addition to its use for brewed coffee, the beans are the flavor base of Tia Maria coffee liqueur. 29 | 30 | Jamaican Blue Mountain Coffee is a globally protected certification mark, meaning only coffee certified by the Coffee Industry Board of Jamaica can be labeled as such. It comes from a recognized growing region in the Blue Mountain region of Jamaica, and its cultivation is monitored by the Coffee Industry Board of Jamaica. 31 | 32 | The Blue Mountains are generally located between Kingston to the south and Port Antonio to the north. Rising 7,402 ft, they are some of the highest mountains in the Caribbean. The climate of the region is cool and misty with high rainfall. The soil is rich, with excellent drainage. This combination of climate and soil is considered ideal for coffee. 33 | -------------------------------------------------------------------------------- /content/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Great coffee with a conscience 3 | image: /img/home-jumbotron.jpg 4 | heading: Great coffee with a conscience 5 | subheading: Support sustainable farming while enjoying a cup 6 | mainpitch: 7 | title: Why Kaldi 8 | description: > 9 | Kaldi is the coffee store for everyone who believes that great coffee 10 | shouldn't just taste good, it should do good too. We source all of our beans 11 | directly from small scale sustainable farmers and make sure part of the 12 | profits are reinvested in their communities. 13 | description: >- 14 | Kaldi is the ultimate spot for coffee lovers who want to learn about their 15 | java’s origin and support the farmers that grew it. We take coffee production, 16 | roasting and brewing seriously and we’re glad to pass that knowledge to 17 | anyone. 18 | intro: 19 | blurbs: 20 | - image: /img/coffee.png 21 | text: > 22 | We sell green and roasted coffee beans that are sourced directly from 23 | independent farmers and farm cooperatives. We’re proud to offer a 24 | variety of coffee beans grown with great care for the environment and 25 | local communities. Check our post or contact us directly for current 26 | availability. 27 | - image: /img/coffee-gear.png 28 | text: > 29 | We offer a small, but carefully curated selection of brewing gear and 30 | tools for every taste and experience level. No matter if you roast your 31 | own beans or just bought your first french press, you’ll find a gadget 32 | to fall in love with in our shop. 33 | - image: /img/tutorials.png 34 | text: > 35 | Love a great cup of coffee, but never knew how to make one? Bought a 36 | fancy new Chemex but have no clue how to use it? Don't worry, we’re here 37 | to help. You can schedule a custom 1-on-1 consultation with our baristas 38 | to learn anything you want to know about coffee roasting and brewing. 39 | Email us or call the store for details. 40 | - image: /img/meeting-space.png 41 | text: > 42 | We believe that good coffee has the power to bring people together. 43 | That’s why we decided to turn a corner of our shop into a cozy meeting 44 | space where you can hang out with fellow coffee lovers and learn about 45 | coffee making techniques. All of the artwork on display there is for 46 | sale. The full price you pay goes to the artist. 47 | heading: What we offer 48 | description: > 49 | Kaldi is the ultimate spot for coffee lovers who want to learn about their 50 | java’s origin and support the farmers that grew it. We take coffee 51 | production, roasting and brewing seriously and we’re glad to pass that 52 | knowledge to anyone. This is an edit via identity... 53 | main: 54 | heading: Great coffee with no compromises 55 | description: > 56 | We hold our coffee to the highest standards from the shrub to the cup. 57 | That’s why we’re meticulous and transparent about each step of the coffee’s 58 | journey. We personally visit each farm to make sure the conditions are 59 | optimal for the plants, farmers and the local environment. 60 | image1: 61 | alt: A close-up of a paper filter filled with ground coffee 62 | image: /img/products-grid3.jpg 63 | image2: 64 | alt: A green cup of a coffee on a wooden table 65 | image: /img/products-grid2.jpg 66 | image3: 67 | alt: Coffee beans 68 | image: /img/products-grid1.jpg 69 | --- 70 | -------------------------------------------------------------------------------- /content/products.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Our Coffee 3 | image: /img/jumbotron.jpg 4 | heading: Great coffee with a conscience 5 | description: >- 6 | Kaldi is the ultimate spot for coffee lovers who want to learn about their 7 | java’s origin and support the farmers that grew it. We take coffee production, 8 | roasting and brewing seriously and we’re glad to pass that knowledge to 9 | anyone. 10 | intro: 11 | blurbs: 12 | - image: /img/coffee.png 13 | text: > 14 | We sell green and roasted coffee beans that are sourced directly from 15 | independent farmers and farm cooperatives. We’re proud to offer a 16 | variety of coffee beans grown with great care for the environment and 17 | local communities. Check our post or contact us directly for current 18 | availability. 19 | - image: /img/coffee-gear.png 20 | text: > 21 | We offer a small, but carefully curated selection of brewing gear and 22 | tools for every taste and experience level. No matter if you roast your 23 | own beans or just bought your first french press, you’ll find a gadget 24 | to fall in love with in our shop. 25 | - image: /img/tutorials.png 26 | text: > 27 | Love a great cup of coffee, but never knew how to make one? Bought a 28 | fancy new Chemex but have no clue how to use it? Don't worry, we’re here 29 | to help. You can schedule a custom 1-on-1 consultation with our baristas 30 | to learn anything you want to know about coffee roasting and brewing. 31 | Email us or call the store for details. 32 | - image: /img/meeting-space.png 33 | text: > 34 | We believe that good coffee has the power to bring people together. 35 | That’s why we decided to turn a corner of our shop into a cozy meeting 36 | space where you can hang out with fellow coffee lovers and learn about 37 | coffee making techniques. All of the artwork on display there is for 38 | sale. The full price you pay goes to the artist. 39 | heading: What we offer 40 | description: > 41 | Kaldi is the ultimate spot for coffee lovers who want to learn about their 42 | java’s origin and support the farmers that grew it. We take coffee 43 | production, roasting and brewing seriously and we’re glad to pass that 44 | knowledge to anyone. This is an edit via identity... 45 | main: 46 | heading: Great coffee with no compromises 47 | description: > 48 | We hold our coffee to the highest standards from the shrub to the cup. 49 | That’s why we’re meticulous and transparent about each step of the coffee’s 50 | journey. We personally visit each farm to make sure the conditions are 51 | optimal for the plants, farmers and the local environment. 52 | image1: 53 | alt: A close-up of a paper filter filled with ground coffee 54 | image: /img/products-grid3.jpg 55 | image2: 56 | alt: A green cup of a coffee on a wooden table 57 | image: /img/products-grid2.jpg 58 | image3: 59 | alt: Coffee beans 60 | image: /img/products-grid1.jpg 61 | testimonials: 62 | - author: Elisabeth Kaurismäki 63 | quote: >- 64 | The first time I tried Kaldi’s coffee, I couldn’t even believe that was 65 | the same thing I’ve been drinking every morning. 66 | - author: Philipp Trommler 67 | quote: >- 68 | Kaldi is the place to go if you want the best quality coffee. I love their 69 | stance on empowering farmers and transparency. 70 | full_image: /img/products-full-width.jpg 71 | pricing: 72 | heading: Monthly subscriptions 73 | description: >- 74 | We make it easy to make great coffee a part of your life. Choose one of our 75 | monthly subscription plans to receive great coffee at your doorstep each 76 | month. Contact us about more details and payment info. 77 | plans: 78 | - description: Perfect for the drinker who likes to enjoy 1-2 cups per day. 79 | items: 80 | - 3 lbs of coffee per month 81 | - Green or roasted beans" 82 | - One or two varieties of beans" 83 | plan: Small 84 | price: '50' 85 | - description: 'Great for avid drinkers, java-loving couples and bigger crowds' 86 | items: 87 | - 6 lbs of coffee per month 88 | - Green or roasted beans 89 | - Up to 4 different varieties of beans 90 | plan: Big 91 | price: '80' 92 | - description: Want a few tiny batches from different varieties? Try our custom plan 93 | items: 94 | - Whatever you need 95 | - Green or roasted beans 96 | - Unlimited varieties 97 | plan: Custom 98 | price: '??' 99 | --- 100 | -------------------------------------------------------------------------------- /content/site/info.json: -------------------------------------------------------------------------------- 1 | { 2 | "sitename": "Example Nuxt, and Netlify CMS project", 3 | "sitedescription": "Example nuxt + netlify cms project. Nuxt port of Gatsby starter app", 4 | "sitelang": "en-US" 5 | } 6 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "paths": { 5 | "~/*": ["./*"], 6 | "@/*": ["./*"], 7 | "~~/*": ["./*"], 8 | "@@/*": ["./*"] 9 | } 10 | }, 11 | "exclude": ["node_modules", ".nuxt", "dist"] 12 | } 13 | -------------------------------------------------------------------------------- /layouts/default.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /layouts/error.vue: -------------------------------------------------------------------------------- 1 | 34 | 35 | 46 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | command = "npm run generate" 3 | publish = "dist/" 4 | -------------------------------------------------------------------------------- /nuxt.config.js: -------------------------------------------------------------------------------- 1 | import * as siteConfig from './content/site/info.json' 2 | 3 | export default { 4 | // Target (https://go.nuxtjs.dev/config-target) 5 | target: 'static', 6 | 7 | // Environment variables: https://nuxtjs.org/api/configuration-env/ 8 | env: { 9 | url: 10 | process.env.NODE_ENV === 'production' 11 | ? process.env.URL || 'http://createADotEnvFileAndSetURL' 12 | : 'http://localhost:3000', 13 | lang: 'en-US', 14 | }, 15 | 16 | // Global page headers (https://go.nuxtjs.dev/config-head) 17 | head: { 18 | title: siteConfig.sitename || process.env.npm_package_name || '', 19 | meta: [ 20 | { charset: 'utf-8' }, 21 | { name: 'viewport', content: 'width=device-width, initial-scale=1' }, 22 | { 23 | hid: 'description', 24 | name: 'description', 25 | content: 26 | siteConfig.sitedescription || 27 | process.env.npm_package_description || 28 | '', 29 | }, 30 | ], 31 | }, 32 | 33 | generate: { 34 | fallback: true, 35 | exclude: [ 36 | /^\/admin/, // path starts with /admin 37 | ], 38 | }, 39 | 40 | // Global CSS (https://go.nuxtjs.dev/config-css) 41 | css: ['@/assets/css/main.css'], 42 | 43 | // Plugins to run before rendering page (https://go.nuxtjs.dev/config-plugins) 44 | plugins: [], 45 | 46 | // Auto import components (https://go.nuxtjs.dev/config-components) 47 | components: true, 48 | 49 | // Modules for dev and build (recommended) (https://go.nuxtjs.dev/config-modules) 50 | buildModules: [ 51 | // https://go.nuxtjs.dev/eslint 52 | '@nuxtjs/eslint-module', 53 | // https://go.nuxtjs.dev/tailwindcss 54 | '@nuxtjs/tailwindcss', 55 | ], 56 | 57 | // Modules (https://go.nuxtjs.dev/config-modules) 58 | modules: [ 59 | // https://go.nuxtjs.dev/content 60 | '@nuxt/content', 61 | ], 62 | } 63 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nuxt-starter-netlify-cms", 3 | "version": "1.0.1", 4 | "description": "Example Nuxt, and Netlify CMS project", 5 | "author": "Luke Oliff (https://twitter.com/lukeocodes)", 6 | "private": true, 7 | "scripts": { 8 | "dev": "nuxt", 9 | "build": "nuxt build", 10 | "start": "nuxt start", 11 | "generate": "nuxt generate", 12 | "lint": "npm run lint-js && npm run lint-md", 13 | "lint-js": "eslint --ext .js,.vue --ignore-path .gitignore .", 14 | "lint-md": "remark .", 15 | "release": "release-it", 16 | "commit": "cz", 17 | "test": "echo \"Pass: No test specified\" && exit 0" 18 | }, 19 | "dependencies": { 20 | "@nuxt/content": "^1.9.0", 21 | "@tailwindcss/typography": "^0.2.0", 22 | "core-js": "^3.6.5", 23 | "nuxt": "^2.14.6" 24 | }, 25 | "devDependencies": { 26 | "@nuxtjs/eslint-config": "^4.0.0", 27 | "@nuxtjs/eslint-module": "^2.0.0", 28 | "@nuxtjs/tailwindcss": "^3.1.0", 29 | "@release-it/conventional-changelog": "^2.0.0", 30 | "babel-eslint": "^10.1.0", 31 | "commitizen": "^4.2.2", 32 | "eslint": "^7.10.0", 33 | "eslint-config-prettier": "^6.12.0", 34 | "eslint-plugin-nuxt": "^1.0.0", 35 | "eslint-plugin-prettier": "^3.1.4", 36 | "prettier": "^2.1.2", 37 | "release-it": "^14.2.1", 38 | "remark-cli": "^9.0.0", 39 | "remark-frontmatter": "^3.0.0", 40 | "remark-lint": "^8.0.0", 41 | "remark-preset-lint-consistent": "^4.0.0", 42 | "remark-preset-lint-markdown-style-guide": "^4.0.0", 43 | "remark-preset-lint-recommended": "^5.0.0", 44 | "remark-preset-prettier": "^0.4.0", 45 | "remark-retext": "^4.0.0", 46 | "retext-english": "^3.0.4", 47 | "retext-repeated-words": "^3.0.0", 48 | "retext-sentence-spacing": "^4.0.0", 49 | "retext-spell": "^4.0.0", 50 | "retext-syntax-urls": "^2.0.0", 51 | "retext-usage": "^0.5.0", 52 | "unified": "^9.2.0" 53 | }, 54 | "keywords": [ 55 | "nuxt", 56 | "vue", 57 | "netlify-cms" 58 | ], 59 | "license": "MIT" 60 | } 61 | -------------------------------------------------------------------------------- /pages/about.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 21 | -------------------------------------------------------------------------------- /pages/blog/_slug.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 29 | -------------------------------------------------------------------------------- /pages/blog/index.vue: -------------------------------------------------------------------------------- 1 | 27 | 28 | 38 | -------------------------------------------------------------------------------- /pages/contact/index.vue: -------------------------------------------------------------------------------- 1 |