## 概要 💽 Insert Change logの実行に失敗する。 ```error ugin:templater-obsidian:61 Templater Error: Template parsing error, aborting. Position 48 is out of range for changeset of length 0 l ``` [[Obsidian]]の1.4.2から発生。1.4.0は動いていた。1.4.1は覚えていない。 ## 調査 💽 Insert Change logのコードを見ると、以下まではちゃんと実行されていた。 ```ts await tp.user.insert_new_line_at_first(noteBody) ``` `insert_new_line_at_first`を調査する。 ```ts /** * 一番上の行にテキストを追加する * @param {*} text */ async function insertNewLineAtFirst(text) { const editor = app.workspace.activeLeaf.view.editor; editor.replaceRange(text, CodeMirror.Pos(-1)); } ``` 一番怪しいのは `CodeMirror.Pos(-1)` の挙動が変わったこと。`-1`なのはエディタの一番上の行よりさらに上に挿入したいから。`-1`を`0`にしてもエラーは変わらなかったので別の問題な気がする。 ### [[Chrome devtools]]で確認 consoleから以下で再現。 ```ts text = `--- created: 2023-08-02 updated: 2023-08-02 --- ` editor.replaceRange(text, CodeMirror.Pos(-1)) ``` 以下だと再現しない。 ```ts text = `--- created: 2023-08-02 updated: 2023-08-02 -- ` editor.replaceRange(text, CodeMirror.Pos(-1)) ``` このことから[[フロントマター]]を挿入しようとすると、挿入時にPositionの解釈がおかしくなることが分かった。 ## 解決策 空のファイルに[[フロントマター]]を挿入したい場合、現状では回避は難しい。 ファイルに内容を記載してから💽 Insert Change logを実行するよう、操作の仕方で回避する。 > [!note] > [[Obsidian]]のバグとして、stable版では修正されることを祈ってる 🙏