48 lines
2.0 KiB
Markdown
48 lines
2.0 KiB
Markdown
# Contributing to Cheerio
|
|
|
|
Thanks for your interest in contributing to the project! Here's a rundown of
|
|
how we'd like to work with you:
|
|
|
|
1. File an issue on GitHub describing the contribution you'd like to make. This
|
|
will help us to get you started on the right foot.
|
|
2. Create a single commit that addresses the issue:
|
|
1. Follow the project's code style (see below)
|
|
2. Add enough unit tests to "prove" that your patch is correct
|
|
3. Update the project documentation as needed (see below)
|
|
4. Describe your approach with as much detail as necessary in the git
|
|
commit message
|
|
3. Open a pull request, and reference the initial issue in the pull request
|
|
message.
|
|
|
|
# Documentation
|
|
|
|
Any API change should be reflected in the project's README.md file. Reuse
|
|
[jQuery's documentation](http://api.jquery.com) wherever possible, but take
|
|
care to note aspects that make Cheerio distinct.
|
|
|
|
# Code Style
|
|
|
|
This section is by no means complete. For undocumented stylistic choices,
|
|
please try to maintain consistency with the code base.
|
|
|
|
- Single quotes: `'`
|
|
- Whitespace
|
|
- Two-space "soft" tabs
|
|
- Once space following control flow statements (`if (condition) {` rather
|
|
than `if(condition) {`)
|
|
- Remove trailing spaces
|
|
- [End each file with a newline
|
|
character.](https://github.com/editorconfig/editorconfig/wiki/Newline-at-End-of-File-Support)
|
|
- Terminate every statement with a semicolon
|
|
- Private functionality (for re-using functionality that isn't part of the
|
|
jQuery API)
|
|
- *Static methods*: If the functionality does not require a reference to a
|
|
Cheerio instance, simply define a named function within the module it is
|
|
needed.
|
|
- *Instance methods*: If the functionality requires a reference to a Cheerio
|
|
instance, informally define the method as "private" using the following
|
|
conventions:
|
|
- Define the method as a function on the Cheerio prototype
|
|
- Prefix the method name with an underscore (`_`) character
|
|
- Include `@api private` in the code comment the documents the method
|