|
| 1 | +--- |
| 2 | +applyTo: '**/*.md,**/*.mdx' |
| 3 | +--- |
| 4 | + |
| 5 | +# Writing and markdown instructions for documentation |
| 6 | + |
| 7 | +## Audience |
| 8 | + |
| 9 | +The primary audience for this documentation is developers and DevOps |
| 10 | +professionals who want to run and manage Model Context Protocol (MCP) servers |
| 11 | +using ToolHive. They may be new to MCP servers or have some experience with |
| 12 | +them. |
| 13 | + |
| 14 | +The documentation should be accessible to a wide range of technical users, |
| 15 | +including those who may not be familiar with the specific technologies used in |
| 16 | +ToolHive. |
| 17 | + |
| 18 | +## Language, tone, and voice |
| 19 | + |
| 20 | +- The project's official language is US English. |
| 21 | + |
| 22 | +### Tone and voice |
| 23 | + |
| 24 | +- Strive for a casual and conversational tone without becoming overly informal. |
| 25 | +- Be friendly and relatable while retaining credibility and professionalism. |
| 26 | +- Avoid slang and colloquial expressions. |
| 27 | +- Use clear, straightforward language and avoid overly complex jargon to make |
| 28 | + content accessible to a wide audience. |
| 29 | +- Use active voice instead of passive voice. |
| 30 | +- Address the reader using the second person ("you", "your"). Avoid the first |
| 31 | + person ("we", "our") and third person ("the user", "a developer"). |
| 32 | + |
| 33 | +### Capitalization |
| 34 | + |
| 35 | +- Capitalize proper nouns like names, companies, and products. Generally, don't |
| 36 | + capitalize features or generic terms. |
| 37 | +- Use sentence case in titles and headings. |
| 38 | +- Use `ALL_CAPS` to indicate placeholder text/parameters, where the reader is |
| 39 | + expected to change a value. |
| 40 | +- Expand acronyms on first use, then use the acronym in subsequent references. |
| 41 | + - Exception: MCP is used ubiquitously in this project, so it does not need to |
| 42 | + be expanded on first use. |
| 43 | + |
| 44 | +### Punctuation |
| 45 | + |
| 46 | +- Use the Oxford comma (aka serial commas) when listing items in a series. |
| 47 | +- Use one space between sentences. |
| 48 | +- Use straight double quotes and apostrophes. Replace smart quotes (“ ”) and |
| 49 | + curly apostrophes (’ ’) with straight quotes (") and straight apostrophes ('). |
| 50 | + |
| 51 | +### Links |
| 52 | + |
| 53 | +- Use descriptive link text. Besides providing clear context to the reader, this |
| 54 | + improves accessibility for screen readers. |
| 55 | +- When referencing other docs/headings by title, use sentence case so the |
| 56 | + reference matches the corresponding title or heading. |
| 57 | + |
| 58 | +### Images |
| 59 | + |
| 60 | +- Use images sparingly and only when they add value to the content. |
| 61 | +- Use images to illustrate complex concepts, provide examples, or enhance |
| 62 | + understanding. |
| 63 | +- Use screenshots to show UI elements or workflows, but ensure they are clear, |
| 64 | + relevant, and add value to the content. |
| 65 | +- Don't use images of text, code samples, or terminal output. Use actual text so |
| 66 | + readers can copy/paste and find the contents via search engines. |
| 67 | +- Add alt text to images to describe their content and purpose. This improves |
| 68 | + accessibility for users with visual impairments. |
| 69 | + |
| 70 | +### Examples |
| 71 | + |
| 72 | +- Use examples to clarify complex concepts or demonstrate how to use a feature. |
| 73 | +- Prefer practical, real-world examples over abstract or contrived ones. |
| 74 | + |
| 75 | +### Formatting |
| 76 | + |
| 77 | +- Bold: use when referring to UI elements; prefer bold over quotes. |
| 78 | +- Italics: emphasize particular words or phrases, such as when |
| 79 | + introducing/defining a term. |
| 80 | +- Underscore: do not use; reserved for links. |
| 81 | +- Use inline code formatting for short code elements, such as variable names, |
| 82 | + function names, or command-line options. |
| 83 | +- Use block code formatting for longer code snippets or examples. |
| 84 | + |
| 85 | +### Word list |
| 86 | + |
| 87 | +Common terms used in this project: |
| 88 | + |
| 89 | +- ToolHive - this project, an open source tool that helps you run and manage MCP |
| 90 | + servers easily and securely |
| 91 | +- Stacklok - the company behind ToolHive |
| 92 | +- GitHub Copilot |
| 93 | +- Model Context Protocol (MCP) |
| 94 | +- open source (not "open-source") |
| 95 | +- large language model (LLM) |
| 96 | +- Visual Studio Code ("VS Code" after first use) |
| 97 | + |
| 98 | +Check this list for consistent use within the documentation. If you find |
| 99 | +inconsistencies, update the text to match the preferred term. If you find a term |
| 100 | +that is not listed here, consider adding it to the list for future reference. |
| 101 | + |
| 102 | +## Markdown style |
| 103 | + |
| 104 | +Prettier and markdownlint are used to enforce the following Markdown style |
| 105 | +conventions. |
| 106 | + |
| 107 | +- Headings: use "ATX-style" headings |
| 108 | +- Use unique headings within a document |
| 109 | +- Unordered lists: use hyphens (`-`), not asterisks (`*`) |
| 110 | +- Bold: Use the `**` syntax for bold text, not `__` |
| 111 | +- Italics: Use the `__` syntax for italic text, not `*` |
| 112 | +- Ordered lists: use lazy numbering for long or verbose lists. |
| 113 | + - Note: this is a "soft" recommendation. It is also intended only for Markdown |
| 114 | + documents that are read through a rendering engine. If the Markdown will be |
| 115 | + consumed in raw form like a repo README file, use real numbering. |
| 116 | +- Code blocks: use fenced code blocks (` ``` ` to begin/end) and always declare |
| 117 | + the language. If the language is unknown or plain text like log output, use |
| 118 | + `text` as the language. |
| 119 | +- Add blank lines around headings, lists, and code blocks. |
| 120 | +- No trailing whitespace on lines. |
| 121 | + - Use the `\` character at the end of a line for a single-line break, not the |
| 122 | + two-space syntax which is easy to miss. Exception: |
| 123 | +- Line limit: wrap lines at 80 characters; exceptions for links, tables, |
| 124 | + headings, and code blocks |
| 125 | + |
| 126 | +### Docusaurus specifics |
| 127 | + |
| 128 | +This website is built using Docusaurus, which has some specific requirements and |
| 129 | +conventions for Markdown files: |
| 130 | + |
| 131 | +- Heading 1 is reserved for the page title, typically defined in the Markdown |
| 132 | + front matter section. Sections within a page begin with Heading 2 (`##`). |
| 133 | +- Use relative file links (with .md/.mdx extensions) when referring to other |
| 134 | + pages. |
| 135 | +- Use the .mdx extension for pages containing JSX includes. |
| 136 | +- Use the front matter section on all pages. At a minimum, set the `title` (this |
| 137 | + is rendered into the page as an H1) and a short `description`. |
| 138 | +- Use the `admonition` component for notes, tips, warnings, and other |
| 139 | + annotations. This provides a consistent look and feel across the site. |
| 140 | + - Use the `:::type` syntax to define the admonition type, such as `note`, |
| 141 | + `tip`, `info`, `warning`, or `danger`. |
| 142 | +- Place images in `static/img` using WebP, PNG, or SVG format. |
| 143 | +- Use the `ThemedImage` component to provide both light and dark mode |
| 144 | + screenshots for apps/UIs that support both. |
| 145 | +- Use the `Tabs` and `TabItem` components to create tabbed content sections. |
0 commit comments