옵시디언 플러그인/커뮤니티 플러그인

프로퍼티를 쉽게 추가, 수정, 삭제할 수 있는 MetaEdit 플러그인

반응형

개요

MetaEdit은 옵시디언에서 문서의 프로퍼티를 쉽게 관리할 수 있도록 도와주는 플러그인입니다. 메타데이터를 추가, 업데이트, 삭제할 수 있으며, 메타데이터 자동 업데이트 기능, API를 통해 타 플러그인과 연동기능 등을 이용해 프로퍼티를 좀더 폭넓게 활용할 수 있습니다.

Plugin Info
플러그인 명 MetaEdit
플러그인 설명 프로퍼티를 쉽게 추가, 수정, 삭제할 수 있는 플러그인
플러그인 분류 입력 지원, 프로퍼티, 메타 데이터
Github 링크 Github 링크
옵시디언 링크 플러그인 링크
별점 ⭐⭐

예시

기능

  • Yaml 속성 및 Dataview 필드를 쉽게 추가하거나 업데이트할 수 있습니다.
  • 메뉴에서 숨기고 싶은 속성을 무시할 수 있습니다.
  • 제안 기능을 통해 사용자가 미리 설정해 둔 값을 선택할 수 있습니다.
  • 여러 값을 감지하고 배열로 변환/생성할 수 있는 다중 값 모드를 지원합니다.
  • 작업 진행 상황에 따라 값을 자동으로 업데이트하는 속성을 제공합니다.
    • 전체 작업, 완료된 작업, 미완료된 작업 수를 다룹니다. 작업을 완료로 표시하면 해당 파일이 새로운 수로 업데이트됩니다.
  • YAML 형식으로 저장된 메타데이터를 Dataview가 사용할 수 있는 형식으로, 또는 그 반대로 변환할 수 있습니다.
  • 속성을 쉽게 삭제할 수 있습니다.
  • 칸반 보드에서 링크된 파일의 속성을 칸반에서 이동시 자동으로 업데이트합니다.
  • 파일 메뉴를 통해 메타데이터를 편집할 수 있습니다.
  • 태그의 마지막 값을 편집할 수 있으며, Tracker 플러그인과 호환됩니다.
  • 다른 플러그인과 Templater 템플릿에서 사용할 수 있는 API를 제공합니다.

API

app.plugins.plugins["metaedit"].api를 사용하여 API에 접근할 수 있습니다.

const {autoprop} = this.app.plugins.plugins["metaedit"].api;

autoprop(propertyName: string)

속성 이름을 포함한 문자열을 받습니다. 사용자 설정에서 해당 속성을 찾아 가능한 값들을 제안하는 창을 엽니다.
선택된 값을 반환합니다. 값이 선택되지 않았거나 설정에서 속성을 찾지 못한 경우 null을 반환합니다.

이 함수는 비동기 함수이므로 await를 사용해야 합니다.

update(propertyName: string, propertyValue: string, file: TFile | string)

지정된 파일에서 주어진 이름의 속성을 주어진 값으로 업데이트합니다.

파일이 문자열인 경우 파일 경로여야 합니다. 그렇지 않으면 TFile을 사용 할 수 있습니다.

이 함수는 비동기 함수이므로 await를 사용해야 합니다.

getPropertyValue(propertyName: string, file: TFile | string)

주어진 파일에서 주어진 속성의 값을 가져옵니다.

파일이 문자열인 경우 파일 경로여야 합니다. 그렇지 않으면 TFile을 사용 할 수 있습니다.

이 함수는 비동기 함수이므로 await 를 사용해야 합니다.

API 예시

새 작업 템플릿 (Templater 필요)

<%*
const {autoprop} = this.app.plugins.plugins["metaedit"].api;
_%>
#tasks 
Complete:: 0
Project::
Status:: <% await autoprop("Status") %>
Priority:: <% await autoprop("Priority") %>
Due Date::

Complete:: 0
Energy::
Estimated Time::

Total:: 1
Complete:: 0
Incomplete:: 1

---

- [ ] <% tp.file.cursor() %>

Dataview에서 프로젝트 완료 (버튼)

Buttons 플러그인이 필요합니다.

```dataviewjs
const {update} = this.app.plugins.plugins["metaedit"].api
const {createButton} = app.plugins.plugins["buttons"]

dv.table(["Name", "Status", "Project", "Due Date", ""], dv.pages("#tasks")
    .sort(t => t["due-date"], 'desc')
    .where(t => t.status != "Completed")
    .map(t => [t.file.link, t.status, t.project, t["due-date"], 
    createButton({app, el: this.container, args: {name: "Done!"}, clickOverride: {click: update, params: ['Status', 'Completed', t.file.path]}})])
    )
```

Dataview에서 프로젝트 완료 (HTML 버튼)

```dataviewjs
const {update} = this.app.plugins.plugins["metaedit"].api;
const buttonMaker = (pn, pv, fpath) => {
    const btn = this.container.createEl('button', {"text": "Done!"});
    const file = this.app.vault.getAbstractFileByPath(fpath)
    btn.addEventListener('click', async (evt) => {
        evt.preventDefault();
        await update(pn, pv, file);
    });
    return btn;
}
dv.table(["Name", "Status", "Project", "Due Date", ""], dv.pages("#tasks")
    .sort(t => t["due-date"], 'desc')
    .where(t => t.status != "Completed")
    .map(t => [t.file.link, t.status, t.project, t["due-date"], 
    buttonMaker('Status', 'Completed', t.file.path)])
    )
```

관련 글

 

옵시디언 심화: 프로퍼티(Properties)

프로퍼티(Properties)란? 프로퍼티(Properties)는 MP3 파일의 메타데이터와 유사합니다. MP3 파일에는 노래 제목, 아티스트, 앨범 커버와 같은 정보가 메타데이터로 저장됩니다. 마찬가지로 마크다운 문

kaminik.tistory.com

 

노트에 버튼을 추가해주는 Buttons 플러그인

개요 Buttons는 옵시디언 노트에 버튼을 추가해 주는 플러그인입니다. 명령어, 템플릿, 매크로 등을 버튼 형태로 쉽고 직관적으로 사용할 수 있도록 도와줍니다. Plugin Info 플러그인 명 Buttons 플러

kaminik.tistory.com


 

반응형