PDF annotation workflow using Hazel and Highlights app

I used to be a user of Sente. I miss that piece of software every because it has the most elegant annotation tools. Over the years, I have tried different methods to emulate the capabilities of Sente.

For reading and annotating, PDF Expert is a fine software. I have used it for some time for reading pdf articles. But, exporting annotations is another story. There is no customization of exporting of annotations. And the result is totally débâcle.

A rather more elegant method of annotation was the one we have in DEVONthink using a script known as Annotation Pane. It is a brilliant script; the closest I get to imitate the workflow I had in Sente.

I have been using Annotation Pane for many years. But, lately, Apple’s PDFKit is getting terrible. As a result, DEVONthink is making many of my files read-only (impossible to edit within DT) to protect the probably corruption.

The great alternative is the Highlights app. It is really amazing annotation tool. The annotations are markdown compatible. So, I am contriving a system to have a fluid and clean annotation system.

The objective is to have a clean annotation file in markdown format with all the images and links back to the original pdf file. The annotation export is live; that means, any new annotation added in the Highlights app will immediately show up in your Obsidian (Devonthink) or any other tool you use to read markdown file.

Another thing I do here is to include the heading of the articles (books) as headings in the markdown note. Including the headings is important to understand the structure of the original article. That is why I want to include them with the annotations.

If you want to try my setup, this is what you need:

  1. Highlights Pro
  2. Hazel

The setup in Highlights

  1. In the Highlights app, you need to turn on save sidecar markdown-file under the General setting. What this means is that your annotations will be exported next to the pdf file you are reading. This is the main engine of the workflow. The sidecar could be either in .md or Textbundle format, depending on the presence of image annotations. If there is an image annotation, the sidecar will be textbundle; otherwise markdown. WE are going to use hazel to process and move those sidecars to our Obsidian vault.
  2. Principle: During the annotation process, I always underline the headings; but highlight the important notes.

Folders:

  1. Create another folder Highlights inside your Obsidian vault (or indexed folder in DEVONthink). This is the destination of our reading notes.
  2. I assume that all your pdf files are stored in one folder. I call it @articles folder.

So, now, go and import your rules their respective folders:

(The rules can be downloaded here: https://www.dropbox.com/scl/fi/p1l24g4m1woiclvk8g1jm/Annotation_hazel.zip?rlkey=k11979cwmput5ouoxdrsstpj8&dl=0)

  1. ON the @article folder, you have two rules: The first rule just moves plain markdown sidecars to the Highlights folder. The second one converts the textbundle sidecars to folders before it moves them to the Highlights folder.
  2. Put the rest of the rules (four of them) on to the Highlights folder.
    The first rule simply runs some shell script replacement to properly format the headings. The second rule tells Hazel to go into the subfolders. The third rule (number 6) renames the markdown file, and the final rule trashes the json file (you can leave the json there if you want to).

The result is a beautifully formatted markdown file such as the follows: