根据分支在 GitHub README 中显示不同的 svg 图像

Posted

技术标签:

【中文标题】根据分支在 GitHub README 中显示不同的 svg 图像【英文标题】:Displaying a different svg image in a GitHub README depending on the branch 【发布时间】:2022-01-20 11:52:10 【问题描述】:

是否可以在 GitHub 自述文件中显示不同的 .svg 图像/内容,具体取决于用于在浏览器中查看自述文件的分支?

本质上,可以做这样的事情:

if current_path=main then:
   display main.svg
elif current_path=other_branch then:
   display other_branch.svg
end

readme.md?

这样,如果访问:https://www.github.com/some_user/some_repo/tree/interactive,它会显示另一个 .svg 文件,而不是访问:https://www.github.com/some_user/some_repo/tree/non-interactive。 (如果将拉取请求从分支 interactive 合并到分支 non-interactive 中,则仍然不会产生合并冲突(也不会破坏在右侧分支中显示正确图像的选项)。

【问题讨论】:

【参考方案1】:

做到这一点的唯一方法是在不同的分支上拥有不同版本的 README,每个分支都指向自己的 SVG。但是,如果您从一个分支向另一个分支发出拉取请求,这将导致一个版本覆盖另一个版本,而您说您不希望这样做。

原因是 GitHub 不提供执行 javascript 或其他代码作为呈现自述文件或其他文本文档的一部分的能力。由于此类代码将在与 GitHub 的其余部分相同的安全上下文中运行,因此这样做将是一个安全漏洞。

理论上,您可以尝试从基于 Referer [sic] 标头的服务器的相同 URL 提供不同版本的 SVG,但我很确定,因为 GitHub 通过其图像代理 Camo 代理所有图像,您的服务器将永远不会获得Referer 标头,这将无法正常工作。

一般而言,GitHub 的 README 和其他文本文档呈现旨在简单、可预测且完全不可以任何方式定制。定制往往伴随着安全性、可访问性、可读性和美观问题,而 GitHub 在这种情况下并没有考虑这些问题。

【讨论】:

以上是关于根据分支在 GitHub README 中显示不同的 svg 图像的主要内容,如果未能解决你的问题,请参考以下文章

Github—在README.md文件中添加图片、显示图片

图片未显示在 GitHub 上的 README.md 中

如何在 GitHub README.md 中并排显示图像?

Github的README中插入图片,Github仓库项目主页显示图片

GITHUB 的高效搜索方法

怎样让GitHub或gitee里的README.md的图片显示出来?