출처: https://docs.obsidian.md/oo24/plugin

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

이 섹션은 매니페스트에서 isDesktopOnlyfalse으로 설정된 경우에만 작성하세요.

  • 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 대신 asyncawait를 사용하세요. 자세히 알아보기.
  • 전역 변수를 사용하지 마세요. 변수는 클래스 또는 함수 범위 내에 유지하세요. 자세히 알아보기.
  • 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를 수행하지 마세요. 프로덕션에 필요하지 않은 테스트 콘솔 로그는 제거하세요.