# MOC 관리 자동화

- 저자: chorr
- URL: https://8log.kr/moc-management-automation
- 날짜: 2024-08-19

---

Obsidian에서 MOC(Maps of Content) 페이지 관리를 최대한 자동화한다.

## 필요 플러그인

1. [Dataview](https://github.com/blacksmithgu/obsidian-dataview)
2. [Templater](https://github.com/SilentVoid13/Templater)
    - Template folder location: `Templates/`
    - Script files folder location: `Scripts/`

## Templater 관리

````javascript title="Scripts/parseMOC.js"
async function parseMOC(tp) {
    const dv = app.plugins.plugins.dataview.api;
    const folder = tp.file.folder(true);
    const mocFile = tp.file.find_tfile(`${folder}/_moc.md`);
    const content = await app.vault.read(mocFile);
    const regex = /```dataview([\s\S]*?)```/;
    const query = content.match(regex)[1].trim();
    const output = await dv.queryMarkdown(query);
    const file = tp.file.find_tfile(tp.file.title);
    await app.vault.modify(
        file,
        `# ${tp.file.title}
## MOC
${output.value}`,
    );
}
module.exports = parseMOC;
````

```markdown
<%\* tp.user.parseMOC(tp) %>
```

## 워크플로우

1. MOC 생성 필요한 폴더에 `_moc.md` 파일 생성
2. 해당 페이지에 dataview 쿼리 작성
3. MOC 페이지로 사용할 파일 생성
4. MOC 페이지에서 Templater → `tp.parseMOC` 실행
