根据分支在 GitHub 自述文件中显示不同的 svg 图像

Displaying a different svg image in a GitHub README depending on the branch

是否可以根据在浏览器中使用哪个分支查看自述文件,在 GitHub 自述文件中显示不同的 .svg image/content?

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

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 it displays another .svg file than when one goes to: https://www.github.com/some_user/some_repo/tree/non-interactive。 (虽然仍然没有产生合并冲突(也没有破坏在右分支中显示右图像的选项)如果拉取请求从分支 interactive 合并到分支 non-interactive)。

唯一的方法是在不同的分支上使用不同版本的 README,每个分支都指向自己的 SVG。但是,如果您从一个分支向另一个分支发出拉取请求(您说您不想要),这将导致一个版本覆盖另一个版本。

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

从理论上讲,您可以尝试从基于 Referer [sic] header 的服务器的同一 URL 提供不同版本的 SVG,但我很确定,因为GitHub 通过其图像代理 Camo 代理所有图像,您的服务器将永远不会获得 Referer header 并且不会起作用。

总的来说,GitHub 的 README 和其他文本文档呈现旨在简单、可预测且完全不能以任何方式进行自定义。定制往往伴随着安全性、可访问性、可读性和审美问题,none 其中 GitHub 在这种情况下正在寻找。