What's new
0.3.7 · 2026-10-14
- Text colour and highlight. Format > Text Colour (Default, Red, Orange, Green, Blue, Purple, Grey) and Format > Highlight (None, Yellow
Shift+Cmd/Ctrl+H, Green, Pink, Blue, Orange; None onAlt+Shift+Cmd/Ctrl+H), and two toolbar buttons beside Italic with the same swatches. Select the words first; with nothing selected, what is typed next takes the colour. Markdown has no colour, so the file carries the inline HTML every Markdown reader shows:<span style="color: …">for a text colour and<mark>for a highlight (yellow is the plain tag; other highlight colours add a background-color style). A new colour replaces the old one instead of nesting; a coloured word can also be highlighted. Works in Rich Text and Markdown Source (where the heading, list and quote marks stay outside the tags), survives switching between them, and shows in Print, Print Preview and Export as PDF.
0.3.6 · 2026-10-12
Two builds were made as 0.3.5, both named “oak”: one from commit a7275ab and one from commit 5ac37b9. Run side by side on twenty of the user’s PDFs, each had faults the other did not. This version starts from a7275ab and takes the two things 5ac37b9 did better.
- Scanned PDFs set in columns are read once, in pieces split at the blank strip between the columns (from 5ac37b9), instead of being read whole and then again column by column. The second reading in 0.3.5 (a7275ab) tripled the time on a dense scanned form (12 s to 35 s) and was then thrown away; a two-column page now takes less time than before, not twice as long.
- The same piecewise reading is used for a form’s template picture, which reads its small print better: on the 1099-K the two ticked boxes now come out as “☑ Payment settlement entity (PSE)” and “☑ Third party network” (the first was garbled), and “payment card/” has its space.
- “(a) …, or (b) …” inside a sentence is no longer taken for a list on scanned pages either. The 0.3.5 fix only worked on text PDFs.
- On forms drawn as a picture: the captions of neighbouring check boxes are kept apart; a mark smaller than half an inch (an empty check box the engine did not take for text) is not saved as a picture.
- Not taken from 5ac37b9, because it was wrong there: it kept the 0.3.4 table change that breaks a receipt’s signature block and a sales dashboard, took a presentation slide for a form, dropped a scanned page of a notice, and left a bill of lading’s goods as loose lines.
- A build now takes its name from one place (
anymark.buildTagin package.json) for both the installer file names and the About box, so a build made by one session can no longer be labelled as the other’s.
0.3.5 · 2026-10-12
Follows elm’s review of 0.3.4.
- Fixed a regression in 0.3.4: the change to the table finder for PDFs without rules (meant to keep a name and address out of a column of amounts) broke tables in other documents (signature blocks, dashboards). It is removed; the form handling below makes it unnecessary.
- Forms drawn as a picture with the entries typed over it are now recognised on evidence instead of by how little text they have. 0.3.4 missed a bill of lading (too much text) and spent seconds reading the photos behind presentation slides. A page is now read as such a form only if its text is visible (not the hidden layer of a searchable scan), the picture looks like a printed form, the reading adds a good deal of text, and most entries pair with a label. Anything else is converted exactly as before.
- On those forms: the printed text of the template is kept (title, notes, fields left empty, empty check boxes) in reading order; entries under a row of column heads become a table with those heads (the goods of a bill of lading); a short caption printed under a fill-in line (“MO.”, “DAY”) labels the entry above it; an entry on a fill-in line takes the label on its line.
- A scanned page with a few words of real text on it (a filing stamp, a page mark) is read as a scan; it used to come out as a picture and its text was lost.
- Scanned PDFs set in columns: when the first reading shows columns, each column is read again on its own, and the result kept if the engine is surer of it. Lines of one column are no longer cut in two by the lines of the other (“Box 1. Sh th t t of t”).
- Scanned PDFs: the wall of a table is no longer carried on across a gap by letter stems in line with it, which erased those letters (“load ng”); the side of a small box between two crossings is no longer trimmed. A row of large letters the engine passed over (a form’s title) is read as a line of text instead of being left as pictures of words.
- “(a) …, or (b) …” inside a sentence is no longer taken for a list; a placeholder such as “(XX-XXXXXXX)” is no longer a heading.
- Editor: a table without a header that has merged cells keeps its shape when edited; the first row used to be turned into a header and its row spans lost.
0.3.4 · 2026-10-12
- PDF forms exported as a picture with the entries typed over it (reporting tools such as MicroStrategy write a 1099-K this way: the blank template is one picture, the values are the only text). The values used to come out as an unlabelled column of numbers mixed with the name and address. The template is now read with OCR for its printed labels and box rules, each value is paired with the label of the box it sits in, and the page is written as “Label: value” lines. Boxes of amounts set in columns at a steady pitch (the months 5a–5l) become one table in calendar order; sub-box numbers the engine misread (“Se March”, “5] October”) are repaired from the ones read correctly; ticked check boxes become “☑ Caption”. The template picture is left out once it has been read.
- PDF tables without rules: a line of plain text standing beside a column of amounts, clear of its columns (a name and address next to the monthly figures), is no longer pulled into the table.
0.3.3 · 2026-10-12
- Find and Replace. Edit > Find… (
Cmd/Ctrl+F) now highlights every match as you type without touching the document or taking the keyboard out of the search field, and finds text that runs across bold or italic. Find and Replace… (Alt+Cmd+Fon the Mac,Ctrl+Hon Windows) adds Replace and Replace All, which can be undone; a Match case button; Find Next/Previous onCmd/Ctrl+G,Shift+Cmd/Ctrl+G,F3,Shift+F3. Works in Rich Text and Markdown Source. (0.3.2 used the browser’s page search, which counted the search field’s own text and took the focus.) - Menus: commands that need a document (Save, Print, Find, Format…) are switched off on the welcome screen instead of silently doing nothing. New Format menu (Bold, Italic, Strikethrough, Link, Heading 1–3, lists) and File > Export as PDF….
- PDF tables: a column header set away from its values (centred over a wide column of short numbers) stays over them; it used to be pushed into the neighbouring column (“| Code Quantity | |”). A sparse column that only some rows use (credit beside debit) keeps its own place.
- Scanned PDFs: the border of a box is no longer traced on through letter stems that stand in line with it, which erased them (“Payments” became “Paymen:s”).
- Scanned PDFs: words where i and l stand together get a second reading from the uncleaned scan, taken only when two readings agree (“instaliment” is now “installment”). Pictures are cut with a small margin.
- A single label under the last rule of a ruled block, set like the labels above it, is the block’s last row (“Page 3 of 4” in a notice’s header box).
- Fillable PDF forms: what was typed, ticked or chosen is now converted (it was dropped entirely). Answers are placed beside their printed labels; a check box that starts a line becomes a task-list item; a note says how many fields were read.
- Centred and right-aligned paragraphs of a PDF keep their alignment, as
<div align="…">blocks that the editor shows aligned, saves unchanged and prints; in Rich Text they are edited from Markdown Source. - Working rules: oak owns code and builds again, elm reviews; installers are tagged
oakby default.
0.3.2 · 2026-10-12
- Find in document: Edit > Find… (
Cmd+F/Ctrl+F) opens a find bar with a live match count; Enter /Cmd+Gand Shift+Enter /Shift+Cmd+Gstep through the matches (F3 / Shift+F3 on Windows), Esc closes it and leaves the cursor on the match. Works in Rich Text and Markdown Source; on the Mac, Use Selection for Find (Cmd+E) is there too. Print (Cmd+P/Ctrl+P) and Print Preview were already in the File menu; Windows gets Close Window (Ctrl+W). - PDF headings: the body text size is no longer taken from a dense block of small print (a letter’s legal footer), which turned every line of the letter into a heading. Font sizes within a few percent of each other are one heading level, and a document gets at most four levels below its title; bills and notices no longer sprawl over six.
- PDF label columns: the labels of a letter or form all get the same heading level whatever their size, headings set inside their sections go a level down, and a label that introduces a table becomes the table’s caption.
- Working rules: the elm session owns code and builds; oak reviews. Installers are tagged
elmby default.
0.3.1 · 2026-10-12
- PDF tables keep their format. Column alignment (left, right, centred) is read from where the text sits and written into the Markdown table; cells that are bold in the original (row labels, totals) stay bold; a list of labelled values (“Notice date | 2 December”) is no longer given a made-up header row.
- New table kind: tables ruled with horizontal lines only, the usual style in letters, statements and typeset reports. Rows come from the rules, so a cell can run over several lines; a caption above the column heads stays a heading; a total below the last rule is part of the table. Label-and-paragraph layouts ruled the same way are left as text.
- Scanned PDFs: ruling lines that are thin, grey or slightly slanted are now found and lifted out before OCR without cutting the letters that touch them. Small print next to a rule (column heads, totals) reads correctly, and the rules are used to rebuild the table.
- Scanned PDFs: words the OCR engine is unsure of get a second, closer look; words that used to be dropped or misread (“charge(s).”, “law”) are recovered. Bold text is recognised at lower scan resolutions.
- Editor and print: right-aligned and centred columns are shown that way, header cells follow their column, and the empty header row of a header-less table is hidden. Tables with merged cells keep their alignment through editing.
- A label in a side column that runs over several short lines stays one heading; a bold “Page 3 of 4” is no longer a heading.
0.3.0 · 2026-10-12
- Scanned PDFs: the picture of each page is turned the right way up from the PDF’s own image matrix before OCR. Scanners often store the rows bottom-up or sideways and rely on that matrix; the text was read mirrored and came out as gibberish.
- Scanned PDFs: a sheet that went through the scanner upside down or sideways is detected from the poor reading and turned before the text is read; a warning says so.
- OCR clean-up before reading: faint show-through from the back of the sheet is removed, ruling lines are lifted out (and used for table detection), low-resolution scans are upscaled towards 300 dpi. Small print such as table headers and totals now reads.
- Scanned pages keep their pictures: logos, barcodes, stamps, signatures and diagrams are cut out of the scan and saved like the pictures of a digital document. Words the engine skipped are read again on their own instead of being dropped.
- Scanned pages keep bold text (from stroke width), list bullets, and the spaces between words; ruled and unruled tables on scans come out as tables.
- Steadier text sizes on scanned pages, so body text no longer turns into headings at random.
- Page layout (all PDFs): a narrow column of labels beside the running text, as in letters, notices, forms and CVs, is read label by label instead of being merged into the lines beside it.
0.2.3 · 2026-10-11
- Help menu shows the version number and release date, and has an About dialog.
- Help > Check for Updates… added as a placeholder; it reports the installed version and will be connected to an update service later.
0.2.2 · 2026-10-10
- Build: unpacked app folders are unregistered from macOS and deleted after every build, so only one runnable copy of Anymark exists (the installed one).
- Repository:
CLAUDE.mdrecords the working rules for the two assistant sessions (oak builds, elm recommends). - README: corrected first-launch instructions for unsigned builds on current macOS.
0.2.1 · 2026-10-09
- Fixed: PDFs failed to open on Windows (“Invalid factory url … must include trailing slash”).
0.2.0 · 2026-10-09
- Batch folder conversion (window and
--batchcommand line). - Table fidelity: merged cells, number and date formats, several tables per sheet, hidden data skipped.
- PDF layout analysis: columns, paragraphs, headings, lists, links, ruled and unruled tables, pictures, header/footer removal.
- OCR for scanned PDFs (offline; extra languages downloadable).
- Built-in parsers for
.doc,.ppt,.rtf; OpenDocument.odt/.odp; Apple iWork best effort. - Pictures saved to a
name_assetsfolder beside the Markdown. - Toolbar buttons moved into the menus; status bar with word count.
0.1.0 · 2026-10-07
- First version: open Word, Excel, PowerPoint, PDF, HTML, JSON and text as Markdown; edit, save, print, print preview.