SyncDocs 0.9.0-alpha.1

This is a prerelease version of SyncDocs.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet tool install --global SyncDocs --version 0.9.0-alpha.1
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local SyncDocs --version 0.9.0-alpha.1
                    
This package contains a .NET tool you can call from the shell/command line.
#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

  1. You add HTML comment markers around sections in your README that should be synced.
  2. You add matching markers in your docs target files.
  3. Run syncdocs sync to copy content from README to docs, or syncdocs check in 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 -- valid
  • getting-started -- valid
  • step_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

  1. Edit your README.md with the latest usage instructions.
  2. Run syncdocs sync to push changes to docs/.
  3. Commit both files.
  4. In CI, run syncdocs check to ensure nobody forgets step 2.

License

MIT

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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