article_image

2024-08-22-更新:一个新的文章分享方案:《一个简单安全的记事本工具 NotepadTab,却意外解决了匿名分享文章的痛点?附 Obsidian 用法》

我没有订阅 Obsidian 官方的 Publish 服务,因为我的大部分笔记都是给自己写的,并不需要以“库”为单位整个分享出来。

但我有时也需要分享一些笔记,但一直没找到很好的分享方式。

尤其是在我把一篇笔记分享给我认识的人阅读时,我不得不把笔记导出为 PDF 传给对方,如果遇到动图、视频等动态内容,PDF 就不太合适了。

经过思考,其实我的笔记内容最适合的载体应该是网页,我只需要找一个公共的服务,能够允许我把 Markdown 内容放入,并展示成预览页面就可以了。

所以这篇文章就来分享下如何通过 Github Gist 来实现这种“分享给熟人”的文章网页。

了解 Github Gist

在使用之前,首先要了解什么是 Github Gist 服务以及它的可用范围。

GitHub Gist 是 GitHub 上的一个功能,允许用户以简便的方式共享和存储代码片段、文本片段、配置文件。Gist 提供了一个简单易用的界面,可以快速创建和分享代码片段,无需创建完整的代码库。

🔗 GitHub Gist

相比 Evernote 这类自带云服务的笔记服务,Obsidian 这样的本地工具缺乏一个在线的分享手段,因此 Github Gist 正好是一个完美的补充。

手动使用 Gist 的方法

如果你只是需要偶尔分享,并不打算深入使用这一服务。那么只需要 申请 Github 账户,然后遵循 Gist 的创建流程 就可以在 Gist 网页 上手动创建一篇笔记并分享给你的朋友了。


手动创建 Gist 的步骤
手动创建 Gist 的步骤

在 Obsidian 中使用快捷 Gist 分享

而想在 Obsidian 中使用,最简单的方法是利用 Obsidian 插件:Share as gist 。你需要申请一个 Github Personal Token,然后在插件的设置界面配置 Token。

申请 Github Token

遵循以下步骤就可以申请一个 Github Token。

  1. 登录到 GitHub 帐户。
  2. 在右上角的个人资料菜单中,选择 “Settings”(设置)。
  3. 在设置页面中,选择 “Developer settings”(开发者设置)。
  4. 在左侧导航栏中,选择 “Personal access tokens”(个人访问令牌)。
  5. 选择“Fine-grained personal access tokens”(细粒度的个人访问令牌)。
  6. 单击“Generate new token”(生成新令牌)按钮。
  7. 提供一个令牌描述,以便记住该令牌的用途。
  8. 选择希望该令牌拥有的权限。根据需求,可以选择不同的权限范围,如代码读取、代码写入、存储库管理等。这里我们分配一个 gists 的读写权限(以最小原则申请),申请时间可以设为 1 年
  9. 在权限选择完成后,滚动到页面底部,点击“Generate token”(生成令牌)按钮。
  10. 系统将生成一个新的 Token,并显示在屏幕上。

需要注意的是,这是唯一的机会复制 Token。所以需要把 Token 复制到一个安全的地方,稍后就要用到。


申请 Token
申请 Token

获得 Token 之后,我们开始进入 Obsidian 进行操作。

Obsidian 安装和配置 Share as gist 插件

你可以在 Obsidian 的插件中心搜索 Share as gist 直接安装,也可以在插件的官方仓库下载。

🔗 Share as gist 插件 - Github 仓库


安装 Share as gist 插件
安装 Share as gist 插件

安装完毕后,在插件设置中,粘贴你刚刚生成的 Github Token,配置就完成了。


插件配置
插件配置

由于 Github Token 是敏感信息,会被这个插件存在 Obsidian 的 localStorage 中,不会被存储、不会被备份,也不会跟着 Obsidian 库同步。在多台设备上使用时,都需要进行首次配置。

另外有一个安全方面的注意点,理论上其他插件可以访问 localStorage,所以在申请 Token 时,权限范围只需要 gist 读写就够了,这样可以尽可能地保证 Github 的账户安全。

使用 Share as gist 插件分享 gist

安装完毕后,回到主界面,按下 Ctrl + P,搜索 gist,可以看到 公开分享私有分享 两个选项。


搜索 gist
搜索 gist

选择对应选项,就会自动将当前打开的笔记内容分享成为一个 Gist,并将文章链接放入剪贴板,用浏览器就可以访问 Markdown 预览内容。

点击该页面右上角的 RAW 按钮,还能直接查看 Markdown 原文,对方拿到稿件进行二次编辑也很方便。

二次修改 gist 的方法

如果之后在 Obsidian 中对笔记做二次修改,也可以再次进行推送。

在编辑后,再次选中 Share as gist on Github.com,这时候会询问你是更新现有笔记还是创建新笔记。选择更新现有笔记就可以实现二次修改。


插件配置中的其他两项
插件配置中的其他两项

插件会自动添加 meta 信息到笔记顶部,但删除这段 meta 信息也只是导致无法更新笔记,并不会对已分享的 gist 产生影响。如果觉得不需要这个功能,也可以在选项中关闭“Enable updating gists after creation”这个选项。

另一个选项则是把 meta 信息分享到 gist 中,一般是不需要开启的。

图片的处理

如果笔记中包含图片,你可能需要一些额外处理,这款插件并不能帮你自动上传图片到 Github 的图床。

我习惯的方法是,把分享的笔记单独开一篇分享笔记,然后用 Quicker 将图片上传到图床并自动转为 HTML 格式(用 <img src='图片地址'> 标签包裹即可)。Gist 在解析 Markdown 文本的同时,也会解析其中的 HTML 标签。

你可以用一些公开免费图床实现类似的效果,比如 sm.ms 图床

如果你不想用图床,操作会稍微麻烦一些。Github 有官方图床,但是只能在仓库的 Issue 中快捷使用(拖拽上传),无法在 Gist 中直接拖拽上传图片。所以你开一个自己的仓库,在 Issue 里手动上传图片,再把图片地址拿来用就好。

一些缺点

这个方案很好地满足了 Markdown 内容的在线分享需求。

不过 Obsidian 中的双向链接语法 [[双向链接]] 是 Obsidian 自己定义的,所以没办法体现在 Github Gist 中(就算链接上也无法跳转),显得有些丑陋。

Gist 另一个大问题是国内访问速度慢,Github 经常处于间歇性不可访问的状态。而且 Gist 中的图片即使在第三方图床也需要经过 Github 的缓存,图片会加载地更慢。

所以最好是双方都能够顺利访问 Gist 的情况下,才最适合使用 Gist 分享。


author_avatar

#UNTAG Developer