본문 바로가기

Obsidian/Templater

옵시디언 - 한꺼번에 여러 노트의 태그들을 바꾸기(Feat. 템플레이터 & 데이터뷰)

여러 노트 파일을 선택하여 frontmatter tags 키 값에 한꺼번에 새 태그들을 넣거나 이미 있는 태그들을 지울 수 있도록 했습니다. 

 

Tag Wrangler 플러그인을 써서 태그 이름을 바꿀 수 있습니다. 태그를 다루는 데 아주 잘 쓰고 있지만 노트들 가운데 일부 노트들만 골라서 태그 이름을 바꾸거나 지울 수는 없습니다. 

 

그래서 구글이나 옵시디언 포럼에서 검색을 해봐도 제 미숙함 때문인지 찾을 수가 없네요.

 

그래서 데이터뷰로 노트 목록(체크 박스를 넣음)을 만들고 템플레이터로 태그를 바꾸는 방법이 나을 것 같아 만들어 봤습니다.

 

 

 

다음과 같은 것도 조금만 소스를 바꾸면 될 것 같습니다.

  • 한꺼번에 파일 이름 바꾸기
  • 한꺼번에 frontmatter 키 이름 바꾸기
  • 한꺼번에 template 적용하기

템플릿 소스에서 잘못된 것이나 여러 의견등 많은 댓글 바랍니다.

 

사용하기

  1. 다음 소스를 다운로드한 다음 Templater 폴더에 넣습니다.
    https://gist.githubusercontent.com/eoureo/6068f4bf262f2d87d117c805b861fc0f/raw/Obsidian%2520Templater%2520-%2520Change%2520tags%2520of%2520multiple%2520notes.js
    파일 이름은 자신이 바라는 것으로 바꾸어 쓰면 낫겠네요.
    ⚠️주의! 파일 확장자는 md로 해야 합니다.
    소스 코드는 밑에서 볼 수 있습니다.

  2. dataviewjs 코드블록으로 테이블을 만듭니다.
    ⚠️주의! 체크 박스와 파일 링크 항목이 반드시 있어야 합니다.
    다음은 예시입니다.
    
    ```dataviewjs
    dv.table(["✓", "File", "mtime", "ctime", "tags", "folder"], dv.pages("#book")
      .where(p => p.rating > 4)
      .sort(b => b.file.mtime, "desc")
      .map(b => ["<input type='checkbox'>", b.file.link, b.file.mtime, b.file.ctime, b.tags, b.file.folder]))
    ```
    


    모든 파일을 나열(노트 파일이 많으면 시간이 조금 걸립니다.)
    
    ```dataviewjs
    dv.table(["✓", "File", "mtime", "ctime", "tags", "folder"], dv.pages()
      .sort(b => b.file.mtime, "desc")
      .map(b => ["<input type='checkbox'>", b.file.link, b.file.mtime, b.file.ctime, b.tags, b.file.folder]))
    ```
    


    이미 체크가 된 상태로 나열하려면 "<input type='checkbox' checked>"로 바꾸면 됩니다.
     
  3. 태그를 고치려는 노트의 체크 박스를 체크합니다.

  4. 템플레이터 창을 열고 템플릿을 선택합니다.

  5. 추가하거나 지우려는 태그를 입력합니다.
    태그는 쉼표(,)로 구분하여 여러 개를 넣을 수 있습니다.


  6. "Change Tags" 단추를 눌러 태그 바꾸기를 실행합니다.


소스 코드

제 Gist 코드입니다.

 

참고