Skip to content

LazyZane/feishushare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

23 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

้ฃžไนฆๅˆ†ไบซ (Feishu Share)

Version License TypeScript

ไธ€ไธชๅŠŸ่ƒฝๅผบๅคง็š„ Obsidian ๆ’ไปถ๏ผŒ่ฎฉๆ‚จ่ฝปๆพๅฐ† Markdown ๆ–‡ๆกฃๆ— ็ผๅˆ†ไบซๅˆฐ้ฃžไนฆไบ‘ๆ–‡ๆกฃใ€‚ๆ”ฏๆŒๅฎŒๆ•ด็š„ๆ ผๅผ่ฝฌๆขใ€ๆ–‡ไปถไธŠไผ ใ€ๅญๆ–‡ๆกฃๅตŒๅ…ฅๅ’Œ่ทจๆ–‡ๆกฃๅ›พ็‰‡ๅค„็†ใ€‚

โœจ ๆ ธๅฟƒ็‰นๆ€ง

๐Ÿš€ ๅˆ†ไบซไฝ“้ชŒ

  • ไธ€้”ฎๅˆ†ไบซ - ๆ”ฏๆŒๅ‘ฝไปค้ขๆฟใ€ๅณ้”ฎ่œๅ•ใ€ๆ–‡ไปถ็ฎก็†ๅ™จๅคš็งๅˆ†ไบซๆ–นๅผ
  • ๅŒๆจกๅผๆ”ฏๆŒ - ๆ”ฏๆŒไบ‘็ฉบ้—ดๅ’Œ็Ÿฅ่ฏ†ๅบ“ไธค็งๅˆ†ไบซ็›ฎๆ ‡
  • ๆ™บ่ƒฝๆ›ดๆ–ฐ - ่‡ชๅŠจ่ฏ†ๅˆซๅทฒๅˆ†ไบซๆ–‡ๆกฃ๏ผŒๆ”ฏๆŒๅขž้‡ๆ›ดๆ–ฐ
  • ๆ‰น้‡ๅค„็† - ไฝฟ็”จ้ฃžไนฆๅตŒๅฅ—ๅ—API๏ผŒๅคงๅน…ๆๅ‡ๅค„็†ๆ€ง่ƒฝ

๐Ÿ”’ ๅฎ‰ๅ…จๅฏ้ 

  • ๅฎ˜ๆ–นๆŽˆๆƒ - ๆ ‡ๅ‡† OAuth 2.0 ๆต็จ‹๏ผŒๆ”ฏๆŒ่‡ชๅŠจTokenๅˆทๆ–ฐ
  • ๆƒ้™ๅฏๆŽง - ๆ”ฏๆŒๅคš็ง้“พๆŽฅๅˆ†ไบซๆƒ้™่ฎพ็ฝฎ
  • ๆ•ฐๆฎ้š”็ฆป - ็›ด่ฟž้ฃžไนฆAPI๏ผŒๆ— ็ฌฌไธ‰ๆ–นๆœๅŠกๅ™จไธญ่ฝฌ
  • ้”™่ฏฏๆขๅค - ๅฎŒๅ–„็š„ๅผ‚ๅธธๅค„็†ๅ’Œ้‡่ฏ•ๆœบๅˆถ

๐ŸŽจ ๆ ผๅผๅ…ผๅฎน

  • ๅฎŒๆ•ดMarkdown - ๆ”ฏๆŒๆ ‡้ข˜ใ€ๅˆ—่กจใ€่กจๆ ผใ€ไปฃ็ ๅ—ใ€ๅผ•็”จ็ญ‰
  • Obsidian่ฏญๆณ• - ๅฎŒ็พŽๅค„็†ๅŒ้“พใ€ๆ ‡็ญพใ€ๅตŒๅ…ฅ็ญ‰็‰นๆœ‰่ฏญๆณ•
  • Callout่ฝฌๆข - ๆ™บ่ƒฝ่ฝฌๆขObsidianๆ ‡ๆณจๅ—ไธบ้ฃžไนฆๆ ทๅผ
  • ๆ ผๅผไฟๆŒ - ๆœ€ๅคง็จ‹ๅบฆไฟๆŒๅŽŸๆ–‡ๆกฃ็š„่ง†่ง‰ๆ•ˆๆžœ

๐Ÿ“Ž ๆ–‡ไปถๅค„็†

  • ๆœฌๅœฐๆ–‡ไปถไธŠไผ  - ่‡ชๅŠจไธŠไผ ๅ›พ็‰‡ใ€ๆ–‡ๆกฃใ€่กจๆ ผ็ญ‰้™„ไปถ
  • ๐Ÿ–ผ๏ธ ๅ›พ็‰‡ๅค„็†ๅขžๅผบ - ่ทจๆ–‡ๆกฃๅ›พ็‰‡ๅคๅˆถ๏ผŒๆ™บ่ƒฝไธ‹่ฝฝ้‡ๆ–ฐไธŠไผ 
  • ๅญๆ–‡ๆกฃๅตŒๅ…ฅ - ๆ”ฏๆŒๅตŒๅ…ฅMarkdownๆ–‡ไปถไฝœไธบๅญๆ–‡ๆกฃ้“พๆŽฅ
  • ๆ‰น้‡ไผ˜ๅŒ– - ๆ™บ่ƒฝๆ‰น้‡ไธŠไผ ๏ผŒๅ‡ๅฐ‘API่ฐƒ็”จ

๐Ÿท๏ธ ๆ™บ่ƒฝๆ ‡่ฎฐ

  • Front Matter้›†ๆˆ - ่‡ชๅŠจๆทปๅŠ ๅˆ†ไบซๆ ‡่ฎฐใ€้“พๆŽฅๅ’Œๆ—ถ้—ดๆˆณ
  • ็Šถๆ€่ทŸ่ธช - ่ฎฐๅฝ•ๆ–‡ๆกฃๅˆ†ไบซ็Šถๆ€๏ผŒ้ฟๅ…้‡ๅคๅค„็†
  • URL็ฎก็† - ่‡ชๅŠจๆ›ดๆ–ฐๅ’Œ็ปดๆŠค้ฃžไนฆๆ–‡ๆกฃ้“พๆŽฅ
  • ๅญ—ๆฎตไฟๆŠค - ๅชๆ›ดๆ–ฐ็›ธๅ…ณๅญ—ๆฎต๏ผŒไฟๆŠคๅŽŸๆœ‰Front Matterๆ•ฐๆฎ

๐Ÿ“ฆ ๅฎ‰่ฃ…

ไปŽ Obsidian ็คพๅŒบๆ’ไปถๅธ‚ๅœบๅฎ‰่ฃ…๏ผˆๆŽจ่๏ผ‰

  1. ๆ‰“ๅผ€ Obsidian ่ฎพ็ฝฎ
  2. ่ฟ›ๅ…ฅ"็ฌฌไธ‰ๆ–นๆ’ไปถ"้กต้ข
  3. ๅ…ณ้—ญ"ๅฎ‰ๅ…จๆจกๅผ"
  4. ็‚นๅ‡ป"ๆต่งˆ็คพๅŒบๆ’ไปถ"
  5. ๆœ็ดข"้ฃžไนฆๅˆ†ไบซ"ๆˆ–"Feishu Share"
  6. ็‚นๅ‡ปๅฎ‰่ฃ…ๅนถๅฏ็”จ

ๆ‰‹ๅŠจๅฎ‰่ฃ…

  1. ไปŽ Releases ไธ‹่ฝฝๆœ€ๆ–ฐ็‰ˆๆœฌ
  2. ่งฃๅŽ‹ๅˆฐ Obsidian ๆ’ไปถ็›ฎๅฝ•๏ผš{vault}/.obsidian/plugins/obsidian-feishu-direct/
  3. ้‡ๅฏ Obsidian ๅนถๅœจ่ฎพ็ฝฎไธญๅฏ็”จๆ’ไปถ

โš™๏ธ ้…็ฝฎๆŒ‡ๅ—

็ฌฌไธ€ๆญฅ๏ผšๅˆ›ๅปบ้ฃžไนฆๅบ”็”จ

  1. ่ฎฟ้—ฎ ้ฃžไนฆๅผ€ๆ”พๅนณๅฐ
  2. ๅˆ›ๅปบ"ไผไธš่‡ชๅปบๅบ”็”จ"
  3. ่ฎฐๅฝ• App ID ๅ’Œ App Secret
  4. ๅœจ"ๆƒ้™็ฎก็†"ไธญๆทปๅŠ ไปฅไธ‹ๆƒ้™๏ผˆๆœ€ๅฐ้›†๏ผ‰๏ผš
    • user_access_token - ็”จๆˆท่บซไปฝๆƒ้™
    • contact:user.base:readonly - ่Žทๅ–็”จๆˆทๅŸบๆœฌไฟกๆฏ
    • docx:document - ๅˆ›ๅปบใ€็ผ–่พ‘ๆ–‡ๆกฃ
    • drive:drive - ่ฎฟ้—ฎไบ‘็ฉบ้—ดๆ–‡ไปถ
    • wiki:wiki-่ฎฟๅฏๅ’Œ็ฎก็†็Ÿฅ่ฏ†ๅบ“

็ฌฌไบŒๆญฅ๏ผš้…็ฝฎๅ›ž่ฐƒๅœฐๅ€

ๅœจๅบ”็”จ็š„"ๅฎ‰ๅ…จ่ฎพ็ฝฎ" โ†’ "้‡ๅฎšๅ‘URL"ไธญๆทปๅŠ ๏ผš

https://md2feishu.xinqi.life/oauth-callback

็ฌฌไธ‰ๆญฅ๏ผšๆ’ไปถๆŽˆๆƒ

  1. ๅœจ Obsidian ๆ’ไปถ่ฎพ็ฝฎไธญ่พ“ๅ…ฅ App ID ๅ’Œ App Secret
  2. ็‚นๅ‡ป"๐Ÿš€ ไธ€้”ฎๆŽˆๆƒ"ๆŒ‰้’ฎ
  3. ๅœจๅผนๅ‡บ็š„ๆต่งˆๅ™จไธญๅฎŒๆˆ้ฃžไนฆ็™ปๅฝ•ๆŽˆๆƒ
  4. ๆŽˆๆƒๆˆๅŠŸๅŽๅณๅฏๅผ€ๅง‹ไฝฟ็”จ

๐Ÿš€ ไฝฟ็”จๆŒ‡ๅ—

๐Ÿ“‹ ๅˆ†ไบซๆ–นๅผ

ๆ’ไปถๆไพ›ๅคš็งไพฟๆท็š„ๅˆ†ไบซๆ–นๅผ๏ผš

1. ๅ‘ฝไปค้ขๆฟ๏ผˆๆŽจ่๏ผ‰

  • ๅฟซๆท้”ฎ๏ผšCtrl+P (Windows) ๆˆ– Cmd+P (Mac)
  • ๆœ็ดขๅ‘ฝไปค๏ผš่พ“ๅ…ฅ"ๅˆ†ไบซๅฝ“ๅ‰็ฌ”่ฎฐๅˆฐ้ฃžไนฆ"
  • ๅ›ž่ฝฆๆ‰ง่กŒ๏ผš็›ดๆŽฅๅผ€ๅง‹ๅˆ†ไบซๆต็จ‹

2. ๅณ้”ฎ่œๅ•

  • ็ผ–่พ‘ๅ™จๅ†…๏ผšๅœจ็ผ–่พ‘ๅ™จไธญๅณ้”ฎ โ†’ ็‚นๅ‡ป"๐Ÿ“ค ๅˆ†ไบซๅˆฐ้ฃžไนฆ"
  • ๆ–‡ไปถ็ฎก็†ๅ™จ๏ผšๅœจๆ–‡ไปถๅˆ—่กจไธญๅณ้”ฎ MD ๆ–‡ไปถ โ†’ "๐Ÿ“ค ๅˆ†ไบซๅˆฐ้ฃžไนฆ"

๐Ÿ“ ๆ–‡ไปถๅค„็†ๅŠŸ่ƒฝ

๐Ÿ–ผ๏ธ ๅ›พ็‰‡ๅค„็†๏ผˆv2.5.0 ๆ–ฐๅขž๏ผ‰

ๆ™บ่ƒฝๅ›พ็‰‡ๅคๅˆถ - ๆ’ไปถไธบๆ‚จ่งฃๅ†ณ้ฃžไนฆๅ›พ็‰‡่ทจๆ–‡ๆกฃ้™ๅˆถ้—ฎ้ข˜๏ผš

  • ่‡ชๅŠจ่ฏ†ๅˆซ๏ผšๆฃ€ๆต‹้œ€่ฆๅค„็†็š„ๅ›พ็‰‡ๅ—
  • ๆ™บ่ƒฝไธ‹่ฝฝ๏ผšไปŽๆบๆ–‡ๆกฃไธ‹่ฝฝๅŽŸๅง‹ๅ›พ็‰‡
  • ้‡ๆ–ฐไธŠไผ ๏ผšไธŠไผ ๅˆฐ็›ฎๆ ‡ๆ–‡ๆกฃๅนถๆ›ดๆ–ฐๅผ•็”จ
  • ้”™่ฏฏ้š”็ฆป๏ผšๅ•ไธชๅ›พ็‰‡ๅคฑ่ดฅไธๅฝฑๅ“ๆ•ดไฝ“ๆ›ดๆ–ฐ

๐Ÿ“Ž ๆœฌๅœฐๆ–‡ไปถไธŠไผ 

ๆ”ฏๆŒๆ ผๅผ๏ผš

  • ๅ›พ็‰‡ๆ–‡ไปถ๏ผš![alt](./image.png) ๆˆ– ![[image.png]]
  • ้™„ไปถๆ–‡ไปถ๏ผš![[document.pdf]] ๆˆ– ![[spreadsheet.xlsx]]
  • ๅคšๅช’ไฝ“๏ผšPNGใ€JPGใ€GIFใ€WebPใ€PDFใ€DOCXใ€XLSX็ญ‰

ๅค„็†ๆต็จ‹๏ผš

  1. ๆ‰ซๆๆ–‡ๆกฃไธญ็š„ๆœฌๅœฐๆ–‡ไปถๅผ•็”จ
  2. ็”Ÿๆˆไธดๆ—ถๅ ไฝ็ฌฆๆ›ฟๆขๅผ•็”จ
  3. ไธŠไผ ๆ–‡ๆกฃๅ†…ๅฎนๅˆฐ้ฃžไนฆ
  4. ้€ไธชไธŠไผ ๆœฌๅœฐๆ–‡ไปถ
  5. ๅฐ†ๅ ไฝ็ฌฆๆ›ฟๆขไธบๅฎž้™…ๆ–‡ไปถๅ—

๐Ÿ“„ ๅญๆ–‡ๆกฃๅตŒๅ…ฅ

Markdownๆ–‡ไปถๅตŒๅ…ฅ๏ผš![[other-note.md]]

  • ไฝœไธบๅญๆ–‡ๆกฃไธŠไผ ๅˆฐ้ฃžไนฆ
  • ๅœจๅŽŸไฝ็ฝฎๆ’ๅ…ฅๆ–‡ๆกฃ้“พๆŽฅ
  • ๆ”ฏๆŒ้€’ๅฝ’ๅค„็†ๅญๆ–‡ๆกฃไธญ็š„ๆ–‡ไปถๅผ•็”จ
  • ้˜ฒๅพช็Žฏๅผ•็”จๅ’Œๆทฑๅบฆ้™ๅˆถไฟๆŠค

๐ŸŽ ้ซ˜็บง็‰นๆ€ง

๐Ÿท๏ธ Front Matter ้›†ๆˆ

่‡ชๅŠจๆ ‡่ฎฐ - ๅˆ†ไบซๆˆๅŠŸๅŽ่‡ชๅŠจๆทปๅŠ ๏ผš

---
feishushare: true                    # ๅˆ†ไบซ็Šถๆ€ๆ ‡่ฎฐ
feishu_url: https://example.feishu.cn/... # ้ฃžไนฆๆ–‡ๆกฃ้“พๆŽฅ
feishu_shared_at: 2025-01-17 10:30       # ๅˆ†ไบซๆ—ถ้—ด๏ผˆไธœ8ๅŒบ๏ผŒYYYY-MM-DD HH:mm๏ผ‰
---

โ›” ไปฃ็ ๅ—่ฟ‡ๆปค๏ผˆๅ†…ๅฎนๆŽ’้™ค๏ผ‰

ๅฝ“ๆŸไบ›ไปฃ็ ๅ—ไป…็”จไบŽ Obsidian ๆœฌๅœฐๆ ทๅผ/ๆ’ไปถ๏ผˆไพ‹ๅฆ‚ meta-bind-embedใ€dataviewjs๏ผ‰๏ผŒๅฏๅœจ่ฎพ็ฝฎไธญๅฏ็”จโ€œไปฃ็ ๅ—่ฟ‡ๆปคโ€๏ผš

  • ๅœจ่ฎพ็ฝฎ้กตโ€œไปฃ็ ๅ—่ฟ‡ๆปคโ€ไธญ๏ผŒๆฏ่กŒ่พ“ๅ…ฅไธ€ไธช่ฏญ่จ€ๅ๏ผˆๅคงๅฐๅ†™ไธๆ•ๆ„Ÿ๏ผ‰๏ผš
meta-bind-embed
dataviewjs
  • ่ขซๅˆ—ๅ‡บ็š„ fenced code block๏ผˆ``` ๆˆ– ~~~๏ผ‰ๅœจไธŠไผ ๅˆฐ้ฃžไนฆๅ‰ไผš่ขซ็งป้™ค๏ผ›ๆœชๅˆ—ๅ‡บ็š„ไปฃ็ ๅ—ๅฐ†ๆŒ‰ๅŽŸๆ ทไฟ็•™ใ€‚

ๆ็คบ๏ผšไป…ๅฝฑๅ“ fenced code block๏ผŒไธๅฝฑๅ“ๅ†…่”ไปฃ็ ใ€Callout ๆˆ– HTMLใ€‚

ไฟๆŠคๆœบๅˆถ๏ผš

  • ๅชๆ›ดๆ–ฐ้ฃžไนฆ็›ธๅ…ณๅญ—ๆฎต
  • ๅฎŒๆ•ดไฟ็•™ๅŽŸๆœ‰ Front Matter ๆ•ฐๆฎ
  • ๆ”ฏๆŒๅคๆ‚ YAML ็ป“ๆž„๏ผˆๆ•ฐ็ป„ใ€ๅฏน่ฑก็ญ‰๏ผ‰

๐Ÿ“ฆ ๆ‰น้‡ไผ˜ๅŒ–๏ผˆv2.4.0+๏ผ‰

ๆ€ง่ƒฝๆๅ‡ - ไฝฟ็”จ้ฃžไนฆๅตŒๅฅ—ๅ—API๏ผš

  • ๅค„็†้€Ÿๅบฆๆๅ‡75%-99%
  • API่ฐƒ็”จๅ‡ๅฐ‘90%ไปฅไธŠ
  • ๆ™บ่ƒฝๅ›ž้€€ๆœบๅˆถไฟ่ฏๅ…ผๅฎนๆ€ง
  • ้ข‘็އๆŽงๅˆถ้˜ฒๆญข429้”™่ฏฏ

๐ŸŽฏ ็›ฎๆ ‡้€‰ๆ‹ฉ

๐Ÿ“ ไบ‘็ฉบ้—ด้…็ฝฎ

  1. ๅœจๆ’ไปถ่ฎพ็ฝฎไธญ็‚นๅ‡ป ๐Ÿ“ ้€‰ๆ‹ฉๆ–‡ไปถๅคน
  2. ๆต่งˆ้ฃžไนฆไบ‘็ฉบ้—ดๆ–‡ไปถ็ป“ๆž„
  3. ้€‰ๆ‹ฉ้€‚ๅˆ็š„ๆ–‡ไปถๅคนไฝœไธบ้ป˜่ฎคไฟๅญ˜ไฝ็ฝฎ

๐Ÿ“– ็Ÿฅ่ฏ†ๅบ“้…็ฝฎ

  1. ๅœจ"็›ฎๆ ‡็ฑปๅž‹"ไธญ้€‰ๆ‹ฉ"็Ÿฅ่ฏ†ๅบ“"
  2. ็‚นๅ‡ป ๐Ÿ“– ้€‰ๆ‹ฉ็Ÿฅ่ฏ†ๅบ“ ๆŒ‰้’ฎ
  3. ้€‰ๆ‹ฉ็›ฎๆ ‡็Ÿฅ่ฏ†ๅบ“็ฉบ้—ดๅ’Œ่Š‚็‚น๏ผˆไธ้€‰่Š‚็‚นๅˆ™ไฟๅญ˜ๅˆฐ่ฏฅ็Ÿฅ่ฏ†ๅบ“ๆ น็›ฎๅฝ•๏ผ‰

ๆƒ้™่ฏดๆ˜Ž๏ผˆๆœ€ๅฐ้›†๏ผ‰๏ผš

  • ็”จๆˆท่บซไปฝๆƒ้™๏ผšuser_access_token
  • ๅบ”็”จ่บซไปฝๆƒ้™๏ผšwiki:wiki

โœ… ๅˆ†ไบซ็ป“ๆžœ

ๆˆๅŠŸๆ็คบ - ๅˆ†ไบซๅฎŒๆˆๅŽๆ˜พ็คบ๏ผš

  • โœ… ๆˆๅŠŸๆ็คบๅ’Œๆ–‡ๆกฃ้“พๆŽฅ
  • ๐Ÿ“‹ ไธ€้”ฎๅคๅˆถ้“พๆŽฅๅŠŸ่ƒฝ
  • ๐Ÿ“Ž ้™„ไปถไธŠไผ ็Šถๆ€ๅ’Œ็ป“ๆžœ
  • ๐Ÿ—‘๏ธ ่‡ชๅŠจๆธ…็†ไธดๆ—ถๆ–‡ไปถ

้”™่ฏฏๅค„็† - ๅ‡บ็Žฐ้—ฎ้ข˜ๆ—ถ๏ผš

  • ๆ˜Ž็กฎ็š„้”™่ฏฏๆ่ฟฐๅ’Œ่งฃๅ†ณๅปบ่ฎฎ
  • ่‡ชๅŠจ้‡่ฏ•ๅ’Œๆ™บ่ƒฝๅ›ž้€€
  • ่ฏฆ็ป†็š„ๆ—ฅๅฟ—ไฟกๆฏไพ›ๆŽ’ๆŸฅ

๐Ÿ” ๆŠ€ๆœฏๅฎž็Žฐ

ๆ ธๅฟƒๆžถๆž„

Obsidianๆ’ไปถ โ†’ ็›ดๆŽฅ่ฐƒ็”จ้ฃžไนฆAPI

ไธป่ฆๅŠŸ่ƒฝ

  • OAuthๆŽˆๆƒ - ๆ ‡ๅ‡†OAuth 2.0ๆต็จ‹๏ผŒๆ”ฏๆŒ่‡ชๅŠจ้‡ๆ–ฐๆŽˆๆƒ
  • ๆ–‡ไปถไธŠไผ  - ไฝฟ็”จFormData็›ดๆŽฅไธŠไผ ๏ผŒๆ”ฏๆŒๅคš็งๆ–‡ไปถๆ ผๅผ
  • ๅ›พ็‰‡ๅค„็†ๆœๅŠก - ๆ™บ่ƒฝๅ›พ็‰‡ไธ‹่ฝฝ้‡ๆ–ฐไธŠไผ ๏ผŒ่งฃๅ†ณ่ทจๆ–‡ๆกฃๅ›พ็‰‡ๅคๅˆถ้—ฎ้ข˜
  • ๆ™บ่ƒฝๅ ไฝ็ฌฆ - ้ข„็ผ–่ฏ‘ๆญฃๅˆ™่กจ่พพๅผ๏ผŒๆ”ฏๆŒๆ—ฉๆœŸ้€€ๅ‡บไผ˜ๅŒ–
  • ๅญๆ–‡ๆกฃๅค„็† - ้€’ๅฝ’ๅค„็†ๅตŒๅ…ฅ็š„Markdownๆ–‡ไปถ
  • Token็ฎก็† - ่‡ชๅŠจๅˆทๆ–ฐ่ฎฟ้—ฎไปค็‰Œ๏ผŒๆ™บ่ƒฝ้‡่ฏ•ๆœบๅˆถ
  • ้”™่ฏฏๅค„็† - ๅ‹ๅฅฝ็š„้”™่ฏฏๆ็คบๅ’Œๅคš้‡ๅค‡็”จๆ–นๆกˆ

API่ฐƒ็”จ

// ๆ–‡ไปถไธŠไผ ็คบไพ‹
const formData = new FormData();
formData.append('file_name', fileName);
formData.append('parent_type', 'explorer');
formData.append('size', content.length.toString());
formData.append('file', blob, fileName);

const response = await fetch('https://open.feishu.cn/open-apis/drive/v1/files/upload_all', {
    method: 'POST',
    headers: {
        'Authorization': `Bearer ${accessToken}`,
    },
    body: formData
});

๐Ÿ› ๏ธ ๅผ€ๅ‘

้กน็›ฎ็ป“ๆž„

src/
โ”œโ”€โ”€ main.ts                 # ไธปๆ’ไปถ็ฑป
โ”œโ”€โ”€ feishu-api.ts           # ้ฃžไนฆAPIๆœๅŠก๏ผˆๅฎŒๆ•ดๅŠŸ่ƒฝ๏ผŒๅŒ…ๅซๅ›พ็‰‡ๅค„็†ๆœๅŠก๏ผ‰
โ”œโ”€โ”€ markdown-processor.ts   # Markdownๅ†…ๅฎนๅค„็†ๅ™จ
โ”œโ”€โ”€ settings.ts             # ่ฎพ็ฝฎ็•Œ้ข
โ”œโ”€โ”€ manual-auth-modal.ts    # ๆ‰‹ๅŠจๆŽˆๆƒๆจกๆ€ๆก†
โ”œโ”€โ”€ folder-select-modal.ts  # ๆ–‡ไปถๅคน้€‰ๆ‹ฉๆจกๆ€ๆก†
โ”œโ”€โ”€ dom-utils.ts            # DOMๅทฅๅ…ทๅ‡ฝๆ•ฐ
โ”œโ”€โ”€ debug.ts                # ่ฐƒ่ฏ•ๅทฅๅ…ท
โ”œโ”€โ”€ types.ts                # ็ฑปๅž‹ๅฎšไน‰
โ””โ”€โ”€ constants.ts            # ๅธธ้‡้…็ฝฎ

ๆŠ€ๆœฏๆžถๆž„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Obsidian      โ”‚    โ”‚  ้ฃžไนฆๅˆ†ไบซๆ’ไปถ    โ”‚    โ”‚    ้ฃžไนฆAPI      โ”‚
โ”‚                 โ”‚    โ”‚                 โ”‚    โ”‚                 โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚    โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚    โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚ Markdown    โ”‚โ—„โ”ผโ”€โ”€โ”€โ”€โ”ผโ–บโ”‚ Processor   โ”‚ โ”‚    โ”‚ โ”‚ Document    โ”‚ โ”‚
โ”‚ โ”‚ Files       โ”‚ โ”‚    โ”‚ โ”‚             โ”‚ โ”‚    โ”‚ โ”‚ API         โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚    โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚    โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚                 โ”‚    โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚    โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚    โ”‚ โ”‚ Auth        โ”‚โ—„โ”ผโ”€โ”€โ”€โ”€โ”ผโ–บโ”‚ OAuth       โ”‚ โ”‚
โ”‚ โ”‚ Local       โ”‚โ—„โ”ผโ”€โ”€โ”€โ”€โ”ผโ–บโ”‚ Service     โ”‚ โ”‚    โ”‚ โ”‚ Service     โ”‚ โ”‚
โ”‚ โ”‚ Assets      โ”‚ โ”‚    โ”‚ โ”‚             โ”‚ โ”‚    โ”‚ โ”‚             โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚    โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚    โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚                 โ”‚    โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚    โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚    โ”‚ โ”‚ Image       โ”‚โ—„โ”ผโ”€โ”€โ”€โ”€โ”ผโ–บโ”‚ Media       โ”‚ โ”‚
โ”‚ โ”‚ UI          โ”‚โ—„โ”ผโ”€โ”€โ”€โ”€โ”ผโ–บโ”‚ Processing  โ”‚ โ”‚    โ”‚ โ”‚ API         โ”‚ โ”‚
โ”‚ โ”‚ Components  โ”‚ โ”‚    โ”‚ โ”‚             โ”‚ โ”‚    โ”‚ โ”‚             โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚    โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚    โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๆž„ๅปบ็ณป็ปŸ

# ๅผ€ๅ‘ๆž„ๅปบ๏ผˆๅธฆ็›‘ๅฌๅ’Œsourcemap๏ผ‰
npm run dev

# ็”Ÿไบงๆž„ๅปบ๏ผˆๅŽ‹็ผฉๅ’Œไผ˜ๅŒ–๏ผ‰
npm run build

# ็‰ˆๆœฌ็ฎก็†
npm run version

ๆ ธๅฟƒ็ป„ไปถ

  • FeishuApiService - ้ฃžไนฆAPIๆœๅŠก๏ผŒๅค„็†OAuthใ€ๆ–‡ๆกฃๆ“ไฝœใ€ๆ–‡ไปถไธŠไผ 
  • MarkdownProcessor - Markdownๅค„็†ๅ™จ๏ผŒ่ฝฌๆขObsidian่ฏญๆณ•ไธบ้ฃžไนฆๆ ผๅผ
  • ImageProcessingService - ๅ›พ็‰‡ๅค„็†ๆœๅŠก๏ผŒๅค„็†่ทจๆ–‡ๆกฃๅ›พ็‰‡ๅคๅˆถ
  • ่ฎพ็ฝฎ็ฎก็† - ็”จๆˆท้…็ฝฎ็•Œ้ข๏ผŒๆ”ฏๆŒไบ‘็ฉบ้—ดๅ’Œ็Ÿฅ่ฏ†ๅบ“้…็ฝฎ
  • ่ฐƒ่ฏ•็ณป็ปŸ - ๅคš็บงๆ—ฅๅฟ—็ณป็ปŸ๏ผŒไพฟไบŽ้—ฎ้ข˜ๆŽ’ๆŸฅ

๐Ÿ”ง ๆ•…้šœๆŽ’้™ค

ๅธธ่ง้—ฎ้ข˜

  1. ๆŽˆๆƒๅคฑ่ดฅ

    • ๆฃ€ๆŸฅApp IDๅ’ŒApp Secretๆ˜ฏๅฆๆญฃ็กฎ
    • ็กฎ่ฎค้ฃžไนฆๅบ”็”จๆƒ้™้…็ฝฎ
    • ้ชŒ่ฏOAuthๅ›ž่ฐƒๅœฐๅ€
  2. ไธŠไผ ๅคฑ่ดฅ

    • ๆฃ€ๆŸฅๆ–‡ไปถๅคงๅฐ๏ผˆ้ฃžไนฆๆœ‰้™ๅˆถ๏ผ‰
    • ็กฎ่ฎค่ฎฟ้—ฎไปค็‰Œๆœ‰ๆ•ˆๆ€ง
    • ๆŸฅ็œ‹ๆŽงๅˆถๅฐ้”™่ฏฏไฟกๆฏ
  3. Token่ฟ‡ๆœŸ

    • ๆ’ไปถไผš่‡ชๅŠจๅฐ่ฏ•ๅˆทๆ–ฐToken
    • ๅฆ‚ๆžœๅˆทๆ–ฐๅคฑ่ดฅ๏ผŒ้œ€่ฆ้‡ๆ–ฐๆŽˆๆƒ

่ฐƒ่ฏ•ๆ–นๆณ•

  1. ๆ‰“ๅผ€Obsidianๅผ€ๅ‘่€…ๅทฅๅ…ท๏ผˆCtrl+Shift+I๏ผ‰
  2. ๆŸฅ็œ‹Consoleๆ ‡็ญพ้กต็š„ๆ—ฅๅฟ—
  3. ๆฃ€ๆŸฅNetworkๆ ‡็ญพ้กต็š„API่ฏทๆฑ‚

๐Ÿ“ˆ ้กน็›ฎ็Šถๆ€

๐Ÿ“Š ไปฃ็ ่ดจ้‡

  • TypeScript่ฆ†็›–็އ: 100%
  • ไปฃ็ ่กŒๆ•ฐ: ~7000+ ่กŒ
  • ๆ ธๅฟƒๆจกๅ—: 9ไธชไธป่ฆๆ–‡ไปถ
  • API้›†ๆˆ: 15+ ้ฃžไนฆๅฎ˜ๆ–นAPI
  • ๆต‹่ฏ•่ฆ†็›–: ๅŒ…ๅซ่ฐƒ่ฏ•ๅ’ŒAPIๆต‹่ฏ•ๅŠŸ่ƒฝ

๐Ÿ”ง ๆŠ€ๆœฏๆ ˆ

  • ๅผ€ๅ‘่ฏญ่จ€: TypeScript 4.7.4
  • ๆž„ๅปบๅทฅๅ…ท: ESBuild
  • UIๆก†ๆžถ: Obsidian Plugin API
  • API้›†ๆˆ: ้ฃžไนฆๅผ€ๆ”พๅนณๅฐ API
  • ๅŒ…็ฎก็†: npm

๐Ÿ“‹ ไพ่ต–ๅ…ณ็ณป

{
  "runtime": {
    "obsidian": "latest",
    "typescript": "4.7.4"
  },
  "devDependencies": {
    "@types/node": "^16.11.6", 
    "esbuild": "0.17.3",
    "@typescript-eslint/*": "5.29.0"
  }
}

๐Ÿ“ ็‰ˆๆœฌๅކ็จ‹

v2.5.1 (ๅฝ“ๅ‰็‰ˆๆœฌ) - ็Ÿฅ่ฏ†ๅบ“ไธŽๅ†…ๅฎน่ฟ‡ๆปคๅขžๅผบ

๐Ÿง  ็Ÿฅ่ฏ†ๅบ“ไธ€่‡ดๆ€ง

  • ็›ฎๆ ‡ไธบโ€œ็Ÿฅ่ฏ†ๅบ“โ€ๆ—ถ๏ผŒๅญๆ–‡ๆกฃไนŸ่‡ชๅŠจ็งปๅŠจ่‡ณ้…็ฝฎ็š„็Ÿฅ่ฏ†ๅบ“็ฉบ้—ด/่Š‚็‚น๏ผˆๆœช้…็ฝฎ่Š‚็‚นๅˆ™ไฟๅญ˜ๅˆฐ่ฏฅ็Ÿฅ่ฏ†ๅบ“ๆ น็›ฎๅฝ•๏ผ‰
  • ไธปๆ–‡ๆกฃไธŽๅญๆ–‡ๆกฃๅค„็†ๆต็จ‹ๅฏน้ฝ๏ผŒ้“พๆŽฅๅฏ็”จ

๐Ÿงพ ๆ–‡ๆกฃๅฑžๆ€งไธŽๆ—ถ้—ดๆ ผๅผ

  • Front Matter ๅ‘ฝๅ็ปŸไธ€ไธบโ€œๆ–‡ๆกฃๅฑžๆ€ง๏ผˆFront Matter๏ผ‰โ€
  • feishu_shared_at ๆ—ถ้—ดๆ ผๅผ็ปŸไธ€ไธบไธœๅ…ซๅŒบ YYYY-MM-DD HH:mm

โ›” ไปฃ็ ๅ—่ฟ‡ๆปค๏ผˆ้€š็”จๅ†…ๅฎนๆŽ’้™ค๏ผ‰

  • ่ฎพ็ฝฎ้กตๆ–ฐๅขžโ€œไปฃ็ ๅ—่ฟ‡ๆปคโ€ๅคš่กŒ่พ“ๅ…ฅ๏ผšๆฏ่กŒไธ€ไธช่ฏญ่จ€ๅ๏ผˆๅฆ‚ meta-bind-embedใ€dataviewjs๏ผ‰
  • ๅ‘ฝไธญ็š„ fenced code๏ผˆ``` ๆˆ– ~~~๏ผ‰ๅœจไธŠไผ ๅ‰็งป้™ค๏ผ›้€‚็”จไบŽไธปๆ–‡ๆกฃไธŽๅญๆ–‡ๆกฃ

๐ŸŽจ Callout ไผ˜ๅŒ–

  • Callout ๆ ‡้ข˜ไฟๆŒๅŠ ็ฒ—
  • Callout ๅ†…ๅฎนไธญ็š„ ==้ซ˜ไบฎ== ่งฃๆžไธบๅŠ ็ฒ—ๆ˜พ็คบ๏ผˆไธๅ†ไฟ็•™โ€œ==โ€็ฌฆๅท๏ผ‰

๐Ÿ” ๆŽˆๆƒไธŽ้ป˜่ฎค็›ฎๆ ‡

  • ๆœชๆŽˆๆƒๆ—ถ๏ผŒๆ‰“ๅผ€ไฝ็ฝฎ้€‰ๆ‹ฉๅ‰่ฟ›่กŒๆ‹ฆๆˆชๅนถๆ็คบๆŽˆๆƒ
  • ้ป˜่ฎคๅˆ†ไบซ็›ฎๆ ‡ๆ”นไธบโ€œ็Ÿฅ่ฏ†ๅบ“โ€

๐Ÿ› Bug ไฟฎๅค

  • ไฟฎๅคไปฃ็ ๅ—่ฟ‡ๆปคๅ‚ๆ•ฐๆœชไผ ้€’ๅฏผ่‡ด่ฟ‡ๆปคไธ็”Ÿๆ•ˆ็š„้—ฎ้ข˜
  • ไฟฎๅคๅญๆ–‡ๆกฃไธญ Callout ๅ ไฝ็ฌฆๆœชๆ›ฟๆข็š„้—ฎ้ข˜

v2.5.0 (ๅฝ“ๅ‰็‰ˆๆœฌ) - ๅ›พ็‰‡ๅค„็†้ฉๅ‘ฝ

๐Ÿ–ผ๏ธ ่ทจๆ–‡ๆกฃๅ›พ็‰‡ๅคๅˆถ

  • ๆ–ฐๅขž ImageProcessingService ไธ“ไธšๅ›พ็‰‡ๅค„็†ๆœๅŠก
  • ๅฎž็ŽฐไปŽๆบๆ–‡ๆกฃไธ‹่ฝฝโ†’้‡ๆ–ฐไธŠไผ โ†’ๆ›ดๆ–ฐๅผ•็”จ็š„ๅฎŒๆ•ดๆต็จ‹
  • ไฝฟ็”จๅฎ˜ๆ–น็ด ๆไธ‹่ฝฝAPI (/drive/v1/medias/{token}/download)
  • ๆ™บ่ƒฝๅ›พ็‰‡ๅ—ๆ˜ ๅฐ„ๅ’Œๆ‰น้‡ๅค„็†
  • ่งฃๅ†ณ้ฃžไนฆๅ›พ็‰‡token่ทจๆ–‡ๆกฃ้™ๅˆถ้—ฎ้ข˜

๐Ÿ”ง ๆžถๆž„ไผ˜ๅŒ–

  • ๆธ่ฟ›ๅผๆ”น้€ ๏ผŒไฟๆŒ100%ๅ‘ๅŽๅ…ผๅฎน
  • ๆจกๅ—ๅŒ–ๅ›พ็‰‡ๅค„็†๏ผŒ็‹ฌ็ซ‹้”™่ฏฏๅค„็†
  • ๆ€ง่ƒฝไผ˜ๅŒ–๏ผŒๅ‡ๅฐ‘API่ฐƒ็”จๆฌกๆ•ฐ

v2.4.x - ๆ€ง่ƒฝไธŽ็จณๅฎšๆ€ง

โšก ๆ‰น้‡ๅค„็†ไผ˜ๅŒ–

  • ไฝฟ็”จๅตŒๅฅ—ๅ—API๏ผŒๅค„็†้€Ÿๅบฆๆๅ‡75%-99%
  • API่ฐƒ็”จๅ‡ๅฐ‘90%๏ผŒๆ™บ่ƒฝๅ›ž้€€ๆœบๅˆถ
  • ้ข‘็އๆŽงๅˆถๅ’Œๅนถๅ‘ไฟๆŠค

๐Ÿ›ก๏ธ ็จณๅฎšๆ€งๆๅ‡

  • ๅฎŒๅ–„็š„้”™่ฏฏๅค„็†ๅ’Œ้‡่ฏ•ๆœบๅˆถ
  • Tokenๅˆทๆ–ฐไผ˜ๅŒ–๏ผŒๆ–‡ๆกฃ่ฎฟ้—ฎๆƒ้™ๆฃ€ๆŸฅ
  • ไธดๆ—ถๆ–‡ๆกฃๆ™บ่ƒฝๆธ…็†

v2.3.x - ๅŠŸ่ƒฝๅฎŒๅ–„

๐Ÿท๏ธ Front Matter้›†ๆˆ

  • ่‡ชๅŠจๆทปๅŠ ๅˆ†ไบซๆ ‡่ฎฐๅ’Œ้“พๆŽฅ
  • ๆ”ฏๆŒๆ—ถ้—ดๆˆณๅ’Œ็Šถๆ€่ทŸ่ธช
  • ไฟๆŠคๅŽŸๆœ‰YAML็ป“ๆž„

๐Ÿ”— ้“พๆŽฅๅค„็†ไผ˜ๅŒ–

  • Obsidianๅ่ฎฎ้“พๆŽฅไผ˜ๅŒ–
  • ๆƒ้™่ฎพ็ฝฎๅ’Œๅˆ†ไบซๆŽงๅˆถ
  • UI็•Œ้ข็พŽๅŒ–ๅ’Œๅ“ๅบ”ๅผ่ฎพ่ฎก

v2.3.0

  • ๐Ÿท๏ธ ่‡ชๅŠจๅˆ†ไบซๆ ‡่ฎฐ - ๆ–ฐๅขžๅˆ†ไบซๆˆๅŠŸๅŽ่‡ชๅŠจๅœจFront MatterไธญๆทปๅŠ ๆ ‡่ฎฐๅŠŸ่ƒฝ
    • ๆ”ฏๆŒ่‡ชๅŠจๆทปๅŠ  feishushare: true ๆ ‡่ฎฐ
    • ่ฎฐๅฝ•ๅˆ†ไบซ้“พๆŽฅ feishu_url ๅ’Œๅˆ†ไบซๆ—ถ้—ด feishu_shared_at๏ผˆไธœ8ๅŒบๆ—ถ้—ด๏ผ‰
    • ไธปๆ–‡ๆกฃๅ’Œๅญๆ–‡ๆกฃ้ƒฝไผš่‡ชๅŠจๆทปๅŠ ๅˆ†ไบซๆ ‡่ฎฐ
    • ๅŠŸ่ƒฝ้ป˜่ฎคๅผ€ๅฏ๏ผŒๅฏๅœจ่ฎพ็ฝฎไธญๅ…ณ้—ญ
    • ้‡ๅคๅˆ†ไบซๆ—ถ่‡ชๅŠจๆ›ดๆ–ฐๆ—ถ้—ดๆˆณ
  • ๐Ÿ”— ้“พๆŽฅๅค„็†ไผ˜ๅŒ– - ไผ˜ๅŒ–Obsidianๅ่ฎฎ้“พๆŽฅ็š„ๆ˜พ็คบๆ–นๅผ
    • ๅฐ† [ๆ–‡ๆœฌ](obsidian://...) ่ฝฌๆขไธบ ๆ–‡ๆœฌ(obsidian://...) ๆ ผๅผ
    • ้ฟๅ…้ฃžไนฆๅฏผๅ…ฅๆ—ถๅฐ†ๅ่ฎฎ้“พๆŽฅ่ฝฌๆขไธบ็บฏๆ–‡ๆœฌ๏ผŒไฟ็•™ๅฎŒๆ•ดURLไฟกๆฏ

v2.2.0

  • ๐ŸŽจ UIไผ˜ๅŒ– - ๅ…จๆ–ฐ็š„่ฎพ็ฝฎ็•Œ้ข่ฎพ่ฎก๏ผŒๆ›ดๅŠ ็พŽ่ง‚ๆ˜“็”จ
  • ๐Ÿ’ ่ตž่ตๅŠŸ่ƒฝ - ๆ–ฐๅขžๅผ€ๅ‘่€…่ตž่ตๅŠŸ่ƒฝ๏ผŒๆ”ฏๆŒไฝœ่€…็ปง็ปญๅผ€ๅ‘
  • ๐Ÿ”ง ไปฃ็ ้‡ๆž„ - ไผ˜ๅŒ–ไปฃ็ ็ป“ๆž„๏ผŒๆๅ‡ๆ€ง่ƒฝๅ’Œๅฏ็ปดๆŠคๆ€ง
  • ๐Ÿ› Bugไฟฎๅค - ไฟฎๅคไบ†ๅคšไธชๅทฒ็Ÿฅ้—ฎ้ข˜๏ผŒๆๅ‡็จณๅฎšๆ€ง
  • ๐Ÿ“ฑ ๅ“ๅบ”ๅผ่ฎพ่ฎก - ่ฎพ็ฝฎ็•Œ้ข้€‚้…ไธๅŒๅฑๅน•ๅฐบๅฏธ

v2.1.0

  • ๐ŸŽ‰ ๆ–‡ไปถไธŠไผ ๅŠŸ่ƒฝ - ๆ”ฏๆŒ่‡ชๅŠจไธŠไผ ๆœฌๅœฐๅ›พ็‰‡ๅ’Œ้™„ไปถ
  • ๐Ÿ“„ ๅญๆ–‡ๆกฃๆ”ฏๆŒ - ๆ”ฏๆŒๅตŒๅ…ฅMarkdownๆ–‡ไปถไฝœไธบๅญๆ–‡ๆกฃ้“พๆŽฅ
  • ๐Ÿ” ๆ€ง่ƒฝไผ˜ๅŒ– - ๆ™บ่ƒฝๅ ไฝ็ฌฆๆœ็ดข๏ผŒๆ”ฏๆŒๆ—ฉๆœŸ้€€ๅ‡บ
  • ๐Ÿ”ง ้”™่ฏฏๅค„็† - ๅขžๅผบ็š„้”™่ฏฏๅค„็†ๅ’Œ้‡่ฏ•ๆœบๅˆถ
  • โšก ็”จๆˆทไฝ“้ชŒ - ๅฎžๆ—ถ่ฟ›ๅบฆๆ็คบๅ’Œ็Šถๆ€ๆ›ดๆ–ฐ

v2.0.0

  • ๐ŸŽ‰ ้ฆ–ไธชDirect็‰ˆๆœฌๅ‘ๅธƒ
  • โœ… ็›ดๆŽฅ่ฐƒ็”จ้ฃžไนฆAPI๏ผŒๆ— ้œ€ไปฃ็†
  • โœ… ๅฎŒๆ•ด็š„OAuthๆŽˆๆƒๆต็จ‹
  • โœ… ๆ”ฏๆŒๅŸบ็ก€ๆ–‡ๆกฃๅˆ†ไบซ
  • โœ… ๅ‹ๅฅฝ็š„็”จๆˆท็•Œ้ข

๐Ÿค ่ดก็Œฎ

ๆฌข่ฟŽๆไบคIssueๅ’ŒPull Request๏ผ

๐Ÿ’ ๆ”ฏๆŒไฝœ่€…

ๅฆ‚ๆžœ่ฟ™ไธชๆ’ไปถๅฏนๆ‚จๆœ‰ๅธฎๅŠฉ๏ผŒๆฌข่ฟŽ่ฏทไฝœ่€…ๅ–ๆฏๅ’–ๅ•ก โ˜•

ๅพฎไฟก่ตž่ต็ 

ๅพฎไฟกๆ‰ซไธ€ๆ‰ซ๏ผŒๆ”ฏๆŒไฝœ่€…

๐Ÿ“„ ่ฎธๅฏ่ฏ

MIT License