Files
PowerToys/doc/devdocs-website

Dev Docs Website

This folder hosts the docmd project that turns the PowerToys developer documentation in doc/devdocs into a static website.

Generated site

The site/ folder is the docmd build output. It is not committed to the repository — it is git-ignored and rebuilt on demand. You only need it locally when previewing your changes (see below).

Publishing is handled by the Publish Dev Docs Website GitHub Action, which runs whenever files under doc/devdocs (or this folder) change on the main branch — it can also be triggered manually from the Actions tab. The action builds the site and deploys it straight to GitHub Pages as an artifact, so nothing is written back to the repository.

Note

The action requires GitHub Pages to be enabled with Source: GitHub Actions under the repository Settings → Pages.

Editing the docs

To change the documentation, edit the Markdown files under doc/devdocs. The remaining files in this folder are maintained by hand and are safe to edit:

  • docmd.config.json — docmd configuration (title, source, output, plugins)
  • package.json — pins the docmd version used to build the site
  • docmd-plugins/ — local build-time docmd plugins

Tip

Link to repository files with repo-root-relative paths such as /src/modules/.../Foo.cpp. VS Code resolves these against the workspace root (so they open the local file), and the bundled github-source-links plugin rewrites them to https://github.com/microsoft/PowerToys/blob/main/... on the published site.

Building locally

Requires Node.js.

npm install      # install dependencies (first time only)
npm run dev      # start a local preview server at http://localhost:3000
npm run build    # generate the static site into ./site