DT Pro, custom metadata, and Markdown front-matter

I currently have the Standard version of DT and am considering upgrading to Pro. One use case that I would very much like to enable is ability to automatically populate custom metadata properties via Markdown front-matter attributes.

If I add a Markdown front-matter key-value pair like, for example, ‘status: needs review’, will I be able to display a custom property column in DT’s various table views, and then click on the “status” column to sort by status values? Does this happen automatically when Markdown front-matter is parsed / indexed, or do I need to do some manual setup?

I’ve hunted around a bit in the forum but haven’t spent a lot of time digging, so perhaps this has already been answered somewhere…

1 Like

There is no automatic conversion of Markdown metadata (or YAML front matter) to custom metadata. It would require scripting to accomplish.

Darn… it would be super if DT could be extended to automatically index / “extract” Markdown metadata and make it available via custom metadata. It seems that the beginnings are there, now that IndexRawMarkdownSource exists to index Markdown metadata.

Any thoughts on adding this? It would make upgrading to Pro a no-brainer for me, as I rely fairly heavily on Markdown metadata to manage my “notes” (i.e. Markdown files used for note-taking).

2 Likes

Hello I’m another user who would be thrilled to see the feature discussed in this thread, an automatic link between Markdown frontmatter and custom metadata.

My primary wish is for item details recorded in Markdown frontmatter to automatically and seamlessly populate DEVONthink’s custom metadata fields.
This automatic population would make leveraging custom metadata fields, for example Price and Purchase Date which I use for tracking my purchased items, as sortable columns in DEVONthink’s standard item list views incredibly powerful and convenient, truly maximizing the utility of the existing column display feature.
Crucially, having this automatic data linking and population as a native, built-in, and intuitive feature would ensure this profound ease of use and stability for everyone, rather than relying on scripting.

I am curious how you imagine this happening:

A one way, one time process:

  • import/index a MD file with YAML frontmatter
  • click the new frontmatterToCustmetadata button
  • Custom metadata is populated.

A two way, live process:

  • import/index a MD file with YAML frontmatter
  • click the new syncfrontmatterToCustmetadata button
  • Custom metadata (CM) is populated and metadata sync is activated
  • any changes to CM or YAML are reflected in the other

Neither sound like a simple amount of coding.

2 Likes

The first approach could be handled by scripts, and I’d say without much effort. No idea why the OP does not want that.
The second one – I agree, probably a lot of coding involved. And I don’t see the benefit of having the same data in two or more different places – DRY!

That’s just crying out for support requests (imagine price as metadata and pric as a typo in the MD file – should a new metadata field be created? The data be silently ignored? An error message raised?)

Markdown metadata can affect specific properties…

Development would have to assess the feasibility of extending the behavior.

@cgrunenberg: just curious if using the attribute’s identifier could be used to automatically populate custom metadata fields, e.g.…

No, only properties.

Your use of the term frontmatter… are you saying you intend to use YAML?

Yes, to clarify, when I used the term ‘frontmatter,’ I was indeed referring to the YAML block enclosed by --- delimiters at the top of a Markdown file, where one might define keys like author: xx or title: ttt.

It’s great that DEVONthink can already pick up standard properties like ‘Author’ or ‘Title’ from such metadata. My core wish, as I tried to outline in my initial post, is for this capability to be extended to user-defined custom metadata fields as well. For instance, if I include Price: 100 or PurchaseDate: 2025-05-07 in the YAML frontmatter, I would love for these to automatically populate corresponding custom metadata fields that I’ve created in DEVONthink.

And to clarify back to you: YAML isn’t a native part of Markdown, i.e., part of the spec. In fact, MultiMarkdown (which is what DEVONthink uses) doesn’t use YAML, though it can be used. MultiMarkdown has long supported its own implementation, which doesn’t use the --- above and below, but needs to be at the top of the document.

Also, if this isn’t something that will be implemented by development any time soon, you aren’t going to avoid scripting to accomplish this.

PS: Open a support ticket please and include your user handle and a link to this conversation.