使用Lektor抽象git用法的简单插件。

lektor-git-src-publisher的Python项目详细描述


lektor-git-src-publisher

Lektor出色的界面使非技术用户能够修改 一个莱克托网站的来源和发布的结果网站。在

但是,如果使用git管理这些源代码,用户仍然必须 摆弄git客户机或接口以便与其他人协作。在

这个简单的插件支持两个发布目标,一个更新页面的 源代码来自一个远程,一个用本地更新远程 变化。在

使用这个

步骤

  1. 设置REMOTE及其身份验证(超出此插件的范围)
  2. 安装lektor-git-src-publisher
  3. 将发布者添加到项目中
  4. lektor serve和利润!在

详情

为了安装插件,您可以将以下内容添加到您的.lektorproject 文件:

[packages]
lektor-git-src-publisher = 0.2.2

或者跟随official plugin instructions。在

为了启用发布服务器,还需要修改.lektorproject文件:

^{pr2}$

注意这个插件注册了gitsrc-forcepull://BRANCHgitsrc-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_NAMEGIT_COMMITTER_EMAIL 运行Lektor之前的环境变量。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
当您有许多具有不同密钥值的位置时,java Enterprise是加密环境变量的正确方法   java如何使用视图保持器模式制作自定义适配器?   java如何迭代Camel体中的嵌套列表?   序列化用base 64进行Java序列化   java打开文件的最佳方式(并确保选择了文件)   java marvin图像色差插件错误   java如何在eclipse中添加属性文件文件夹   比较java。util。日历日期到java。util。日期   java无法在下一个类(活动)中获取哈希表   java如何将这段代码转换为循环?   java查找通过REST失败   java getIntent返回null   在Java中,如何通过外部集合从内部集合检索数据?   java单点登录以保护REST API和内部基于web的系统