3C 設備

作者的敗家記錄,包含 iPad、Nexus 7、Galaxy S3 等 iOS 與 Android 相關電腦設備,也有中華電信 ADSL 網路與 NAS 設備等之應用技巧。

Windows 學習誌

聚焦於 Windows 作業系統各個版本的使用經驗與操作技巧,有 Windows XP、Windows Vista、Windows 7、Windows 8 與 Windows Server 等不同版本。

檔案、資料夾管理

日常使用電腦時有很大的比例是在操作檔案與資料夾,在此分類裡作者介紹了增進作業效率的各式技巧與心得分享。

生產力工具

與工作效提升有關的各式工具、網站服務,例如 Toodledo、Evernote、Google 各式服務等之經驗分享。

閱讀筆記

作者於網站衝浪之際,特別轉貼有所感的文章,內容不限電腦科技,尚有不少人文社經之作。

首頁 » Markdown 工具

[Obs#67] upgit-使用 GitHub 圖床:快速上傳圖檔到 GitHub 並插入圖片網址到 Obsidian

作者: 日期: 2022/02/04 – 20:59:08尚無留言 | 瀏覽數: 2 / 251

雖然這篇文章(影片)歸類到 Obsidian,但介紹的 upgit 其實是一個通用的圖檔上傳工具,只要用一個命令就能把圖檔上傳到 GitHub,並且直接取得 GitHub 的圖片鏈接網址,方便在筆記或 Blog 裡引用。

upgit 有 Windows、macOS 與 Linux 等不同平台的版本。

由 GitHub Releases 裡下載不同平台的執行檔後,改名為 upgit (例如將 upgit_win_amd64.exe 改為 upgit.exe),將 upgit.exe 複製到 PATH 指向的資料夾。

Obsidian 已經有一個Image Auto Upload外掛,使用PicGo在背景執行時,將貼入 Obsidian 的圖片自動上傳到 GitHub 儲存庫裡,想要節省操作步驟的朋友也可試用看看,但我個人覺得 PicGo 必須在執行狀態時才能上傳,整合性不如 upgit 方便。

最後面會介紹使用 AutoHotkey 的簡單合用方法,同時介紹使用 Obsidian Shell Commands 外掛自動上傳圖檔與插入 GitHub 圖片網址的操作步驟。

語法

  1. upgit \[--target-dir TARGET-DIR] \[--verbose] \[--size-limit SIZE-LIMIT] \[--wait] \[--clean] \[--raw] \[--no-log] \[--output-type OUTPUT-TYPE] \[--output-format OUTPUT-FORMAT] FILE \[FILE ...]
  2. Positional arguments:
  3. FILE local file path to upload. :clipboard for uploading clipboard image
  4. Options:
  5. --target-dir TARGET-DIR, -t TARGET-DIR
  6. upload file with original name to given directory. if not set, will use renaming rules
  7. --verbose, -V when set, output more details to help developers
  8. --size-limit SIZE-LIMIT, -s SIZE-LIMIT
  9. . in bytes. overwrite default size limit (5MiB). 0 means no limit
  10. --wait, -w when set, not exit after upload, util user press any key
  11. --clean, -c when set, remove local file after upload
  12. --raw, -r when set, output non-replaced raw url
  13. --no-log, -n when set, disable logging
  14. --output-type OUTPUT-TYPE, -o OUTPUT-TYPE
  15. . output type, supports stdout, clipboard [default: stdout]
  16. --output-format OUTPUT-FORMAT, -f OUTPUT-FORMAT
  17. . output format, supports url, markdown and your customs [default: url]
  18. --help, -h display this help and exit

範例

  1. upgit :clipboard -o clipboard -f markdown
  2. upgit test1.png -f markdown
  3. upgit test2.png -f markdown-simple
  1. 登入自己的 GitHub→右上角頭像→【Settings】→左側拉到最底部→【Developer settings】→Personal access tokens→Generate new token
  2. 輸入【Note】、【Expiration】(有效期限),在【Select scope】勾選 repo 以取得儲存庫讀寫權限
  3. 在最下方點擊【Generate token】

[Obs#67] upgit-使用GitHub圖床:快速上傳圖檔到GitHub並插入圖片網址到Obsidian | 簡睿隨筆 | 學習過程的紀錄與備忘 - 图1

  1. 複製個人存取 token:ghp_開頭全部字串
    [Obs#67] upgit-使用GitHub圖床:快速上傳圖檔到GitHub並插入圖片網址到Obsidian | 簡睿隨筆 | 學習過程的紀錄與備忘 - 图2

【New repository】建立 Public 儲存庫。

設定檔 config.toml 和 upgit 在同一個資料夾,依據自己 GitHub 的設定修改內容,範例如下:

  1. # 保存文件的分支,例如 master 或 main
  2. # branch = "master"
  3. # 您的拥有"repo"权限的Github令牌
  4. # 获取Github Token连接: https://github.com/settings/tokens
  5. pat = "ghp_U**********************************F"
  6. # 上传文件名的格式模板
  7. # / 目录分隔符, 作用: 是区分目录
  8. # {year} 年份, 例如: 2022
  9. # {month} 月份, 例如: 02
  10. # {day} 天, 例如: 01
  11. # {unix_ts} 时间戳, 例如: 1643617626
  12. # {file_name} 原始文件名,如 logo (不含后缀名)
  13. # {file_name_hash} {file_name}的 MD5 散列值
  14. # {ext} 文件后缀名, 例如.png
  15. # 下面的例子生成的文件名预览: 2022/01/upgit_20220131_1643617626.png
  16. # 如果目录不存在将会被程序自动创建
  17. rename = "{year}/{month}/upgit_{year}{month}{day}_{unix_ts}{ext}"
  18. # 您的公共Github存储库的名称
  19. # 注意: 为了让您和他人可以访问到图片资源, 您的Github仓库一定要是公开的,
  20. # 在私有仓库中Github会拦截未授权的请求,你将会得到一个404.
  21. repo = "your_repo"
  22. # 请输入您的Gtihub用户名
  23. username = "your_account"
  24. # 如果您的网络访问Github异常或者缓慢,您可以尝试下面的配置以开启CDN加速
  25. # [replacements]
  26. # "raw.githubusercontent.com" = "cdn.jsdelivr.net/gh"
  27. # "/master" = "@master"
  28. # 自定义输出格式
  29. # {url} 图片文件的网络URL地址
  30. [output-formats]
  31. "bbcode" = "[img]{url}[/img]"
  32. "html" = '<img src="{url}"/>'
  33. "markdown-simple" = "![01|700]({url})"

按〔Alt+V〕將剪貼簿內的圖片上傳到 GitHub,並將 GitHub 圖片網址再插入剪貼簿。

  1. !v::
  2. ;;Run d:\util\upgit.exe :clipboard -o clipboard -f markdown
  3. Run d:\util\upgit.exe :clipboard --output-type clipboard --output-format markdown
  4. return
  1. 安裝並啟用 Shell Commands 外掛
  2. 新增 Shell 命令

    • 新的命令命名為 upgit
    • 命令內容:upgit :clipboard -f markdown 將系統剪貼簿內容上傳到 GitHub,並將執行結果以 markdown 格式輸出到標準輸出 (stdout)

[Obs#67] upgit-使用GitHub圖床:快速上傳圖檔到GitHub並插入圖片網址到Obsidian | 簡睿隨筆 | 學習過程的紀錄與備忘 - 图3

  • Output 選用輸出到目前檔案的游標位置,亦即將 GitHub 的圖片網址以 Markdown 格式插入目前游標位置
    [Obs#67] upgit-使用GitHub圖床:快速上傳圖檔到GitHub並插入圖片網址到Obsidian | 簡睿隨筆 | 學習過程的紀錄與備忘 - 图4
  1. Shell commands: Exexcute upgit設置快捷鍵以方便快速操作

%%

##

您可能也會有興趣的類似文章

標籤: obsidian, uploader

首頁 » Markdown 工具

[Obs#68] 利用 QuickAdd 巨集由 IMDB 建立影片檔案,用 Minimal 主題顯示成卡片

作者: 簡睿 日期: 2022/02/06 – 10:51:39尚無留言 | 瀏覽數: 6 / 355

[Obs#67] upgit-使用GitHub圖床:快速上傳圖檔到GitHub並插入圖片網址到Obsidian | 簡睿隨筆 | 學習過程的紀錄與備忘 - 图5

Minimal 樣式主題是很多人使用的主題,它在 4.4.0 版時推出了卡片格式,將 Dataview 的 table 查詢轉換成卡片的顯示格式,再與 Sortable 外掛合用時則可做排序卡片的顯示。

卡片格式很適合用於蒐集資訊類型的多欄位形式,例如影片庫、書庫等。

在建立影片庫時,我們可以使用 QuickAdd 的 movies.js 搜尋 IMDB,直接由 IMDB 讀取資料,將影片欄位與海報圖片建立成筆記,透過 QuickAdd 巨集可省去大量的資料輸入時間。

1. 用 QuickAdd 取得 IMDb 資訊

cards 筆記需要下列外掛:

  • Minimal 樣式主題
  • Dataview 外掛
  • Sortable 外掛

1.1. 建立影片資訊模板

  1. 啟用核心外掛內的模板,再於【外掛選項】→【模板】→指定【模板資料夾位置】為 templates
  2. 在 templates 資料夾建立 template-movie.md,內容如下:
  1. ---
  2. cover: {{VALUE:Poster}}
  3. ---
  4. category:: {{VALUE:typeLink}}
  5. director:: {{VALUE:directorLink}}
  6. genre:: {{VALUE:genreLinks}}
  7. imdbId:: {{VALUE:imdbID}}
  8. ratingImdb:: {{VALUE:imdbRating}}
  9. rating::
  10. year:: {{VALUE:Year}}
  11. cast:: {{VALUE:actorLinks}}
  12. plot:: {{VALUE:Plot}}
  13. ![poster]({{VALUE:Poster}})

1.2. 申請 Open Movie Database 的 API Key

API Key 網頁申請存取 Open Movie Database 的 API Key。輸入 EMail 等資訊後,網站會寄出 Key 與啟用鏈接給你,複製 API Key 並點擊啟用鏈接。

1.3. 新增 QuickAdd Movie 巨集

  1. 下載movies.js並存入儲存庫任意位置 (建議建立專門存放 JavaScript 的資料夾)
  2. QuickAdd 外掛選項→【Manage Macros】→輸入巨集名稱(如 macro_movie)後按【Add macro】
  3. 在 User Scripts 輸入欄位裡選用 movies.js,再按【Add】
  4. 點擊上方 movies 右側齒輪,在彈出的對話窗輸入申請到的 OMDb API Key

[Obs#67] upgit-使用GitHub圖床:快速上傳圖檔到GitHub並插入圖片網址到Obsidian | 簡睿隨筆 | 學習過程的紀錄與備忘 - 图6

  1. 點擊【Template】以增加要使用的模板

    1. 【Template Path】選用「templates/template-movie.md」
    2. 勾選【File Name Format】
    3. 【File Name】欄位輸入:{{VALUE:fileName}}
    4. 勾選【Open】,開啟依模板建立的新檔案
    5. 勾選【Focus new pane】,將焦點移入新檔案

1.4. 新增 QuickAdd Choice 選單

  1. 輸入 Choice 名稱,如:Movie
  2. 選用【Macro】後點擊【Add Choice】
  3. 新增 Choice 後點擊其右側的齒輪,再選用前面新增的巨集
  4. 點擊閃電符號將此 Choice 加入命令面板

[Obs#67] upgit-使用GitHub圖床:快速上傳圖檔到GitHub並插入圖片網址到Obsidian | 簡睿隨筆 | 學習過程的紀錄與備忘 - 图7

1.5. 測試 QuickAdd Movie Choice

  1. 點擊〔Ctrl/Cmd+P〕→輸入 quickadd→點擊【QuickAdd: Movie】
  2. 輸入要搜尋的電影名稱或 IMDb 代碼,如:Star Wars 或 tt0086190

[Obs#67] upgit-使用GitHub圖床:快速上傳圖檔到GitHub並插入圖片網址到Obsidian | 簡睿隨筆 | 學習過程的紀錄與備忘 - 图8

▼ 在選單裡找到要建立的影片後按〔Enter〕或〔Click〕
[Obs#67] upgit-使用GitHub圖床:快速上傳圖檔到GitHub並插入圖片網址到Obsidian | 簡睿隨筆 | 學習過程的紀錄與備忘 - 图9

2. Minimal 樣式主題

在筆記 YAML 區裡使用cssClasses: cards讓筆記套用卡片格式,額外能使用的 CSS 樣式如下:

  • cards-align-bottom: 最後一項對齊卡片底部
  • cards-cover: 圖片尺寸填滿空間
  • cards-16-9 / cards-1-1 / cards-2-1 / cards-2-3 : 圖片比例
  • cards-cols-4~cards-cols-8: 指定卡片每列個數

3. 影片庫筆記範例

  1. ---
  2. cssClasses: cards, cards-align-bottom, cards-cover, cards-cols-3
  3. ---
  4. # 電影 from IMDb
  5. ```dataview
  6. table without id ("![](" + cover + ")") as Cover,
  7. file.link as Name,
  8. year as Year,
  9. "by " + director as Director,
  10. "Rating " + ratingImdb as Rating
  11. from #movies-imdb
  12. sort year, imdbId

動作片 (Action)

  1. table without id ("![](" + cover + ")") as Cover,
  2. file.link as Name,
  3. year as Year,
  4. "by " + director as Director
  5. from #movies-imdb
  6. where contains(string(genre), "Action")
  7. sort year, imdbId

喜劇片 (Comedy)

  1. table without id ("![](" + cover + ")") as Cover,
  2. file.link as Name,
  3. year as Year,
  4. "by " + director as Director
  5. from #movies-imdb
  6. where contains(string(genre), "Comedy")
  7. sort year, imdbId

喬治,盧卡斯作品

  1. table without id ("![](" + cover + ")") as Cover,
  2. file.link as Name,
  3. year as Year,
  4. "by " + director as Director
  5. from #movies-imdb
  6. where contains(string(director), "George Lucas")
  7. sort year, imdbId
  1. ### 4\. 相關鏈接
  2. * [Minimal主題的卡片使用說明](https://github.com/kepano/obsidian-minimal/releases/tag/4.4.0)
  3. * [OMDb API申請 The Open Movie Database](http://www.omdbapi.com/apikey.aspx)
  4. * [QuickAdd movies.js說明](https://github.com/chhoumann/quickadd/blob/master/docs/Examples/Macro_MovieAndSeriesScript.md)
  5. * [QuickAdd movies.js下載](https://github.com/chhoumann/quickadd/blob/master/docs/Examples/Attachments/movies.js)
  6. ### 5\. 教學影片
  7. ##
  8. #### 您可能也會有興趣的類似文章
  9. * [\[Obs69\] 由豆瓣建立Minimal樣式主題的閱讀書單卡片](http://jdev.tw/blog/6988/minimal-theme-cards-with-douban-books "2022/02/11") (0則留言, 2022/02/11)
  10. * [\[Obs51\] QuickAdd全攻略(2):腳本撰寫與巨集使用要點](http://jdev.tw/blog/6821/obsidian-quickadd-scripts-and-macros "2021/09/18") (0則留言, 2021/09/18)
  11. * [\[Obs35\] Buttons外掛開啟筆記自動化操作契機![](https://s.w.org/images/core/emoji/11.2.0/svg/2049.svg)
  12. ](http://jdev.tw/blog/6641/obsidian-plugin-buttons-for-automation "2021/04/23") (0則留言, 2021/04/23)
  13. * [\[Obs58\] 快速開啟常用筆記的方法](http://jdev.tw/blog/6908/open-obsidian-frequently-used-note-rapidly "2021/10/23") (0則留言, 2021/10/23)
  14. * [\[Obs57\] YAMLtags標籤自動補全的3種方法](http://jdev.tw/blog/6900/obsidian-yaml-tags-auto-complete "2021/10/23") (0則留言, 2021/10/23)
  15. * [\[Obs50\] QuickAdd全攻略(一):改變工作流程的超強外掛](http://jdev.tw/blog/6810/obsidian-plugin-quickadd-introduction "2021/09/12") (0則留言, 2021/09/12)
  16. * [\[Obs54\] Obsidian的任務管理技巧彙總](http://jdev.tw/blog/6858/obsidian-task-management-plugins "2021/10/03") (0則留言, 2021/10/03)
  17. * [Obsidian(黑曜石) 高亮度顯示或變更文字顏色的3種方法](http://jdev.tw/blog/6329/obsidian-md-text-highlight "2020/07/01") (4則留言, 2020/07/01)
  18. * [\[Obs55\] 建立新筆記的模板設定-Calendar, TemplaterQuickAdd](http://jdev.tw/blog/6861/obsidian-templater-and-quickadd-samples "2021/10/09") (0則留言, 2021/10/09)
  19. * [\[Obs71\] 新手適用的多功能模板外掛:From Template](http://jdev.tw/blog/6993/obsidian-note-from-template "2022/02/19") (0則留言, 2022/02/19)
  20. * [\[Obs#12\] Obsidian v0.8.4~v0.8.9的新增功能](http://jdev.tw/blog/6409/obs12-obsidian-v0-8-9-features "2020/09/06") (0則留言, 2020/09/06)
  21. * [\[Obs43\] 美化內部連結外觀:使用Supercharged Links外掛,並增加連結的功能選項](http://jdev.tw/blog/6695/obsidian-plugin-supercharged-links "2021/06/04") (0則留言, 2021/06/04)
  22. * [\[Obs#15\] 在筆記裡複製、使用obsidian網址與工作空間的使用](http://jdev.tw/blog/6454/copy-obsidian-url-and-workspace "2020/10/27") (0則留言, 2020/10/27)
  23. * [\[Obs59\] Obsidian快速開啟常用筆記(2):不使用外掛的簡單方法](http://jdev.tw/blog/6914/obsidian-create-hot-notes-rapidly "2021/10/27") (0則留言, 2021/10/27)
  24. * [\[Obs#8\] v0.8.1 大改版功能搶先報!](http://jdev.tw/blog/6371/obsidian-md-v0-8-1-new-features "2020/07/22") (5則留言, 2020/07/22)
  25. 標籤: [Markdown](http://jdev.tw/blog/tag/markdown), [obsidian](http://jdev.tw/blog/tag/obsidian)
  26. [http://jdev.tw/blog/6982/upgit-integrates-with-shell-commands-plugin](http://jdev.tw/blog/6982/upgit-integrates-with-shell-commands-plugin)