在Github gist中查看图像文件的建议步骤不起作用

时间:2015-02-19 15:30:42

标签: image github markdown gist

我有一个带有降价文件的秘密Github要点。我创建了三个简单的.png图像,这些图像需要嵌入到文档中,因为它显示在gist URL上。

我克隆了我的要点,添加了图像文件,并推送到掌握。现在,在gist URL上,除了markdown文件外,我还会看到图像文件。

但是,每当我添加以下简单代码以尝试显示图像时,它都不起作用(它只是超链接文本“Image”,如果单击,则会将我带到一个显示“未找到”的页面,即使我可以验证它是否是链接到图像文件的URL地址):

![Image:](https://gist.github.com/my_username/3998173298588e8dc9d3#file-file_name-png)

但是,在我的降价文档的本地副本中,如果我使图像链接引用相对文件路径(例如![Image:](file_name.png)),那么如果我在降价查看器中查看文档,它就会按预期工作作为我本地机器上的Mou。无论基于本地URL还是基于github的URL,它仍无法在gist URL上运行。

从我读过的所有内容来看,这似乎是将图像添加到gist的正确方法(克隆gist repo,添加文件,推送到master,然后从它们生成的Github URL链接它们)。

它不起作用......我错过了哪一步?

3 个答案:

答案 0 :(得分:4)

最简单的方法是将图像粘贴到gist注释中并拉出提供的网址。

该链接将是静态的,不会反映对gist中图像所做的任何更改,但您也不需要通过imgur

paste-image comment

答案 1 :(得分:3)

有关详细信息,请参阅this answer,但简短的回答是它在gists中不起作用:/。

如果你查看this gist post的来源,所有嵌入的图像实际上都是在imgur上托管的,即使图像也附加在要点上。

答案 2 :(得分:1)

参加聚会有点晚了,但是我最近遇到了类似的要求,因此提出了一种解决方案,我认为该解决方案适合作为答案供以后在这里参考。具体来说,此答案直接满足了OP对@Jared Forsyth答案的评论中所述的要求之一:

  

...要点与我公司必须保留在源代码管理中的工作有关。使用我的GitHub凭据,将所有内容存储在基于要点的仓库中并共享链接是没有问题的,但是将图像托管在其他任何地方都是一个问题。

首先,原因

![Image:](https://gist.github.com/my_username/3998173298588e8dc9d3#file-file_name-png)

不起作用是因为这是gist网页中显示file_name.png文件的部分的片段URL,而 NOt 则是{要点存储库。以下解决方案基于从RemarkableMark的博客How to add an image to a GitHub gist获得的见解。此外,该解决方案基于有关要点的三个观察结果:

  1. 要点是git存储库
  2. RemarkableMark's blog到要点存储库中文件(所有文件,不仅是图像文件)的URL的格式为:file_name.png,其中https://gist.github.com/<github-username>/<gist-hash>/raw/<commit-hash>/<filename>是SHA-1哈希确定特定的提交。
  3. 要点网页显示要点仓库中<commit-hash>上最新提交的文件。

这些观察结果提出了一种解决方案,即添加图像,将图像嵌入markdown并在单独的提交中删除图像,以便可以通过添加了这些图像的提交的SHA-1哈希来嵌入引用它们的图像,并删除这些图像。在随后的提交中,这样它们就不会在要点中单独显示为其他文件。可以通过以下工作流程实施该解决方案:

第1步:使用降价文件创建要点

例如,参见说明here

步骤2:将要点克隆到本地目录

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

my_gist

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

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

例如,这里仅添加了OP的cd my_gist git add file_name.png git commit -m "added all image files" ,但是一次提交中应该添加所有要嵌入到markdown中的图像文件。

第4步:检索提交SHA-1哈希

file_name.png

这将输出上一次提交的日志,类似于:

git log -1

可以从中检索提交的SHA-1哈希值(即commit b032e496495cf598a0aae1c6d33e761954e57604 (HEAD -> master) Author: ########### <###############@users.noreply.github.com> Date: Mon Oct 15 21:24:01 2018 -0400 added all image files

第5步:编辑markdown以嵌入图像并提交

编辑markdown文件,以使用检索到的提交SHA-1哈希代替URL中的b032e496495cf598a0aae1c6d33e761954e57604来嵌入图像。

<commit-hash>

同样,此示例仅嵌入一个名为![Image:](https://gist.github.com/<github-username>/<gist-hash>/raw/<commit-hash>/file_name.png) 的文件。如果有多个图像,最好将它们全部嵌入一步。然后,提交

file_name.png

第6步:删除所有图像文件并提交

git commit -a -m "embedded images in markdown"

同样,此示例仅包含一个名为git rm file_name.png git commit -m "removed all image files" 的图像文件。如果有多个图像,最好在同一提交中将它们全部删除。

步骤7:推送提交

file_name.png

注意:

  1. AFAIK无法通过gist Web界面添加或删除图像文件,因此需要通过克隆直接使用存储库。这似乎是github.com的一项设计决定,可能是不鼓励将gist用作发布媒体的媒介。
  2. 第6步仅是必要的,这样图像文件本身就不会显示在要点网页中。
  3. 第二次提交,第5步,既包含嵌入了图像的Markdown,也包含图像文件。可以将此视为此解决方案的功能,因为此提交可以作为与要点分开的markdown文档包发布。
  4. 最后两个提交(第5步和第6步)可以合并为一个提交,如果一个人不希望维护包含包含嵌入图像的markdown和关联的图像文件的单独提交。