Silly musings on embedded bases in Obsidian

Started by Amontillado on 8/8/2026
Amontillado 8/8/2026 11:11 am
I shall soon start a new project requiring both outlines and notes. While dithering on what software to use I hit on an a variation of an old Obsidian idea.

Imagine a file property called crossref. It's a list populated by keywords.

Create a base called lookup as a table view. The filter is this.crossref.containsAny(crossref). Enable properties file name and your crossref list. Click the button to be able to enter the filter as a Javascript statement.

This.crossref is the crossref property of the current file. Unadorned crossref refers to the crossref property in each Markdown file searched by the base.

Now each Markdown note can have a self-adjusting cross reference table. Embed the base with "![[lookup.base]]" and add a crossref property to each file.

When you are in any file embedding that single lookup.base, you'll get a table of each file whose crossref property has members matching any member of the crossref property in the file you're looking at.

You'll also always see the current file listed in the lookup table, which is messy. Cure that by adding another line to lookup.base's filter, this.file.path != file.path.

The idea is I can have a Chapter 1 notes file with crossref members acting as tags. The lookup base acts as a map of contents.

If there are things I want to be sure land in Chapter 1, I could add chap1 as a member of crossref in the Chapter 1 file and in whatever other notes I want to reference. Chapter 1 will list the targets, each of the targets will list Chapter 1.

Because there is just one cross reference list per document identified with "this", I can embed the same base in as many Markdown files as I need.

Interestingly, "this" behaves as it should, which may not be as expected.

This is the current document. This.crossref is the crossref property of the current document, so in the base itself this refers to the base. In a Markdown document embedding the base, this in the base's filter is in the context of the Markdown document, not the base.

If you look at the base, this.crossref would refer to a crossref property added to the base. When you embed the base in a Markdown document, this.crossref would refer to the crossref property in the enclosing Markdownn document, ignoring crossref in the base.

Sound confusing? Be calm and thank giants who went before us, referring of course to Bugs Bunny. Every Saturday morning, our impressionable minds were flooded with an enthusiastic "This is it!" from Bugs' theme song.

We never stopped to marvel at how subtly Bugs leaves the definition of "it" to the eager young student, leaving the flexible nature of "this" for our future adult consideration.

This, by any definition, is a journey I've only begun. I can't wait to learn the true nature of up, Doc.

Any corrections to my base methods eagerly welcomed.