使用Lektor抽象git用法的简单插件。
lektor-git-src-publisher的Python项目详细描述
lektor-git-src-publisher
Lektor出色的界面使非技术用户能够修改 一个莱克托网站的来源和发布的结果网站。在
但是,如果使用git管理这些源代码,用户仍然必须 摆弄git客户机或接口以便与其他人协作。在
这个简单的插件支持两个发布目标,一个更新页面的 源代码来自一个远程,一个用本地更新远程 变化。在
使用这个
步骤
- 设置
REMOTE
及其身份验证(超出此插件的范围) - 安装
lektor-git-src-publisher
- 将发布者添加到项目中
lektor serve
和利润!在
详情
为了安装插件,您可以将以下内容添加到您的.lektorproject
文件:
[packages]
lektor-git-src-publisher = 0.2.2
或者跟随official plugin instructions。在
为了启用发布服务器,还需要修改.lektorproject
文件:
注意这个插件注册了gitsrc-forcepull://BRANCH
和
gitsrc-push://BRANCH
模式。在
可以设想有多个发布者,例如,一个发布者用于staging
,并且
一个用于main
分支。参见limitations。在
尝试一下
在POSIX环境中运行时,您可以:
cd test_projects
# This generates the sample projects and initialises bare git repositories
# to facilitate testing.
./gen_projects.sh
然后运行一个测试项目,如下所示:
# Most standard setup
lektor --project minimal serve
# An example with the .lektorproject not running at the root of the repo
lektor --project nested/project/minimal serve
使用特殊发布器时,在
test_projects/minimal.git
和{
联系/合作
如果你只是想打个招呼/谢谢或问些什么,我们就在Matrix! 请拨打#oss:camilion.eu或直接与我们联系 我们的网站:https://camilion.eu。在
如果您对此插件有问题open an Issue。在
如果你想在这个插件里有什么改进的话, 要么联系我们,要么提出问题或请求。在
我们将代码从我们的infra镜像到GitHub,从任何其他代码镜像到PRs 托管平台也非常受欢迎。在
特别提到我们在ungleich的朋友,谁 也需要这一点,并提供推动所需的反馈和动力 这个前锋。在
局限性
由于这样做的方式,Lektor服务器可能会混淆,如果您改变
它脚下的.lektorproject
太多了,简单的事情应该没问题
而且,如果有疑问,请在进行重大更改后重新启动Lektor服务器。在
血淋淋的细节
此插件在 非传统时尚,而不是发布结果工件:
gitsrc-forcepull
:更新源工作目录以拉取远程 变化。在gitsrc-push
:自动提交并推送到配置的远程。在
这个source code相当直截了当,有疑问的时候一定要读!在
gitsrc-forcepull
这大致相当于以下伪代码:
# Save local changes
git stash
# Update remotes
git fetch --progress
if (BRANCH != CURRENT_BRANCH) {
# Ensure we are working on the specified branch
git checkout -b BRANCH -t REMOTE/BRANCH
}
# Merge changes as necessary
git merge --strategy=recursive --strategy-option=theirs
# Restore local changes
git stash pop
这需要更多的测试,但是对于简单的用例来说似乎足够健壮 如果用户在进行更改之前进行了更新,则应该已经足够了。在
gitsrc-push
这大致相当于以下伪代码:
# Stage local changes
git add .
# Commit staged changes
git commit -m "Updated from Lektor"
# Push
git push REMOTE BRANCH
您可能需要设置GIT_COMMITTER_NAME
和GIT_COMMITTER_EMAIL
运行Lektor之前的环境变量。在
- 项目
标签: