Browser
writer.min.js for editor + core, writer-core.min.js for render-only pages. Script tag or Writer.mount().
Download · v0.2.0
The v0.2.0 ZIP contains everything you need to start: browser bundles, render-only core, examples and the PHP/Python SDKs. No framework, no build step, MIT licensed.
Contents
The browser bundles are self-contained. The SDK sources are included so the same document can produce HTML, IR, JSON, text or Markdown from JS, PHP and Python.
writer.min.js for editor + core, writer-core.min.js for render-only pages. Script tag or Writer.mount().
Source, composer.json and README. WriterRender($md)->asHTML() works server-side, with Dompdf once you install it.
Package source, pyproject.toml and README. WriterRender(md).as_html(), with ReportLab for PDF.
New in v0.2.0
Version 0.2.0 makes Writer safe for untrusted Markdown and ready for server-side use. The full list is in the changelog.
Raw HTML is sanitised at the IR boundary, and the same IR feeds HTML and PDF. URLs are checked against one shared allowlist.
sanitised IR @writer/pdf produces real bytes with embedded fonts for Greek and Cyrillic.
React, Vue and Svelte wrappers, server examples for Express, Laravel and Django, and 32 conformance fixtures.
32 fixturesQuickstart
Open examples/editor.html or examples/render.html for ready-made pages. The snippets below work with the files in the ZIP.
<link rel="stylesheet" href="./browser/writer.css">
<script src="./browser/writer.min.js"></script>
<div id="app"></div>
<script>
const editor = Writer.mount('#app', {
value: '# Hello from Writer',
theme: 'serif-editorial',
});
editor.addEventListener('wr-change', () => {
console.log(editor.getMarkdown());
});
</script>
<script src="./browser/writer-core.min.js"></script>
<script>
const html = Writer.WriterRender(
'# Hello\n\n**World**'
).asHTML();
document.querySelector('#output').innerHTML = html;
</script>
Files
If you do not need the whole ZIP, download just the bundle you need.
| File | Size | Use | Download |
|---|---|---|---|
writer.min.js | 436 KB | Full editor + core. | Download |
writer.js | 887 KB | Unminified, for debugging. | Download |
writer-core.min.js | 321 KB | Render-only, without the editor UI. | Download |
writer.css | 1.4 KB | Optional page-level tokens. | Download |
manifest.json | 1.1 KB | Version and hashes of the bundles. | Download |
The gzip sizes are ≈130 KB for the full bundle and ≈100 KB for the core. The ZIP contains both.
Integrity
SHA-256 for the ZIP and the main browser files. The hashes are also in manifest.json.
bd6932961df52c5ad78602a03f3cf5a2146e27902a15dbc1cb7e4d36d64fa819 writer-0.2.0.zip
9cd924a0df8a1998a17feb73351b274157d250acccfc89dd0a8475db25f7e56a writer.min.js
29e166e3f83e3e232003209a401c65924d1f6b9277b0dbbd8c9eaa8179cd32d6 writer-core.min.js
1807b7cb14b136d1de1da2c714a874f55ef0cea5f8c45d37fc5f2f78d9c39556 writer.js
9c632229a27b07c47e18a719fdf6d19afe48ed7380e169f29c5a9e00b0178c70 writer.css
Ready to embed
The editor, IR and renderers are live in the demos — no installation.