Macos Notes App Markdown

Posted on  by 

The best note taking apps for Mac – markdown, open format, cross platform

Published (updated: ) in Productivity.

“Quip” is a lot more than just a simple note app for macOS. To be more precise, this is what you should use to collaborate with your teammates. Thanks to the chat and messaging integration, it helps you work with your colleagues in a fun way. You can use the app to note down your thoughts faster, create to-do lists, and edit your docs. With your notes well-organized effortlessly, you can stay focused on doing your best work. A versatile Markdown editor It comes with multi-language code highlighting, multi-cursors, line numbers, scrolling beyond the last line, showing invisible characters and more.

With the release of iOS 9 and OS X 10.11 in 2016, Apple introduced a new version of Notes. It added a number of new features for formatting, drawing and sync using iCloud instead of via IMAP. It was lightweight, fast and simple. I started using it shortly afterwards and now have almost 1,000 notes ranging from book highlights to saved web pages to meeting notes to journal articles.

Unfortunately, the iOS 13 and macOS 10.15 releases have been incredibly buggy. I have found that sync is inconsistent across devices (my MacBook, iPad and iPhone each register different numbers of notes) and some notes are not syncing at all. Search also stopped working before fixing itself, and now returns inferior results.

Considering how much information I have stored in Apple Notes, this made me reconsider what I wanted from a note taking app.

Requirements for a note taking app

Simplicity

I only require basic formatting, images and tables. I’m not interested in fancy fonts or colours because the system is better at ensuring the formatting works across devices, screen sizes and rendering into the future e.g. if I ever need to increase font sizes. This means using Markdown formatting saved to a plain text file. Markdown is a well understood format that has many apps that can edit and render on any platform

Non-proprietary format

The “new” Apple Notes app moved away from IMAP to an iCloud based format. This made sync work better (until recently) but was necessarily a proprietary database format. I can’t easily see or edit the individual notes on disk to make backups or import to another app. They are contained in a SQL Lite database in ~/Library/Group Containers/group.com.apple.notes alongside attachments and images organised by internal note IDs. It’s usually dangerous to meddle with app files like this.

Macos Notes App Markdown App

Apple Notes doesn’t have an export option except individual notes as PDFs. The only way around this is using the Apple Privacy data download service which allows you to export Apple Notes as HTML with their associated attachments. This is how I have been keeping a backup of all my Apple Notes to date.

Ideally the app will allow editing of individual files on disk. I can then choose my own sync service and run backup as part of my normal approach using Arq. Any app should at least allow export of content to multiple formats.

Regular updates / actively maintained

The problem with Apple software is that their main revenue is generated by the core OS, not any of the apps. They are there to compliment the OS but there is no competitive incentive to keep them up to date, add new features and fix bugs.

The annual update cycle is a legacy from the old days of shipping physical software. This makes sense for annual iPhone hardware refreshes but is totally outdated for shipping software. Microsoft updates Office every month and Windows every 6 months. How do you report bugs or get support for Apple Notes? You can’t.

My experience with the poor quality of these latest Apple releases has changed my approach – if I am going to rely on software then I want the developer to be properly incentivised to maintain it i.e. I need to pay them directly for it.

This is one reason why I use and pay for 1Password vs using Apple iCloud Keychain (as well as all the other features 1Password has). It’s also why I don’t mind the move to subscription business models for software.

Search

My approach to note taking is to save the full text and associated files of things I find interesting or useful so I can search them in the future.

Spotlight Search on macOS is very good (and has some advanced options). Even though I keep my files well organised, I regularly use it to find things because it is quicker and searches inside documents. For some reason, Apple Notes are not searchable from Spotlight though, so I have to search twice – in Spotlight and in Notes.app. I would prefer to have everything searchable from Spotlight, or any other search tool.

Cross-platform

This is not a requirement but rather a “nice to have” if the app I use on macOS also has an iOS equivalent. If all the above requirements are met, I can easily edit open file formats from different apps on different platforms.

My Macbook Air (13″ 2018) is only a year old so I have no plans to replace it soon, although have had to send it in for 1 keyboard replacement already. I don’t mind the feel of this keyboard but the reliability is poor.

Given the state of Apple software quality and the general problems with the Macbook keyboards, I have been following Microsoft’s Surface products with interest. The Surface Laptop 3 is very nice. I’ve been into the London Microsoft store to have a play and I’m eager to see the Surface Pro X when it is released. I’m just unsure about Windows. Over a decade ago it was Windows Vista that forced me to move to Mac due to the poor quality. I’m not quite there with macOS yet but am unhappy with it.

Evaluating note taking apps

All together I have been re-evaluating my choice of key software to ensure that I’m tied to the Apple ecosystem as little as possible. I already use Office365 for my email and calendar but have also started to move my files to OneDrive from iCloud Drive (I’m glad I didn’t try the recent macOS betas!). What’s the difference? I pay Microsoft for these services and they are regularly updated (unlike iCloud for Windows) and maintained, probably because they directly generate $billions of direct revenue.

Ultimately, my goal is to be flexible in which platform I use, selected based on the best core OS and hardware. I don’t want to be restricted by apps and file formats that only work on a single platform. macOS remains the best OS for now (including for privacy) but I don’t want to be locked to it.

My recommended note taking apps

Based on reviewing all the apps below, these are the best notes apps for Mac:

  1. Bear: Simple, well designed UI, actively maintained, markdown export but proprietary database. Mac / iOS only.
  2. iA Writer with your own cloud drive (I use OneDrive). Edits files on disk in Markdown format with simple, well designed apps for macOS, Windows, Android and iOS.
  3. VS Code with several markdown extensions (see below). If you are a developer and comfortable with a more technical interface, and/or already using VS Code, then this is a great third choice to avoid installing yet-another-app.

Bear

Bear was my favourite app purely for Apple devices. Good tag support, Markdown rendering, strong search (including Spotlight integration), encrypted notes, embedded images and attachments, and multiple export options. I particularly liked the helper mechanism when linking between notes, which maintains the link even if you rename a note.

It is fully supported and actively developed for the Apple ecosystem. The entire company is based around the product and has a subscription business model, suggesting they are likely to be able to keep things going. The iOS and iPad apps work well and sync across from my Mac was always reliable. It actually uses iCloud behind the scenes which makes Apple Notes failure to sync more unusual.

Bear would be my recommendation for someone who was happy with staying on Mac/iOS. If needed, you can export to various different formats. I used it for a whole month (which is the length of the free trial – sync is not available in the free version) and it worked well.

The main reason I decided not to continue using it is that Bear uses a proprietary data format so it can sync with iCloud. This makes sense because their time is better spent on the app functionality rather than making cloud sync work, but I ultimately decided that I valued having open, plain text files more than the extra functionality. If I do eventually move to Windows then I would be unable to move my notes easily. Having an open format was the key to selecting iA Writer instead.

iA Writer

Although not designed for note taking, last year iA Writer added support for #hashtags (but only on Mac, not Windows) which makes it much more suitable as a notes app.

I really like the UI on macOS because it fits in perfectly with the system design guidelines. It is very lightweight, simple to use and fits all my criteria for editing files on disk with Markdown. It is very minimalist with few settings, forcing you to focus on the task at hand. There are also apps for macOS, Windows, iOS and Android.

iA Writer does not support attachments and the embedded image support is limited, but that actually forces you to store those files on disk (so files like PDFs can be searched by Spotlight and edited directly e.g. for highlighting, which doesn’t work if you open PDFs from within a Bear note). Naming becomes important for binary files like images so they can be properly searched.

If you use iA Writer on iOS with iCloud then deals with sync for you but there is a limitation with using external file sources such as OneDrive – you have to manually find and add files into the app to edit them, which is a hassle. Otherwise, files are stored on disk and so I can sync them with OneDrive and run my normal backups. Since they are plain text Markdown, I can edit them in any app.

I would like to see the ability to nest tags and add emoji to them, plus helpers for Markdown formatting e.g. linking to other notes and improved image support. However, those limitations are minor enough to overlook and pick iA Writer as my Apple Notes replacement.

Markdown Note Taking App

VS Code + Markdown extensions

VS Code supports markdown out of the box, including with a live preview, however there are several extensions which add extra functionality.

The final plugin is the crucial one because it allows me to take advantage of organising my notes by tag. Of course, VS Code’s command bar is excellent at search so I could just navigate files by name (or text search), but it is sometimes useful to be able to see and view all associated notes in a list.

Unfortunately, the tag format supported by iA Writer – #hashtags – is not part of the Markdown format. Instead you will need to use the Markdown metadata format by including tags in a YAML block at the start of each file. The advantage of using this format is that it is generally supported by other Markdown parsers, so if I wanted to switch to something new in the future there is a greater chance of it being supported with no changes.

VS Code does use Electron behind the scenes. However, unlike many Electron apps, VS Code ties into the native UX of the OS it is running on and has acceptable performance. This is a rare example of a well-built Electron app, most of which are slow and buggy.

Other note taking apps I tried

Evernote

Macos Notes App Markdown

Years ago this was the first notes app I ever used, however it was notoriously buggy and I gave up. The company has been through some challenging times but still uses a proprietary note format and database, which rules it out. I didn’t bother to try it because of the history of poor quality software.

Notable

Notable is still very early in development, and the rough edges show e.g. when copy/pasting it would paste text 3 times. It also uses Electron and has many weird UI elements showing through the cross-platform layer, for example the popover menus for attachments don’t have the same behaviour as menus should on macOS.

The management of attachments was not as good as Typora – it would copy them to an ‘attachments’ directory but the management of those files was very basic. Removing the attachment from the note did not delete it on disk.

This app is too early to take over such an important use case and has no clear business model yet (donations and a pending application to Y Combinator).

Obsidian

Obsidian fits all the requirements – simple, works with Markdown and cross-platform.

It supports #hashtags, but they are shown in order of number of items rather than alphabetically and strangely there is no way to change the order.

It has some good functionality around linking to other notes and backlinks so you can see which notes reference each other. This makes it more like an organiser than a simple Markdown editor.

The app is nicely designed, but uses Electron so is slow to launch and doesn’t fit into the native OS design as nicely as Bear or iA Writer. When you are using an app regularly, performance and UI consistency matters.

OneNote

Included with my Office365 subscription, OneNote has been improving rapidly and now has a much simpler UI and fast sync. One of the great features is character recognition in images, allowing them to be searched as if they were in plain text.

Notes can only be in a single section or Notebook (like Apple Notes) whereas I feel that tags are more flexible approach to organising things. OneNote supports tags but they are hard coded to specific types, which suggests there’s still a lot of legacy cruft still behind the scenes.

OneNote on the web looks good with the new simplified UI and the Mac app also works nicely, particularly with dark mode. However, compared to all the other notes apps it is always slow to launch. I find this lag exists with all Microsoft apps on Mac – they are very heavyweight.

Using it with Office365 creates the Notebook file in your OneDrive but this is just a URL file that opens the web UI when you load it. There’s no actual content in the file which means that OneNote is using a proprietary database behind the scenes.

Although OneNote is a regularly updated application that works cross-platform (and has a decent app for iOS as well), the lack of open file format means I can’t back up the files and extract my data whenever I want. Like Apple Notes, there is no export functionality. I don’t want to move from Apple’s proprietary format to Microsoft’s, so this rules it out.

Typora

Typora was promising because it is a good Markdown editor with cross-platform apps that manages files on disk. I particularly liked how it managed attachments for notes, creating a .assets folder with the same name as the parent note. However, it doesn’t have very advanced file management features for the library/list of notes and there’s no support for tags.

It also uses Electron and I really hate Electron based apps. They remind me of Java apps that almost get the native OS style right, but not quite. They feel brittle, tend to have poor performance and I found that Typora was buggy (the macOS version is in beta). I understand why developers use Electron because it allows you to build cross-platform apps using web technologies, but I’ve had bad experiences with them e.g. the poor performance of Slack.

Worth a mention

  • Inkdrop is an app I’ve heard about because of the blogging of its main (Japan-based) developer. It fits most of my requirements and the UI looks great, but uses a proprietary format rather than files on disk. The format is JSON and you can set up your own CouchDB server to run the sync services, but that isn’t something I’m interested in doing.
  • nvALT hits all of my requirements except tag support, but is quite an old app (and looks it). The UI is why I excluded it, but I am keeping an eye on nvUltra which is the replacement in active beta now. It’s not open for public use at time of writing so I couldn’t try it yet. Since it supports Markdown, when it is released I will just be able to point it to the files I’m editing.
  • Scrivener might be great for complex writing projects but it is far too sophisticated for a notes app.
  • Simplenote is worth a look because they have well maintained apps and Markdown editing available for free. I excluded it because of the proprietary database format but generally like what Automattic do.
  • Standard Notes looks interesting because it pledges privacy and longevity with how it manages your notes files. It has options to store attachments in Dropbox, OneDrive or Google Drive as well as automated backups there, but ultimately stores notes in a proprietary format (even if that format is open and you can run your own server because the code is open source). It doesn’t use simple plain text files on the filesystem which is one of my requirements (and the desktop apps are Electron) – I don’t really want to be messing around running my own server and MySQL database for notes. Potential option for power users but not what I’m looking for.
  • Trilium Notes is another Electron app which is built around a hierarchical structure so you can build your own personal knowledgebase, whatever that means. It requires running a server, or has an unsupported Mac app. This makes it too complex for my requirements given the suitable alternatives above.

Subscribe via email

I write once per week on tech, startups or environmental technology. Get the full content direct to your inbox.

Success! You're on the list.
Whoops! There was an error and we couldn't process your subscription. Please reload the page and try again.

See also

  • A review of note taking apps for iOS/Mac from 2019.
  • Another review of note taking apps but from 2017.
  • A list of all text editors for iOS.
  • 9to5Mac on the best note-taking apps for Mac in 2019.

In the last few years, I have tried many note-taking applications. They all shared a common UX flaw: lack of keyboard accessibility. Finally, I had the idea to give Visual Studio Code a go and found note-taking heaven.

Keyboard Accessibility Requirements

What do I mean with the term “keyboard accessibility”? Two things: complete UI coverage and intuitive shortcuts.

Complete UI Coverage

Every UI element must be accessible from the keyboard. This includes the ability to navigate between different sections of the UI, e.g., between search results, the list of notes/categories/tags, the editor, and so on.

Intuitive Shortcuts

The keyboard shortcuts used in the application must be well-known. Common operations should have common shortcuts.

More Reasons

Mac generate app bundle. Of course, keyboard accessibility is not the only reason I chose VS Code as my note-taking app, it’s just the single feature that is consistently not given enough attention in other apps. There are many other things I like about VS code.

Extensions

VS Code features superb extensibility. The Marketplace lists tens of thousands of extensions for every possible use case, including formatters, keymaps, language packs, themes, and programming languages.

Great Editor

Finally, VS Code is a fantastic editor. Working with text is its domain. There is nothing more natural than editing markdown files in a text editor.

What About Cloud Sync & Encryption?

Initially, I was looking for the jack of all trades note-taking app. One app to rule them all, a single tool that provides all the functionality I would ever need. Only slowly did I realize this wonder-app does not exist. However, that is not necessarily a problem, as non-essential features can easily be “outsourced.” This includes (encrypted) cloud synchronization: simply store your note files in a directory that being is synchronized to your cloud of choice.

Getting Started

There is not really much to prepare, but it is a good idea to create what VS Code calls a workspace for your Markdown notes. Create a base folder for all your notes, e.g., D:DataNotes with an MD subdirectory. If you already have notes in Markdown format, copy them to the MD directory.

In VS Code, open the base folder D:DataNotes you just created (File > Open Folder) and save as a workspace in the same directory. You should now have a file D:DataNotesNotes.code-workspace.

A hierarchical view of your notes is available in Explorer (Ctrl+Shift+E). To exclude the .vscode directory, open settings (Ctrl+,), navigate to Files: Exclude and add **/.vscode to the list of exclusions.

Click the folder in which you want to move your photos.That’s it! https://wizlucky.netlify.app/app-to-move-photos-from-iphone-to-mac.html. Install the latest version of iTunes on your computer. Now, click Choose location or select one of the options listed on the drop-down menu.Step #5. All of your photos from iCloud will be downloaded/copied to your Windows 10 PC.Transfer Photos from iPhone or iPad with Windows 10 Photos appWindows 10 Photos app makes the process of transferring photos from the iPhone super easy.Step #1.

Creating a New Note

To create a new note, press Ctrl+N to new editor tab. To specify the file name and location on disk, press Ctrl+S to invoke the operating system’s file save dialog. Make sure to append the .MD extension (the default is .TXT).

For an alternative workflow, check out the extension Advanced New File.

Recommended Extensions

Markdown Extended

Working With Tables

The Markdown Extended extension adds missing commands for working with tables:

  • table formatting
  • adding, deleting and moving table columns
Formatting Shortcuts, Exporters

In addition to facilitating table handling, Markdown Extended provides well-known formatting shortcuts, e.g., bold (Ctrl+B), or italic (Ctrl+I), adds WYSIWYG exporters to PDF, PNG, and HTML, and supports extended markdown syntax (e.g., checkboxes).

Table of Content

To add a table of content to a document, place a [[TOC]] shortcut where you want the table of content to be inserted.

Markdown Lint (Syntax Check and Fix)

The markdownlint plugin underlines sections that violate formatting rules. When you navigate to such a highlighted section and press Ctrl+. a pop-up offers a handy automatic fix as well as a link to the rule’s documentation.

You may find that some rules collide with your habits. To disable individual rules, open your user settings JSON file and add a section like the following (details):

Spell-Checking (Including Grammarly)

As a paying Grammarly user, I like to have access to my spell-checking service in every application where I edit text. Unfortunately, there is no official Grammarly extension for VS Code. This unofficial extension looks good but seems to be actively blocked by Grammarly so that paying users cannot log in (issue).

Spell Right is a decent alternative that cleverly uses the operating system’s dictionary (if one is available, i.e., on Windows 10 and macOS). After installing it navigate to its settings by pressing Ctrl+Shift+P and search for @ext:ban.spellright. Then verify it is enabled for the document types you are editing (e.g., Markdown). The extension supports multiple languages per document (view and change next to the eye symbol in the status bar or via SpellRight: Select Dictionary (Language) in the command palette). By deselecting all languages you disable spell-checking for the current document.

Dealing with spelling errors is easy: navigate the cursor to the misspelled word and press Ctrl+.. To disable spell-checking for a single markdown document add the following YAML header:

Identifying Multiple Windows

You may find yourself working with more than one VS Code window. You might use one for editing Markdown while working on a development project in another.

Peacock helps you identify which is which by subtly and cleverly coloring each window differently.

Tags

If you like to organize your notes with tags, vscode-nested-tags is a must. It adds a tag tree to Explorer that allows you to navigate your notes independent of the file system structure. Tags are typically stored with each document as part of the YAML header, e.g.:

Clean HTML Export for WordPress

There are two very different use cases for a conversion/export routine from Markdown to HTML. One is about displaying the HTML as-is; this requires nice formatting embedded in the HTML code. The other is centered on publishing to a CMS like WordPress that has its own CSS styles. In this latter case, the exported HTML must be “clean,” i.e., it must not contain any formatting, styling, CSS, or scripts.

VS Code natively supports the conversion of a Markdown document to HTML. In addition to that, many extensions come with their Markdown to HTML export capability. All of them generate HTML you definitely don’t want to use with a CMS. The HTML code is littered with tags and styles that, in the best of cases, “only” bloat the code, but in practice probably mess up the formatting quite nicely.

Pandoc to the Rescue

Pandoc is a stand-alone tool for converting between markup and word processing formats, as well as for generating PDF output. Pandoc supports Markdown, HTML and many other input formats.

Installation

There is a VS Code extension for Pandoc, but it only makes the tool easily accessible from within VS Code. Pandoc needs to be installed, too. Follow these steps for HTML output via Pandoc:

  • Restart VS Code
  • Install the vscode-pandoc extension
Cleaning the HTML Output

By default, Pandoc adds attributes like id to the HTML output. We can get rid of those with a LUA filter I found here. To set this up:

  • Create a data directory for Pandoc, e.g., D:DataPandoc
  • Create a filters subdirectory, e.g., D:DataPandocfilters
  • Create a file remove-attributes.lua in the filters directory and paste the contents below
  • In VS Code’s settings, search for pandoc and paste the following as Pandoc: HTML Opt String: --data-dir='D:DataPandoc' --lua-filter=remove-attributes.lua

Content of the Pandoc script remove-attributes.lua:

Standard Notes Markdown

Converting Markdown to HTML

With the above setup in place, we can convert Markdown to clean HTML from VS Code easily.

  • Open the command palette (Ctrl+Shift+P) and select Pandoc Render (or use the shortcut Ctrl+K P).
  • A popup lets you choose between the output formats PDF, DOCX, and HTML. Select HTML.
Manual Finishing Touches

Even though the generated HTML is pretty clean, I found a few points where additional manual corrections were warranted:

  • HREFs: I like to add target='_blank' to most links
  • Code block quotes: in the generated HTML quotes were replaced by " which I changed back to '
  • Code block syntax highlighting: language specifiers like ```JSON were removed in the conversion. I added them back in as follows: <code>

Useful Keyboard Shortcuts

  • Open a preview in a new tab: Ctrl+Shift+V
  • Open a preview in a new editor group side-by-side: Ctrl+K V
  • Switch to editor group 1, 2, etc.: Ctrl+1, Ctrl+2, etc.
  • Open the command palette: Ctrl+Shift+P
  • Open recently used files and workspaces: Ctrl+R
  • Switch to Explorer in the sidebar: Ctrl+Shift+E
  • Navigate from the search text to the search results: Ctrl+DOWN
  • Quick-open files: Ctrl+P

Other Note-Taking Apps I Tried

Macos Notes App Markdown Shortcut

As I mentioned above, I have tried many note-taking applications before settling on VS Code. Here is an incomplete list:

Notes App Download

  • OneNote 2016
  • Standard Notes (see my blog article)
  • Inkdrop
  • Notable

Resources

  • Getting Started Tips and Tricks (highly recommended)

Coments are closed