Obsidian未完成ノート記録プラグイン作成ログ-3

Obsidian未完成ノート記録プラグイン作成ログ-2 | Obsidian未完成ノート記録プラグイン作成ログ-4

borderのプロパティをみて書いてみたけどなんか反映されない
なんかTSはcssファイルwpデフォルトで読み込めないらしいからdeclarations.d.tsファイルを作成しなくちゃいけないらしい。

declare module "*.module.css" { 
	const classes: { [key: string]: string }; 
	export default classes; 
}

tsconfig.jsonファイルに上のファイルを読み込ませる。

"src/**/*", "declarations.d.ts"

と思ったけど
あきらめてルートディレクトリstyle.cssの中に書くことにした。

なんかbackground-colorborderの色でアプリ既定のものを使用するときにはcssの変数を使うらしい。

background-color: var(--background-secondary-alt);
border: 1px solid var(--background-modifier-border);

このコード、公式のcssからとってきたけど
Columnウィジェットみたいな使い方できるのかな

display: flex;
flex-direction: column;
flex-grow: 1;

マークダウンファイルを判定するには以下のような記述をする。
extensionで拡張子を取得できるんだね。

private isMarkdownFile(file: TFile): boolean {
	return file.extension.toLowerCase() === "md";
}

プロパティを判別するにはこのプラグインがいいかも

これ?

async getMatchPropertyValue(file: TFile){
	await this.app.fileManager.processFrontMatter(
		file,
		(frontmatter) => {
			
		}
	);
}

ここのfrontmatterTSの辞書型らしい。(可変)

frontmatter["title"] = "新しいタイトル"

みたいなことができるらしい。

今回はSettingに入っている値とマッチしたファイルを欲しいからifを使って簡単にできそう。

if(values.contains(frontmatter[targetPropertyKey])) isMatched = true;

コンストラクタに入るVault型は、this.app.vaultで取得する。

全ファイルの取得にthis.vault.getMarkdownFiles()を使用することができる。

async reloadAllFiles() {
	let matchedFiles: TFile[] = [];
	for (const file of this.vault.getMarkdownFiles()) {
		await this.reloadFile(file);
		if(await this.isMatchPropertyValue(file)) continue;
		matchedFiles.push(file);
	}
}

辞書型descとノートタイトルを保存しようかな

urmList: {[noteTitle: string]: [desc: string]};

辞書型の入った配列でSettingに保存しようっと