Create tags from MarginNote export, and organize notes in DTP tags?

I’ve been using MarginNote to annotate my PDF files. These annotations can be exported in various export types, in which the annotations are divided into a set of discrete notes, along with their respective comments and tags.

I export my MarginNote annotations in OmniOutliner format, and then run a script that groups the annotation notes by category - tags (e.g., Category POULTRY - tag - Chickens, Turkeys, Quails). (The OmniOutliner file also has a dedicated column for each hashtag, per annotated note.)

This process uses a TaskPaper file – as a kind of reference file for the OmniOutlier reorganization script – which contains each category on the first level, and tags on the second level.

I don’t know if this is remotely possible, but I’m wondering if there’s some way – either through a smart rule or script – that I could import such files into DEVONthink, and then:

  • Use the OmniOutliner and/or TaskPaper file(s) to create the same taxonomy of categories and tags in DEVONthink, and then…

  • …import a set of MarginNote-produced annotated notes (e.g., from an OmniOutliner file or another export format), and have DEVONthink store and organize them according to notes’ tags.

MarginNote can export annotations in what they call a “DEVONthink format,” which is basically a batch of RTF files. But it seems a bit clunky – and I thought the TaskPaper file and/or the re-organized OmniOutliner file might just be easier for accomplishing what I’m seeking.

BTW, I read this post on “Set tag of current doc via ios shortcuts / sharesheet?” and thought there might be some elements of @BLUEFROG’s Smart Rule that might be used to accomplish what I’d like to do.

Is this possible? If so, how would users suggest I put together a process for accomplishing this?


Just wondering if any part of this might work in DEVONthink…

Thank you, guys!

OPML files might be an option as DEVONthink is able to both im- and export them, no matter whether created by outliners or RSS readers.

1 Like

Thank you for your reply, @cgrunenberg !

Actually, OPML would work better for me, since it’s what I export after my OmniOutliner re-organization process.

So, how would this work? What are the steps I would need to take?

Thanks so much, again!

Unfortunately I’m not familiar with these apps. Anyway, you could e.g. create the desired structure (hierarchy, notes, tags) in DEVONthink first, then export it as OPML and finally study the exported file in case that you want to build such a file using another app or script.

1 Like

Right. To clarify my query, I’m not trying to create an inter-app workflow with DEVONthink and MaginNote or OmniOutliner. Rather, I’m wondering if I can use OmniOutliner-OPML file and/or TaskPaper file (or the the metadata from either of those files) to create the same taxonomy of categories and tags in DEVONthink.

After that, I’d like to import the OPML file into DEVONthink, and enable DEVONthink to organize the discrete notes in the OPML file to be organized by the newly-create tag structure. Does that make sense?

Just want to ensure we’re on the same page…

Thank you!

DEVONthink’s OPML import actually doesn’t add the original file to the database. Instead groups, notes, tags & feeds (depending on the contents and the creator of the file) are created. But I guess that’s what you’re looking for. However, it’s unclear what should be organized how.

Yes! Basically using the file (or metadata, if that’s how work) to inform and create a taxonomy of tags.

Actually, the raw taxonomy of categories and tags that I mentioned in my first post is contained in a TaskPaper file, which can also be exported as a “generic plain text document.” Could one use that to create a taxonomy of tags in DEVONthink?

It seems like the OPML import is the trickier part of the process. Let me divide this into smaller questions…

When I open OPML files in Tinderbox, it appears as individual notes with their respective metadata (tags, comments, etc.).

Would it be possible to import an OPML file into DTP so that it imports these individual notes with their respective metadata?

If so, would it be be possible to import the notes from OPML files into DTP so that they are filtered into the tag taxonomy (i.e., notes are imported and organized by their tag)?

Hi @jprint714,

fellow MarginNote user here, using it alongside DevonThink.

While I may not have understood 100% of what you’re trying to do, I think I got the gist. Allow me to make a suggestion that takes a different approach than the one you’ve been describing.

Step 1: Create the tag taxonomy in DevonThink, i.e. add the different tags and nest them as needed.

Step 2: In MarginNote, add a hashtag symbol in front of all existing tags and do so in future when creating new ones.

Step 3: Now, when you export contents from a MarginNote map as individual RTF documents via “Export to DevonThink”, the body of those documents will contain tags in the format #tag. If “convert hashtags to tags” is enabled in DevonThink settings, then the RTF document should receive the respective tag automatically. In your tag taxonomy, you can now also find it under the tag.


Thank you so much for this suggestion. While I really do appreciate it, I’m trying to find a different way of of interfacing MarginNote-created annotated notes with DEVONthink.

As I said at the top, I’ve created a process that reorganizes my MarginNote annotations through a category - tag approach – and I want to keep that intact.

Also, my taxonomy of tags per project is quite complex, and that’s why I’m trying to see if there’s a way to use something like the TaskPaper file as a way to automatically generate that in DEVONthink; manually setting it up would be quite tedious, and expect (hope!) there’s an easier way to do this.

Having said that, there might be a way for me to use some variation of your Step 3. My OmniOutliner rendering process strips away the hashtags, so it would mean that I’d have to create another MarginNote export – via “Export to DevonThink” – to make it work.

Ideally, I’d like to just use one export file instead of creating two, just so it could be properly imported and sorted by DEVONthink.

If there’s no other way DEVONthink can import & organize my OPML file, I’ll consider this approach.

Thanks so much for your help!

You’re welcome! I’ll be following this topic with interest.

1 Like

Sounds good!

Bottom line, I hope there’s: (1) a way to use the TaskPaper file or its “generic plain text document" output as a way to create the tag taxonomy in DEVONthink, and (2) there’s a way to import the OPML file into DEVONthink, so that it ingests it as set of discrete, and organizes them by tag.

The problem is I don’t know how to write scripts, and am not very good at creating DEVONthink’s Smart Rules.

BTW, I’m doing this because there’s no way for DEVONthink to index Tinderbox notes. Tinderbox does many wonderful things, but I value DEVONthink’s AI and search functions – so I have to find a way to create a parallel system in DEVONthink that basically mirrors what I’ve set up in Tinderbox. So it goes…

Please send an example file to cgrunenberg - at - including a description of what is not indexed but should be, thanks!

Did you actually try this - importing an OPML file into DEVONthink?


Yeah, I did. It didn’t go well, but DTP show the discrete notes as part of the OPML file structure. It just didn’t show them as cleanly as the way they appear elsewhere (e.g., Tinderbox).

Thank you, @cgrunenberg ! Well, I wish I could do this, but unfortunately I cannot – only because Tinderbox doesn’t have the ability for it’s users to tap into a section of it’s files in which DTP users can index notes. See this forum discussion. Still, @cgrunenberg, I’m happy to share my Tinderbox files with you if that would be helpful – just let me know.

Further backstory on why I’m trying to find a solution, which led to the queries in this post…

I’ve been using MarginNote to annotate my files because: (a) As far as I can tell, it provides the best annotation app (for my purposes, with including highlights, hashtags, comments, etc.), and (b) – crucially – its export formats work with my inter-app workflow. For instance, I wouldn’t be able to interface my MarginNote-annotated notes with Tinderbox without MarginNote’s OmniOutliner export.

The problem is… MarginNote’s annotated PDF exports are bloated; their file size is so large that it would overwhelm DTP’s databases. And, as I said, Tinderbox doesn’t allow DTP to index its file contents (notes).

After several years, I’ve finally figured out how to set up Tinderbox so that it carefully organizes my notes in way that’s incredibly powerful. However, I also rely on DTP’s terrific search function and AI. Ideally, I’d be able to sync my Tinderbox notes with DTP, and also archive MarginNote’s annotated PDF exports. That’s why I’m trying to find a workaround solution!

Anyway, let’s scale back my query with one question: Is there a way to use a TaskPaper file or its “generic plain text document" output as a way to create the tag taxonomy in DEVONthink? Being able to do just that would be incredibly useful. Once I’ve nailed that down, I’ll work on the other part of this query.

Thank you again for all of your generous help!

For DEVONthink TaskPaper files are just another proprietary file format and therefore not suitable. You’ll need OPML.

1 Like

Got it. I just opening the TaskPaper files in OmniOutliner, and converted it to an OPML format. I’m just not sure if the OPML file contents is structured in a way that would work for creating a tag taxonomy in DTP. I’m happy to share some sample files with you if that would be helpful.

Hi @cgrunenberg , Just wanted you to know that I sent you this email last night. Please let me know if I can answer any questions for you. Thanks for your help!

@bluefrog will take care of it.

1 Like