Markdown notes on a Mac: headings, checklists and tables
A Markdown note is plain text with a few symbols that stand for structure: a line that starts with # is a heading, a line that starts with - [ ] is a checklist item, and rows of text split by | characters make a table. On a Mac you can write one in TextEdit once it is set to plain text, and save it with a .md ending so any Markdown app can open it. If you want the same headings, checkboxes and tables in a note that opens from the MacBook notch, Inkling holds them, and it imports and exports Markdown so your notes are not stuck in one place.
Below: the syntax for each of the three, the mistakes that quietly break them, and how to set up a Mac to write them.
Why keep notes in Markdown at all
The case for Markdown is mostly about later. A .md file is a text file. Any editor on any computer can open it, and the raw text still reads well because the symbols were chosen to look like what they mean. A heading looks like a heading before anything renders it, and a checklist looks like a checklist.
That also makes Markdown easy to move. You can paste it into an email, a project’s README, a wiki or a chat message, and in many of those places it turns into formatting on its own.
The cost is that you type punctuation instead of clicking buttons, and some structures, tables especially, are fiddly to edit as raw text. That is worth knowing before you build a whole notes habit around it.
Headings
A heading is one or more # characters at the start of a line, then a space, then the text.
# Trip to Lisbon
## Bookings
### Flights
One # is the top level, usually used once as the title of the note. Two is a section, three is a section inside that, and it goes down to six, though notes rarely need more than three.
What trips people up:
- The missing space.
#Bookingswith no space after the#is plain text in many apps, and a tag in some. - Skipped levels. Jumping from
#straight to###works, but the outline it makes is harder to follow. Go down one level at a time.
Checklists
A checklist item is a list item with a pair of square brackets after the dash. A space between the brackets means not done; an x means done.
- [ ] Book the airport transfer
- [x] Renew the passport
- [ ] Ask about late checkout
Two details matter. First, every character has to be there: the dash, a space, the brackets, and another space before the text. -[ ] with no space after the dash will not read as a checkbox in most apps. Second, checklists are not part of the original Markdown. They are a widely used extension, so most Markdown apps show them as boxes, but a plain converter may show the brackets as text.
To tick an item in a plain text file, replace the space between the brackets with an x. In an app that renders Markdown, you can usually click the box instead.
Tables
Tables have the most syntax to remember of the three. Each row is a line of cells separated by | characters. The second line is a separator made of hyphens, which tells the app that the first line is the header.
| Day | Plan | Booked |
|----------|--------------------|--------|
| Friday | Old town walk | Yes |
| Saturday | Day trip to Sintra | No |
Colons in the separator line set each column’s alignment: :--- aligns it left, ---: aligns it right, and :---: centers it. The columns do not need to line up in the raw text, but lining them up with spaces makes the file far easier to read and edit.
Like checklists, tables are an extension rather than original Markdown, and most Markdown apps support them. The usual reasons a table shows up as lines of pipes instead:
- The separator line is missing.
- The separator has a different number of cells from the header row.
- There is no blank line between the table and the paragraph above it, which some apps need.
- A cell contains a
|of its own. Write it as\|so it is not read as a column break.
The real weak spot is editing. Adding a column means adding a cell to every row by hand, and one long cell pushes the whole row out of line. If you keep tables in your notes often, this is where a raw text file starts to feel like work.
Writing Markdown with what is already on your Mac
macOS has no dedicated Markdown editor, but TextEdit does the job once it stops acting like a word processor. Set it up once:
- Open TextEdit and choose TextEdit > Settings.
- On the New Document tab, set Format to Plain text.
- Turn off Smart quotes and Smart dashes, in the same tab. Smart dashes can turn two hyphens into a long dash, which breaks a table’s separator line, and curly quotes break anything you meant as code. For a document that is already open, the same switches are under Edit > Substitutions.
- Make a new document, write, and choose File > Save. Give it a name ending in .md. If TextEdit asks whether to keep .md or use .txt, keep .md.
Apple Notes is the other built-in option, and a good one for structure. Its Format menu has heading styles, Checklist and Table, so you get all three without typing a symbol. The difference is storage: Notes keeps your notes in its own library rather than as .md files you can see in Finder, which matters if the point of Markdown, for you, is having plain files.
Markdown as the way in and out of a notes app
There is a middle ground between typing pipes by hand and giving up on plain files: a notes app that handles the structure for you and treats Markdown as the format your notes travel in. That is how Inkling works.
A note in Inkling can hold headings, checkboxes, links, highlights, quotes, code and tables. In a table, Tab moves to the next cell, and you can paste cells straight from a spreadsheet, which takes care of the editing problem above.
Markdown is the bridge in both directions:
- In. Import the Markdown files you already have, so a folder of notes written in TextEdit can come along.
- Out. Export any note as Markdown, rich text or PDF. Markdown for a README, a wiki or another editor; rich text for a document; PDF for someone who only needs to read it.
Notes live on the Mac, writing and searching work offline, and daily local backups give the library a second place to land.
What changes is where the note lives. Hover over the notch, or press Option-N from any app, and the note opens over whatever you are doing. Press Command-Return and it tucks away while Ink, the pair of eyes in the notch, gives a nod. On a display without a notch, a virtual notch takes its place.
The limits are worth stating plainly. It is a Mac app only, with no iPhone or iPad version, and it has no sharing or collaboration. If your Markdown notes need to be edited by other people, a shared repository or wiki is the better home, and Inkling’s Markdown export is how a note gets there. It costs $12 once, with 24 hours free and no card needed, on macOS 14 Sonoma or later.
Questions
What file extension should a Markdown note use? .md is the common one and the one most apps look for. .markdown works too but is longer to type. A .txt file can hold Markdown just as well, though Markdown apps may not recognize it as Markdown.
Can I tick a checkbox in a plain text file?
Yes, by editing it: change [ ] to [x]. Nothing is clickable in a plain text editor, but any Markdown app that supports checklists will show the item as done when it opens the file.