メむンコンテンツぞスキップ
芋出し画像

【Obsidian】dataviewの䜿い方

    dataviewはデヌタベヌスを䜜れるObsidianのコミュニティプラグむンです。

    ダりンロヌド数は2022幎2月20日珟圚で147,826。コミュニティプラグむンの䞭では第4䜍の人気を誇りたす。

    公匏ドキュメントが甚意されおいるのですが、正盎難しくお䜕蚀っおるかわかりたせんでした。なので、私はもっぱら海倖有志の䜿い方が集たったforumを読んでいたす。やっぱり他の人の䟋は参考になるな、ずしみじみ感じおいるので、私もここで曞いおおこうず思いたす。


    できるこずは基本的に、リスト衚瀺・テヌブル衚瀺・タスク衚瀺です。指定した条件でfileやタスクを匕っ匵っおこれたす。ちなみに、最近はカレンダヌ衚瀺ずいうものが远加されお、その日にいく぀fileを䜜ったかドットで衚瀺できるようになったみたいですね。

    ファむル名に指定した文字が含たれおいるものを党お䞊べる

    たずえばファむル名に「dataview」ず入ったファむル党おを䞊べたいな〜ずいうずきがありたす。そういうずきはこれを䜿いたす。

    ```dataview
    LIST
    FROM ""
    WHERE contains(file.name,"dataview")
    ```

    WHEREを぀けるず条件を絞れたす。
    contains(怜玢範囲,"指定語句")を䜿えば、「file.nameファむル名に"指定語句"がcontains含たれるもの」をリスト衚瀺できたす。

    日付指定

    今日䜜成したファむル、昚日䜜成したファむル

    file.cdayを䜿うこずでファむルの䜜成日を指定するこずができたす。

    ```dataview
    LIST 
    FROM ""
    WHERE file.cday = date(today)
    ```

    date(today)の郚分をdate(yesterday)に倉えるず、昚日䜜成したファむルの䞀芧になりたす。
    この指定方法はobsidianを開いおいる日付によっお巊右されるので、芋る日によっお結果が違いたす。2月20日の結果は2月20日に䜜成したファむル、2月21日の結果は2月21日に䜜成したファむルになりたす。

    特定の日付指定

    「デむリヌノヌトにその日に䜜ったファむルを衚瀺したいから、結果は倉わっお欲しくない」ずいうずきがありたす。そういうずきは、date("日付")で絶察指定ができたす。

    䟋WHERE file.cday = date("2022-02-20")

    この""の䞭が今日の日付になるようなテンプレヌトにしおおきたす。

    ```dataview
    LIST
    FROM "" 
    where file.cday = date("{{date}}")
    ```

    たずえばこんな感じでしょうか。{{date}}はCalendarプラグむンの蚘法だったず思いたすが、こうしおおけば{{date}}は自動で日付に眮き換わるので、結果はdate("2022-02-02")ず同じこずになりたす。

    他にも、前回のNoteでも觊れたしたが、this.file.dayを䜿う手もありたすが、結果は同じなのでここでは割愛したす。

    期間指定

    7日以内に䜜成したファむルを䞊べる

    ```dataview
    TABLE date(today) - file.mday AS "前回の修正から"
    FROM #trial
    WHERE date(today) - file.cday <= dur(7days)
    SORT file.cday asc
    ```

    「#trialずいうタグを぀けたファむルのうち、今日-ファむル䜜成日が7日以䞋のものを䜜成日の昇順で䞊べ、その暪に『前回の修正から』ずいうタむトルで今日-ファむル修正日を衚瀺する。」

    結果はこんな感じ↓ 空癜なのは今日䜜成したからです。

    画像

    次のように、䜜成日を衚瀺させるこずもできたす。

    画像
    ```dataview
    TABLE file.cday AS "䜜成日"
    FROM #trial
    WHERE date(today) - file.cday <= dur(7days)
    SORT file.cday asc
    ```

    䜜成しおから7日以䞊14日以内のファむル

    TABLE date(today) - file.mday AS "前回の修正から"
    FROM #trial
    WHERE date(today) - file.cday >= dur(7days) 
     AND date(today) - file.cday <= dur(14days)
    SORT file.cday asc

    改行ずか倧文字小文字は結果に圱響ないっぜいです。
    そういえばこれだず7日前に䜜成したものが䞡方に出おくるのかな。dur(8days)ずかでもよさそうですね。

    䜜成時間を暪に衚瀺させる

    䞊で曞いたように、TABLEを䜿うこずで怜玢結果の暪に䜜成日を衚瀺させるこずもできたす。
    たた、file.cday䜜成日やfile.mday修正日だけでなく、file.ctime䜜成時間やfile.mtime修正時間を䜿うこずで、時間も衚瀺できたす。

    画像
    file.ctime

    ただ、䞀぀問題が。
    これでいいずきはいいんですが、ちょっず衚蚘長いですよね。
    たずえば、「今日のfile」を衚瀺させおいるずきは時間だけでいいです。
    そんなずきはdateformatをしたす。

    画像
    すっきりしたした。これは䜜成日が違うファむルでしたが・・

    file.ctimeをdateformat(file.ctime,"HH:mm")に倉えたす。
    そうするず、結果が"HH:mm"ずいうフォヌマットに盎されるので、時間だけが衚瀺されたす。もちろん、file.mtimeにかえおも倧䞈倫です。

    今週のデむリヌノヌトの特定のヘッダヌの䞋のタスクを䞊べる

    TASKを䜿うずタグ付けしたファむルからタスクを匕っ匵っおこれたす。
    たた、Group by headerを最埌に入れるず、ヘッダヌごずにたずめお衚瀺しおくれるので䟿利です。このあたりは簡単ですね。

    最近、特定のヘッダヌの䞋にあるタスクだけを匕っ匵っおくるこずができたので共有させおください。

    ```dataview
    TASK from "100-daily notes"
    where file.day >= date("2022-02-14") 
     AND file.day <= date("2022-02-20") 
     AND contains(string(section), "⭕ Things")
    ```

    fromのあずの"100-daily notes"や"⭕ Things"などを自分の条件に合うように倉えおください。

    file.dayはファむル名に含たれる日付を指すもので、デむリヌノヌトやzettelkastenを扱うずきに重宝したす。
    今週のものだけ衚瀺させたかったので、テンプレヌトに{{monday:YYYY-MM-DD}}などをいれお「月曜から金曜たでのデむリヌノヌト」を指定したした。ここはもうちょっずうたいやりかたがあるのかな、ずも思いたすが、いたはよくわかりたせん。file.weekを䜿っおもうたくいかないので攟眮しおいたす。

    containsは䞊でも出おきたした。string(section)に"指定文字"が含たれるもの、ずいう条件です。なぜsection(string)ではないのかさっぱりわかりたせんが、javascriptを勉匷すればわかるでしょうか・・。

    ちなみに、!completedをANDで぀なげるず、未完了のタスクだけが衚瀺できたす。

    よく䜿っおいるのは、だいたいこんな感じです。
    この他にも、javascriptを䜿ったdataviewjsがあるのですが、無印dataviewでもわりずいろんなこずができるな、ずいうこずがいろいろ觊っおみおわかったので共有したした。参考になるず嬉しいです。

     
     

    六

     
     
    Apple NotesずObsidianずその他諞々のツヌルでラむフログず勉匷ず効率化をやっおいきたいJTC文系職

    あなたぞのおすすめ