Tools for working in Plaintext

A listing of tools and links to tools that I find useful for working with JSON, MD etc.


I try to use plaintext, widely interoperable file formats such as HTML/Markdown, JSON and CSV for my everyday personal and business use.

This document collects links, tips and tools that I find useful. If you know of something you think I might like, please let me know. I prefer free/very low cost stuff :)

Formats I Use

  • HTML5+MarkDown Stored as .md files
    • For documents and notes of all sorts
  • CSV stored as .csv
    • For structured data
  • JSON as .json
    • For unstructured data
    • Preferred over csv
  • ABC stored as .abc
    • For musical notation

Tools I Didn't Develop (but wish I had)

  • Mac
    • TextWrangler -- the king of free plaintext editors. Useful features include:
      • Syntax highlighting for everything
      • Fantastic regex-enabled grep
    • QLMarkdown -- An OS X QuickLook plugin for viewing markdown previews at the hit of a spacebar. Especially nice as it runs Smartypants too. *abcm2ps -- for converting ABC into PostScript, which can then be transmuted into bad 'ol PDFs
  • iOS
    • Readdle Docs -- WebDAV and Dropbox local sync and in-built plaintext editing make Readdle Docs perfect for plaintext on the go
    • Writing Kit -- Great Markdown editing on the iPad.
      • Doesn't support WebDAV sync but does Dropbox alright
      • Excellent in-app research features (leverages DDG for quick info-getting)

Stuff I Made

OS X Workflow: ABC -> PDF

An OS X Workflow that acts as a service. Wraps a little bit of bash scriptings which, given a list of files, runs them through abcm2ps and ps2pdf to produce beautiful PDFs from your plaintext .abc files.

The files are contained up on Githoob: ABC -> PDF.


Say you have these lines:

Abbey Field
Abbot's Bromley Horn Dance
Agincourt Carol
The Alderman's Hat
Alfie's Hornpipe

...and you want to turn them into items in a JSON array. Run this find/replace REGEX (written for TextWrangler, might need minor adjustments to work in other apps):

  • Find:

  • Replace:


(Note: Adjust number of ts/spaces to suit the level you're working at). Running that produces this:

    \Abbey Field\,
    \Abbot's Bromley Horn Dance\,
    \Agincourt Carol\,
    \The Alderman's Hat\,
    \Alfie's Hornpipe\,

A couple of extra characters, clean up the training comma and you're done! Nifty.