[[🕯️ObsidianでIssue管理ができるようにしたい]]の作業ログ
[[🗃️Obsidian Templater]]を使っていく
やりたいこと
- prefix アイコンを変更する
- タグを書き換える
## 📝
- [tp.file - Templater](https://silentvoid13.github.io/Templater/internal-functions/internal-modules/file-module.html#tpfiletags)
- `tp.file.title`で、ファイル名を取得できる
- `tp.file.rename`でファイル名置換できる
- `tp.file.tag`でtagを取得できる?
- → 取得はできるが、書き換えはできない
- js操作
- [String.prototype.replace() - JavaScript | MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/replace)
- [Array.prototype.join() - JavaScript | MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/join)
### つまったところ
- categoryのemojiを配列で持っていて、それを置換するようにした
- `replace(emojis.join(|), 🕯️)`にしていたけど動かなかった
- regexインスタンスを渡すと実現できる
```
const regex = new RegExp(emojis.join('|'), 'g');
const updateTitle = currentTitle.replace(regex, '🕯️')
```
- タグの書き換え方法
- [[🗃️Obsidian Templater]]のドキュメント内にファイル内の書き換えメソッドがなかったので調べた
- [Templater Snippets - shabeblog](https://shbgm.ca/blog/obsidian/Templater+Snippets#Basic+read%2Freplace
- ↑を参考にした
- `app.vault.modify(file, content)`を使うことで変更できる
- 最終的にこんな感じで、ファイルコンテントのtagを書き換えて、modifyすることで更新するようにした
```
const updateTag = '#solved_issue'
const tagRegex = new RegExp(modifyTargetTags.join('|'))
const updateContent = tp.file.content.replace(tagRegex, updateTag)
await app.vault.modify(file, updateContent)
```