blocky-writer is a Mozilla Firefox extension for block-based PDF
form filling.
-
Extension UI: AffineScript + React
-
Background/content scripts: AffineScript
-
Core processing: Rust compiled to WebAssembly (WASM)
-
Local storage: IndexedDB
-
src/— AffineScript sources for popup UI, background script, content script, and core modules -
public/— static extension files (manifest.json, popup HTML, icons) -
rust/pdftool_core/— Rust WASM crate for block detection and PDF operations -
scripts/— build helpers for WASM and extension bundles
The Rust PDF core is implemented and has unit tests. The browser-extension
frontend is a prototype: this checkout does not include an AffineScript compiler
configuration, JavaScript package manifest, or a reproducible extension bundle
pipeline. Therefore the previously documented deno task build, deno task dev,
and deno task test:core-fill commands are not available and the extension is
not currently release-ready.
Run the implemented native checks from the repository root:
cargo fmt --manifest-path rust/pdftool_core/Cargo.toml -- --check
cargo test --manifest-path rust/pdftool_core/Cargo.toml --locked
cargo clippy --manifest-path rust/pdftool_core/Cargo.toml --locked --all-targets -- -D warningsBuild the Rust WASM package (requires wasm-pack and the WASM Rust target):
scripts/build-wasm.shSee rust/pdftool_core/README.adoc for scope and known limitations.
-
Rust
fill_blocksnow performs AcroForm-aware writeback for text/select and button widgets, and emits structured taxonomy errors (code,message,context). -
Popup/background/content surfaces preserve taxonomy codes from the Rust WASM boundary.
-
Source files include SPDX headers targeting MPL-2.0.
See TOPOLOGY for a visual architecture map and completion dashboard.
Wondering how this works? See EXPLAINME.adoc.
blocky-writer is one component of the hyperpolymath precision document suite. It owns exactly one thing: fitting and placement into fixed-layout PDF and application-form boxes, baselines and per-character cells designed for hand spacing rather than reliable computer entry.
It deliberately does not do any of the following, and each has an owner:
-
Multi-format viewing and editing — Formatrix Docs
-
Multi-format conversion and precision coordination — DocMatrix
-
OCR / metadata extraction — Docudactyl
-
Print routing — Presswerk
The versioned composition contract — including the clause that forbids any
component from silently normalising page geometry — is
docmatrix#71. The long-form
boundary statement, with the full adjacent-project list, is
docs/ecosystem/ECOSYSTEM.adoc.
The project wiki (BerryWiki format) is at
https://github.com/hyperpolymath/blocky-writer/wiki and its source lives in
wiki/.