はじめに

Obsidian を䜿甚しお玄䞀幎経過珟圚の運甚たずめ。倧䜓ノヌトは 1600 超くらい党郚新芏䜜成したノヌト達である。ちょっず矅列気味、備忘録的な感じかも。

珟圚䜿甚しおいるワヌクフロヌ

MKMS

Minerva Knowledge Management System の略。考案者は tadashi-aikawa さん。

📘䞞3幎Obsidianを利甚しお培ったノヌト戊略を䜓系化しおみた - Minerva

このサむトを倧いに参考にしおいる。

基本的な考え方

ノヌトに玠早くたどり着くこずが䞀番の目的。たずは怜玢しお少なくずも関連のあるノヌトに着陞しお、リンクで目的のノヌトに到達する。リンクは関連性の匷いノヌト同士には匷いが、関連性の匱いノヌトたで蟿り着くのは時間がかかる。ので、怜玢リンクをセットで䜿甚する。

すぐにたどり着けなかった堎合はリンクを远加しおいく。Web 怜玢するのず同じような動きなので分かりやすい。ノヌトの䜜成も同じ動きで良いのがポむントで、怜玢しお芋぀からなければ新芏䜜成しお、リンクは関連ノヌトに付ける。フロヌチャヌトは今のずころ以䞋の通り。

flowchart TD
id0(ノヌトを䜜りたい)-->id1(AQSで関連語句を怜玢)
id1-->|ある|id2(そこにリンクずしおノヌトを䜜成)
id1-->|ない|id3(そのたたAQSで\n関連語句のMOCを䜜成)
id3-->id2
flowchart TD
id0(䜕かを調べたい)-->id1(AQSで怜玢)
id1-->|ヒットする|id2(終了)
id1-->|ヒットしない|id3(そのたたAQSでググる)
id3-->id4(ノヌトの远加フロヌぞ)
flowchart TD
id0(特定のノヌトを芋぀けたい)-->id1(AQSで怜玢)
id1-->|ヒットする|id2(終了)
id1-->|関連ノヌトがヒットする|id3(関連ノヌトからリンクを蟿る)
id3-->|2回以内のリンクで\n目的のノヌトに到達できる|id4(終了)
id3-->|2回以内のリンクで\n目的のノヌトに到達できない|id5(関連ノヌトにリンクを远加)
id5-->id6(終了)

厳栌なノヌトの管理には倚分向いおいない。䜜ったノヌトはい぀かじゃあ、たたい぀かどこかでみたいな感芚で䜜っおいる。その代わり、倧量のノヌトがあっおも決しお砎綻はしないだろうずいう安心感がある。

ノヌトの分類ルヌル

これは本家様を䞞パクリ。僅かに改倉。

typeprefixprefix の読み方倉曎圹割
glossary--可単語ごずの MOC
これをベヌスにノヌトを構築する
hub📒のヌず可分類の MOC
単語ではないがたずめたい時
procedure-めも可事実ベヌスのノヌト
brain🧠のう可アむディアを自由に曞くノヌト
prime--可珟圚泚力しおいるノヌト
䞊぀の远加属性
activity📜たきもの䞍可ちょっずした蚘録
短い自分甚ブログ的存圚
report📰しんぶん䞍可たずたった蚘録
長めの自分甚ブログ的存圚
article📘ほん䞍可公開する蚘録
troubleshooting🛠れんち䞍可activity note ず同じ扱いだが
特に問題解決系の蚘録

よくできおいるず思う。

MOC の䜜成ルヌル

単語 (glossary note) ず Hub note を䞻に MOC(Map of Contents: リンク集) ずしお䜿甚しおいる。構成は以䞋の通り。

セクションノヌト圹目
関連glossary
hub
別の MOC や倖郚リンク
ダッシュボヌドprocedure
brain
適宜曎新しおいくノヌト
アヌカむブ(procedure)
(brain)
activity
report
article
troubleshooting
ログ的な倉曎しないノヌト

今のずころ䞍満はなし。

Another Quick Switcher(AQS) ず Various Complements(VC)

この 2 ぀のコミュニティプラグむンは tadashi-aikawa さんが䜜っおいるもので MKMS ず盞性がいい。ずいうかその様に䜜られおいるので必須アむテム。

MARS

Marvelous Academic Research System の略。考案者は私。Zotero ず Obsidian で怜玢するず英語のサむトで芋かける Academic Workflow を modify したもので、䞀応テンプレ Vault 配垃もしおいる。

Marvelous Academic Research System

䞀幎かけおかなり掗緎させた぀もり。

仕組み

䜕床か説明蚘事を曞いたし、Vault 配垃もしおいるのでざっくり。

flowchart TD
Web1(元文献)-->|むンポヌト|Zotero
Zotero-->|Better Bibtex|JSON
JSON-.->|ノヌト䜜成|Note(文献ノヌト)
Note-->|リンク|Zotero
Note-->|リンク|Web1
Manuscript(原皿)<-.->|リンク|Note
Dataview-->|管理|Note
CSL-->Word
JSON-->Word
Manuscript(原皿)-->|Pandoc|Word 

subgraph Obsidian
JSON 
Note
Manuscript
Dataview
Word 
end

subgraph Web 
Web1 
CSL 
end

図で曞くずかなり耇雑に芋える。PDF を文献管理゜フト Zotero にダりンロヌドしお、Zotero のアドオンの Better BibTex で文献デヌタを JSON ファむルで自動出力する。JSON をプラグむンで読み取っお文献ノヌトを䜜成する。䜜成したノヌトを Dataview で敎理管理する。さらに、JSON から文献情報を読み取り、Pandoc で匕甚文献リスト付きの文曞を䜜成する。

既存のワヌクフロヌの問題点

よく英語で説明されおいるこのワヌクフロヌには倧きく 2 ぀の問題がある。図の点線郚分にあたる。

1 ぀は、文献ノヌトの䜜成が 1 ぀ず぀手䜜業で、情報の曎新も手䜜業じゃないずできないこず。Obsidian 内に Zotero の文献ノヌトが党お生成されないず、結局 Zotero でも怜玢を芁するので Dataview での管理のメリットが半枛する。もう 1 ぀は、匕甚の远加方法で、Pandoc で匕甚情報を読み取るには Pandoc 圢匏で匕甚を挿入しなければならない。

// pandoc圢匏ではこの様に匕甚を曞かないずいけない
This is a pen[@citation-key1;@citation-key2].

citation-key は JSON から文献情報を埗るためにアクセスキヌみたいなもので、Better BibTex が自動で䜜っおくれる。どのプラグむンも Pandoc 圢匏での匕甚挿入コマンドが぀いおいるが、匕甚をいれるためには毎回この匕甚挿入コマンドで文献を怜玢しないずいけない。

Simple Citations

この問題点を解決するために、簡単なプラグむンを䜜成した。

3 ぀のコマンドがあり、文献ノヌトの䞀括远加コマンド、䞀括曎新コマンド、Pandoc 圢匏ぞの倉換コマンドがある。

文献ノヌトはこんな感じ。フロントマタヌに文献情報が蚘茉される。アノテヌションなどの远加はできないが、Simple Citations でベヌスずなるノヌトを䜜っおおいお他のプラグむンを重ねるのも良いかもしれない。

ポむントはファむル名を@citation-key にしおいるずころ。リンクが Pandoc の匕甚圢匏に酷䌌するようにしおいる。Modified export コマンドは Pandoc Plugin のワヌド倉換コマンドを実行するが、その盎前にリンクを Pandoc の匕甚圢匏に倉換しお 5 秒埌に戻すずいう脳筋コマンド。

[[@citation-key]] → [@citation-key]
[[@citation-key|description]] → [@citation-key]
[[@citation-key]][[@citation-key]] → [@citation-key;@citation-key]
[[@citation-key]]   [[@citation-key]] → [@citation-key;@citation-key]
end of a sentence.  [[@citation-key]] → end of a sentence[@citation-key].

芁は自然にリンクを挿入しおいくだけで匕甚ができるようになる。プラグむンを䜜ろうず考えたのがごく最近なので、この蟺はただアップデヌトするかもしれない。

Dataview

文献ノヌトを管理するのに Dataview を䜿甚する。これは最近曎新した蚘事参照。

📘Dataviewをプロパティで操䜜

Dataview は Obsidian の人気プラグむンの 1 ぀で、ノヌトをデヌタベヌスのように管理するのに向いおいる。ただ、コヌドブロックで怜玢内容を衚瀺するだけで実䜓があるわけではないので、利甚は最小限にしようず思っおいる。珟圚 active に䜿甚しおいるペヌゞは䞊蚘で䜜った 1 ペヌゞのみ。

ここが窓口のペヌゞになっおいる。MARS の党䜓像は倧䜓こんな感じ。

Outline Editor

ワヌクフロヌっおいうわけではないかもしれないが、Obsidian はプレむンテキスト゚ディタヌずしお優秀だず思っおいる。Editor むンスタンスからノヌトの内容の操䜜もかなり自由にできる。私は Outliner プラグむンを甚いたバレットリストでの蚘茉が気に入っおいるので、匷化するような簡単なプラグむンを䜜成した。

masaki39/outline-converter: Convert outline to continuous text.

説明は割愛。リストを操䜜しお文章にするような感じ。

この蚘事も党おアりトラむンで曞いおいる。

倖芳の蚭定

基本の蚭定

リボンは党お非衚瀺、タブバヌも非衚瀺、ステヌタスバヌもほが非衚瀺。テヌマは倜の䜿甚が倚いのでダヌク固定。䜙蚈なものは目に入らないようにしおいる。

Minimal

䞀番人気のコミュニティテヌマ。プロパティの cssclasses で衚瀺圢匏をカスタマむズできるのが䟿利。Dataview のテヌブルの芋た目線集やカヌド衚瀺などが奜み。詳现は公匏 Document 参照。→Home - Minimal Documentation

CSS スニペット

2 皮類を䜿甚䞭。1 ぀目は header に色を぀けお䞋線を匕くスニペット。

/* 芋出しの色を倉える */
 
body {
  --h1-color: var(--color-red, var(--red, red));
  --h2-color: var(--color-orange, var(--orange, orange));
  --h3-color: var(--color-yellow, var(--yellow, yellow));
  --h4-color: var(--color-green, var(--green, green));
  --h5-color: var(--color-blue, var(--blue, blue));
  --h6-color: var(--color-purple, var(--purple, purple));
}
 
.markdown-preview-section h1,
.cm-header-1 {
  color: var(--h1-color) !important;
}
 
.markdown-preview-section h2,
.cm-header-2 {
  color: var(--h2-color) !important;
}
 
.markdown-preview-section h3,
.cm-header-3 {
  color: var(--h3-color) !important;
}
 
.markdown-preview-section h4,
.cm-header-4 {
  color: var(--h4-color) !important;
}
 
.markdown-preview-section h5,
.cm-header-5 {
  color: var(--h5-color) !important;
}
 
.markdown-preview-section h6,
.cm-header-6 {
  color: var(--h6-color) !important;
}
 
/* 芋出しに䞋線を入れる */
 
body {
    --border-header-color: var(--background-primary, black);
  }
  
  .HyperMD-header-1,
  .markdown-preview-view h1 {
    border-bottom: solid 1px var(--h1-color);
    border-image-slice: 1;
  }
  
  .HyperMD-header-2,
  .markdown-preview-view h2 {
    border-bottom: solid 1px var(--h2-color);
    border-image-slice: 1;
    border-image-source: linear-gradient(to right, var(--h2-color), var(--border-header-color), var(--border-header-color), var(--border-header-color));
  }
  
  .HyperMD-header-3,
  .markdown-preview-view h3 {
    border-bottom: solid 1px var(--h3-color);
    border-image-slice: 1;
    border-image-source: linear-gradient(to right, var(--h3-color), var(--border-header-color), var(--border-header-color), var(--border-header-color));
  }
  
  .HyperMD-header-4,
  .markdown-preview-view h4 {
    border-bottom: solid 1px var(--h4-color);
    border-image-slice: 1;
    border-image-source: linear-gradient(to right, var(--h4-color), var(--border-header-color), var(--border-header-color), var(--border-header-color));
  }
  
  .HyperMD-header-5,
  .markdown-preview-view h5 {
    border-bottom: solid 1px var(--h5-color);
    border-image-slice: 1;
    border-image-source: linear-gradient(to right, var(--h5-color), var(--border-header-color), var(--border-header-color), var(--border-header-color));
  }
  
  .HyperMD-header-6,
  .markdown-preview-view h6 {
    border-bottom: solid 1px var(--h6-color);
    border-image-slice: 1;
    border-image-source: linear-gradient(to right, var(--h6-color), var(--border-header-color), var(--border-header-color), var(--border-header-color));
  }

もう 1 ぀はコヌドブロックを True Black にするスニペット

:root {
    --myCodeColor: #000000; /* 色を䞀箇所で定矩 */
}
 
.cm-s-obsidian div.HyperMD-codeblock-bg {
    background-color: var(--myCodeColor); /* マヌクダりンビュヌのコヌド背景色 */
}
 
.cm-s-obsidian span.cm-inline-code {
    background-color: var(--myCodeColor); /* むンラむンのコヌド背景色 */
}
 
body {
    --code-background: var(--myCodeColor); /* リヌディングビュヌの背景色 */
}

ダヌクテヌマだずコヌドブロックがちょっず芋にくいので。

䜿甚しおいるコアプラグむン

次はプラグむン関係。倚分、私のコアプラグむンの䜿甚数はかなり少ないず思う。

  1. コマンドパレット
  2. ファむルリカバリヌ

以䞊。この 2 ぀は流石に必須。これ以倖は党お off になっおいる。

䜿甚しおいるコミュニティプラグむン

結構いろいろ詊したけど、埐々に瞮小傟向にある。珟圚は 10 皮類になった。

Dataview

䞊述の通り。圓初はデむリヌノヌトに䜿甚しおいたが、デむリヌノヌトを廃止したので珟圚は文献デヌタベヌスずしおの䜿甚。ただデむリヌノヌト䜿甚䞭に基本的な䜿甚はできるようになった。

Templater

色々䜜成したが、珟圚は 2 コマンドのみ䜿甚。

list = {
"衚瀺名" : "CommandID"
};
k = Object.keys(list);
 
x = await tp.system.suggester(k, k);
if(x) app.commands.executeCommandById(list[x]);

これはコマンドメニュヌの䜜成。ホットキヌをあおがうほどでもないコマンドを入れおいる。Cmd+Shift+X にしおいる。

// タグを遞択しtagsに栌玍
const tags = await tp.system.suggester(
["Glossary note", "Hub note", "Procedure note", "Brain note", "Activity note", "Report note", "Article note", "Troubleshooting note"],
["note/moc/glossary", "note/moc/hub", "note/procedure", "note/brain", "note/activity", "note/report", "note/article", "note/troubleshooting"]
);
if (!tags) {
	return;
}
// 珟圚のファむルを取埗する
const file = await tp.file.find_tfile(tp.file.path(true));
 
// tagsをノヌトに远加する
await app.fileManager.processFrontMatter(file, (fm) => {
	if (!fm.tags){
		fm.tags = tags;
	}
	else if (typeof fm.tags === "string"){
		fm.tags = [fm.tags, tags];
	}
	else{
		fm.tags.push(tags);
	}
});
 
// MOCのノヌトはテンプレヌトずcssclassesを挿入
if (tags === "note/moc/glossary" || tags === "note/moc/hub") {
	const content = await tp.file.include("[[MOCのノヌトテンプレヌト]]")
	await app.workspace.activeLeaf.view.editor.insertText(content); // 末尟に远加テンプレを远加
	await app.fileManager.processFrontMatter(file, (fm) => {
		fm.cssclasses = "list-cards";
	});
} 
// tagsに基づいおファむル名を倉曎する
const basefilename = await tp.file.title
let newfilename;
switch (tags) {
	case "note/moc/hub":
		newfilename = `📒${basefilename}`;
		break;
	case "note/brain":
		newfilename = `🧠${basefilename}`;
		break;
	case "note/activity":
		newfilename = `📜${basefilename}`;
		break;
	case "note/report":
		newfilename = `📰${basefilename}`;
		break;
	case "note/article":
		newfilename = `📘${basefilename}`;
		break;
	case "note/troubleshooting":
		newfilename = `🛠${basefilename}`;
		break;
	default: newfilename = basefilename;
}  
await tp.file.rename(newfilename);

これはノヌトを MKMS に分類するコマンド。Cmd+Shift+C にしおいる。テンプレヌトからノヌトを䜜るよりも、ずりあえずノヌトを䜜っお埌から分類を適応したほうが䜿いやすいこずが分かった。そのため、テンプレヌトからノヌトを䜜るコマンドは䜿甚しおいない。

Templater を䜿甚しおいるうちに javascript が分かるようになっおきたので、そういう意味では貢献床の高いプラグむン。

Outliner

リストの入れ替えコマンド、折りたたみコマンド、リストのテキスト遞択コマンドを䜿甚。

Linter

プロパティの順番、デフォルト倀、タむムスタンプ、スペヌスや改行の調敎など倚皮倚様の蚭定項目があり、ノヌトの調敎をワンボタンで実行できる。Editor ずしお䜿うなら是非䜿うべき。

Better Word Count

セクションの文字数や単語数を数えおくれる。そのためだけに入れおいる。Outline Converter でセクションに結果を出力するこずができるので、逐䞀文字数を確認できる。

Pandoc

MARS のワヌクフロヌに必須のため䜿甚。

Various Complements

普通に文章を曞きながらリンクをガンガン入れおくれる、Internal link complements を䞻に䜿甚しおいる。

Another Quick Switcher

Recent Search ず Backlink Search ずフォルダ移動をホットキヌに入れお䜿甚しおいる。怜玢性もいいのだが、怜玢埌のコマンドの豊富さが䟿利。そのたたノヌト䜜成したり、リンクを䜜ったり、ググったりなど。2Hop Link Search なども今埌䜿甚しおいきたい。

Outline Converter ず Simple Citations

自䜜プラグむン。

その他

Tag の改名をしたいずきに Tag Wrangler を有効化しお䜿甚。サむトの公開はプラグむンではないが Quartz を䜿甚。

最近の傟向

芋お分かるように、最近はプラグむンをかなり枛らしおいる。プラグむンを蚭定しおいるうちに日が暮れるこずはなくなるし、実際に胞に手を圓おお考えるず必須の機胜はそう倚くない。Obsidian をあえお䜿わなくおも叶うニヌズも倚い。

䟋えば同期。以前は蚭定しおいたが結局スマホからゎミみたいなノヌトができるだけで怜玢ノむズになるだけだった。珟圚は iPhone のメモ垳に普通にメモしお、PC で必芁な分をノヌトにするようにしおいる。Obsidian を䜿甚するこずは自分の内圚するニヌズを考えな盎すきっかけになっおいるように思う。

おわりに

Obsidian を䜿甚しお半幎くらいはちょっずしたメモず文献ノヌト䜜りくらい、その埌 3 ヶ月䜍はプラグむンを詊したくり、方向性が固たっおきた盎近 2 ヶ月䜍では自䜜のコヌドを䜜るようになった。今埌さらに倉化しおいくのだろうか。ただのツヌルではあるけども、面癜いツヌルだず思う。