根据分支在 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 图像的主要内容,如果未能解决你的问题,请参考以下文章