在 Github 要点中查看图像文件的推荐步骤不起作用
Recommended steps for viewing image file in Github gist are not working
我有一个关于降价文档的秘密 Github 要点。我创建了三个简单的 .png
图像,它们需要嵌入到文档中,因为它显示在要点 URL.
我克隆了我的 gist repo,添加了图像文件,并推送到 master。现在,在要点 URL,除了 markdown 文件之外,我还看到了图像文件。
但是,每当我添加以下简单代码来尝试显示图像时,它都不起作用(它只是 hyperlinks 文本 "Image",如果单击,会带我到显示 "not found" 的页面,尽管我可以验证它正是 link 发送到图像文件的 URL 地址:
![Image:](https://gist.github.com/my_username/3998173298588e8dc9d3#file-file_name-png)
但是,在我本地的 markdown 文档副本中,如果我使图像 links 引用相对文件路径(例如 ![Image:](file_name.png)
),那么如果我查看它,它会按预期工作降价查看器中的文档,例如我本地机器上的 Mou。无论本地还是基于 github 的 URLs.
从我读过的所有内容来看,这似乎是将图像添加到要点的正确方法(克隆要点存储库,添加文件,推送到主控,然后 link 从它们的结果 Github URLs).
它不工作...我错过了什么步骤?
有关详细信息,请参阅 this answer,但简短的回答是它在要点中不起作用:/。
如果您查看 this gist post 的源代码,所有嵌入的图像实际上都托管在 imgur 上,即使图像也附加到要点。
最简单的方法是将您的图片粘贴到要点评论中,然后提取提供的 url。
link 将是静态的,不会反映对要点中的图像所做的任何更改,但您也不需要通过 imgur
晚会有点晚了,但我最近遇到了类似的要求,这导致了一个我认为适合 post 的解决方案,作为未来参考的答案。具体来说,这个答案直接解决了 OP 在他对@Jared Forsyth 的回答的评论中所述的要求之一:
...the gist is related to work that must remain in source control for my company. With my work GitHub credentials, it's no problem to store everything in a gist-based repo and share links, but it would be a problem to host the images anywhere else.
一、为什么
![Image:](https://gist.github.com/my_username/3998173298588e8dc9d3#file-file_name-png)
不起作用是因为这是显示 file_name.png
文件和 NOT URL 到 gist 存储库中的 file_name.png
文件。以下解决方案基于从 How to add an image to a GitHub gist 上的 RemarkableMark 博客中获得的见解。此外,该解决方案基于关于要点的三个观察结果:
- 要点是 git 存储库
- 从 RemarkableMark's blog,URL 到 gist 存储库中的文件(任何文件,而不仅仅是图像文件)的格式为:
https://gist.github.com/<github-username>/<gist-hash>/raw/<commit-hash>/<filename>
其中<commit-hash>
是标识特定提交的 SHA-1 哈希。 - 要点网页显示来自要点存储库
master
的最新提交的文件。
这些观察结果提出了一种解决方案,其中添加图像、在降价中嵌入图像并在单独的提交中删除图像,以便可以通过添加它们的提交的 SHA-1 哈希值嵌入引用它们的图像并删除这些图像在以下提交中,以便它们不会单独显示为要点中的附加文件。此解决方案可以通过以下工作流程实施:
第 1 步:使用降价文件创建要点
例如,参见说明 here
第 2 步:将要点克隆到本地目录
例如,使用 HTTPS 克隆到 my_gist
目录:
git clone https://gist.github.com/<gist-hash>.git my_gist
第 3 步:添加所有图像文件并提交
cd my_gist
git add file_name.png
git commit -m "added all image files"
这里比如只添加了OP的file_name.png
,但是应该在一次commit中添加所有要嵌入markdown的图片文件。
第 4 步:检索提交的 SHA-1 哈希
git log -1
这会输出上次提交的日志,类似于:
commit b032e496495cf598a0aae1c6d33e761954e57604 (HEAD -> master)
Author: ########### <###############@users.noreply.github.com>
Date: Mon Oct 15 21:24:01 2018 -0400
added all image files
可以从中检索提交的 SHA-1 哈希(即 b032e496495cf598a0aae1c6d33e761954e57604
)
第 5 步:编辑 markdown 以嵌入图像并提交
编辑 markdown 文件以使用检索到的提交 SHA-1 哈希值代替 URL.
中的<commit-hash>
来嵌入图像
![Image:](https://gist.github.com/<github-username>/<gist-hash>/raw/<commit-hash>/file_name.png)
同样,此示例仅嵌入一个名为 file_name.png
的文件。如果有多张图片,最好一步嵌入。然后,提交
git commit -a -m "embedded images in markdown"
第 6 步:删除所有图像文件并提交
git rm file_name.png
git commit -m "removed all image files"
同样,此示例只有一个名为 file_name.png
的图像文件。如果有多个图像,最好在同一次提交中将它们全部删除。
第 7 步:推送提交
git push origin master
备注:
- AFAIK,不能通过 gist web 界面添加或删除图像文件,因此需要通过克隆直接使用存储库。这似乎是 github.com 的设计决定,可能是为了阻止将要点用作 posting 媒体的媒介。
- 只需要第 6 步,这样图像文件本身就不会出现在要点网页中。
- 第二次提交,第 5 步,包含嵌入图像的降价和图像文件。这可能被视为此解决方案的一个功能,因为此提交可以作为与要点分开的降价文档包发布。
- 最后两个提交,第 5 步和第 6 步,如果不关心维护包含 markdown 和嵌入图像的单独提交,可以合并为一个提交以及相关的图像文件。