Script to create individual Markdown notes from PDF annotations

Thanks for this. I guess that your suggested extension could be useful if you know that you have annotated something but cannot remember which PDF it was, though normally it would seem just as easy to select relevant tiles before doing anything.

Right now, the only reason I wanted to know the number of notes is that I am responding to criticisms of a manuscript that take the form of annotations on a PDF, and when I have made a correction I delete the corresponding annotation; from time to time I want an indication of how many more there are.

I’ve just released version 1.3 of the script which can now be executed from a DEVONthink smart rule.

For example, you could use a smart rule like the one below (which gets triggered by an Import or Save event):

DEVONthink_Notes_from_PDF_Annotations-v1.3-DEVONthinkSmartRule

This smart rule would automatically call the script to create (or update) Markdown records from PDF annotations whenever a PDF gets imported to (or updated within) the specified group.

Note that, if the script is executed automatically via a smart rule, script feedback will be reported via a notification (instead of a dialog), and created/updated notes won’t get selected. This is done so that you can continue working within DEVONthink without getting interrupted by the script.

It may also be worth noting that, when triggered by a DEVONthink smart rule, this script can be used in a somewhat similar fashion as the “Stream annotations …” script by @ryanjamurphy:

The main difference is that my script creates individual Markdown notes while the “Stream annotations …” script extracts a PDF’s annotations into a single file.

1 Like

Maybe, this script could work with tinderbox workflow.
More request about summary annotation in markdown with color info!

I’m planning to write a “DEVONthink Notes To Tinderbox” script next. That script could, for example, take the notes generated by the “DEVONthink Notes from PDF Annotations” script, and create corresponding notes in Tinderbox. The script should transfer all of a note’s important metadata (like label color, flag, rating, tags, annotation deep link, file & note URLs, and custom attributes like citation metadata, etc) and create corresponding Tinderbox attributes. It may even be able to recreate the cross-links between notes as regular Tinderbox links.

I’ve written a similar script for Tinderbox previously, so I know it’s doable.

I’m not sure what you mean, could you elaborate? Thanks.

I’m thrilled to hear this amazing news—it will definitely help a lot of people!
I must confess that over the past few days, I’ve been experimenting with various ways to integrate DT and TB. My main focus has been on transferring annotations created in DT, along with their metadata, into TB without any loss. However, as someone with absolutely no background in computer science, even with ChatGPT’s help, I’ve been defeated by issues like regex mismatches, the complexity of TB, and inexplicable errors after deep operations on DT using AppleScript—errors whose causes I don’t understand at all.
These challenges have held me back for quite some time. So far, the only process I’ve successfully completed is manually formatting markdown summaries of annotations using the explode feature.

Exactly, this about DEVONthink, a user ask for a function about Exporting highlight colour information in Summarise Highlights, however, up until the current version, it can still only export summaries in a single color.
Through unproductive practice, I found that if the interaction between the two pieces of software were more straightforward, richer, and customizable, the workflow would be much easier to collaborate on, especially in the exchange of certain attributes and navigation between various links.

Thanks for the clarification!

The script would maintain the PDF annotation’s highlight color by setting the “Color” attribute in Tinderbox (similar to what is shown in this screencast).

Nice work! They are so effective that can help people focus more on the flow of research rather than struggling with the unresponsiveness of the tools.