OutlineToObsidian Project - swkim0128/PARA GitHub Wiki
Outline ํด๊ณผ Obsidian ํด์ ๋๊ธฐํํ ์ ์๋ ํ๋ก์ ํธ์ ๋๋ค. ์ฌ์ฉ์๋ Outline์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋ก์ปฌ PC์ ๋งํฌ๋ค์ด ํ์ผ๋ก ๋ค์ด๋ก๋ํ๊ณ , Obsidian์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฑฐ๋ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ๋ก์ปฌ PC์์์ ๋ณ๊ฒฝ ์ฌํญ์ Outline๊ณผ ์๋์ผ๋ก ๋๊ธฐํ๋ฉ๋๋ค.
- ํจ์จ์ ์ธ ๋ฌธ์ ๊ด๋ฆฌ: Outline๊ณผ Obsidian์ ๊ฐ์ ์ ํ์ฉํ์ฌ ์ ์ฐํ ๋ฌธ์ ๊ด๋ฆฌ ์ฒด๊ณ๋ฅผ ๊ตฌ์ถํฉ๋๋ค.
- ๋ฐ์ดํฐ ์ผ๊ด์ฑ ์ ์ง: ๋ก์ปฌ ํ์ผ ์์ ์ Outline๊ณผ ๋๊ธฐํํ์ฌ ๋ฐ์ดํฐ์ ์ต์ ์ํ๋ฅผ ์ ์งํฉ๋๋ค.
-
Obsidian ์ปค๋ฎค๋ํฐ ํ๋ฌ๊ทธ์ธ ์ง์
- Obsidian ๋ด์์ ํ๋ฌ๊ทธ์ธ์ ๋ค์ด๋ก๋ํ์ฌ ์ฌ์ฉํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
-
์ค์ ๊ธฐ๋ฅ
- Obsidian ๋ด์์ Outline API ์ฐ๋์ ์ํ URL ๋ฐ personal token์ ์ค์ ํ ์ ์์ด์ผ ํฉ๋๋ค.
- ํน์ ์ปฌ๋ ์ ์ ์ค์ ํ์ฌ ํด๋น ์ปฌ๋ ์ ๋ด ๋ฌธ์๋ฅผ ๋๊ธฐํํ ์ ์๋๋ก ํฉ๋๋ค.
- ๋๊ธฐํ ์ฃผ๊ธฐ๋ฅผ ์ค์ ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
-
Outline API ์ฐ๋ ๋ฐ ๋ฐ์ดํฐ ๋๊ธฐํ
- Obsidian์์ ์ค์ ํ ์ปฌ๋ ์ ์ ๋ฌธ์๋ฅผ ๋งํฌ๋ค์ด ํ์ผ๋ก ๋ค์ด๋ก๋ํฉ๋๋ค.
- ๋ก์ปฌ์์ ์์ ๋ ํ์ผ์ด Outline์๋ ์๋์ผ๋ก ๋ฐ์๋๋๋ก ํฉ๋๋ค.
- Outline API๋ฅผ ๊ฐ์ธ์ Obsidian์์ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
- Outline์์ ์ ๊ณตํ๋ API ์์ ๋ฅผ ํฌํจํ์ฌ ๋ฌธ์ํํฉ๋๋ค.
-
ํ์ผ ์ถฉ๋ ๋ฐฉ์ง ๋ฐ ๊ด๋ฆฌ
- ๊ฐ์ ๋๋ ํฐ๋ฆฌ ๊ฒฝ๋ก ๋ด์ ๋์ผํ ์ ๋ชฉ์ ํ์ผ์ด ์กด์ฌํ ๊ฒฝ์ฐ ํด๊ฒฐ ๋ฐฉ์์ ๋ง๋ จํฉ๋๋ค.
-
Obsidian ํ๋ฌ๊ทธ์ธ ๊ฐ๋ฐ ๋ฐฉ๋ฒ ํ์ธ
- ํ๋ฌ๊ทธ์ธ ๋ณ์ ์ค์ ๋ฐฉ๋ฒ ํ์ธ
- Obsidian์์ ์ธ๋ถ API ์์ฒญํ๋ ๋ฐฉ๋ฒ ํ์ธ
-
Outline API ํ์ธ
- Outline์์ ์ ๊ณตํ๋ API ๋ชฉ๋ก์ ๊ฒํ ํ๊ณ ํ์ฉ ๋ฐฉ์์ ์ ๋ฆฌํฉ๋๋ค.
- Obsidian ๋ด์์ Outline API URL์ ์ค์ ํ ์ ์๋๋ก ํฉ๋๋ค.
- Personal token์ ์ ๋ ฅํ์ฌ ์ธ์ฆ์ ์งํํ ์ ์๋๋ก ํฉ๋๋ค.
- ๋๊ธฐํํ ์ปฌ๋ ์ ์ ์ค์ ํ ์ ์๋๋ก ํฉ๋๋ค.
- ๋๊ธฐํ ์ฃผ๊ธฐ๋ฅผ ์ค์ ํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค.
- Obsidian์์ ์ค์ ํ ์ปฌ๋ ์ ๋ด ๋ฌธ์๋ฅผ ๋งํฌ๋ค์ด ํ์ผ๋ก ๋ค์ด๋ก๋ํฉ๋๋ค.
- ๋ก์ปฌ ํ์ผ์ด ์์ ๋๋ฉด Outline์๋ ์๋์ผ๋ก ๋ฐ์๋ฉ๋๋ค.
- Outline์์ ๋ฌธ์๊ฐ ์์ ๋์์ ๊ฒฝ์ฐ, Obsidian ๋ด ํ์ผ๋ ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
- Obsidian์์ ํ์ผ์ ์ ์ฅํ๋ฉด Outline์๋ ์๋ ๋ฐ์๋ฉ๋๋ค.
- ์๋ก ์์ฑํ ํ์ผ์ Outline์ ํน์ ์์น์ ์ ๋ก๋ํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
- ๊ฐ์ ๋๋ ํฐ๋ฆฌ ๋ด ๋์ผํ ์ ๋ชฉ์ ํ์ผ์ด ์์ ๊ฒฝ์ฐ, ์ด๋ฅผ ์ฒ๋ฆฌํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
-
์ธ์ฆ
- Endpoint:
/auth
(OAuth2 ์ง์) - ๊ธฐ๋ฅ: ์ฌ์ฉ์ ์ธ์ฆ ๋ฐ ํ ํฐ ๋ฐ๊ธ
- Endpoint:
-
๋ฌธ์ ๋ชฉ๋ก ๊ฐ์ ธ์ค๊ธฐ
- Endpoint:
/documents.list
- ๊ธฐ๋ฅ: Outline ๋ด์ ๋ฌธ์ ๋ชฉ๋ก์ ๊ฐ์ ธ์ต๋๋ค.
- ์๋ต ๋ฐ์ดํฐ: ๋ฌธ์ ID, ์ ๋ชฉ, ๊ฒฝ๋ก, ์์ ๋ ์ง ๋ฑ
- Endpoint:
-
๋ฌธ์ ์์ธ ์ ๋ณด
- Endpoint:
/documents.info
- ๊ธฐ๋ฅ: ํน์ ๋ฌธ์์ ์์ธ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
- ์๋ต ๋ฐ์ดํฐ: ๋ณธ๋ฌธ ๋ด์ฉ, ์์ฑ์, ํ๊ทธ ๋ฑ
- Endpoint:
-
๋ฌธ์ ์์ฑ
- Endpoint:
/documents.create
- ๊ธฐ๋ฅ: ์๋ก์ด ๋ฌธ์๋ฅผ ์์ฑํฉ๋๋ค.
- Endpoint:
-
๋ฌธ์ ์์
- Endpoint:
/documents.update
- ๊ธฐ๋ฅ: ๊ธฐ์กด ๋ฌธ์๋ฅผ ์์ ํฉ๋๋ค.
- Endpoint:
-
๋ฌธ์ ์ญ์
- Endpoint:
/documents.delete
- ๊ธฐ๋ฅ: ๋ฌธ์๋ฅผ ์ญ์ ํฉ๋๋ค.
- Endpoint:
-
ํ๋ฌ๊ทธ์ธ ์ค์ ํ์ผ
-
manifest.json
: ํ๋ฌ๊ทธ์ธ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ํฉ๋๋ค.{ "id": "outline-sync", "name": "Outline Sync", "version": "1.0.0", "author": "Your Name", "minAppVersion": "0.12.0" }
-
-
ํ๋ฌ๊ทธ์ธ ์ํธ๋ฆฌ ํ์ผ
-
main.js
: ํ๋ฌ๊ทธ์ธ์ ์ง์ ์ ์ผ๋ก ๋์ํ๋ ๋ก์ง ์์ฑimport { Plugin } from 'obsidian'; export default class OutlineSyncPlugin extends Plugin { async onload() { console.log('Outline Sync Plugin Loaded'); // ๋๊ธฐํ ๋ก์ง ์ถ๊ฐ } onunload() { console.log('Outline Sync Plugin Unloaded'); } }
-
-
Outline API ํธ์ถ
-
fetch
API๋ฅผ ์ฌ์ฉํ์ฌ Outline ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋ ์์ ํฉ๋๋ค.
-
-
ํ์ผ ๊ด๋ฆฌ
-
Obsidian์ ํ์ผ API๋ฅผ ์ฌ์ฉํ์ฌ ๋ก์ปฌ ํ์ผ์ ์ฝ๊ณ ์๋๋ค.
this.app.vault.adapter.write('path/to/file.md', 'Markdown content');
-
-
์ด๋ฒคํธ ๋ฆฌ์ค๋ ๋ฑ๋ก
-
ํ์ผ ๋ณ๊ฒฝ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ์ฌ ๋๊ธฐํ ํธ๋ฆฌ๊ฑฐ๋ก ํ์ฉํฉ๋๋ค.
this.registerEvent( this.app.vault.on('modify', (file) => { console.log(`${file.path} was modified.`); // Outline ์ ๋ฐ์ดํธ ๋ก์ง ์ถ๊ฐ }) );
-
- ๋๋ฒ๊น : Obsidian ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ํ์ฉํ์ฌ ์ค๋ฅ๋ฅผ ๋๋ฒ๊น ํฉ๋๋ค.
- ๋ฐฐํฌ: GitHub ์ ์ฅ์์ ์ฝ๋๋ฅผ ์ ๋ก๋ํ๊ณ Obsidian ํ๋ฌ๊ทธ์ธ ์ ์ฅ์์ ๋ฑ๋กํฉ๋๋ค.
-
ํ๋กํ ํ์ ๊ตฌํ
- Outline API๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ก์ง๊ณผ Obsidian ํ๋ฌ๊ทธ์ธ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ๊ตฌํํฉ๋๋ค.
-
๋๊ธฐํ ๋ก์ง ๊ฐ์
- ์๋ฐฉํฅ ๋๊ธฐํ ๋ฐ ์ถฉ๋ ๊ด๋ฆฌ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณํฉ๋๋ค.
-
์ฌ์ฉ์ ํผ๋๋ฐฑ ๋ฐ์
- ์ด๊ธฐ ์ฌ์ฉ์ ํผ๋๋ฐฑ์ ๋ฐ์ ๊ธฐ๋ฅ์ ๊ฐ์ ํฉ๋๋ค.
-
์ต์ข ๋ฐฐํฌ
- ๋ฌธ์ํ ๋ฐ ํํ ๋ฆฌ์ผ ์ ๊ณต ํ ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํฉ๋๋ค.