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