Dᴀʀ*_*ᴅᴇʀ 7 caching jekyll github-api github-pages repo
学习Jekyll并通过Github Pages进行托管我想弄清楚如何访问私有仓库的最新版本并将下载URL缓存到Jekyll页面。我知道如何通过Github API使用访问令牌使用AJAX访问数据:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script language="javascript" type="text/javascript">
let USER = "grim"
let REPO = "foobar"
let TOKEN = "jsfjksgfjasgdjgsajgasjk"
$.ajax({
url: `https://api.github.com/repos/${USER}/${REPO}/releases/latest?access_token=${TOKEN}`,
jsonp: true,
method: "GET",
dataType: "json",
contentType: 'application/json',
success: function(res) {
console.log(res.assets)
},
error: function(res) {
console.log(res)
}
})
</script>
Run Code Online (Sandbox Code Playgroud)
在config.yml中,我设置USER
,REPO
和TOKEN
。我的研究确实找到了Cache API,但未列出。使用Github Pages作为主机并在Jekyll中进行编码,是否有办法获取最新版本并使用Jekyll将响应存储在私有仓库中?如果我无法缓存API,是否可以在Jekyll构建中存储发布URL,因此可以将其编码到按钮上,以便按钮充当下载内容?
研究:
使用 Github Pages 作为主机并在 Jekyll 中编码,有没有办法获取最新版本并使用 Jekyll 将响应缓存在私有存储库上?
此处列出了仅允许与 GitHub Pages 一起使用的 Jekyll 扩展:
jekyll-coffeescript
jekyll-default-layout
jekyll-gist
jekyll-github-metadata
jekyll-optional-front-matter
jekyll-paginate
jekyll-readme-index
jekyll-titles-from-headings
jekyll-relative-links
这些都与您正在寻找的缓存或客户端功能无关,因此您必须采用不同的解决方案。
如果我无法缓存 API,是否有办法在 Jekyll 构建上存储发布 URL,以便我可以将其编码到按钮中,以便按钮充当下载?
由于 GitHub Pages 没有与您的用例匹配的缓存 API,您可以通过对站点进行以下更改来回退到服务器端渲染:
然后,您可以创建一个定期运行的GitHub Action来执行此工作流程:
我没有任何示例来说明这一点,但如果您想进一步探索这一点,还有其他资源。