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 formatでYYYY/とすれば動くから{{DATE:YYYY}}/{{DATE:MMDD}}_{{DATE:HHmmss}}で試してみたが、どうやら/を特殊文字として扱って削ってしまうようで、意図した場所に保存できなかった。
ソースコード
Section titled “ソースコード”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, ' ');}