> For the complete documentation index, see [llms.txt](https://docpad.bevry.me/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docpad.bevry.me/community/contribute.md).

# Contribute

### Bevry <a href="#bevry" id="bevry"></a>

For the most part, DocPad inherits from the [Bevry Community's Contribution Guide](/community/contribute.md), with the following exceptions.

### Setup <a href="#setup" id="setup"></a>

To get started with developing and contributing code, you must first setup your project for development.

#### Setup the DocPad core for development <a href="#setup-the-docpad-core-for-development" id="setup-the-docpad-core-for-development"></a>

To setup a development environment for contributing to the DocPad core follow these steps:

1. Fork the repository of the DocPad Core: <https://github.com/docpad/docpad>
2. Clone your fork to your machine then `cd` into it
3. Run `npm run prepare` to install any missing dependencies
4. Run `npm run compile` to compile the project
5. Run `npm test` to test the project
6. Run `npm link` to make this development instance of the projects available to other projects (via `npm link docpad`)

#### Setup a DocPad plugin for development <a href="#setup-a-docpad-plugin-for-development" id="setup-a-docpad-plugin-for-development"></a>

To setup a development environment for contributing to a plugin follow these steps:

1. Ensure you have DocPad setup for development, by running the DocPad core instructions above
2. Fork the repository of the DocPad plugin you wish to edit
3. Clone your fork to your machine then `cd` into it
4. Run `npm link docpad` to link our local development instance of DocPad that we setup earlier to our DocPad plugin
5. Run `cake install` to install any missing dependencies
6. Run `cake compile` to compile the project
7. Run `cake test` to test the project
8. Run `npm link` to make this development instance of the project available to other projects (via `npm link docpad-plugin-PLUGINNAME`)
