-
-
Notifications
You must be signed in to change notification settings - Fork 35.4k
doc: add styleguide #41025
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
doc: add styleguide #41025
Changes from 1 commit
2079c84
f5aee2a
b14be6a
90df835
42483d7
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
Signed-off-by: Tierney Cyren <hello@bnb.im>
- Loading branch information
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -8,38 +8,23 @@ formatting. You do not need to learn the entire style guide before contributing | |||||||||||||||
| to documentation. Someone can always edit your material later to conform with | ||||||||||||||||
| this guide. | ||||||||||||||||
|
|
||||||||||||||||
| * Documentation is in markdown files with names formatted as | ||||||||||||||||
| `lowercase-with-dashes.md`. | ||||||||||||||||
| * Use an underscore in the filename only if the underscore is part of the | ||||||||||||||||
| topic name (e.g., `child_process`). | ||||||||||||||||
| * Some files, such as top-level markdown files, are exceptions. | ||||||||||||||||
| * Documents should be word-wrapped at 80 characters. | ||||||||||||||||
| * `.editorconfig` describes the preferred formatting. | ||||||||||||||||
| * A [plugin][] is available for some editors to apply these rules. | ||||||||||||||||
| * Check changes to documentation with `make test-doc -j` or `vcbuild test-doc`. | ||||||||||||||||
| * [Use US spelling][]. | ||||||||||||||||
| * [Use serial commas][]. | ||||||||||||||||
| * Avoid first-person pronouns (_I_, _we_). | ||||||||||||||||
| * Exception: _we recommend foo_ is preferable to _foo is recommended_. | ||||||||||||||||
| * Use gender-neutral pronouns and gender-neutral plural nouns. | ||||||||||||||||
| * OK: _they_, _their_, _them_, _folks_, _people_, _developers_ | ||||||||||||||||
| * NOT OK: _his_, _hers_, _him_, _her_, _guys_, _dudes_ | ||||||||||||||||
| * When combining wrapping elements (parentheses and quotes), place terminal | ||||||||||||||||
| punctuation: | ||||||||||||||||
| * Inside the wrapping element if the wrapping element contains a complete | ||||||||||||||||
| clause. | ||||||||||||||||
| * Outside of the wrapping element if the wrapping element contains only a | ||||||||||||||||
| fragment of a clause. | ||||||||||||||||
| * Documents must start with a level-one heading. | ||||||||||||||||
| ## Formatting and Structure | ||||||||||||||||
|
|
||||||||||||||||
| ### Headings | ||||||||||||||||
|
|
||||||||||||||||
| * Each page must have a single `#`-level title at the top. | ||||||||||||||||
| * Chapters in the same page must have `##`-level headings. | ||||||||||||||||
| * Sub-chapters need to increase the number of `#` in the heading according to | ||||||||||||||||
| their nesting depth. | ||||||||||||||||
| * The page's title must follow [APA title case][title-case]. | ||||||||||||||||
| * All chapters must follow [sentence case][sentence-style]. | ||||||||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't like the use of "chapters". No one understands it at first. It seems that only after reading through the document, you figure out that "chapters" are "headings, but not the first one". Which is a confusing use of the term, in my opinion. Let's not use words in idiosyncratic ways if we can avoid it. |
||||||||||||||||
|
|
||||||||||||||||
| ### Markdown Rules | ||||||||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
|
|
||||||||||||||||
| * Prefer affixing links (`[a link][]`) to inlining links | ||||||||||||||||
| (`[a link](http://example.com)`). | ||||||||||||||||
| * When documenting APIs, update the YAML comment associated with the API as | ||||||||||||||||
| appropriate. This is especially true when introducing or deprecating an API. | ||||||||||||||||
| * When documenting APIs, every function should have a usage example or | ||||||||||||||||
| link to an example that uses the function. | ||||||||||||||||
|
Trott marked this conversation as resolved.
|
||||||||||||||||
| * For code blocks: | ||||||||||||||||
| * Use [language][]-aware fences. (<code>\`\`\`js</code>) | ||||||||||||||||
|
|
||||||||||||||||
| * For the [info string][], use one of the following. | ||||||||||||||||
|
|
||||||||||||||||
| | Meaning | Info string | | ||||||||||||||||
|
|
@@ -61,57 +46,282 @@ this guide. | |||||||||||||||
| If one of your language-aware fences needs an info string that is not | ||||||||||||||||
| already on this list, you may use `text` until the grammar gets added to | ||||||||||||||||
| [`remark-preset-lint-node`][]. | ||||||||||||||||
|
|
||||||||||||||||
| * Code need not be complete. Treat code blocks as an illustration or aid to | ||||||||||||||||
| your point, not as complete running programs. If a complete running program | ||||||||||||||||
| is necessary, include it as an asset in `assets/code-examples` and link to | ||||||||||||||||
| it. | ||||||||||||||||
| * When using underscores, asterisks, and backticks, please use | ||||||||||||||||
| backslash-escaping: `\_`, `\*`, and ``\` ``. | ||||||||||||||||
| * When using underscores, asterisks, and backticks, please use | ||||||||||||||||
| backslash-escaping: `\_`, `\*`, and ``\` ``. | ||||||||||||||||
| * No nesting lists more than 2 levels (due to the markdown renderer). | ||||||||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What problem does the markdown renderer run into while displaying lists with > 2 levels? And what would you suggest as a workaround in places like Lines 3630 to 3636 in 63503a4
|
||||||||||||||||
| * For unordered lists, use asterisks instead of dashes. | ||||||||||||||||
|
|
||||||||||||||||
| ### Document Rules | ||||||||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If we were using title case capitalization for headers, then yes. But we don't. Microsoft Style Guide is to use sentence case for headers like this. |
||||||||||||||||
|
|
||||||||||||||||
| * Documentation is in markdown files with names formatted as | ||||||||||||||||
| `lowercase-with-dashes.md`. | ||||||||||||||||
| * Use an underscore in the filename only if the underscore is part of the | ||||||||||||||||
| topic name (e.g., `child_process`). | ||||||||||||||||
| * Some files, such as top-level markdown files, are exceptions. | ||||||||||||||||
| * Documents should be word-wrapped at 80 characters. | ||||||||||||||||
|
|
||||||||||||||||
| ## Language | ||||||||||||||||
|
|
||||||||||||||||
| ### Spelling, Punctuation, Naming, and Referencing Rules | ||||||||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
|
|
||||||||||||||||
| * [Be direct][]. | ||||||||||||||||
| * [Use US spelling][]. | ||||||||||||||||
| * [Use serial commas][]. | ||||||||||||||||
| * Avoid first-person pronouns (_I_, _we_). | ||||||||||||||||
| * Exception: _we recommend foo_ is preferable to _foo is recommended_. | ||||||||||||||||
| * Use gender-neutral pronouns and gender-neutral plural nouns. | ||||||||||||||||
| * OK: _they_, _their_, _them_, _folks_, _people_, _developers_ | ||||||||||||||||
| * NOT OK: _his_, _hers_, _him_, _her_, _guys_, _dudes_ | ||||||||||||||||
| * Constructors should use PascalCase. | ||||||||||||||||
| * Instances should use camelCase. | ||||||||||||||||
| * Denote methods with parentheses: `socket.end()` instead of `socket.end`. | ||||||||||||||||
| * Function arguments or object properties should use the following format: | ||||||||||||||||
| * ``* `name` {type|type2} Optional description. **Default:** `value`.`` | ||||||||||||||||
| <!--lint disable maximum-line-length remark-lint--> | ||||||||||||||||
| * For example: <code>\* `byteOffset` {integer} Index of first byte to expose. **Default:** `0`.</code> | ||||||||||||||||
| <!--lint enable maximum-line-length remark-lint--> | ||||||||||||||||
| * The `type` should refer to a Node.js type or a [JavaScript type][]. | ||||||||||||||||
| * Function returns should use the following format: | ||||||||||||||||
| * <code>\* Returns: {type|type2} Optional description.</code> | ||||||||||||||||
| * E.g. <code>\* Returns: {AsyncHook} A reference to `asyncHook`.</code> | ||||||||||||||||
| * Use official styling for capitalization in products and projects. | ||||||||||||||||
| * OK: JavaScript, Google's V8 | ||||||||||||||||
| <!--lint disable prohibited-strings remark-lint--> | ||||||||||||||||
| * NOT OK: Javascript, Google's v8 | ||||||||||||||||
| * Use _Node.js_ and not _Node_, _NodeJS_, or similar variants. | ||||||||||||||||
| <!-- lint enable prohibited-strings remark-lint--> | ||||||||||||||||
| * When referring to the executable, _`node`_ is acceptable. | ||||||||||||||||
| * [Be direct][]. | ||||||||||||||||
|
|
||||||||||||||||
| <!-- lint disable prohibited-strings remark-lint--> | ||||||||||||||||
| ## Additional Context and Rules | ||||||||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
|
|
||||||||||||||||
| * When referring to a version of Node.js in prose, use _Node.js_ and the version | ||||||||||||||||
| number. Do not prefix the version number with _v_ in prose. This is to avoid | ||||||||||||||||
| confusion about whether _v8_ refers to Node.js 8.x or the V8 JavaScript | ||||||||||||||||
| engine. | ||||||||||||||||
| <!-- lint enable prohibited-strings remark-lint--> | ||||||||||||||||
| * OK: _Node.js 14.x_, _Node.js 14.3.1_ | ||||||||||||||||
| * NOT OK: _Node.js v14_ | ||||||||||||||||
| * [Use sentence-style capitalization for headings][]. | ||||||||||||||||
| * `.editorconfig` describes the preferred formatting. | ||||||||||||||||
| * A [plugin][] is available for some editors to apply these rules. | ||||||||||||||||
| * Check changes to documentation with `make test-doc -j` or `vcbuild test-doc`. | ||||||||||||||||
| * When combining wrapping elements (parentheses and quotes), place terminal | ||||||||||||||||
| punctuation: | ||||||||||||||||
| * Inside the wrapping element if the wrapping element contains a complete | ||||||||||||||||
| clause. | ||||||||||||||||
| * Outside of the wrapping element if the wrapping element contains only a | ||||||||||||||||
| fragment of a clause. | ||||||||||||||||
| * When documenting APIs, update the YAML comment associated with the API as | ||||||||||||||||
| appropriate. This is especially true when introducing or deprecating an API. | ||||||||||||||||
| * When documenting APIs, every function should have a usage example or | ||||||||||||||||
| link to an example that uses the function. | ||||||||||||||||
|
|
||||||||||||||||
|
bnb marked this conversation as resolved.
|
||||||||||||||||
| ## API References | ||||||||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
|
|
||||||||||||||||
| The following rules only apply to the documentation of APIs. | ||||||||||||||||
|
|
||||||||||||||||
| ### Title and description | ||||||||||||||||
|
|
||||||||||||||||
| Each module's API doc must use the actual object name returned by requiring it | ||||||||||||||||
| as its title (such as `path`, `fs`, and `querystring`). | ||||||||||||||||
|
|
||||||||||||||||
| Directly under the page title, add a one-line description of the module | ||||||||||||||||
| as a markdown quote (beginning with `>`). | ||||||||||||||||
|
|
||||||||||||||||
| Using the `querystring` module as an example: | ||||||||||||||||
|
|
||||||||||||||||
| ```markdown | ||||||||||||||||
| # querystring | ||||||||||||||||
|
|
||||||||||||||||
| > Utilities for parsing and formatting URL query strings. | ||||||||||||||||
| ``` | ||||||||||||||||
|
|
||||||||||||||||
| ### Module methods and events | ||||||||||||||||
|
|
||||||||||||||||
| For modules that are not classes, their methods and events must be listed under | ||||||||||||||||
| the `## Methods` and `## Events` chapters. | ||||||||||||||||
|
|
||||||||||||||||
| Using `fs` as an example: | ||||||||||||||||
|
|
||||||||||||||||
| ```markdown | ||||||||||||||||
| # fs | ||||||||||||||||
|
|
||||||||||||||||
| ## Events | ||||||||||||||||
|
|
||||||||||||||||
| ### Event: 'close' | ||||||||||||||||
|
|
||||||||||||||||
| ## Methods | ||||||||||||||||
|
|
||||||||||||||||
| ### `fs.access(path[, mode], callback)` | ||||||||||||||||
| ``` | ||||||||||||||||
|
|
||||||||||||||||
| ### Methods and their arguments | ||||||||||||||||
|
|
||||||||||||||||
| The methods chapter must be in the following form: | ||||||||||||||||
|
|
||||||||||||||||
| ```markdown | ||||||||||||||||
| ### `objectName.methodName(required[, optional]))` | ||||||||||||||||
|
|
||||||||||||||||
| * `required` string - A parameter description. | ||||||||||||||||
| * `optional` Integer (optional) - Another parameter description. | ||||||||||||||||
|
|
||||||||||||||||
| ... | ||||||||||||||||
| ``` | ||||||||||||||||
|
|
||||||||||||||||
| #### Function signature | ||||||||||||||||
|
|
||||||||||||||||
| For modules, the `objectName` is the module's name. For classes, it must be the | ||||||||||||||||
| name of the instance of the class, and must not be the same as the module's | ||||||||||||||||
| name. | ||||||||||||||||
|
|
||||||||||||||||
| Optional arguments are notated by square brackets `[]` surrounding the optional | ||||||||||||||||
| argument as well as the comma required if this optional argument follows | ||||||||||||||||
| another argument: | ||||||||||||||||
|
|
||||||||||||||||
| ```markdown | ||||||||||||||||
| required[, optional] | ||||||||||||||||
| ``` | ||||||||||||||||
|
|
||||||||||||||||
| #### Heading level | ||||||||||||||||
|
|
||||||||||||||||
| The heading can be `###` or `####`-levels depending on whether the method | ||||||||||||||||
| belongs to a module or a class. | ||||||||||||||||
|
|
||||||||||||||||
| ### Classes | ||||||||||||||||
|
|
||||||||||||||||
| * API classes or classes that are part of modules must be listed under a | ||||||||||||||||
| `## Class: TheClassName` chapter. | ||||||||||||||||
| * One page can have multiple classes. | ||||||||||||||||
| * Constructors must be listed with `###`-level headings. | ||||||||||||||||
| * [Static Methods](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static) | ||||||||||||||||
| must be listed under a `### Static Methods` chapter. | ||||||||||||||||
| * [Instance Methods](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#Prototype_methods) | ||||||||||||||||
| must be listed under an `### Instance Methods` chapter. | ||||||||||||||||
| * All methods that have a return value must start their description with | ||||||||||||||||
| ``Returns `[TYPE]` - (Return description)`` | ||||||||||||||||
| * If the method returns an `Object`, its structure can be specified | ||||||||||||||||
| using a colon followed by a newline then an unordered list of properties in | ||||||||||||||||
| the same style as function parameters. | ||||||||||||||||
| * Instance Events must be listed under an `### Instance Events` chapter. | ||||||||||||||||
| * Instance Properties must be listed under an `### Instance Properties` chapter. | ||||||||||||||||
| * Instance Properties must start with `A [Property Type] ...` | ||||||||||||||||
|
|
||||||||||||||||
| Using the `v8` classes as an example of some of the outlined structure: | ||||||||||||||||
|
|
||||||||||||||||
| ```markdown | ||||||||||||||||
| # `v8` | ||||||||||||||||
|
|
||||||||||||||||
| ## Methods | ||||||||||||||||
|
|
||||||||||||||||
| ### `v8.cachedDataVersionTag()` | ||||||||||||||||
|
|
||||||||||||||||
| ## Class: Serializer | ||||||||||||||||
|
|
||||||||||||||||
| ### Instance Methods | ||||||||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
|
|
||||||||||||||||
| #### `serializer.writeHeader()` | ||||||||||||||||
|
|
||||||||||||||||
| ## Class: Deserializer | ||||||||||||||||
|
|
||||||||||||||||
| ### Instance Methods | ||||||||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
|
|
||||||||||||||||
| #### `deserializer.readHeader()` | ||||||||||||||||
|
|
||||||||||||||||
| ... | ||||||||||||||||
| ``` | ||||||||||||||||
|
|
||||||||||||||||
| ### Methods and their arguments | ||||||||||||||||
|
|
||||||||||||||||
| The methods chapter must be in the following form: | ||||||||||||||||
|
|
||||||||||||||||
| ```markdown | ||||||||||||||||
| ### `objectName.methodName(required[, optional]))` | ||||||||||||||||
|
|
||||||||||||||||
| * `required` string - A parameter description. | ||||||||||||||||
| * `optional` Integer (optional) - Another parameter description. | ||||||||||||||||
|
|
||||||||||||||||
| ... | ||||||||||||||||
| ``` | ||||||||||||||||
|
|
||||||||||||||||
| #### Heading level | ||||||||||||||||
|
|
||||||||||||||||
| The heading can be `###` or `####`-levels depending on whether the method | ||||||||||||||||
| belongs to a module or a class. | ||||||||||||||||
|
|
||||||||||||||||
| #### Function signature | ||||||||||||||||
|
|
||||||||||||||||
| For modules, the `objectName` is the module's name. For classes, it must be the | ||||||||||||||||
| name of the instance of the class, and must not be the same as the module's | ||||||||||||||||
| name. | ||||||||||||||||
|
|
||||||||||||||||
| Optional arguments are notated by square brackets `[]` surrounding the optional | ||||||||||||||||
| argument as well as the comma required if this optional argument follows | ||||||||||||||||
| another argument: | ||||||||||||||||
|
|
||||||||||||||||
| ```markdown | ||||||||||||||||
| required[, optional] | ||||||||||||||||
| ``` | ||||||||||||||||
|
|
||||||||||||||||
| #### Argument descriptions | ||||||||||||||||
|
|
||||||||||||||||
| More detailed information on each of the arguments is noted in an unordered list | ||||||||||||||||
| below the method. The type of argument is notated by either JavaScript | ||||||||||||||||
| primitives (e.g. `string`, `Promise`, or `Object`), a custom API structure, | ||||||||||||||||
| or the wildcard `any`. | ||||||||||||||||
|
|
||||||||||||||||
| If the argument is of type `Array`, use `[]` shorthand with the type of value | ||||||||||||||||
| inside the array (for example,`any[]` or `string[]`). | ||||||||||||||||
|
|
||||||||||||||||
| If the argument is of type `Promise`, parametrize the type with what the promise | ||||||||||||||||
| resolves to (for example, `Promise<void>` or `Promise<string>`). | ||||||||||||||||
|
|
||||||||||||||||
| If an argument can be of multiple types, separate the types with `|`. | ||||||||||||||||
|
|
||||||||||||||||
| The description for `Function` type arguments should make it clear how it may be | ||||||||||||||||
| called and list the types of the parameters that will be passed to it. | ||||||||||||||||
|
|
||||||||||||||||
| #### Platform-specific functionality | ||||||||||||||||
|
|
||||||||||||||||
| If an argument or a method is unique to certain platforms, those platforms are | ||||||||||||||||
| denoted using a space-delimited italicized list following the datatype. Values | ||||||||||||||||
| can be `macOS`, `Windows` or `Linux`. | ||||||||||||||||
|
|
||||||||||||||||
| ```markdown | ||||||||||||||||
| * `path` boolean (optional) _macOS_ _Windows_ - the path to write a file to. | ||||||||||||||||
| ``` | ||||||||||||||||
|
|
||||||||||||||||
| ### Events | ||||||||||||||||
|
|
||||||||||||||||
| The events chapter must be in following form: | ||||||||||||||||
|
|
||||||||||||||||
| ```markdown | ||||||||||||||||
| #### Event: 'message' | ||||||||||||||||
|
|
||||||||||||||||
| Returns: | ||||||||||||||||
|
|
||||||||||||||||
| * `value` any - The transmitted value. | ||||||||||||||||
|
|
||||||||||||||||
| ... | ||||||||||||||||
| ``` | ||||||||||||||||
|
|
||||||||||||||||
| The heading can be `###` or `####`-levels depending on whether the event | ||||||||||||||||
| belongs to a module or a class. | ||||||||||||||||
|
|
||||||||||||||||
| The arguments of an event follow the same rules as methods. | ||||||||||||||||
|
|
||||||||||||||||
| ### Properties | ||||||||||||||||
|
|
||||||||||||||||
| The properties chapter must be in following form: | ||||||||||||||||
|
|
||||||||||||||||
| ```markdown | ||||||||||||||||
| #### `port.close()` | ||||||||||||||||
|
|
||||||||||||||||
| ... | ||||||||||||||||
| ``` | ||||||||||||||||
|
|
||||||||||||||||
| The heading can be `###` or `####`-levels depending on whether the property | ||||||||||||||||
| belongs to a module or a class. | ||||||||||||||||
|
|
||||||||||||||||
| See also API documentation structure overview in [doctools README][]. | ||||||||||||||||
| ## See Also | ||||||||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
|
|
||||||||||||||||
| For topics not covered here, refer to the [Microsoft Writing Style Guide][]. | ||||||||||||||||
| * API documentation structure overview in [doctools README][]. | ||||||||||||||||
| * [Microsoft Writing Style Guide][]. | ||||||||||||||||
|
|
||||||||||||||||
| [Be direct]: https://docs.microsoft.com/en-us/style-guide/word-choice/use-simple-words-concise-sentences | ||||||||||||||||
| [Javascript type]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types#Data_structures_and_types | ||||||||||||||||
| [Microsoft Writing Style Guide]: https://docs.microsoft.com/en-us/style-guide/welcome/ | ||||||||||||||||
| [Use US spelling]: https://docs.microsoft.com/en-us/style-guide/word-choice/use-us-spelling-avoid-non-english-words | ||||||||||||||||
| [Use sentence-style capitalization for headings]: https://docs.microsoft.com/en-us/style-guide/scannable-content/headings#formatting-headings | ||||||||||||||||
| [Use serial commas]: https://docs.microsoft.com/en-us/style-guide/punctuation/commas | ||||||||||||||||
| [`remark-preset-lint-node`]: https://github.com/nodejs/remark-preset-lint-node | ||||||||||||||||
| [doctools README]: ../tools/doc/README.md | ||||||||||||||||
| [info string]: https://github.github.com/gfm/#info-string | ||||||||||||||||
| [language]: https://github.com/highlightjs/highlight.js/blob/HEAD/SUPPORTED_LANGUAGES.md | ||||||||||||||||
| [plugin]: https://editorconfig.org/#download | ||||||||||||||||
| [sentence-style]: https://docs.microsoft.com/en-us/style-guide/scannable-content/headings#formatting-headings | ||||||||||||||||
| [title-case]: https://apastyle.apa.org/style-grammar-guidelines/capitalization/title-case | ||||||||||||||||
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we should cite APA here or anywhere else. It muddies the waters. We already have a style guide (Microsoft's) and adding others just makes things more confusing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was wondering if it makes sense to avoid mixing APA title case and Microsoft's sentence case and just stick to sentence case for all titles because that's what the Microsoft style guide suggests and most of the documentation already adheres to that. Is it a requirement of https://github.com/electron/docs-parser?