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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
