Diffing text and moving tables around, without pasting either into a server

A lot of small developer chores are really "move this data from one shape to another": a spreadsheet range that needs to become a Markdown table, a CSV export that needs a TypeScript type, two versions of a config file you need to compare. The data is often the kind you should not paste into a random website — customer lists, internal configs. These three pages on Omikuji Tools do those jobs in the browser.

Text Diff Checker

Paste the original on the left and the modified text on the right, or drop a file onto either side. Additions are green, removals red, and you choose the granularity: character, word or line. You can tell it to ignore spaces, newlines or indentation, which is what you want when someone re-indented a file and you only care about the real changes.

The button I reach for most is Auto-format. Comparing a minified JSON response with a pretty-printed one normally gives you a single enormous "everything changed" line. Auto-format parses both sides as JSON and rewrites them with two-space indentation, and then the diff shows only the values that differ. When you need to hand the result to someone, Export report saves the diff as an HTML file (Ctrl / Cmd + S does the same).

Note that the two texts are kept in your browser's local storage between visits, so clear them on a shared machine.

Table Converter

Paste cells straight from Excel or Google Sheets, or drop a CSV or TSV file; the format is detected for you, including Markdown, HTML table and JSON input. Output is TSV, CSV, Markdown, HTML or JSON.

The part I built it for is the third tab: type-inferred code. Each column is scanned and guessed as number, boolean, date or string, and the page writes a TypeScript interface, a Zod schema or a SQL CREATE TABLE. The inference is deliberately simple and easy to predict: a column becomes a number only when more than 70% of its non-empty cells look numeric (thousands separators like 1,234 count), decimals become DECIMAL(12,2), dates with a time become TIMESTAMP, and string columns get a VARCHAR sized to the next of 16, 32, 64, 128 or 255 above the longest value. It is a starting point to edit, not a schema you should ship blind.

Markdown Table Generator

For the most common case — spreadsheet in, README table out — this one is quicker. Paste TSV or CSV and you get a Markdown table with per-column alignment chosen automatically: numbers right, short symbols centred, text left. You can force everything left, centre or right, transpose rows and columns, or output an ASCII table for plain-text files.

Two gotchas it handles. A | inside a cell would break the table, so it is escaped as \|, and a line break inside a cell becomes <br>. And the "pretty print" option pads columns so the raw Markdown lines up in a monospace editor, counting CJK characters and emoji as double width, so a table with Japanese text does not come out ragged.

👉 Text Diff Checker — character, word or line diffs, JSON auto-format. 👉 Table Converter — CSV/TSV/Markdown/HTML/JSON, plus TypeScript, Zod and SQL. 👉 Markdown Table Generator — spreadsheet cells to an aligned Markdown table.

Comments

Popular posts from this blog

Amidakuji (Ghost Leg) maker: a fair random pairing tool for up to 200 people, entirely in the browser

omikuji.dev: free browser-based tools, puzzle games and reference sites made in Japan

Hakarasenai: a Firefox extension that only stops Google Analytics from measuring you