タグ

JavaScriptとObsidianに関するdiet55のブックマーク (49)

  • Improve Obsidian Startup Time on Older Devices with the FastStart Script

    diet55
    diet55 2023/06/22
    すごい!初めて聞いた。Obsidian Mobileのロードの遅さはプラグインの多さ。そのため、最初はTemplaterプラグインだけをロードし、TemplaterのJavaScriptスクリプトから await はさんで順次他のプラグインを背景でロードφ(..)メモメモ
  • Obsidian dataviewでメタデータを活用しよう - Jazzと読書の日々

    前回、入力ボックスを検討しましたが、別の技がありました。 Dataview dataviewはキーの埋め込みができます。 「key::テキスト」とすると「dv.current().key」で「テキスト」を拾うことができる。 「dv.pages('').key」とすると、全ファイルから「key::なんとか」の部分を集めてきます。 これを「メタデータ」と呼びます。 たぶんdataviewの最大の特徴でしょう。 ただのテキストがそのままデータベースに早変わり。 書式の縛りもない。 このメタデータを応用して「アプリ」を作ることもできます。 Unicode表 文中に「部首::」という一行を設け、その文字を拾って表を作る方法。 部首:: ```dataviewjs a = dv.current().部首 if(a){ k = a.codePointAt(0) s = "" for(i=0; i<500

    Obsidian dataviewでメタデータを活用しよう - Jazzと読書の日々
  • Obsidian dataviewjsにコピーボタンをつける - Jazzと読書の日々

    dataviewは面白いけど、表ができたらそれだけで、そこからの発展がない。 そう思ってました。 でもdataviewの沼は底無しに深かったのです。 インラインJS インラインJSについて調べたとき、Markdown変換のコマンドがあったわけです。 なんのため? これは「使え」ってことだなあ。 どう使えばいいんだろう? dv.el() エレメント作成のコマンド。 これもdataviewに用意されている。 HTMLタグをつけるときに使えます。 じゃあ、buttonタグはどうだろう? もしボタンでクリップボードに表が保存できたら。 それ、いいじゃないか。 コピーボタン テーブルの下に「copy」というボタンが出てきます。 これをタップするとクリップボードにMarkdownが保存される。 貼り付けると、それが表になる仕組みです。 ```dataviewjs s = [ ["阪神", 20, 13

    Obsidian dataviewjsにコピーボタンをつける - Jazzと読書の日々
    diet55
    diet55 2023/05/16
    「dataviewは面白いけど、表ができたらそれだけで、そこからの発展がない。 そう思ってました。 でもdataviewの沼は底無しに深かったのです。」「インラインJSについて調べたとき、Markdown変換のコマンドがあったわけです」
  • ObsidianでインラインJSを使ってみる - Jazzと読書の日々

    書いている途中にスクリプトを埋め込む。 文章とプログラミングの融合。 そんな変な使い方がObsidianならできます。 特殊すぎて頭の切り替えが追いつかない。 基形 前回、数式を埋め込めることが判明しました。 OK? 何か難しいですよね。 でも計算式を残すと、なぜその計算をしたか理由もわかる。 反面、他のアプリで開いても計算するわけではない。 一長一短です。 応用編 数式が一ならいいけど、複数の場合はどうすればいいのでしょうか。 どうやらコンマ区切りで書くことができます。 `$= a=11, b=22, a+b` 変数を使って公式に代入したい場合ですね。 これなら数値を変えながら計算結果を参照できる。 DataviewJS もっと複雑な場合はどうしたらいいでしょうか。 それはdataviewjsにしちゃえばいいわけです。 ```dataviewjs a=11 b=22 dv.span(

    ObsidianでインラインJSを使ってみる - Jazzと読書の日々
  • Obsidianを簡易電卓として使う方法 - Jazzと読書の日々

    簡単な計算をしたいとき、電卓アプリを立ち上げていませんか。 Obsidianなら計算式を書くだけで結果が表示されます。 文章を書く手を止めなくていい。 ちょっとびっくりしました。 Dataview Obsidian - Connected Notes 1.4.4 分類: 仕事効率化,辞書/辞典/その他 価格: 無料 (Dynalist Inc.) Obsidianで「=」を二つ並べるとハイライトになる。 この仕様に困ることがあります。 要らぬところに色がつく。 それで「=」をバッククォートで囲んでみました。 そしたらDataviewがエラーを吐き出したのです。 おやおや、何事か。 このバッククォートとイコールの組み合わせはインライン・コマンドだったのです。 知らなかった。 そして面白い。 これは研究してみよう。 Obsidian plugin: Dataview 書式 Dataviewプラ

    Obsidianを簡易電卓として使う方法 - Jazzと読書の日々
    diet55
    diet55 2023/05/13
    「それで『=』をバッククォートで囲んでみました。 そしたらDataviewがエラーを吐き出したのです。」「これでMath関数が使えるようになります。」「本来の使い方 フロントマターに作成日や修正日を入れる用途かな。」
  • ObsidianをScrapboxみたいにするプラグイン - Jazzと読書の日々

    ありがとう。 2Hop Links Plugin Plus コミュニティプラグインにある「2Hop Links Plugin」はモバイルでは使えませんでした。 インストールできても有効化でFailする。 その状態のまま開発が止まっていた。 ところがどっこい、その修正版を作ってくれた人がいるのです。 うれしい。 インストール Obsidian plugin: Obsidian42-BRAT Obsidian42-BRATを使います。 野良レポジトリをインストールするプラグインです。 このBRATの「Add Beta Plugin」に下記アドレスを入力します。 https://github.com/L7Cy/obsidian-2hop-links-plugin 「Add Plugin」するとコミュニティプラグインに「2Hop Links Plugin Plus」が追加されます。 で、スイッチO

    ObsidianをScrapboxみたいにするプラグイン - Jazzと読書の日々
    diet55
    diet55 2023/05/03
    「2Hop Links Plugin」のモバイル 版。但し、BRAT版。残念。どうだろう?(野良ではなくて、自分で diff を取って修正すればよいのですが😜)
  • 意図的に雑な図形をコードで描く

    描画ライブラリを使える環境ならば、たとえば円を描くのに書くコードは一行で済むだろう。ただ、コード一行でほぼ完全な真円を描いてもなにかつまらない。そこであえて意図的に雑な図形をコードで描きたいと考えて試行錯誤した結果、ある程度満足するところまでいったのでその技法について解説を行う。 意図的に雑な線を描く まずは雑な線をコードで表現するために、実際に適当な線を何度も描いてみて特徴を探してみる。そうすると下記のような特徴が現れた。 始点と終点の位置が多少バラける 途中から位置が上下にずれているのに気づきそれを元の位置に直そうとする 上記の内容を3次ベジェ曲線程度で表現するために色々と試行錯誤した結果、下記の手順になった。 始点と終点を用意する 始点から終点までの20%〜40%の地点に点を置く 更に上記の倍の地点に点を置く 4つの点を少しずらす 4つの点をもとに3次ベジェ曲線を描く 以前、Twit

    意図的に雑な図形をコードで描く
  • ObsidianでURLアドレスからタイトルを自動取得 - Jazzと読書の日々

    URLアドレスを貼り付けたあと、もう一度Safariに戻ってタイトルをコピーする。 それからMarkdownのリンク形式に書き換える。 それって手間じゃないですか。 もちろんブックマークレットやショートカットを使いタイトル込みでコピーする方法もあります。 ただそれもスマートではない。 もっと簡単に考えましょう。 Linker.md Templaterスクリプトです。 ツールバーに登録してお使いください。 <%* e = app.workspace.activeLeaf.view.editor; p = e.getCursor().line; url = e.getLine(p); if(url.match(/^https?:/)){ x = await request({url}); s = x.toString().match(/<title>(.*?)<\/title>/i)[1];

    ObsidianでURLアドレスからタイトルを自動取得 - Jazzと読書の日々
    diet55
    diet55 2023/03/28
    「URLアドレスの書いてある行にカーソルを置いてスクリプトを実行。 タイトル付きのMarkdownリンクに変換します。 」「大事なのは、chatGPTの回答を元に、ネットで検索して類題を探してみることでした。」
  • https://twitter.com/cat2151/status/1639920437336608769

  • https://twitter.com/cat2151/status/1639919801786314753

    diet55
    diet55 2023/03/26
    Obsidianという世間的にはマイナーなノートアプリのTypeScriptでのプラグインの作り方もBing AIは教えてくれるのか!そのままでは動作しなくてもヒントにはなりそう!?あー何かアイデアが下りてこないかなー。
  • mshr-h.com

    personal website!

    diet55
    diet55 2023/03/18
    私も同じことをしているのでわかるけど、Templaterのデイリーノートのテンプレートがものすごいことになってる。ハードコーディングではなくて、もっと上手いやり方がありそう。でもTasksプラグインなどは合わなかった😅
  • Obsidian Templaterスクリプトのまとめ(暫定版) - Jazzと読書の日々

    万策尽きたら総集編。 Templater Obsidian - Connected Notes 1.4.3 分類: 仕事効率化,辞書/辞典/その他 価格: 無料 (Dynalist Inc.) Templaterスクリプトを使うとアクションが組める。 これに惚れ込みました。 今までTextwellでテキストを加工していました。 でもObsidianでアクションが組めればOSに縛られなくて済む。 「電子文房具」の選択肢が増えるのは嬉しい。 Obsidian plugin: Templater ちなみにプラグインのスキームは「obsidian://show-plugin?id=Templater」。 基Templaterスクリプトは下記形式のmdファイルです。 <%* スクリプト体 %> このスクリプトにJavascriptを使いますが、テキストを扱う拡張がされています。 Templa

    Obsidian Templaterスクリプトのまとめ(暫定版) - Jazzと読書の日々
  • Obsidianでデイリーノート一気読みスクリプト - Jazzと読書の日々

    これも改造版。 Review 過去30日間のデイリーノートを閲覧するTemplaterスクリプト。 今回dataviewやCalloutを採り入れ進化しました。 なのでdataviewプラグインも必要。 Review.md 変数FORMATにデイリーノートの日付書式を入れてください。 <%* FORMAT = "YYYY-MM-DD"; s = ">[!check]+ todo list\n>```dataview\ntask where !completed group by file.link\n>```\n"; for(i=0;i<30;i++) s+= "#### ![[" + tp.date.now(FORMAT, -i) + "]]\n"; f = "Reviews.md"; p = app.vault.getAbstractFileByPath(f); if(p){ awai

    Obsidianでデイリーノート一気読みスクリプト - Jazzと読書の日々
    diet55
    diet55 2023/03/16
    「今回はdataviewで未完了のタスクも並べることにしました。 チェックを入れればリストから消えます。 タスクをタップすればデイリーノートを開く。 CallOutなので折り畳むこともできます。」
  • Obsidian:一行目をファイル名にするスクリプト(改) - Jazzと読書の日々

    思った以上によく使う。 Naming あとからファイル名を決める方式。 テキストの一行目がファイル名として転記されます。 やっぱり内容が見えてこないとファイル名は付けようがありません。 で、ファイルを書くこともライフログの対象だなあ、と思いました。 ファイル名をつけたとき、デイリーノートにも記録する。 そういうスクリプトはどうだろう? Naming.md Templaterスクリプトです。 <%* FOLDER = "journals/"; FORMAT = "YYYY-MM-DD"; s = tp.file.content.split("\n")[0]; tp.file.rename(s); f = FOLDER + tp.date.now(FORMAT) + ".md"; p = app.vault.getAbstractFileByPath(f); s = "\n## " + tp.

    Obsidian:一行目をファイル名にするスクリプト(改) - Jazzと読書の日々
    diet55
    diet55 2023/03/15
    ああ、これは便利かも。私は毎回手作業でやっていた。こういうところをプログラミングするように意識しないと。Templaterすごいな。「ファイル名をつけたとき、デイリーノートにも記録する。 そういうスクリプト…」
  • Obsidianの一行目をファイル名にするアクション - Jazzと読書の日々

    Textwellに慣れると「ファイル名」を付ける習慣がない。 Obsidianは最初にこれを尋ねてくる。 パソコンだなあ、と思います。 アクション 今回はファイル名。 新しいファイルを作るとき、名前を決めるのが面倒くさい。 「無題のファイル」でもいいじゃないですか。 後から決めればいいことです。 Naming.md タイトル付けのスクリプト。 TemplaterのTemplate Hotkeyに登録してください。 <%* s = tp.file.content.split("\n")[0]; tp.file.rename(s); %> 使い方 「無題のファイル」のまま文章を書く。 書いているうちに内容が固まってきて、一行目にタイトルを書きますよね。 そのときNaming.mdを実行すると、その一行目をファイル名に書き込みます。 推敲するうち、また書き換えることもある。 何度もある。 誰だっ

    Obsidianの一行目をファイル名にするアクション - Jazzと読書の日々
    diet55
    diet55 2023/03/10
    “「無題のファイル」のまま文章を書く。 書いているうちに内容が固まってきて、一行目にタイトルを書きますよね。 そのときNaming.mdを実行すると、その一行目をファイル名に書き込みます。”
  • GitHub - x-motemen/blogsync: Push and pull blog entries from/to local filesystem

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - x-motemen/blogsync: Push and pull blog entries from/to local filesystem
    diet55
    diet55 2023/03/06
    「はてなBlog用のCLIクライアントです」。※Obsidianの記事から来たので。Obsidianからのはてなブログへの投稿自体はJavaScriptで5行ぐらいでできそう?(私ははてなブログのユーザではないので)。
  • Obsidian Templaterのvault系ファイル操作一覧 - Jazzと読書の日々

    覚え書き。 基操作 Templater沼にズボボボボ。 基的なところは上記記事を参照のこと。 今回はファイルを扱うコマンドを確認してみます。 ファイル操作 相対パスはfile、絶対パスはpathで区別します。相対パスを絶対パスに変換するには下記コマンドをお使いください。 file = "foo/bar.md"; path = app.vault.getAbstractFileByPath(file); ファイルを新規作成する。Templater専用コマンドで、ファイルのタイトルを決めて、作成後に開く方法。 await tp.file.create_new(text, title, true); ファイルを新規作成する。相対パスを使う。デフォルト以外のフォルダにもファイルが作成できる。 path = await app.vault.create(file, text); ファイルを読み込

    Obsidian Templaterのvault系ファイル操作一覧 - Jazzと読書の日々
    diet55
    diet55 2023/03/03
    「Templater沼にズボボボボ。 」「今回はファイルを扱うコマンド」「スクリプトの面白いのは、作ってみないと自分の欲しかったものかどうかわからないところ。 (中略)動いているうちに自ずから見えてくる。」
  • Obsidianでデイリーノートをスクロールする - Jazzと読書の日々

    ファイル操作を覚えた。 Review 前回はファイルを一度削除してました。 調べると、上書きや新規作成のコマンドもある。 このほうがスマートです。 Review.md デイリーノートを30日分閲覧します。 <%* FORMAT = "YYYY-MM-DD"; s = ""; for(i=0;i<30;i++) s+= "#### ![[" + tp.date.now(FORMAT, -i) + "]]\n"; f = app.vault.getAbstractFileByPath("Reviews.md"); if(f){ await app.vault.modify(f, s); }else{ f = await app.vault.create("Reviews.md", s); } await app.workspace.activeLeaf.openFile(f); app.com

    Obsidianでデイリーノートをスクロールする - Jazzと読書の日々
    diet55
    diet55 2023/02/28
    「Commanderでリボンに登録し呼び出すだけ。」「TemplaterではCodeMirrorのコマンドが使える。 これってとんでもないことですね。 『これはダメだろう』と思っても、探せば方法が用意されている。」
  • Obsidianで未完了のTodoをリストアップする - Jazzと読書の日々

    タスク管理に使えるかな。 TodoList.md dataviewで、完了になってないタスクを絞り込み。 ```dataview task from "" where !completed group by file.link ``` fromにデイリーノートを指定してもいい。 使い方 そのままチェックボックスをタップすれば完了。 簡単。 完了日 この方法を使うとタスクの完了日も記錄できます。 dataviewの設定にある「Automatic Task Completion Tracking」をONにしてください。 チェックボックスをタップすると完了日が付加される。 下の「Use Emoji Shorthand」にすると✅付きで記錄されます。 この日付はfile.tasks.completionという変数で取得できます。 まとめ file.tasksだけで組もうとして半日かかった。

    Obsidianで未完了のTodoをリストアップする - Jazzと読書の日々
    diet55
    diet55 2023/02/18
    「 TodoList.md dataviewで、完了になってないタスクを絞り込み。」
  • Obsidian Templaterで全文変換をする方法 - Jazzと読書の日々

    未知の領域。 Templater アクションの組み方は前回を参照のこと。 今回は文章の加工を考えてみました。 これができれば、使えるアクションが一気に増えます。 NoHead.md 例として、見出し記法を一括削除するスクリプト。 <%* s = tp.file.content.replace(/^#+ /mg, ""); e = app.workspace.activeLeaf.view.editor; e.getDoc().setValue(s); %> 実行すれば、見出しから「#」が取り除かれます。 見たとおりreplaceでの置換ですから、正規表現を書き換えればどんなパターンにも対応します。 CodeMirror どうやらObsidianはCodeMirrorでプログラミングしているらしい。 そういえばcssでよくcmって見かけたけど、これだったか。 なので、CodeMirrorのコ

    Obsidian Templaterで全文変換をする方法 - Jazzと読書の日々
    diet55
    diet55 2023/02/04
    「どうやらObsidianはCodeMirrorでプログラミングしているらしい。 そういえばcssでよくcmって見かけたけど、これだったか。 なので、CodeMirrorのコマンドがそのまま使えます。 」知らなかった。勉強になるなー。