Skip to content

Commit 4bba97c

Browse files
runceelkaota_microsoftCopilot
authored
Remove VuePress; publish docs as plain Markdown (#561)
Drop the VuePress toolchain and doc-site publish pipeline so docs are plain Markdown browsable on GitHub. - Delete VuePress config, npm tooling, deploy scripts, and docs .gitignore - Delete deploy-document.yml GitHub Actions workflow (built/pushed gh-pages) - Add docs/README.md index and a Documentation contents ToC to EN/JA READMEs - Update AGENTS.md, dev-docs, and development-workflow skill to describe plain Markdown docs - Add ADR 0005 recording the decision Co-authored-by: Kazuki Ota <117221407+kaota_microsoft@users.noreply.github.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
1 parent d3471c7 commit 4bba97c

15 files changed

Lines changed: 148 additions & 14012 deletions

File tree

.agents/skills/development-workflow/SKILL.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: development-workflow
3-
description: ReactiveProperty repository development policy. Use whenever you implement a feature or bug fix, change library or test code under Source/ or Test/, make a design or architecture decision, or write documentation in this repo. Enforces strict Test-Driven Development (Red -> Green -> Refactor) with MSTest and `dotnet test ReactiveProperty.slnx`, requires recording design decisions as ADRs under dev-docs/adr/, and defines the documentation split: docs/ is user-facing (published via VuePress) while dev-docs/ holds implementer/contributor documentation. Triggers include "implement", "add feature", "fix bug", "TDD", "red green refactor", "design decision", "architecture", "ADR", "where do docs go", and "contributor docs".
3+
description: ReactiveProperty repository development policy. Use whenever you implement a feature or bug fix, change library or test code under Source/ or Test/, make a design or architecture decision, or write documentation in this repo. Enforces strict Test-Driven Development (Red -> Green -> Refactor) with MSTest and `dotnet test ReactiveProperty.slnx`, requires recording design decisions as ADRs under dev-docs/adr/, and defines the documentation split: docs/ is user-facing (plain Markdown browsed on GitHub) while dev-docs/ holds implementer/contributor documentation. Triggers include "implement", "add feature", "fix bug", "TDD", "red green refactor", "design decision", "architecture", "ADR", "where do docs go", and "contributor docs".
44
---
55
# Development Workflow (ReactiveProperty)
66

@@ -84,9 +84,9 @@ Trivial, reversible choices (local refactors, naming) do **not** need an ADR.
8484

8585
## 3. Documentation split: `docs/` vs `dev-docs/`
8686

87-
- **`docs/` = user-facing** documentation, published as the VuePress site
88-
(`npm run docs:build`). Write here for library *consumers*: getting-started, API usage,
89-
samples. Available in English and Japanese (`*-ja`).
87+
- **`docs/` = user-facing** documentation, plain Markdown browsed directly on GitHub (no site
88+
generator). Write here for library *consumers*: getting-started, API usage,
89+
samples. Available in English and Japanese (`*-ja`). Keep links relative (`.md`).
9090
- **`dev-docs/` = implementer/contributor-facing** documentation, **not** published.
9191
Write here for people working *on* ReactiveProperty: architecture notes, internal design,
9292
contributor workflow, and ADRs (`dev-docs/adr/`).

.github/workflows/deploy-document.yml

Lines changed: 0 additions & 33 deletions
This file was deleted.

AGENTS.md

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Test/ Unit tests (MSTest)
3737
ReactiveProperty.WPF.ManualTests/ Manual/interactive WPF test app
3838
Samples/ Example apps (WPF, Blazor, MAUI-style, Prism, etc.)
3939
Benchmark/ BenchmarkDotNet projects (separate solution)
40-
docs/ VuePress documentation site (user-facing, published)
40+
docs/ Plain-Markdown documentation (user-facing; browse on GitHub)
4141
dev-docs/ Implementer/contributor docs + ADRs (not published)
4242
skills/ Published agent skills for ReactiveProperty *users* (consumers)
4343
.agents/skills/ Agent skills for working *on* this repo (contributors)
@@ -116,13 +116,9 @@ See the **`development-workflow`** skill (`.agents/skills/development-workflow/S
116116
- Add tests under the matching `Test/*` project; mirror the namespace `ReactiveProperty.Tests`.
117117

118118
## Documentation
119-
- **`docs/` = user-facing**, built with **VuePress** (English + Japanese `*-ja` variants):
120-
```pwsh
121-
cd docs
122-
npm install
123-
npm run docs:dev # local dev server
124-
npm run docs:build # static build
125-
```
119+
- **`docs/` = user-facing**, plain Markdown (English + Japanese `*-ja` variants). There is no
120+
site generator — just browse the folder on GitHub. Keep links relative (`.md`) so they work
121+
both on GitHub and in local editors.
126122
- **`dev-docs/` = implementer/contributor-facing** (not published): architecture notes,
127123
contributor workflow, and ADRs in `dev-docs/adr/`. See `dev-docs/README.md`.
128124

dev-docs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ This folder holds documentation for people working **on** ReactiveProperty
55

66
| Folder | Audience | Published? |
77
|--------|----------|------------|
8-
| [`../docs/`](../docs) | Library **users** (consumers) | Yes — built and published with VuePress |
8+
| [`../docs/`](../docs) | Library **users** (consumers) | Plain Markdown, browsable on GitHub |
99
| `dev-docs/` (this folder) | **Implementers / contributors** | No |
1010

1111
Put "how does a consumer use this feature?" content in `docs/`. Put "how/why is this
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# 0005. Remove VuePress; publish docs as plain Markdown on GitHub
2+
3+
- **Status:** Accepted
4+
- **Date:** 2026-07-05
5+
- **Deciders:** ReactiveProperty maintainers
6+
7+
## Context
8+
9+
The user-facing documentation under `docs/` was built with [VuePress](https://vuepress.vuejs.org/)
10+
1.5 and published to GitHub Pages (the `gh-pages` branch) by the
11+
`.github/workflows/deploy-document.yml` workflow. This added a Node.js/npm toolchain
12+
(`docs/package.json`, `docs/package-lock.json`), VuePress-specific configuration
13+
(`docs/docs/.vuepress/config.js`), deploy scripts (`docs/deploy.ps1`, `docs/deploy.sh`), and a
14+
CI job whose only purpose was to build and push the static site.
15+
16+
The documentation content is already ordinary Markdown with relative `.md` links and relative
17+
image paths, so it renders correctly when browsed directly on GitHub. The VuePress layer mainly
18+
provided a navigation sidebar and theming — nice-to-have, but not essential for a project that is
19+
in maintenance/active-support mode and whose author recommends the successor library
20+
[R3](https://github.com/Cysharp/R3) for new apps. Maintaining the Node toolchain and a bespoke
21+
publish pipeline is ongoing overhead disproportionate to that value.
22+
23+
## Decision
24+
25+
We will remove the VuePress dependency and treat `docs/` as plain Markdown that is read by
26+
browsing the folder on GitHub.
27+
28+
Concretely:
29+
30+
1. Delete the VuePress configuration and Node tooling: `docs/docs/.vuepress/config.js`,
31+
`docs/package.json`, `docs/package-lock.json`, `docs/deploy.ps1`, `docs/deploy.sh`, and the
32+
VuePress-only `docs/.gitignore`.
33+
2. Delete the `deploy-document.yml` GitHub Actions workflow that built and pushed the site.
34+
3. Preserve navigation for GitHub readers by adding a top-level `docs/README.md` index and a
35+
"Documentation contents" table of contents to `docs/docs/README.md` and
36+
`docs/docs-ja/README.md` (mirroring the old sidebar).
37+
4. Update contributor docs (`AGENTS.md`, `dev-docs/README.md`, and the `development-workflow`
38+
skill) to describe `docs/` as plain Markdown rather than a published VuePress site.
39+
40+
Disabling GitHub Pages itself and deleting the `gh-pages` branch are repository settings that
41+
cannot be changed from repository files; they are a manual follow-up for a maintainer.
42+
43+
### Alternatives considered
44+
45+
- **Keep VuePress** — rejected: ongoing Node/npm maintenance and a bespoke publish pipeline for
46+
marginal benefit on a maintenance-mode project.
47+
- **Migrate to another static-site generator (DocFX, MkDocs, Docusaurus, VitePress)** — rejected:
48+
still introduces a toolchain and publish pipeline; the stated goal is to remove the site build
49+
entirely and rely on GitHub's Markdown rendering.
50+
51+
## Consequences
52+
53+
- No Node.js/npm toolchain or site-build step is required to work on the docs; edits are just
54+
Markdown.
55+
- The hosted documentation site (GitHub Pages) will no longer be updated and should be disabled
56+
by a maintainer; existing deep links to the old site will break. Links from the repo now point
57+
at the Markdown files in `docs/`.
58+
- Navigation is provided by README indexes rather than a generated sidebar; contributors must keep
59+
those indexes in sync when adding or renaming pages.
60+
- Documentation links must stay relative (`.md`) so they resolve both on GitHub and locally.

dev-docs/adr/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,4 @@ Trivial, easily reversible choices (local refactors, naming) do not need an ADR.
3838
| [0002](./0002-reactivetimer-fixed-period-interval.md) | ReactiveTimer uses a fixed-period ITimer; Interval changes take effect on next Start | Accepted |
3939
| [0003](./0003-reactiveproperty-r3-migration-bridge.md) | Ship a permanent minimal `ReactiveProperty.R3` migration bridge and a migration skill | Accepted |
4040
| [0004](./0004-reactiveproperty-r3-wpf-event-to-reactive.md) | Provide R3-targeting EventToReactive trigger actions in a new ReactiveProperty.R3.WPF package | Accepted |
41+
| [0005](./0005-remove-vuepress-plain-markdown-docs.md) | Remove VuePress; publish docs as plain Markdown on GitHub | Accepted |

docs/.gitignore

Lines changed: 0 additions & 2 deletions
This file was deleted.

docs/README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# ReactiveProperty documentation
2+
3+
These docs are plain Markdown — just browse them here on GitHub.
4+
5+
- **English:** [`docs/`](./docs/README.md)
6+
- **日本語:** [`docs-ja/`](./docs-ja/README.md)
7+
8+
> For brand-new apps the author recommends the successor library
9+
> [R3](https://github.com/Cysharp/R3). See the
10+
> [Migrate to R3](./docs/advanced/r3-migration.md) guide.

docs/deploy.ps1

Lines changed: 0 additions & 10 deletions
This file was deleted.

docs/deploy.sh

Lines changed: 0 additions & 14 deletions
This file was deleted.

0 commit comments

Comments
 (0)