MOC 관리 자동화

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

필요 플러그인

  1. Dataview
  2. Templater
    • Template folder location: Templates/
    • Script files folder location: Scripts/

Templater 관리

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
Templates/tp.parseMOC.md
<%\* tp.user.parseMOC(tp) %>

워크플로우

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