Home

Awesome

This project uses GitHub Actions for continuous integration. This project is using Percy.io for visual regression testing.

Ember Guides Source

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.

Contributing

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.

Project layout

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:

Local development

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.

Running tests

Use npm test to run tests locally. In addition to the Ember app, we check for broken links.

npm test

Linting and spellchecking

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.

Internal and external links

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