如何为 Github wiki 中使用的图像生成 Github 迷彩 URL?

Eri*_*nda 6 markdown jekyll github-pages

有人可以告诉我如何将我在 github wiki 中输入的 URL 转换为渲染的迷彩 URL 吗?原因如下:

我正在为当前的 Github wiki 构建自定义 Github 页面文档。维基百科上有这样的图片:

http://svn.delph-in.net/erg/tags/1214/www/esd/the-garden-dog-tried-not-to-bark.png
Run Code Online (Sandbox Code Playgroud)

如果您浏览包含此图像的 wiki 页面,它会转换为使用 Github 迷彩代理,如下所示:

https://camo.githubusercontent.com/30d1fc9dec67d165016698dc28b70c1e5e419baf67f6f0bdb5021091e5f889ca/687474703a2f2f73766e2e64656c70682d696e2e6e65742f6572672f746167732f313231342f7777772f6573642f7468652d67617264656e2d646f672d74726965642d6e6f742d746f2d6261726b2e706e67
Run Code Online (Sandbox Code Playgroud)

没关系,这里描述了原因。事实上, 这里描述了它的工作原理。

我的问题是我正在按照此处描述的方式使用 Jekyll 构建我的谷歌页面网站描述的方式使用 Jekyll 构建我的谷歌页面网站。为了填充 Jekyll 站点,我将原始 wiki 中的 Markdown 源代码复制到我的 Jekyll“文档”存储库中以构建官方文档。原始来源仅包含原始链接,不包含迷彩链接。这意味着图像的链接不是迷彩的,并且存在迷彩旨在解决的问题之一:它们不起作用,因为它们通常是 https 页面上的 http: 引用。

我希望 Jekyll 插件中有一个设置,也许在 kramdown 解析器或其他东西中可以解决这个问题,但我找不到任何设置。

然后我希望有一种方法可以从原始 URL 生成迷彩 URL,因为它看起来很简单,如此处所述。然而,创建 URL 需要知道 github 使用的“共享密钥”(我认为)。

有人可以告诉我如何将我在 github wiki 中输入的 URL 转换为渲染的迷彩 URL 吗?

Gun*_*des 1

看来无法生成相同的图像 URL,因为您需要知道共享密钥。

但生成 URL 的代码可以在套件测试中找到

class CamoProxyPathTest < Test::Unit::TestCase
  include CamoProxyTests

  def hexenc(image_url)
    image_url.to_enum(:each_byte).map { |byte| "%02x" % byte }.join
  end

  def request_uri(image_url)
    hexdigest = OpenSSL::HMAC.hexdigest(
      OpenSSL::Digest.new('sha1'), config['key'], image_url)
    encoded_image_url = hexenc(image_url)
    "#{config['host']}/#{hexdigest}/#{encoded_image_url}"
  end

  def request(image_url)
    RestClient.get(request_uri(image_url))
  end
end
Run Code Online (Sandbox Code Playgroud)

也许如果他们没有更改密钥,您可以尝试使用代码中模拟的密钥0x24FEEDFACEDEADBEEFCAFE

还有客户端库负责创建 URL,您可以检查逻辑。