Skip to content

Book SearchでUIDを実現するための設定

コミュニティプラグインのBook Searchでは、2024年5月時点では完全に自動化できない。

設定のNew file name{{DATE:MMDD}}_{{DATE:HHmmss}}と入れる。New file locationではパラメータを展開できないので、2024年なら2024と入れておいて、年が切り替わったときに更新する。

年の切り替わりが面倒だけど、git addする時に気付くことができるし、更新も年に1回だけなので、実用上は問題にならないはず。

Unique note creatorでUIDを実現するための設定ではFile locationを空にしてUnique prefix formatYYYY/とすれば動くから{{DATE:YYYY}}/{{DATE:MMDD}}_{{DATE:HHmmss}}で試してみたが、どうやら/を特殊文字として扱って削ってしまうようで、意図した場所に保存できなかった。

New file locationで展開できないのはsrc/main.ts:156:174を見たところ、単に文字列として扱っていた。

const fileName = makeFileName(book, this.settings.fileNameFormat);
const filePath = `${this.settings.folder}/${fileName}`;

特殊文字の扱いはsrc/utils/utils.ts:17:25の辺りに書かれている。makeFileNameは最後にreplaceIllegalFileNameCharactersInStringを呼んでいるが、この実装が/を含む。

export function replaceIllegalFileNameCharactersInString(text: string) {
return text.replace(/[\\,#%&{}/*<>$":@.?|]/g, '').replace(/\s+/g, ' ');
}