This is an (in-progress) infobox for Trilium Next Notes.
- Create a new note somewhere (preferably under a
Scripts
note or something to keep everything organized) - Create a new note called
Infobox
- Create a new note under
Infobox
calledtemplate
and make theNote Type
HTML
- Create a new note under
template
and call itjs
and make theNote Type
JS Frontend
- Create two new notes under
js
. Call the first onedayjs_plugin_relativeTime
and call the second onedayjs_plugin_advancedFormat
. Set bothNote Type
s toJS Frontend
- Add a new Relation to the
Infobox
note (not thetemplate
note!). The Name will berenderNote
and the Target Note will be thetemplate
you created in step 3. This tells Trilium to render the HTML, instead of just displaying the raw text
At this point, your folder structure should look like this:
Scripts or wherever you're storing this
└── Infobox (Type: Render Note)
└── template (Type: HTML)
└── js (Type: JS Frontend)
├── dayjs_plugin_relativeTime (Type: JS Frontend)
└── dayjs_plugin_advancedFormat (Type: JS Frontend)
- Copy and paste the code from
template.html
in this gist into thetemplate
note you created in step 3 - Copy and paste the code from
js.js
in this gist into thejs
note you created in step 4 - Copy and paste the code from this file into the
dayjs_plugin_advancedFormat
note you made in step 5 - Copy and paste the code from this file into the
dayjs_plugin_relativeTime
note you made in step 5
Now you have all the files you need to get started.
This relies on three labels, DateOfBirth
, DateOfDeath
and Address
. It's best to add them to a template note so you don't have to recreate them every time. My label code looks like this:
#label:DateOfBirth(inheritable)="promoted,alias=Date of Birth,single,date" #label:DateOfDeath(inheritable)="promoted,alias=Date of Death,single,date" #label:Address(inheritable)="promoted,alias=Address,single,text"
- Go to the note you want to add this to or create a new note with those three labels
- Use the
Include Note
button in the toolbar and add your Infobox note:
This is a work in progress. It may throw up errors or not work entirely. It currently doesn't work with multi-value labels, and there may be much better ways to accomplish this, but it works for my needs.
This is great. The instructions work well and are pretty clear. I can think of a lot of things I would do with this capability.
If I were to suggest improvements, I can think of two. (I know you just got started on this prjoect, so those tips are intended to help, not complain. I'm really liking the work you've done on this!)
The first would be to break down years into decimals. Right now, it appears you break the year in half. Anything before July 1 adds a year (to the age), and anything after July 1 keeps things with the straight math. For example, when you ask a person born in June 2000 how old they are, you would expect them to say 24 years old. Instead, this InfoBox reports 25 years. If you adjusted this to 24.5 years, it seems like it would give a clearer and more expected result.
The second change would be to have an aggregate list of all the dates from notes associated with InfoBox. That way, you can click on a note similar to "Collection Views" and see all the birthdates and addresses in a single page.
This is great work! Thanks!!!