Skip to main content

Yamark

Yamark formats YAML, Markdown, Markdown files with YAML front matter, and explicit embedded Markdown targets in Python and R source files. It rewrites supported regions and preserves unsupported input. Pass --verify to reparse changed YAML and reject invalid or value-changing output.

Install

Run Yamark from PyPI without installing it:

uvx yamark format config.yaml docs/

Install the command from PyPI:

uv tool install yamark

Build and install the binary from a checkout:

cargo build --bin yamark
cargo install --path .

Build a Python wheel from a checkout for local testing:

uvx maturin build --release

Usage

Format one or more files or directories in place:

yamark format config.yaml docs/

Format the current directory:

yamark format

Check whether files are already formatted without writing changes:

yamark format --check docs/

Show a unified diff without writing changes:

yamark format --diff docs/

Format stdin for editor and CI integrations:

yamark format --stdin-file-path config.yaml < config.yaml

Directory traversal respects .gitignore, .ignore, and global Git ignore files by default.

Development

Run the Rust test suite with:

cargo test

Run formatting and lint checks with:

cargo fmt --check
cargo clippy --all-targets --all-features -- -D warnings

Run the external CLI test suite with:

uv run external-tests/run.py

Run the VS Code extension tests with:

cd editors/vscode
npm test

The YAML test-suite roundtrip integration test runs automatically when tests/yaml-test-suite/data exists. Populate that fixture directory with:

tools/bootstrap-yaml-test-suite-data.py --source ~/github/posit-dev/r-yaml12/tests/testthat/yaml-test-suite

Use website/reference.qmd and the public CLI tests as behavior references.

Release

Update the package versions in Cargo.toml, pyproject.toml, and editors/vscode/package.json, refresh Cargo.lock and uv.lock, then push a matching vX.Y.Z tag:

git tag v0.2.0
git push origin v0.2.0

The release workflow validates the tag, builds binary archives and Python distributions, smoke-tests each wheel, creates the GitHub release with generated release notes, and publishes the Python distributions to PyPI.

Editor Integrations

The VS Code and Positron formatter extension lives in editors/vscode/; see editors/vscode/README.md for install and local development instructions.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yamark-0.2.0.tar.gz (401.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

yamark-0.2.0-py3-none-win_amd64.whl (1.7 MB view details)

Uploaded Python 3Windows x86-64

yamark-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

yamark-0.2.0-py3-none-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

yamark-0.2.0-py3-none-macosx_10_12_x86_64.whl (1.7 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file yamark-0.2.0.tar.gz.

File metadata

  • Download URL: yamark-0.2.0.tar.gz
  • Upload date:
  • Size: 401.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for yamark-0.2.0.tar.gz
Algorithm Hash digest
SHA256 362b4b7b0c32e9c9f520a1999ebcdcc694a664a906aac1941dc41468da63d1a3
MD5 5fda7bfb53c64439ff00e9b1df96f36b
BLAKE2b-256 a16f906525ef997ce5cb24aeaa65584984e81b8d4a308d490e0d8284908e0d32

See more details on using hashes here.

Provenance

The following attestation bundles were made for yamark-0.2.0.tar.gz:

Publisher: release.yml on t-kalinowski/yamark

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yamark-0.2.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: yamark-0.2.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for yamark-0.2.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 a15b710d501ece425a160cc977003acd5f6bce24904e372a20606866f858c902
MD5 1622bc86a6846767a3ba42235b83c5e7
BLAKE2b-256 cf52f4014bd3e8e3411baf79e99b47240719e376af39af0102b0dc0dd70e897c

See more details on using hashes here.

Provenance

The following attestation bundles were made for yamark-0.2.0-py3-none-win_amd64.whl:

Publisher: release.yml on t-kalinowski/yamark

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yamark-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for yamark-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7c1bacf47ff17982d3ed8666ebf7f50b342fc7bd65264d72ea85f8bb2c070657
MD5 ba442b3915c409257e0921fac0e97ed1
BLAKE2b-256 60c03fb9be9b92e11f2e8217f204e9d9928147c843d78e498893d63c1bb89620

See more details on using hashes here.

Provenance

The following attestation bundles were made for yamark-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on t-kalinowski/yamark

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yamark-0.2.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for yamark-0.2.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 89a3cb13726d1bb634d496b295e4dffd2310a486772f4363b40cb5c0f3b51678
MD5 419d091aee573b3176bc8a63b1c755fc
BLAKE2b-256 e7fcd35acc170e0181e4ae06aef88c72bfe9ebc7bf551d4ccb4f8d74a4f86e72

See more details on using hashes here.

Provenance

The following attestation bundles were made for yamark-0.2.0-py3-none-macosx_11_0_arm64.whl:

Publisher: release.yml on t-kalinowski/yamark

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yamark-0.2.0-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for yamark-0.2.0-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3db552da244672966e8ded7c90e98d569d34cefe38177373b4ebf7f79b301ce9
MD5 d79ca7a9a1d0751b7472313f7aa8de27
BLAKE2b-256 0e8b8a7fba22588e8051b66b26c623e336c0fc2c33e7876886de7a05cc2bf384

See more details on using hashes here.

Provenance

The following attestation bundles were made for yamark-0.2.0-py3-none-macosx_10_12_x86_64.whl:

Publisher: release.yml on t-kalinowski/yamark

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.3.0

5 files

0.2.1

5 files

This release

0.2.0 This release

5 files

0.0.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page