跳转到主要内容

直接将您的文档复制到gh-pages分支。

项目描述

GitHub Pages导入

CI status CircleCI TravisCI

License Version

作为Gunicorn的一部分,Benoit ChesneauPaul Davis正在寻找如何托管文档的方法。有使用GitHub的post-receive钩子来触发文档构建并将rsync同步到Web服务器的明显方法,但我们最终想要尝试GitHub的托管来使整个界面更加稳健。

GitHub Pages 是 GitHub 提供的一种非常棒的服务,用于托管项目文档。唯一的问题是它需要一个名为 gh-pages 的分支,它是网站的文档根目录。这意味着将文档源代码保存在与代码相同的分支中有些困难。对于像 Sphinx 这样的工具来说,它想要同时访问文档源和代码源,这确实是一个让人头疼的问题。

然后我们偶然发现了一个看起来很有趣的软件包,名为 github-tools,它看起来几乎符合我们的需求。它有些复杂,比我们想要的要复杂一些,但它给了我们一个想法。为什么不写一个可以复制目录到存储库的 gh-pages 分支的脚本呢。这可以让我们不必再考虑分支,一切都会变得神奇。

这就是 ghp-import 被编写出来的原因。

重要警告

这将销毁你的 gh-pages 分支。如果你珍爱它,请在尝试之前进行备份。此脚本假定 gh-pages 是 100% 派生。如果你使用此脚本,不要手动编辑 gh-pages 分支中的文件,因为你将丢失你的工作。

当使用前缀时,只有设置前缀下的文件将被销毁,上述警告仅限于该目录及其以下的所有内容。

用法

Usage: ghp-import [OPTIONS] DIRECTORY

Options:
  -n, --no-jekyll       Include a .nojekyll file in the branch.
  -c CNAME, --cname=CNAME
                        Write a CNAME file with the given CNAME.
  -m MESG, --message=MESG
                        The commit message to use on the target branch.
  -p, --push            Push the branch to origin/{branch} after committing.
  -x PREFIX, --prefix=PREFIX
                        The prefix to add to each file that gets pushed to the
                        remote. Only files below this prefix will be cleared
                        out. [none]
  -f, --force           Force the push to the repository.
  -o, --no-history      Force new commit without parent history.
  -r REMOTE, --remote=REMOTE
                        The name of the remote to push to. [origin]
  -b BRANCH, --branch=BRANCH
                        Name of the branch to write to. [gh-pages]
  -s, --shell           Use the shell when invoking Git. [False]
  -l, --follow-links    Follow symlinks when adding files. [False]
  -h, --help            show this help message and exit

它很简单。在你的存储库中,只需运行 ghp-import $DOCS_DIR 即可,其中 $DOCS_DIR 是构建文档的路径。这将在你的 gh-pages 分支中写入一个提交,其中包含当前的文档。

如果你指定了 -p,它还会尝试将 gh-pages 分支推送到 GitHub。默认情况下,它将运行 git push origin gh-pages。你可以使用 -r 标志指定不同的远程。

-o 选项将丢弃任何先前历史,并确保始终只推送单个提交到 gh-pages 分支。这有助于避免仓库大小的膨胀,并且强烈推荐使用。

你可以使用 -b 指定不同的分支。这对于用户和组织页面很有用,这些页面是从 master 分支提供的。

一些 Windows 用户报告说需要通过 shell 传递 Git 命令,这可以通过传递 -s 来实现。

-l 选项将导致导入时遵循符号链接,这对于包含文档目录外符号链接的奇特配置的用户很有用。

Python 用法

您还可以直接从 Python 代码中调用 ghp_import 作为库。该库有一个公开函数 ghp_import.ghp_import,它接受以下参数

  • srcdir:构建文档的路径(必需)。
  • remote:要推送的远程名称。默认:origin
  • branch:要写入的分支名称。默认:gh-pages
  • mesg:在目标分支上使用的提交消息。默认:更新文档
  • push:提交后推送分支到 {remote}/{branch}。默认:False
  • prefix:要添加到推送到远程的每个文件的前缀。默认:None
  • force:强制推送到存储库。默认:False
  • no_history:强制提交不带父历史记录。默认:False
  • use_shell:默认:在调用 Git 时使用 shell。 False
  • followlinks:在添加文件时遵循符号链接。默认:False
  • cname:使用给定的 CNAME 写入 CNAME 文件。默认:None
  • nojekyll:在分支中包含 .nojekyll 文件。默认:False

在您的仓库中,使用Python的当前工作目录(cwd)执行以下操作

from ghp_import import ghp_import
ghp_import('docs', push=True, cname='example.com')

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

ghp-import-2.1.0.tar.gz (10.9 kB 查看散列值)

上传时间

构建分布

ghp_import-2.1.0-py3-none-any.whl (11.0 kB 查看散列值)

上传时间 Python 3

由以下提供支持