Obsidian October O_O 2024 plugin self-critique checklist
Releasing & naming
-
MyPlugin
,SampleSettingTab
등의 플레이스홀더 이름을 제거합니다. - 꼭 필요한 경우가 아니라면 이름에 “Obsidian”이라는 단어를 포함하지 마세요. 대부분의 경우 중복되는 경우가 많습니다.
- 명령어 이름에 플러그인 이름을 포함하지 마세요. 옵시디언이 자동으로 추가합니다.
- 명령 앞에 플러그인 ID를 붙이지 마세요. 옵시디언이 이를 추가합니다.
- 리포지토리에
main.js
를 포함하지 마세요. 릴리스에만 포함하세요. - 아직 포함하지 않았다면 플러그인 사용자가 지원을 표시할 수 있도록
fundingUrl
을 추가하는 것을 고려하세요. 자세히 알아보기.
호환성 Compatibility
- 명령에 대한 기본 단축키를 제공하지 마세요. 자세히 알아보기.
- 핵심 스타일링을 재정의하지 마세요. 필요한 경우 자신만의 클래스를 추가하고 해당 클래스에만 스타일링이 적용되도록 하세요.
- 코드에서 더 이상 사용되지 않는 메서드가 있는지 스캔하세요(보통 IDE에서
strikeout텍스트로 표시됨). - 자바스크립트나 HTML을 통해 스타일을 지정하지 마세요. 자세히 알아보기.
- 구성 디렉터리에 액세스해야 하는 경우 하드코딩된 ‘.obsidian’ 폴더에 액세스하지 마세요. 이 위치는 사용자 지정할 수 있으므로 대신
Vault.configDir
을 사용하세요.
모바일 지원 Mobile support
이 섹션은 매니페스트에서 isDesktopOnly
가 false
으로 설정된 경우에만 작성하세요.
-
fs
,path
,electron
과 같은 node.js 모듈을 사용하지 마세요. - 16.4 미만의 iOS 버전을 지원하려면 정규식 룩비하인드(lookbehinds)를 사용하지 마세요(플러그인에서 정규식을 사용하지 않는 경우 무시하세요). 자세히 알아보기.
- 파일 시스템 어댑터` 클래스를 사용하지 마세요.
-
process.platform
을 사용하지 마시고, 대신 Obsidian의Platform
을 사용하세요. API 링크. -
fetch
또는axios.get
을 사용하지 말고, 대신 Obsidian의requestUrl
을 사용하세요. API 링크.
코딩 스타일
-
var
를 사용하지 마세요. 대신let
또는const
를 사용하십시오. 자세히 알아보기. - 글로벌
app
인스턴스를 사용하지 마세요. 대신 플러그인 인스턴스에 제공된this.app
을 사용하십시오. 자세히 알아보기. - 코드를 쉽게 찾을 수 있도록
main.ts
를 작은 파일이나 폴더로 나누세요. - 가독성을 위해 가능하면
Promise
대신async
와await
를 사용하세요. 자세히 알아보기. - 전역 변수를 사용하지 마세요. 변수는 클래스 또는 함수 범위 내에 유지하세요. 자세히 알아보기.
-
TFile
,TFolder
또는FileSystemAdapter
와 같은 다른 유형으로 형변환하기 전에instanceof
로 테스트하세요, -
as any
를 사용하지 말고 대신 적절한 타이핑을 사용하세요.
API 사용법
-
Vault.modify
를 사용하지 마세요. 활성 파일을 편집하려면Editor
인터페이스를 사용하는 것이 좋습니다. 백그라운드에서 편집하려면Vault.process
를 사용하세요. - frontmatter을 수동으로 읽고 쓰지 마세요. 대신
FileManager.processFrontMatter
를 사용하세요. 자세히 알아보기. - 파일을 삭제할 때
vault.delete
를 사용하지 마세요. 대신trashFile
을 사용해 사용자 기본 설정에 따라 파일이 삭제되도록 하세요. 자세히 알아보기. - 가능하면
Adapter
API를 사용하지 마세요. 대신Vault
API를 사용하세요. 자세히 알아보기. - 플러그인 데이터 읽기 및 쓰기를 직접 관리하지 마세요. 대신
Plugin.loadData()
와Plugin.saveData()
를 사용하세요. - 사용자 정의 경로를 사용하는 경우
normalizePath()
를 사용하세요. 자세히 알아보기.
성능 Performance
- 플러그인의 로드 시간을 최적화하세요. 상세 가이드.
- 경로로 파일이나 폴더를 찾기 위해 모든 파일을 반복하지 마세요. 자세히 알아보기.
- 옵시디언 1.7.2+(현재 얼리 액세스 중)와 플러그인이 호환되도록 하려면 플러그인을 업데이트하여
DeferredViews
와 함께 작동하도록 하세요. 자세한 가이드. -
moment
를 사용하는 경우 다른 복사본을 가져오지 않도록 ‘흑요석’에서import { moment} from 'obsidian'
있는지 확인하세요. -
moment
을 사용하는 경우, 다른 복사본을 가져오지 않도록import { moment} from 'obsidian'
를 수행해야 합니다. - 릴리스를 위해
main.js
를 최소화하세요. - 초기 UI 설정은 생성자나
onload()
함수가 아닌workspace.onLayoutReady()
에서 수행하세요. 자세히 알아보기.
사용자 인터페이스 User interface
- 섹션이 두 개 이상 있는 경우 설정 제목을 사용하지 마세요. 자세히 알아보기.
- 설정 제목에 ‘설정(setting)’ 또는 ‘옵션(option)‘이라는 단어를 포함하지 마세요. 자세히 알아보기.
- UI 요소의 모든 텍스트에 문장의 대소문자를 사용하여 나머지 Obsidian UI와 일관성을 유지하세요. 자세히 알아보기.
- 헤더 설정에
<h1>
또는<h2>
를 사용하지 마세요. 대신 옵시디언 API를 사용하세요. 자세히 알아보기. - 꼭 필요한 경우가 아니라면
console.log
를 수행하지 마세요. 프로덕션에 필요하지 않은 테스트 콘솔 로그는 제거하세요.