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 실행