最近我加入了GitHub。我在那里主持了一些项目。

我需要在README文件中包含一些图像。我不知道该怎么做。

我搜索了一下,但得到的只是一些链接,告诉我“在web上托管图像并在README.md文件中指定图像路径”。

是否有任何方法可以在不在任何第三方网络托管服务上托管图像的情况下做到这一点?


当前回答

您还可以像任何其他格式一样在markdown文件中插入动画SVG图像。它可以很好地替代GIF图像。

![image description](relative/path/in/repository/to/image.svg)
OR
<img src="relative/path/in/repository/to/image.svg" width="128"/>

示例(假设图像位于存储库中的assets目录中):

![My animated logo](assets/my-logo.svg)

结果:


要使用基于GitHub深色/浅色主题的不同图像,请参阅本文。

其他回答

您还可以添加带有简单HTML标记的图像:

<p align="center">
  <img src="your_relative_path_here" width="350" title="hover text">
  <img src="your_relative_path_here_number_2_large_name" width="350" alt="accessibility text">
</p>

许多张贴的解决方案都不完整或不合我的口味。

像imgur这样的外部CDN为该链添加了另一个工具。无聊的。在问题跟踪程序中创建虚拟问题是一种黑客行为。它会造成混乱,让用户感到困惑。将此解决方案迁移到fork或脱离GitHub是一件痛苦的事。使用gh-pages分支会使URL变得脆弱。另一个在维护gh页面的项目中工作的人可能不知道一些外部信息,这取决于这些图像的路径。gh-pages分支在GitHub上有一个特殊的行为,这对于托管CDN图像是不必要的。在版本控制中跟踪资产是一件好事。随着项目的发展和变化,管理和跟踪多个用户的变化是一种更可持续的方式。如果图像适用于软件的特定版本,则最好链接不可变图像。这样,如果稍后更新图像以反映软件的更改,任何阅读该版本自述文件的人都会找到正确的图像。

受这一要点启发,我的首选解决方案是使用带有特定修订永久链接的资产分支。

git checkout --orphan assets
git reset --hard
cp /path/to/cat.png .
git add .
git commit -m 'Added cat picture'
git push -u origin assets
git rev-parse HEAD  # Print the SHA, which is optional, you'll see below.

构造一个“永久链接”到图像的这个版本,并将其包装在Markdown中。

然而,手动查找提交SHA是不方便的,因此,作为快捷键,按Y键可以永久链接到特定提交中的文件,正如这个help.github页面所说的那样。

要始终显示资产分支上的最新图像,请使用blob URL:

https://github.com/github/{repository}/blob/assets/cat.png 

(从同一个GitHub帮助页面,文件视图显示分支上的最新版本)

现在,您可以在编辑自述文件时拖放图像。

Github将为您创建一个链接,其格式为:

https://user-images.githubusercontent.com/******/********.file_format

或者,在文件的底部,它会显示“通过拖放、选择或粘贴来附加文件”。如果你点击那个,它会给你一个直接上传文件的选项,或者你可以直接粘贴它!

我通常在网站上托管图像,这可以链接到任何托管图像。把这个放在自述文件里。适用于.rst文件,不确定.md

.. image:: https://url/path/to/image
   :height: 100px
   :width: 200 px
   :scale: 50 %

我找到了另一个解决方案,但完全不同,我会解释一下

基本上,我使用标签来显示图像,但我想在单击图像时转到另一个页面,下面是我是如何做到的。

<a href="the-url-you-want-to-go-when-image-is-clicked.com" />
<img src="image-source-url-location.com" />

如果你把它放在彼此的旁边,用一条新的线隔开,我猜当你点击图片时,它会转到一个标签,标签上有你想要重定向的另一个站点的href。