h.MarkupDocumentation · 1.0.0

Install Hamen Markup 1.0.0

Hamen Markup runs locally with Python 3.12 or later. The compiler and notes editor are free under the MIT license. There is no account requirement. Installation downloads Python dependencies; writing and compiling use local files.

Install the release

Create an environment using your Python 3.12+ installation:

python3 -m venv .venv

On macOS or Linux, activate it with source .venv/bin/activate. On Windows PowerShell, use .venv\Scripts\Activate.ps1; alternatively run .venv\Scripts\python.exe and .venv\Scripts\hmk.exe directly without activating.

python -m pip install https://hamen.dev/markup/releases/1.0.0/hamen_markup-1.0.0-py3-none-any.whl
hmk --version
hmk edit my-notes.hmn

Open the local address printed by hmk edit. Type in the source pane; the preview updates while you write. Save explicitly with the editor Save action. A recovered browser draft is not a saved file. If another program changes the file, the editor preserves your draft and reports a conflict.

The wheel bundles fonts, mathematics, pagination, and 3D browser libraries. Node.js is not required to use it. The editor is a local web application; this release does not include a native desktop installer or cloud synchronization.

Your first note

Save this as my-notes.hmn:

# Newton's [[second]] law

Force depends on ==mass== and **acceleration**.

:::box Remember
@Calc[F = m * a]
:::

:::aside Units
Force is measured in newtons.
:::

- [ ] Work through an example
- [x] Define each quantity
hmk check my-notes.hmn
hmk build my-notes.hmn -o output/my-notes.html
hmk serve my-notes.hmn

An HTML export needs both the .html file and its adjacent .assets directory. Keep them together when moving or publishing the document.

PDF export

Install the PDF extra and Chromium once. This requires an Internet connection and additional disk space:

python -m pip install 'hamen-markup[pdf] @ https://hamen.dev/markup/releases/1.0.0/hamen_markup-1.0.0-py3-none-any.whl'
python -m playwright install chromium
hmk build my-notes.hmn -o output/my-notes.pdf

On a minimal Linux machine, Playwright may require operating-system packages: python -m playwright install --with-deps chromium. Review that command's system-package changes before running it on a shared machine.

PDF rendering uses local bundled assets and blocks external network requests. Inspect the final PDF when using complex tables, grids, page masters, or custom fonts. See supported behavior and limits.

Chemical structures

Math, chemistry notation, and quantities work in the base installation. Rendering SMILES molecular structures requires RDKit:

python -m pip install 'hamen-markup[science] @ https://hamen.dev/markup/releases/1.0.0/hamen_markup-1.0.0-py3-none-any.whl'

RDKit and Chromium availability depend on the Python version and operating system. Python 3.12 on macOS arm64 is the release validation environment. CI configuration also exercises Python 3.12 and 3.13; a configured CI job is not evidence of a completed remote run.

Verify and upgrade

Download SHA256SUMS from the versioned release directory. Compare your downloaded wheel with shasum -a 256 filename.whl on macOS, sha256sum filename.whl on Linux, or Get-FileHash filename.whl -Algorithm SHA256 in PowerShell. The signed product release identifies the release inventory and its checksum.

Install a later version into a separate environment first, run hmk check on your notes, and compare important PDF exports before replacing your environment. Source files are plain UTF-8 text. See the compatibility policy.

Troubleshooting

Symptom Action
hmk is not found Activate the environment or use its bin/hmk / Scripts/hmk.exe directly.
Unsupported Python Install Python 3.12 or newer and recreate the environment.
HMK511 / HMK512 Install the PDF extra and Chromium in the same environment as hmk.
HMK302 Keep imports and assets inside the selected --root directory.
Preview displays an error Fix the reported source line. The editor can retain the last valid preview; CLI checking is strict.
Save conflict Download your draft or copy it elsewhere, reload the changed file, and merge the changes.
Port is occupied Choose hmk edit my-notes.hmn --port 8768.
Hamen Markup 1.0.0 · MIT license · Support