SyncDocs 0.9.0-alpha.1
See the version list below for details.
dotnet tool install --global SyncDocs --version 0.9.0-alpha.1
dotnet new tool-manifest
dotnet tool install --local SyncDocs --version 0.9.0-alpha.1
#tool dotnet:?package=SyncDocs&version=0.9.0-alpha.1&prerelease
nuke :add-package SyncDocs --version 0.9.0-alpha.1
SyncDocs
Keep your README and docs site in sync. SyncDocs copies marked sections from your README files into your docs/ folder to help prevent documentation from going stale.
How It Works
- You add HTML comment markers around sections in your README that should be synced.
- You add matching markers in your docs target files.
- Run
syncdocs syncto copy content from README to docs, orsyncdocs checkin CI to catch drift.
SyncDocs discovers sync pairs by convention -- no configuration file needed.
Installation
dotnet tool install -g SyncDocs
Usage
Sync docs from READMEs
syncdocs sync
Output:
README.md -> docs/index.md: updated
src/MyLib/README.md -> docs/MyLib/index.md: in sync
Check sync status (CI)
syncdocs check
Exits with code 0 if everything is in sync, 1 if any pair is out of sync. Use this in CI to catch forgotten doc updates.
Marking Sections
In your README (source)
Wrap the content you want to sync with a pair of HTML comment markers:
- Start marker: ``
- End marker: ``
Replace SECTION-NAME with any name for your section.
For example, to sync a section called "usage", you would put this in your README:
- Line 1: ``
- Lines 2+: Your content (any markdown)
- Last line: ``
Everything between the start and end markers will be copied to the matching target.
In your docs file (target)
Add matching markers where the synced content should appear. Note that the target start marker omits :start:
- Start marker: `` (no
:start) - End marker: ``
When you run syncdocs sync, the content between the target markers is replaced with the content from the matching source markers.
Section names
Section names can contain letters, numbers, underscores, and hyphens. They must start with a letter or underscore:
usage-- validgetting-started-- validstep_2-- valid
Multiple sections
You can have as many synced sections as you like in a single file. Content between sections is not synced, so you can have README-only content that doesn't appear in docs.
Full-file sync
If your README has no sync markers at all, SyncDocs copies the entire file content to the target. This is useful for per-project READMEs that should be mirrored exactly in docs.
Pair Discovery Convention
SyncDocs automatically finds sync pairs based on file location:
| Source | Target |
|---|---|
README.md |
docs/index.md |
src/MyLib/README.md |
docs/MyLib/index.md |
src/OtherTool/README.md |
docs/OtherTool/index.md |
Both the source and target file must exist for the pair to be discovered. If only one side of a pair exists, SyncDocs prints a helpful warning telling you which file to create:
Warning: To sync docs for MyLib, create docs/MyLib/index.md
Example Workflow
- Edit your
README.mdwith the latest usage instructions. - Run
syncdocs syncto push changes todocs/. - Commit both files.
- In CI, run
syncdocs checkto ensure nobody forgets step 2.
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.13.0-alpha.3 | 83 | 6/16/2026 |
| 0.13.0-alpha.2 | 114 | 5/26/2026 |
| 0.13.0-alpha.1 | 105 | 4/27/2026 |
| 0.12.0-alpha.3 | 82 | 4/22/2026 |
| 0.12.0-alpha.2 | 109 | 4/15/2026 |
| 0.12.0-alpha.1 | 84 | 4/13/2026 |
| 0.11.0-alpha.1 | 87 | 4/13/2026 |
| 0.10.0-alpha.3 | 99 | 4/11/2026 |
| 0.10.0-alpha.1 | 88 | 4/8/2026 |
| 0.9.0-alpha.1 | 74 | 4/8/2026 |
| 0.8.0-alpha.4 | 84 | 4/8/2026 |
| 0.8.0-alpha.3 | 67 | 4/8/2026 |
| 0.8.0-alpha.1 | 74 | 4/8/2026 |
| 0.3.0-alpha.1 | 87 | 4/7/2026 |
| 0.2.0-alpha.1 | 102 | 4/7/2026 |
| 0.1.0-alpha.1 | 115 | 4/6/2026 |