Paclet Resource

WolframInstitute/PacletPage

Build and publish a paclet's documentation, from markdown to a published paclet with its documentation site

Contributed By: Nikolay Murzin, Claude (Anthropic)

BuildPacletDocumentation converts a paclet's markdown into documentation notebooks, DeployPacletResource deploys its resource, SubmitPacletResource submits it to the Paclet Repository, and PublishPacletPage does all of it and publishes the site. PacletPageCatalog reads the published pages of a paclet, PacletPageFiles makes the site's pages, DeployPacletPage publishes them with a feedback form, PacletPageFeedback and SetPacletPageFeedbackStatus triage the feedback, and CheckPacletPage and SetPacletPagePermissions keep the site working.

Installation Instructions

To install this paclet in your Wolfram Language environment, evaluate this code:
PacletInstall[ResourceObject["https://wolfr.am/1HX7N20QY"]]


To load the code after installation, evaluate this code:
Needs["WolframInstitute`PacletPage`"]

Details

PacletPage takes a paclet from the markdown in its docs/ folder to a published paclet with a documentation site: the documentation notebooks, the paclet resource deployed to the cloud, the submission to the Paclet Repository, and the site, each step without a front end.
The site frames the published pages: a filter over every title and keyword, the definition notebook, the guide tree and the tutorials in one rail, the symbols in another, and each page rendered from the notebook behind it, with the links between pages kept inside the site.
Every page has a feedback panel and a toggle to its source. What readers send is stored in a Databin of the publishing account, and the team reads it on a page of its own, open to the account, named readers and whole email domains.
A site frames pages published either on the Paclet Repository or as a paclet resource deployed to a cloud account.
A large paclet builds on parallel kernels and processes, and only what changed: each page's notebook is cached under a key of everything it depends on, in a directory a build server can keep between runs.
A release is checked before anything is published: the archive must hold every documentation page and load alone in a fresh kernel, a version already published from another commit is refused, and nothing outside the paclet is packed.
Publishing uses the connected Wolfram Cloud account: the resource, the site, its feedback form and the team's pages are cloud objects, and the feedback is kept in a Databin.

Paclet Guide