A proof of concept (PoC) wiki-style documentation site built with DocFX. It demonstrates a simple, yet feature-rich wiki experience (navigation, search, static hosting) while keeping authoring lightweight with Markdown.
The focus of this repo is to provide a reusable template so others can quickly start a wiki in their own environment and deploy it with minimal setup.
Click the green Use this template button in the top right of this page and choose create a new repository, then pick one of the following deployment options:
- Workflow:
.github/workflows/publish-site.yml
Enable GitHub Pages for the new repo created from this template:
- In the repo, go to Settings → Pages.
- Under Build and deployment, set Source to GitHub Actions.
- Deploy to GitHub Pages by pushing a change under
docs/tomainor run the workflow via Actions.
- Workflow:
.github/workflows/azure-swa-deploy.yml - Requires a repo secret named
AZURE_STATIC_WEB_APPS_API_TOKEN
Quick deploy (Codespaces recommended):
- Edit the
infra/bicep.parameters.jsonas desired. - Authenticate to Azure using
az loginand select the desired subscription - Run the deployment script:
./deploy-azure.sh- Copy the deployment token from the Azure Static Web App in the Azure Portal.
- Create a repo secret in this repository named
AZURE_STATIC_WEB_APPS_API_TOKENwith the deployment token as the value. - Uncomment
.github/workflows/azure-swa-deploy.ymland run the workflow via Actions.
or
Manual setup: see DEPLOYMENT.md.
- Create a Codespace from this repo.
- Wait for the dev container to finish provisioning.
- Start the local site server:
docfx docs/docfx.json --servePrereqs: Docker + VS Code with the “Dev Containers” extension.
- Open the repo in VS Code.
- Run “Dev Containers: Reopen in Container”.
- Serve the site:
docfx docs/docfx.json --serveIf you already have the .NET SDK installed:
dotnet tool install -g docfx
export PATH="$PATH:$HOME/.dotnet/tools"
docfx docs/docfx.json --serve- Edit pages in
docs/content/(Markdown). - Update navigation in
docs/content/toc.yml. - Don’t edit generated output in
docs/_site/(it’s produced by DocFX).
- Create a new
docs/content/<your-page>.mdwith a single# Titleat the top. - Add it to
docs/content/toc.ymlso it appears in the nav. - Link to it from another page (prefer
/content/<your-page>.md).
Generate the static site:
docfx docs/docfx.jsonOutput goes to docs/_site/.
- DocFX project: https://github.com/dotnet/docfx
- Azure Static Web Apps: https://learn.microsoft.com/azure/static-web-apps/