This is a pnpm monorepo. Make sure you have pnpm installed:
npm install -g pnpmpnpm installpackages/
core/ # Main markdown-magic package (published as `markdown-magic`)
block-parser/ # Comment block parser
block-replacer/ # Comment block replacer
block-transformer/ # Block transformer
# Run all tests
pnpm test
# Run tests for a specific package
cd packages/core && pnpm testpnpm typescd packages/core
node cli.js --help
node cli.js --files README.md --dryRequires Bun:
cd packages/core
# Build for current platform
bun build ./cli.js --compile --minify --outfile dist/md-magic
# Build all platforms
pnpm run bundle:allUse lerna to publish all changed packages:
lerna publishThis will:
- Bump versions for changed packages
- Publish to npm
- Create git tags and GitHub releases (e.g.,
markdown-magic@4.0.5) - Automatically trigger binary builds via GitHub Actions
Two workflows build platform binaries when releases are created:
release-binary-md-magic.yml- triggers onmarkdown-magic@*releasesrelease-binary-block-parser.yml- triggers oncomment-block-parser@*releases
These use the release: created event (not push: tags) because lerna's GITHUB_TOKEN can't trigger workflows on tag push (GitHub prevents this to avoid infinite loops).
You can also trigger a binary release manually:
gh workflow run release-binary.yml -f version=markdown-magic@4.0.5| Platform | Binary |
|---|---|
| macOS (Apple Silicon) | md-magic-darwin-arm64 |
| macOS (Intel) | md-magic-darwin-x64 |
| Linux (x64) | md-magic-linux-x64 |
| Linux (ARM64) | md-magic-linux-arm64 |
| Windows (x64) | md-magic-windows-x64.exe |