Column Editor
This app reviews a word-by-word diff between two independent transcriptions of a column (or a transcription and the author's own original) and helps you turn them into one resolved, final text.
Pick a week in the sidebar and its diff loads into two panes. The
left pane is a plain-text editor holding the raw diff
itself, using the notation [-original-]{+revised+} for
every difference between the two sources -- the same convention as
git diff --word-diff. You can type directly into it like
any text file.
The right pane is a colour-coded, read-only rendering of that same text, generated live from whatever is in the left pane. Differences are highlighted so you can act on them without reading the raw bracket notation:
Oh, right, me being a scatterbrain.scatter-brain.
Orange is the original source's wording, blue is the revised source's. Click either to select it in the left-hand textarea; ctrl+click (⌘+click on a Mac) keeps that side and deletes its counterpart, resolving the difference on the spot.
Independent transcribers sometimes flag the same spot with their own
bracketed note, like [[sic]] or [[probably meant
"tack"]]. When both sources already agree on the wording
around a note like this, there's nothing to resolve -- so instead of
a chunk, it shows up as a plain
yellow aside --
[[sic]] in the left pane renders as just
sic on the right, the double
brackets left out of view the same way a chunk's own
[-...-]/{+...+} notation is. There's no
ctrl+click for an aside (nothing to accept or reject), but it's still
flagged as worth a second look, and clicking one selects the whole
bracketed note in the textarea the same way a chunk does.
Both panes use a light markdown-style markup carried over from the
original documents: *italic*, **bold**,
***bold italic***, ~~strikethrough~~, and
HTML's own <u>underline</u> /
<sup>/<sub> tags.
This is the part that trips people up: the right-hand pane styles that markup (making bold text actually bold, italic text actually slanted) but does not strip the asterisks themselves the way a normal markdown renderer would. What you see is a middle ground between the two:
| Source text | What you see | |
|---|---|---|
| Raw diff (left pane) | This is ***important***. | — it's just text, no rendering at all |
| This app's diff view (right pane) | — | This is ***important***. |
| The Preview page | — | This is important. |
The asterisks are left in on purpose: this is a diff-review tool, not
a publisher, so you're meant to be able to confirm the exact
characters and spacing match between sources even inside a formatted
span -- a markdown renderer that quietly consumed the markers would
hide a real difference in punctuation right next to a
*. Only Preview (see below) is a
genuine render, with no markup characters left showing.
A lot of chunks aren't real edits -- they're just a line break landing where the other source has a plain space, or similar reflow noise. A bare space and a bare line break can look identical once rendered as ordinary wrapped prose, so a chunk that's nothing but whitespace on both sides marks it with a small glyph instead: · for a space, ↵ for a line break.
The whitespace: keep original / keep revised buttons in the toolbar resolve every whitespace-only difference in the current file at once, in whichever direction you pick, leaving every other kind of difference untouched.
| Control | What it does |
|---|---|
N files | Opens the raw file browser for this week -- source scans, OCR text, everything on disk. |
| Reload merge.md | Throws away edits in the left pane and reloads the original, regenerable diff -- a do-over. Doesn't touch a saved final.md until you save again. |
| Save ctrl+S | Writes the left pane's current text to this week's final.md. |
| Open diff… | Loads any local .diff/.md/.txt file into the viewer -- also works by just dragging a file onto the page. Handy for looking at a diff outside the weeks/ folder. |
| Preview | Opens a clean, publish-style reading view of the finished column -- only appears once this week has a final.md. |
The tab bar above the right pane switches it between the diff view
and that week's notes.txt (when one exists) -- the
judgment calls made while transcribing, worth reading before you
start resolving chunks.
Every week under weeks/ is listed on the left, filterable
by typing in the search box. Each week's badge tells you its state at
a glance:
| Badge | Meaning |
|---|---|
| resolved | A final.md exists and every chunk/aside in it has been addressed. |
| N unresolved | A final.md exists but still has open chunks or asides. |
| N unresolved · stale | The raw diff has been regenerated more recently than final.md was saved -- your resolved copy may be out of date. |
| N unresolved | Only the raw merge.md diff exists yet -- nothing has been resolved into a final.md. |
| no diff yet | Nothing to load -- the sources for this week haven't been diffed. |
The counters at the bottom of the editor (N original, N revised, N asides) double as jump buttons -- click one to move the cursor to the next item of that kind. A ✓ resolved checkmark takes their place once nothing is left to look at.
| Keys | Action |
|---|---|
| ctrl/⌘ + click a chunk | Accept that side, drop its counterpart |
| ctrl/⌘ + S | Save to final.md |
| ctrl/⌘ + ↑ / ↓ | Jump to the previous / next week that has a diff |
| ctrl/⌘ + / | Toggle the Diff / Notes tab |