this post was submitted on 26 Jun 2023
4 points (83.3% liked)

ObsidianMD

3764 readers
1 users here now

Unofficial Lemmy community for https://obsidian.md

founded 1 year ago
MODERATORS
 

I would like to make a template but I would like to see some examples of what is possible to achieve.

top 4 comments
sorted by: hot top controversial new old
[–] [email protected] 3 points 1 year ago (1 children)

I use the plugins CustomJS, Dataview, and Templater to make this daily journal entry.

A few notes about this template:

  • The file name is YYYY-MM-DD so I make an alias in the format of "Mon June 26 2023" so it's easier for me to search for specific day later
  • I use CustomJS to import my dataviewjs files to display the previous and next days, any birthdays for today, and any backlinks to this journal entry
  • I used \ so this all displays in a single code block, don't include these when using a template in obsidian
***
aliases: <% tp.date.now("ddd MMMM D YYYY", 0, tp.file.title, "YYYY-MM-DD") %>
title: 
day: <% tp.file.title %>
***

\```dataviewjs
const {PreviousNextDay} = customJS
PreviousNextDay.display(dv)
\```

***

# <% tp.date.now("ddd MMMM D YYYY", 0, tp.file.title, "YYYY-MM-DD") %>

\```dataviewjs
const {Birthdays} = customJS
Birthdays.display(dv)
\```

\```dataviewjs
const {Backlinks} = customJS
Backlinks.display(dv)
\```

## Journal

[–] [email protected] 1 points 1 year ago

This is the code for showing the previous and next days, but only if they are created. So if you have June 26 and are on that note, but you don't have the 25th or 27th created but you do have the 24th created, it will display something like this ← 2023-06-24 | 2023-W26 | (none) → with the middle one here being the week.

I took this dataviewjs code I found from the obsidian forums and modified it slightly:

class PreviousNextDay {
    base_path = "a journal/"

    display(dv) {
        var none = '(none)';
        var t = dv.current().file.day ? dv.current().file.day.toISODate() : luxon.DateTime.now().toISODate();

        var year = moment(t, format).format("YYYY");
        
        var p = dv.pages('"' + this.base_path + year + '"').where(p => p.file.day).map(p => [p.file.name, p.file.day.toISODate()]).sort(p => p[1]);

        // Obsidian uses moment.js; Luxon’s format strings differ!
        var format = app['internalPlugins']['plugins']['daily-notes']['instance']['options']['format'] || 'YYYY-MM-DD';

        var week_format = 'gggg-[W]WW';
        var week = moment(t, format).format(week_format);

        var nav = [];
        var today = p.find(p => p[1] == t);
        var next = p.find(p => p[1] > t);
        var prev = undefined;
        p.forEach(function (p, i) {
            if (p[1] < t) {
                prev = p;
            }
        });
        nav.push(prev ? '[[' + prev[0] + ']]' : none);
        nav.push(today ? '[[' + week + ']]' : "N/A");
        nav.push(next ? '[[' + next[0] + ']]' : none);

        dv.paragraph(' ← ' + nav[0] + ' | ' + nav[1] + ' | ' + nav[2] + ' → ');
    }
}
[–] [email protected] 1 points 1 year ago

My daily is simply writing prompts. Nothing fancy.

[–] [email protected] 0 points 1 year ago

I have two templates that's all

-Daily tempale which simply makes:

#daily/ @today

Precedent Daily Note:


And a Recepy Template for when I steal recipes from my mom, which is basically here so that I don't have to write the box:

[!summary] 👪 Service pour: X personnes Difficulty: Time:
Info Supplémentaire:

Ingrédient Nécessaire

  • [ ]
  • [ ]
  • [ ]
  • [ ]

Instructions


[!hint]

.

[!warning] .

Don't do templates just to do templates in my opinion, do it because you see that you do something multiple times in a row, it's something that comes with time