Obsidian Build a plugin - swkim0128/PARA GitHub Wiki
Obsidian์ด ํ๋ฌ๊ทธ์ธ์ ์ธ์ํ ์ ์๋๋ก .obsidian/plugins
๋๋ ํฐ๋ฆฌ์ ์ํ ํ๋ฌ๊ทธ์ธ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
- ํฐ๋ฏธ๋์์
plugins
๋๋ ํฐ๋ฆฌ๋ก ์ด๋
cd path/to/vault
mkdir -p .obsidian/plugins
cd .obsidian/plugins
- Git์ ์ฌ์ฉํ์ฌ ์ํ ํ๋ฌ๊ทธ์ธ ํด๋ก
git clone https://github.com/obsidianmd/obsidian-sample-plugin.git
๐ ์ฐธ๊ณ : ํด๋น ์ ์ฅ์๋ GitHub ํ ํ๋ฆฟ ์ ์ฅ์์ ๋๋ค. ๊ฐ์ธ ์ ์ฅ์๋ฅผ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด, GitHub ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Obsidian์ด ํ๋ฌ๊ทธ์ธ์ ๋ก๋ํ ์ ์๋๋ก ์์ค ์ฝ๋๋ฅผ ์ปดํ์ผํฉ๋๋ค.
- ํ๋ฌ๊ทธ์ธ ๋๋ ํฐ๋ฆฌ๋ก ์ด๋
cd obsidian-sample-plugin
- ํ์ํ ํจํค์ง ์ค์น
npm install
- ์์ค ์ฝ๋ ์ปดํ์ผ
npm run dev
๐น ์ด ๋ช ๋ น์ด๋ ํฐ๋ฏธ๋์์ ์คํ๋ ์ํ๋ก ์ ์ง๋๋ฉฐ, ์ฝ๋ ์์ ์ ์๋์ผ๋ก ๋ค์ ๋น๋๋ฉ๋๋ค.
Obsidian์์ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ ค๋ฉด ์ค์ ์์ ํ์ฑํํด์ผ ํฉ๋๋ค.
- Obsidian์์ ์ค์ (Settings) ์ ์ฝ๋๋ค.
- ์ฌ์ด๋ ๋ฉ๋ด์์ ์ปค๋ฎค๋ํฐ ํ๋ฌ๊ทธ์ธ(Community plugins) ์ ์ ํํฉ๋๋ค.
- ์ปค๋ฎค๋ํฐ ํ๋ฌ๊ทธ์ธ ํ์ฑํ(Turn on community plugins) ๋ฅผ ์ ํํฉ๋๋ค.
- ์ค์น๋ ํ๋ฌ๊ทธ์ธ(Installed plugins) ๋ชฉ๋ก์์ Sample Plugin ์ ํ์ฑํํฉ๋๋ค.
โ ์ด์ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ ์ค๋น๊ฐ ๋์์ต๋๋ค.
ํ๋ฌ๊ทธ์ธ์ ์ด๋ฆ์ ๋ณ๊ฒฝํ๋ ค๋ฉด manifest.json
ํ์ผ์ ์์ ํด์ผ ํฉ๋๋ค.
-
manifest.json
ํ์ผ์ ์ฝ๋ ํธ์ง๊ธฐ๋ก ์ฝ๋๋ค. -
id
๊ฐ์"hello-world"
๋ก ๋ณ๊ฒฝํฉ๋๋ค. -
name
๊ฐ์"Hello world"
๋ก ๋ณ๊ฒฝํฉ๋๋ค. - ํ๋ฌ๊ทธ์ธ ํด๋ ์ด๋ฆ์
id
๊ฐ๊ณผ ๋์ผํ๊ฒ ๋ณ๊ฒฝํฉ๋๋ค. - Obsidian์ ์ฌ์์ ํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์ํฉ๋๋ค.
โ
์ค์น๋ ํ๋ฌ๊ทธ์ธ ๋ชฉ๋ก์์ ์๋ก์ด ์ด๋ฆ์ผ๋ก ์
๋ฐ์ดํธ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๐ manifest.json
์ ์์ ํ ํ์๋ ๋ฐ๋์ Obsidian์ ์ฌ์์ํด์ผ ๋ณ๊ฒฝ์ฌํญ์ด ๋ฐ์๋ฉ๋๋ค.
ํ๋ฌ๊ทธ์ธ์ ๋ฆฌ๋ณธ ์์ด์ฝ์ ์ถ๊ฐํ๊ณ ํด๋ฆญํ๋ฉด ์ธ์ฌ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๋๋ก ์์ ํฉ๋๋ค.
-
main.ts
ํ์ผ์ ์ฝ๋๋ค. - ํด๋์ค ์ด๋ฆ์
MyPlugin
์์HelloWorldPlugin
์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. -
obsidian
ํจํค์ง์์Notice
๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
import { Notice, Plugin } from 'obsidian';
-
onload()
๋ฉ์๋์ ๋ค์ ์ฝ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค.
this.addRibbonIcon('dice', 'Greet', () => {
new Notice('Hello, world!');
});
- Obsidian์ ์๋ก๊ณ ์นจํ์ฌ ํ๋ฌ๊ทธ์ธ ๋ณ๊ฒฝ์ฌํญ์ ๋ฐ์ํฉ๋๋ค.
- ๋ฐฉ๋ฒ 1: ์ปค๋งจ๋ ํ๋ ํธ์์ Reload app without saving ์คํ
- ๋ฐฉ๋ฒ 2: ์ปค๋ฎค๋ํฐ ํ๋ฌ๊ทธ์ธ ํจ๋์์ ํ๋ฌ๊ทธ์ธ์ ๋นํ์ฑํ ํ ๋ค์ ํ์ฑํ
โ ์ด์ Obsidian์ ์ผ์ชฝ ๋ฆฌ๋ณธ์ ๐ฒ (์ฃผ์ฌ์) ์์ด์ฝ์ด ์์ฑ๋๋ฉฐ, ํด๋ฆญํ๋ฉด "Hello, world!" ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
๐ Hot Reload ๊ธฐ๋ฅ์ ์ํ๋ฉด, Hot-Reload ํ๋ฌ๊ทธ์ธ์ ์ค์นํ๋ฉด ํ๋ฌ๊ทธ์ธ ๋ณ๊ฒฝ ์ฌํญ์ ์๋์ผ๋ก ๋ฐ์ํ ์ ์์ต๋๋ค.