Variables
Text that appears in many pages and changes now and then - a product name, the latest version, a support address - can be written once, in writedocs.json’s variables:
{
"variables": {
"productName": "Acme",
"latestVersion": "4.2.0",
"supportEmail": "[email protected]"
}
}and used in any page as [[name]]:
Welcome to [[productName]]. The latest version is [[latestVersion]] -
questions go to [[supportEmail]].Change the value in writedocs.json, and every page that uses it changes.
Rules
- Names are made of letters, digits,
_,-and., and are case-sensitive:[[productName]]and[[productname]]are different variables. - Values are plain text.
- A
[[name]]with no variable of that name stays as written, so a typo is easy to spot on the page. - In code,
[[name]]is never replaced - both in`inline code`and in code blocks. To show a value in code, write it out.
Variables are replaced in the page’s Markdown copy, llms-full.txt and the MCP server too, so AI tools read the same text as people do.
Where they work
Variables are replaced in the page’s text, including text inside components:
<Callout type="info">[[productName]] keeps your data for 30 days.</Callout>They aren’t replaced in a component’s props - <Card title="[[productName]]"> - or in frontmatter, like the title.
Content › Writing