## 概要
💽 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版では修正されることを祈ってる 🙏