在Github gist中查看图像文件的推荐步骤无效。

5
我有一个带有Markdown文档的私密Github Gist。我创建了三个简单的.png图像,需要将它们嵌入文档中并在Gist URL上显示。
我克隆了我的gist repo,添加了图像文件,并推送到主分支。现在,在Gist URL上,我看到了图像文件和Markdown文件。
但是,无论我添加以下简单的代码来尝试显示图像,它都不起作用(它只是将文本“Image”超链接,并且如果单击,它会将我带到一个页面,该页面显示“未找到”,即使我可以验证它确切地是链接到图像文件的URL地址):
![Image:](https://gist.github.com/my_username/3998173298588e8dc9d3#file-file_name-png)

然而,在我的markdown文档的本地副本中,如果我将图像链接引用相对文件路径(例如![Image:](file_name.png)),那么如果我在本地机器上使用markdown查看器(如Mou)查看文档,则它会按预期工作。无论是本地还是基于github的URL,它仍然无法在gist URL上工作。
从我所读的所有内容来看,这似乎是向gist添加图像的正确方法(克隆gist存储库,添加文件,推送到主分支,然后从它们的结果Github URL链接它们)。
它不起作用...我错过了什么步骤?

2021年9月更新:现在应该得到官方支持 - VonC
3个回答

4
最简单的方法是将您的图像粘贴到gist评论中并提取提供的url。
该链接将是静态的,不会反映在gist中对图像所做的任何更改,但您也不需要经过imgur。
示例图片请见:paste-image comment

3
请参考这个答案获取更多信息,但简短的答案是,在gist中它根本不起作用 :/。如果您查看此gist帖子的源代码,所有嵌入的图像实际上都托管在imgur上,即使这些图像也附加到了gist上。

没错。不过,创建一个小仓库太难了吗?所有的Markdown文件都会自动渲染。 - Jared Forsyth
可以将.png上传到“问题”中,然后将长长的![name](https://cloud.githubusercontent.com/...png复制到你的.md文件中:啊啊啊——没有源代码控制,不知道是否可通过API编程。 - denis

2
有点晚了,但最近我面临着类似的要求,导致我找到了一个解决方案,我认为这个答案适合作为将来参考的答案。具体来说,这个答案直接回答了OP在评论中提出的一个要求,如@Jared Forsyth的答案所述:
“...主要是因为我的公司要求工作必须保留在源代码控制中。使用我的GitHub凭据,把所有东西存储在gist-based repo中并分享链接是没有问题的,但是在其他地方托管图像就会有问题。”
首先,原因是
![Image:](https://gist.github.com/my_username/3998173298588e8dc9d3#file-file_name-png)

无法正常工作的原因是这是指向gist网页中显示file_name.png文件部分的片段URL,而不是gist存储库中file_name.png文件的URL。以下解决方案基于RemarkableMark在如何向GitHub gist添加图像博客中获得的见解。此外,该解决方案基于有关gists的三个观察结果:
  1. gist是git存储库
  2. 来自RemarkableMark的博客,gist存储库中文件(任何文件,而不仅仅是图像文件)的URL的格式为:https://gist.github.com/<github-username>/<gist-hash>/raw/<commit-hash>/<filename>,其中<commit-hash>是标识特定提交的SHA-1哈希值。
  3. gist网页显示来自gist存储库上master最新提交的文件。

这些观察结果建议采用一种解决方案,其中添加图像、将图像嵌入markdown并在单独的提交中删除图像,以便可以通过添加它们的提交的SHA-1哈希值引用嵌入图像,并在随后的提交中删除这些图像,以便它们不会作为附加文件单独显示在gist中。该解决方案可以使用以下工作流实现:

第1步:创建包含markdown文件的gist

例如,请参见此处的说明。

第2步:将gist克隆到本地目录

例如,使用HTTPS克隆到my_gist目录:

git clone https://gist.github.com/<gist-hash>.git my_gist

步骤三:添加所有图像文件并提交

cd my_gist
git add file_name.png
git commit -m "added all image files"

例如,在这里只添加了OP的file_name.png,但应该在一个提交中添加所有要嵌入到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

注意事项:

  1. 据我所知,无法通过gist网页界面添加或删除图像文件,因此需要直接克隆并使用存储库。这似乎是github.com的一项设计决策,可能是为了防止使用gist作为发布媒介。
  2. 第6步仅需要是为了使图像文件本身不显示在gist网页上。
  3. 第二个提交,第5步,包含嵌入图像的markdown和图像文件。这可以视为此解决方案的一个特点,因为该提交可以作为与gist分开的markdown文档包发布。
  4. 如果不想保留包含嵌入图像的markdown和相关图像文件的单独提交,则可以将第5步第6步的最后两个提交合并为一个提交。

安慰人心,但如果这些图像位于子目录中,则没有信号... 尽管如此,这是一个步骤向前。 - axd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接