Documentation Style Guide
This guide provides clear and concise instructions to help you create well-organized and readable documentation for the html-bundler-webpack-plugin community. It covers organization, spelling, formatting, and more to ensure consistency and professionalism across all documents.
General guidelines
File naming
- Markdown Files: Use
lowercase-with-dashes.md. - Use underscores only if they are part of the topic name (e.g.,
child_process). - Some files, like top-level Markdown files, may be exceptions.
Text wrapping
- Wrap documents at 120 characters per line to enhance readability and version control.
Editor configuration
- Follow the formatting rules specified in
.editorconfig. - A plugin is available for some editors to enforce these rules.
Testing documentation
Validate documentation changes using:
npm run lint:spellingnpm run lint:md
Writing style
Spelling and grammar
- Spelling: Use US spelling.
- Grammar: Use clear, concise language. Avoid unnecessary jargon.
Commas
- Serial Commas: Use serial commas for clarity.
- Example: apples, oranges, and bananas
Pronouns
- Avoid first-person pronouns (I, we).
Gender-neutral language
- Use gender-neutral pronouns and plural nouns.
- OK: they, their, them, folks, people, developers
- NOT OK: his, hers, him, her, guys, dudes
Terminology
- Use precise technical terms and avoid colloquialisms.
- Define any specialized terms or acronyms at first use.
Punctuation
Terminal punctuation
- Place inside parentheses or quotes if the content is a complete clause.
- Place outside if the content is a fragment of a clause.
Quotation marks
- Use double quotation marks for direct quotes.
- Use single quotation marks for quotes within quotes.
Colons and semicolons
- Use colons to introduce lists or explanations.
- Use semicolons to link closely related independent clauses.
Document structure
Headings
- Start documents with a level-one heading (
#). - Use subsequent headings (
##,###, etc.) to organize content hierarchically.
Links
- Prefer reference-style links (
[a link][link-url]) over inline links ([a link](http://example.com)). - Use
urlsuffix for reference-style link labels
Lists
- Use bullet points for unordered lists and numbers for ordered lists.
- Keep list items parallel in structure.
Tables
- Use tables to present structured information clearly. Ensure they are readable in plain text.
API documentation
Usage examples
- Provide a usage example or a link to an example for every function.
Parameter descriptions
- Clearly describe parameters and return values, including types and defaults.
- Example:
- `byteOffset` {integer} Index of first byte to expose. **Default:** `0`.
Code blocks
Language-aware fences
-
Use language-aware fences (e.g.,
```js) for code blocks. -
Info String: Use the appropriate info string from the following list:
| Language | Info String |
|---|---|
| Bash | bash |
| CSS | css |
| Diff | diff |
| EJS | ejs, eta |
| EJS | ejs, eta |
| Handlebars | handlebars, hbs, mustache |
| HTML | html |
| JavaScript | js |
| JSON | json |
| Liquid, Nunjucks | liquid |
| Markdown | md, markdown |
| Plaintext | text |
| Pug | pug |
| Sass | scss |
| TypeScript | ts, typescript |
- Use
textfor unknown languages.
Code comments
- Use comments to explain complex logic within code examples.
- Follow the standard commenting style of the respective language.
Formatting
Escaping characters
- Use backslash-escaping for underscores, asterisks, and backticks:
\_,\*,\`.
Naming conventions
- Constructors: Use PascalCase.
- Instances: Use camelCase.
- Methods: Indicate methods with parentheses:
socket.end()instead ofsocket.end.
Function arguments and returns
- Arguments:
- `name` {type|type2} Optional description. **Default:** `value`.
Example:
- `byteOffset` {integer} Index of first byte to expose. **Default:** `0`.
- Returns:
- Returns: {type|type2} Optional description.
Example:
- Returns: {AsyncHook} A reference to `asyncHook`.
Product and project naming
Official styling
- Use official capitalization for products and projects.
- OK: JavaScript, Google's V8, Node.js
- NOT OK: Javascript, Google's v8, Node, NodeJS
html-bundler-webpack-plugin references
- Use html-bundler-webpack-plugin instead of similar variants.
Version references
- Use html-bundler-webpack-plugin and the version number in prose. Do not prefix the version number with v.
- OK: html-bundler-webpack-plugin 14.x, html-bundler-webpack-plugin 14.3.1
- NOT OK: html-bundler-webpack-plugin v14
For topics not addressed here, please consult the Microsoft Writing Style Guide.