想象一下用jekyll编译并托管在github页面上的静态网站。是否有可能在此页面上有一些javascript,询问用户一些输入,然后“git push”此输入到一些github存储库?
换句话说,如何在javascript中编写以下程序:
当然,我了解潜在的安全风险,因为javascript代码需要嵌入私有ssh密钥。但这对于为静态网站添加动态性是一种有趣的方式,并且可能有人知道某些解决方案可以使其安全吗?
谢谢!
答案 0 :(得分:2)
如果你知道git(blob,trees,commits)的内部结构,那么你应该能够使用GitHub REST API实现一个解决方案。这不会在5分钟内完成。至于安全性,您应该能够使用OAuth,因此不需要私有的ssh密钥。
答案 1 :(得分:2)
使用GitHub API的替代方法,您可以使用JavaScript编写的git客户端之一在浏览器中执行上述操作。
以下是一些例子:
答案 2 :(得分:2)
来自Staticman网站:
Staticman为您处理用户生成的内容,并将其转换为GitHub存储库中的数据文件以及其他内容。
Staticman与GitHub页面上托管的Jekyll网站完美配合,因为推送到您的主分支将自动重新生成该网站。如果您希望在条目发布之前对其进行审核,则会创建一个拉取请求供您批准;否则,文件将立即推送到您的主分支。
答案 3 :(得分:1)
Ivan Zuzak的一篇老帖描述了他如何使用Github评论构建动态评论系统(source)。我最近使用一些额外的服务重新创建了他描述的系统(使用Github问题进行评论):Zapier,Zapier Github集成和Zoho forms的免费版本。这使我能够通过Zapier让自定义webform向Github问题提交数据(所以不要求用户创建Github帐户)。
我在我的博客上使用Github问题作为评论,但您可以使用相同的解决方案来处理其他内容(例如您的名单)。