ページ後半に日本語のドキュメントがあります。 Japanese documentation is located on the second half of this page.
Daily notes are a good place to write down various little notes and thoughts. However, sometimes it can be difficult to find which daily note you wrote them in later.
This plugin creates a custom view that displays the outlines of multiple daily notes at once. The outline can display not only headings, but also links, tags and list items.
In Daily Note Outline v1.5.0, a feature to create daily notes for unresolved links has been implemented.
In short, here's how it works:
If you're using the daily note format YYYY-MM-DD.md, and there's a link like [[2024-01-01]]
in any note in your vault, but 2024-01-01.md doesn't exist, it will create a new 2024-01-01.md.
This feature is for detecting backlinks to daily notes.
For example, if you create a template [[{date}]]
and assign a hotkey to it using the Hotkeys for Templates plugin by @Vinzent03, you can insert a link to the daily note for that day inside your notes. If you have the showBacklinks setting enabled in DNO, files that link to that date will be listed as an outline. If the corresponding daily note doesn't exist, that backlink won't show up in the outline. However, with this new feature, DNO will detect unresolved links to daily notes and create the corresponding daily notes, allowing all daily note links to be displayed in the outline.
Therefore, this feature is unnecessary for those who create daily notes every day.
Also, this feature is unnecessary for those who don't display backlinks in DNO.
There are two ways to use this feature:
Manual: Run the "Create daily notes for unresolved links" command from the command palette to detect unresolved links and create the corresponding daily notes.
Automatic: Turn on "Create daily notes corresponding to unresolved links at startup" in Settings -> Others, and the same command will run automatically when the view starts up.
Note 1
If you have a large number of links to non-existent daily notes, many daily notes may be created. (A notification to show progress will be shown if more than 5 DNs are created at once).
Therefore, the first run may take a long time. Subsequent runs will be much quicker.
Note 2
If you're using the Daily Notes core plugin or the regular Periodic Notes plugin, links to past dates will create empty daily notes, while links to the current day or future dates will create daily notes with the template applied.
However, if you're using the beta version of Periodic Notes (1.0.0-beta3), the template will also be applied when creating daily notes for past dates.
This is because the beta version of Periodic Notes automatically applies the template when it detects that a daily note with zero content has been created.
Install the plugin from the community plugin list.
Make sure either Daily Note core plugin or Periodic Notes plugin is enabled.
To display the outline, choose "Daily Note Outline: Open Outline" in the command pallete.
To change the date range to display, click on the left and right arrows.
To return to the initial date range, click on the house icon.
Click on the refresh icon to redraw the outline.
Click on the gear icon to open setting (Right-clicking opens a context menu where you can quickly change several settings).
Click on the calendar with plus icon to create/open today's daily note (you can create/open tomorrow's daily note by right-clicking).
Click on each outline element to open its location.
Push Ctrl key to preview.
I recommend that you first set the display/hide settings for each outline element (headings, links, tags, and list items) in the settings.
Daily Note Outline v1.0.0- supports for periodic notes. That is, support for weekly/monthly/quarterly/yearly notes and calendar sets.
(For more information on periodic notes, see https://github.com/liamcain/obsidian-periodic-notes)
To display periodic notes in DNO, the following steps are required.
Notes
Daily Note Outline v1.4.0 adds displaying backlink files.(Settings -> Basics -> Show backlink files)
In my use case, I have created a template file like [[{{date}}]]
and assigned a hotkey with the Hotkeys for templates plugin by @Vinzent03 (https://github.com/Vinzent03/obsidian-hotkeys-for-templates) to insert a link to the daily note for that day.
Users who create daily notes every day will find this convenient, as they can see the note with the date inserted from DNO view.
Notes
From a speed perspective, I strongly recommend installing Dataview plugin when turning this feature on.
The Dataview plugin caches the vault's backlink information, and DNO attempts to use its cache when Dataview plugin is activated. In this case, the backlink information can be retrieved significantly faster than without Dataview.
In order to hide unnecessary items and display only the necessary ones, three types of filter functions are implemented: Simple filter, Include, and Exclude.
Simple filter simply hides items that match a specified word or phrase. The hierarchy of items is not taken into account.
Include can be applied to only one type of outline element. It treats the range from the outline element of the specified type to the next similar element as a block, and only items matching the specified word or phrase and belonging to that block are displayed.
Conversely, Exclude hides matching items and their blocks. If you specify an element type in the "excluding ends at" section of the settings, or if Include is enabled, the block is considered to have ended at that element, and only that part of the block is hidden.
Include and Exclude can be used at the same time. (However, it does not make sense to specify the exclude keyword for an element type that is specified in Include.) Simple filter can be used in conjunction with other filters. For example, if you specify the same keywords as those specified for Include, you can display only the elements that belong to the elements matched the include keywords, not the elements themselves.
You can extract only outline elements that contain a specific words. There are three ways to do this.
Some child items are not initially displayed and will appear when the parent item is turned on.
When backward search is used, daily notes of the specified number of days in the future are also displayed (If you set it long enough, you can also use this plugin as a list of upcoming events!).
For forward search, specify the date in YYYY-MM-DD format to start the search at startup.
Clicking on the date range under UI buttons jumps to the date.
Specify the number of days to be explored per page. It is recommended to set a shorter period for those who use Daily notes every day and a longer period for those who use it only occasionally. I would recommend about 7-56 days.
Choose whether each element should be displayed in outline.
With respect to list item, if this setting is off, it shows only the first item in a continuous list. When turned on, it displays all list items at root level.
Display setting for tasks (list items including checkboxes). Show all tasks will show all levels of tasks, regardless of the list settings above; Task only will hide all list items except for tasks; Hide completed tasks will hide completed tasks.
Display file information to the right of each daily note file name.
lines: number of lines in the file
distance: how far away the period is from the base date (today for backward search, the date specified in Onset date for forward search)
Specify where to display the plugin's view when redisplaying or updating. (You can specify other than the left and right sidebars, but the behavior may not be as sophisticated.)
This section will not appear unless the Periodic Notes community plugin is activated.
Turn on if you want to use the calendar set in the Periodic Notes plugin. (Periodic Notes beta version must be installed)
Turn on if you want to use periodic notes.
Specify the search duration per page for each periodic note.
Displays the corresponding date range next to the file name of the weekly note.
Choose whether each level of headings should be displayed in outline.
Show a few subsequent words next to each outline elements.
Show subsequent sentences as a tooltip with mouse hover.
Specify the direction to display the tooltip preview.
(I couldn't find the way to automatically determine appropriate direction...)
If each outline element contains a specified word or phrase, that outline element will not be displayed.
Specify one per line.
Specifies the type of outline element to apply the Include filter to.
Only outline elements containing the specified word or phrase and the block following it will be displayed. Each should be separated by a new line.
Specifies whether the beginning part of a note that precedes the appearance of the outline element specified in Element type for include is to be displayed.
If any of the outline element types is specified in this field, the area excluded by Exclude filter is terminated at the specified element. If any type is specified in Include filter, Exclude is terminated at that type and this field is ignored.
The outline element containing the specified word or phrase and the area following it will be hidden. Each should be separated by a new line.
Sets the appearance of each outline element when it is displayed. An icon and prefix string can be added to each element. If you choose 'custom' for icon, enter icon name of the Lucide icon (https://lucide.dev/ ) in 'Custom icon' field. Some icons do not seem to be able to be displayed.
When you choose 'follow preceding headings', other elements are indented according to the preceding heading level.
If you enter a prefix for headings, turning this item on will repeat the prefix for the number of levels of headings.
Indentation is added according to the level of the heading.
Append a string indicating the status of the checkbox to the end of the task prefix.
If you are using the beta version of the Periodic Notes plugin, a wider range of file names will be recognized as periodic notes. Each of these options hides files that are not md files or files that do not match the format.
If turned on, some debug infromation is displayed in the console.
In developing this plugin, I have use many great plugins in Obsidian community as references. In particular,
Daily note interface by @liamcain for processing daily notes.
Spaced Repetition by @st3v3nmw and Recent Files by @tgrosinger for creating custom views.
The code for creating a new periodic note is partially modified from Periodic Notes by @liamcain (MIT License).
I also searched and referred to a bunch of posts in plugin-dev channel on Discord.
If you like my plugin, I would appreciate it if you could buy me a cup of coffee!
1.5.0
- HH:mm text
), used in Thino by @Boninall and some scripts, can now be assigned a distinct icon as Time List.Fixed
1.4.1
show links in properties
in the settings1.4.0
1.3.1
1.3.0
1.2.3
1.2.2
1.2.1
1.2.0
Settings -> others -> Show only exactly matched files
, you will see only files that exactly match the format.1.1.1
1.1.0
1.0.0
0.6.0
0.5.0
0.4.0
0.3.0
0.2.0
0.1.1
デイリーノートはちょっとしたメモや雑多な考えを書き留めるのに便利です。しかし、後からどこに書いたのか探すのに苦労することがあります。
このプラグインは、サイドペインに複数のデイリーノートのアウトラインを一括表示して、デイリーノートに書いた内容を把握しやすくするためのものです。見出しだけでなくリンク、タグ、リスト項目なども表示できます。
Daily Note Outline v1.5.0で、未解決リンクに対応するデイリーノートを作成する機能が実装されました。
端的に言うとこのような動作をします:
もしあなたがYYYY-MM-DD.mdという形式のデイリーノートフォーマットを使用していたとして、
例えば[[2024-01-01]]
というリンクがvault内のいずれかのノートにあるのに、
2024-01-01.mdが存在しない場合、新たに2024-01-01.mdを作成します。
[[{date}]]
というテンプレートを作成し、Hotkeys for templatesプラグインby @Vinzent03でホットキーを割り当てると、ノート内にその日のデイリーノートへのリンクを張ることができます。このようなリンクが存在する場合、DNOでshowBacklinksの設定をオンにしていると、その日付にリンクしたファイルがアウトラインに一覧として表示されます。対応するデイリーノートが未作成だとそのバックリンクはアウトラインに表示されませんが、本機能でデイリーノートへの未解決リンクを検出し、対応するデイリーノートを作成することで、全てのデイリーノートへのリンクがアウトラインとして表示可能になります。本プラグインをcommunityプラグインリストからインストールし、有効化して下さい。
Daily NoteコアプラグインもしくはPeriodic Notesプラグインが有効になっていることを確かめて下さい。
アウトラインが表示されていない場合は、コマンドパレットから、「Daily Note Outline: Open Outline」を実行して下さい。
表示する日付の範囲を変更したいときは、左右の矢印をクリックして下さい。
家のアイコンをクリックすると初期設定の範囲に戻ります。
更新アイコンをクリックするとビューを再描画します。
歯車アイコンをクリックすると設定を開きます。右クリックでいくつかの項目を素早く切り替えられるコンテキストメニューを開きます。
プラスマークのついたカレンダーアイコンをクリックすると今日のデイリーノートを作成するか開きます。右クリックから翌日のデイリーノートを開けます。
各アウトライン要素をクリックするとその場所を開きます。
各要素の上でCtrlキーを押すとホバープレビューを表示します。
使用にあたり、まず設定画面で各アウトライン要素(見出し、リンク、タグ、リスト項目)ごとに表示/非表示を設定することをお勧めします。
Daily Note Outline v1.0.0以降では、periodic notesへ対応しています。即ち、weekly/monthly/quarterly/yearly note、およびカレンダーセットへの対応です。
(periodic notesについては詳しくは https://github.com/liamcain/obsidian-periodic-notes を参照してください)
periodic notesをDNOで表示するには、以下のステップが必要です。
注意点
Daily Note Outline v1.4.0では、バックリンクファイルの表示を追加しています。設定のBasics -> Show backlink filesを有効化してください。
私の場合、[[{{date}}]]
というテンプレートファイルを作成し、Hotkeys for templatesプラグインby @Vinzent03(https://github.com/Vinzent03/obsidian-hotkeys-for-templates)でホットキーを割り当て、ノートに当日デイリーノートへのリンクを挿入できるようにしています。
毎日デイリーノートを作成している方には、日付が挿入したノートをDNOから参照できて便利かと思います。
注意点
不必要な項目を非表示にし、必要な項目のみ表示するために、simple filter, include, exclude の3つのフィルター機能を実装しています。
simple filterは、指定した単語やフレーズにマッチする項目を、単純に非表示にします。項目ごとの階層は考慮されません。
includeは、1種類のアウトライン要素のみに使えます。指定した種類のアウトライン要素から、次の同種要素までの間をひとつのブロックとして扱い、
指定した単語やフレーズにマッチする項目とそのブロックに属する項目のみを表示します。
逆に、excludeはマッチした項目とそのブロックのみを非表示にします。設定の「excluding ends at」のところで要素種別を指定するか、includeを有効にしていると、
その要素のところでブロックが終了したと判断され、そこまでが非表示になります。
includeとexcludeは同時に使用できます。(ただし、includeに指定した要素種別にexcludeキーワードを指定しても意味がありません。)
simple filterは他と併用できます。例えば、includeに指定したものと同じキーワードを指定すると、includeの対象になった要素自体は表示せず、それに属する要素のみを表示できます。
特定の文字列を含むアウトライン要素のみを抽出できます。方法は3つあります。
1.虫眼鏡ボタンをクリックし、抽出したい文字列を入力して下さい。
2.アウトライン要素を右クリックし、コンテキストメニューからextractを選択して下さい。同じ名前を含むアウトライン要素のみが抽出されます。
3.虫眼鏡ボタンを右クリックし、extract tasksを選択して下さい。タスク(チェックボックスを含むリストアイテム)のみが抽出されます。
もともとfilterなどにより非表示になっている項目は表示されません。
抽出を解除するときは、×ボタン(虫眼鏡ボタンが×ボタンに変化します)をクリックして下さい。
一部の子項目は初期状態では表示されず、親項目がオンになったときに表示されます。
サーチタイプがbackward search のとき、指定した日数分未来のデイリーノートも表示します。長くすれば将来のイベントのリストとしても使えます!
サーチタイプがforward search のとき起動時に探索開始する日付をYYYY-MM-DDの形式で指定します。
また、UIボタンの下の日付範囲の表示をクリックしてもこの日にジャンプします。
1ページあたりに探索するデイリーノートの期間を日で指定します。デイリーノートを頻繁に使用する人は短く、たまにしか使わない人は長く設定するといいと思います。7日~56日くらいでしょうか。
見出し、リンク、タグ、リスト項目(タスク含む)のそれぞれの要素をアウトラインとして表示するかどうか指定します。
リスト項目に関して、この設定がオフになっていると連続したリストの初めの項目だけを表示します。オンになっていると、ルートレベルの項目(=インデントされていない項目)を全て表示します。
タスク(チェックボックスを含むリストアイテム)についての表示設定です。Show all tasksをオンにすると、上のリスト設定にかかわらず、全ての階層のタスクを表示します。Task onlyをオンにするとタスク以外のリストが非表示になります。Hide completed tasksは完了済みタスクを非表示にします。
ファイル名の右側に情報を表示します
lines: ファイルの行数
distance: 基準日からの日数(backward searchでは今日、forward searchではforward searchで指定した日付)や週数など。
再表示やアップデートの際に、どこにviewを表示するかを指定します。 左右のサイドバーが無難です。それ以外も指定できますが、動作は洗練されていないかもしれません。
このセクションはPeriodic Notes コミュニティプラグインが有効化されていないと表示されません。
Periodic Notesプラグインのカレンダーセットを利用する場合オンにしてください(Periodic Notes ベータ版のインストールが必要です)
periodic notesを利用する場合オンにしてください。
それぞれのperiodic notesについて1ページあたりの探索期間を指定します。
Weekly noteを表示しているとき、ファイル名の横に対応する日付の範囲を表示します。
各レベルの見出しをアウトラインとして表示するかそれぞれ指定します。
アウトライン要素の右に、続く数単語をうっすら表示します。
アウトライン要素にマウスカーソルを合わせると、続く文章をツールチップとして表示します。
ツールチッププレビューを表示する方向を指定します(自動で振り分けたかったけどやり方が分かりませんでした…)
指定した単語やフレーズが含まれるアウトライン要素は非表示になります。それぞれ改行で区切って下さい。
指定したアウトライン要素の種別がIncludeフィルターの対象になります。
指定した単語やフレーズが含まれるアウトライン要素と、それに続くブロックのみが表示対象となります。 それぞれ改行で区切って下さい。
ノートの冒頭で、Element type for includeで指定したタイプのアウトライン要素が登場するより前の部分を表示対象とするかどうか指定します。
この項目でいずれかのアウトライン要素タイプを指定した場合、Excludeフィルターによって除外される領域が指定した要素のところで打ち切られます。 Includeフィルターでいずれかのタイプが指定されていた場合、そのタイプのところでExcludeは打ち切られ、この項目は無視されます。
指定した単語やフレーズが含まれるアウトライン要素と、それに続く領域(同種のアウトライン要素、またはExclusion end atで指定した要素が出現する前までの領域)は非表示になります。 それぞれ改行で区切って下さい。
それぞれのアウトライン要素を表示する際の見た目を設定します。 各要素にはアイコンおよびprefix文字列を付加することができます。 アイコンでcustomを選んだ場合、Lucide (https://lucide.dev/ )のアイコン名を入力して下さい。一部のアイコンは表示できないようです。
設定すると、見出し以外のアウトライン要素が直前の見出しと同じだけ(またはさらに1段階多く)インデントされます。
headingsのprefixを入力した場合、この項目をオンにすると、見出しのレベルの数だけprefixが繰り返されます。
見出しのレベルに応じてインデントを付加します。
タスクのprefixの最後にcheckboxの状態を示す文字列を付加します。
Periodic Notesプラグインのベータ版を使用している場合、より幅広いファイル名がperiodic notesとして認識されます。これらのオプションはそれぞれmdファイル以外、フォーマットに合致しないファイルを非表示にします。
オンにするとデバッグのためのいくつかの情報をconsoleに表示します。
本プラグインの作成にあたり、多くの素晴らしいObsidianのプラグインを参考にさせて頂きました。特に、
デイリーノートの処理にdaily note interface by @liamcain を使わせて頂きました。
カスタムビューの作成にSpaced Repetition by st3v3nmwとRecent files by tgrosingerを大いに参考にさせて頂きました。
Periodic noteの新規作成機能に関しては、Periodic Notes by @liamcain (MITライセンス)のコードを一部改変して使用しています。
また、discordの plugin-devの書き込みを多数参考にさせて頂きました。