| title | Obsidian | |
|---|---|---|
| summary | A `mdsmith-obsidian-<version>.zip` of the plugin's five load files — the WebAssembly engine among them — attached to each GitHub release and installed by unzipping into a vault's `.obsidian/plugins/mdsmith/` folder. | |
| mechanism | push | |
| artifact | obsidian-plugin | |
| command | unzip mdsmith-obsidian-<version>.zip -d <vault>/.obsidian/plugins/mdsmith/ | |
| audience | Obsidian vaults on desktop and mobile | |
| platforms |
|
|
| registry | github.com/jeduden/mdsmith/releases | |
| credential | GITHUB_TOKEN + OIDC | |
| job | obsidian | |
| channelurl | https://github.com/jeduden/mdsmith/releases | |
| weight | 14 |
Release page: https://github.com/jeduden/mdsmith/releases
The Obsidian channel ships the plugin as a single
mdsmith-obsidian-<version>.zip attached to each GitHub
release. The zip holds the five files Obsidian loads, flat:
main.js, manifest.json, styles.css, mdsmith.wasm,
and wasm_exec.js. The engine is compiled to WebAssembly.
So one artifact runs on every platform Obsidian supports.
There is no per-platform build matrix and no native binary.
The plugin is not in the Obsidian community catalog (plan 217 Non-Goals). GitHub Releases is its only channel, so a user installs it by hand:
- Download
mdsmith-obsidian-<version>.zipfrom the release page. - Create
<vault>/.obsidian/plugins/mdsmith/. - Unzip the five files into that folder.
- In Obsidian, open Settings → Community plugins and enable mdsmith.
The user-facing mdsmith for Obsidian guide covers the same steps plus the settings and troubleshooting.
The obsidian job in release.yml builds the artifact. It
does not depend on the build matrix — there is one WASM
artifact, not a per-platform binary. The job stamps the
release version into the tracked manifests with
stamp (the plugin's
manifest.json and package.json are in the tracked set),
compiles the engine with cmd/mdsmith-wasm/build.sh, builds
the plugin with bun run build.ts --production, and packs
dist/ with package-obsidian.
That command reads the version from the stamped
manifest.json and writes mdsmith-obsidian-<version>.zip
through Go's archive/zip, so the channel needs no zip
binary. The zip stays inside the
WASM size budget.
The release job attaches that artifact to the draft. The
zip name matches the mdsmith-* glob the release job
already uses, so checksums.txt, the SLSA build-provenance
attestation, and the cosign signature cover it the same as
the raw binaries.
Auth: none of its own. The zip rides the release job's
GITHUB_TOKEN upload and OIDC signing — the same path the
other release artifacts take. The obsidian job needs no
publisher token to rotate and no release environment gate
of its own; the release job that attaches and signs the
zip stays gated as usual.