옵시디언 플러그인/커뮤니티 플러그인
프로퍼티를 쉽게 추가, 수정, 삭제할 수 있는 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)])
)
```
관련 글
반응형
'옵시디언 플러그인 > 커뮤니티 플러그인' 카테고리의 다른 글
기호를 자동변환하는 Smart Typography 플러그인 (0) | 2024.02.17 |
---|---|
불필요한 UI를 숨길 수 있는 Hider 플러그인 (0) | 2024.02.17 |
백링크 캐시를 유지하여 속도를 향상하는 Backlink Cache 플러그인 (0) | 2024.02.17 |
헤딩 기준으로 노트를 나누는 Note Refactor 플러그인 (0) | 2024.02.17 |
링크되지 않는 파일을 찾는 Find orphaned files and broken links 플러그인 (0) | 2024.02.17 |