This repository contains the written content for the Ember.js Guides. Contributors can file issues and submit pull requests (PRs) to help improve everyone's learning experience.
Looking for repositories for the other parts of emberjs.com? Check out website, ember-api-docs, super-rentals tutorial, statusboard, deprecation-app, and styleguide.
Welcome and thanks for your help!
First-time contributors are encouraged to look at issues that are labeled help wanted or good first issue. If you have questions or want a buddy to pair with, you can join the #dev-ember-learning channel in the Ember Community Discord.
Please see CONTRIBUTING.md for additional instructions on how to format your work and submit a PR.
The Ember Guides content is written in Markdown. Each minor version of Ember has its own directory within /guides
.
In general, your PR should make edits to only the files in the /guides/release
directory, which corresponds to the latest version of Ember. Exceptions may include fixing broken links and typos in older versions of the Ember Guides.
If you run ember serve
, the Markdown files are turned into HTML to create an app. We use the following addons to make this happen:
NOTE: This project uses Volta to ensure the correct Node.js and NPM version is used during local development.
To run the Ember Guides app locally, type these commands into your terminal.
git clone git://github.com/ember-learn/guides-source.git
cd guides-source
npm install
ember serve
Afterwards, visit http://localhost:4200 in your browser.
Note: On Mac, if you get the error Error: EMFILE: too many open files, watch
, try installing Watchman. Install Homebrew if you don't have it. Then, in your terminal, run brew install watchman
.
Use npm test
to run tests locally. In addition to the Ember app, we check for broken links.
npm test
The guides are spellchecked and linted for Markdown consistency. You can check your edits by running,
npm run lint:md
Linting and spellchecking must pass or they will fail in CI (continuous integration). See CONTRIBUTING.md for more information on linting and spellchecking.
Testing of internal and external links can be performed using three commands:
# Run all test scripts in `/node-tests` except those located
# in `/node-tests/local`. In particular, this command checks
# all internal links across all versions of the Guides.
npm run test:node
# Run all test scripts in `/node-tests/local`. In particular,
# this command checks all external links in the release version
# of the Guides.
npm run test:node-local
# When checking external links in the release version, don't
# check links to the API docs (https://api.emberjs.com).
npm run test:node-local-exclude-api-urls