Simulating a content model in Obsidian

This is somewhat Drupal specific, but the graph view in Obsidian is a fun and flexible way to visualize a content model.

Assuming you want to document these different kinds of things and see how they relate:


  1. Create a separate vault for the content model
  2. Create a note for each content type
  3. Use wikilinks to relate different content types
  4. Use tags to indicate vocabularies
  5. Create and insert image, video, etc. placeholders
  6. Look at the pretty graph!

Create a separate vault

This is just a folder somewhere on your computer. Store it in your dropbox, google drive, nextcloud or similar to access from other computer machines, but you knew that already.

From the bottom-left sidebar in Obsidian click the thingy which wants to look like a vault. From there, you can name your new vault and point to the folder you want to use.

Create a note per content type

Start creating a note for each content type that is in your model. Use the name of the content type as the file name. So create a “” for your product content type, “” for your… you get the point.

Create links between related content types. In Drupal content type speak, these would be reference fields. A reference field lives on the content type that does the pointing to the other content type. The direction matters so it's meaningful to create the link in the file for the content type that will have the reference.

Use tags for vocabularies

Obsidian understands hashtags (“#somelabel”).

Now here we need to make a mental leap. In regular use, hashtags are often used as quite specific labels, e.g. “yellow”, “banana”, “merino wool”, etc.

Not here. For your content model you're not primarily concerned with the specifics of wether a content item is tagged with “blue”, “apple”, or “denim”. What you want to document is that your content types want to use tags from (in this exampe) these collections of terms: “colours”, “fruit” and “textiles”. In Drupal speak: use hashtags to indicate which vocabularies the content type will be able to use.

Create and insert media placeholders

Images, videos, documents and the like are considered media types in Drupal. Similar to content types, but media objects are treated as a separate type of content types, because technical reasons, mostly.

A similar leap as we did with tags for vocabularies above with an additional simplification. Instead of using placeholder audio and video files, we'll use images for each media type. Use the name of each file and a bit of iconography to make them distinct. Create these images and add them to the vault:

(audio icon via

For each content type that uses one or more of these media types, embed the corresponding image in the body of the note.

Here's an example of a testimonial content type note that contains a video and uses the fruit and colours vocabularies. The file would be called “” and the minimal contents would be:

# Testimonial ![[video.png]] #fruit #colours

Look at the pretty graph!

Got your content type notes in place and linked, hashtags for vocabularies added and media items embedded? Great, now switch to the graph view.

By default you'll probably only see the content type notes. Expand the “Filters” section in the little box top left of the graph and toggle the switches to also show tags and attachments. You may also want to toggle the “Arrows” switch that is in the “Display” section. The arrows will show the direction of your references, or, which note is doing the pointing to another note.

Here's the content model of the Umami food magazine demo that ships with Drupal core:

(download these umami content model files here:

What I think works well

Further explorations and limitations

#contentmodeling #drupal