# 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`)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docpad.bevry.me/community/contribute.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
