在线发布您的书¶
为您的图书构建 HTML 之后,您就可以在线托管它了。 最好的方法是使用托管“静态网站”的服务 (因为这就是您刚用 Jupyter Book 创建的内容)。 在本教程中,我们将介绍如何使用 GitHub Pages(一种流行且免费的在线托管平台)在线发布您的书。
为您的书创建在线存储库¶
为了将托管的书与书的源内容连接起来,您应该将书的源内容放在公共存储库中。本节介绍一种创建自己的 GitHub 存储库并将书的内容添加到其中的方法。
首先,登录 GitHub,然后转到“创建新存储库”页面:https://github.com/new
接下来,给您的在线存储库起一个名称和描述。将您的存储库公开,不要使用 README 文件对其进行初始化,然后单击“创建存储库”。
现在,将(当前为空)在线存储库克隆到本地计算机上的某个位置。您可以使用以下命令通过命令行执行此操作:
git clone https://github.com/<my-org>/<my-repository-name>
将所有书籍文件和文件夹复制到此新克隆的存储库中。例如,如果您是使用
jupyter-book create mylocalbook
在本地创建的书,而您的新存储库名为myonlinebook
,则可以通过命令行使用以下命令进行操作:cp -r mylocalbook/* myonlinebook/
现在,您需要同步本地和远程(即在线)存储库。您可以使用以下命令执行此操作:
cd myonlinebook git add ./* git commit -m "adding my first book!" git push
通过 GitHub Pages 在线发布您的书¶
我们刚刚将本书的“源文件”推送到了 GitHub 存储库中。这使得您或其他人可以公开访问。
接下来,我们将在线发布本书的“构建工件”,以便将其呈现为网站。
在构建的 HTML 中使用 GitHub Pages 的最简单方法是使用 ghp-import
包。ghp-import
是一个轻量级的 Python 软件包,可轻松将 HTML 内容推送到 GitHub 存储库。
ghp-import
的工作原理是将已构建的书的所有内容(即 _build/html
文件夹)复制到仓库的一个分支 gh-pages
中,并将其推送到 GitHub。gh-pages
分支将由 ghp-import
自动创建并填充。要使用 ghp-import
通过 GitHub Pages 在线托管您的图书,请执行以下步骤:
注解
在执行以下步骤之前,请确保已为书籍的每一页构建了 HTML(请参见 上一节)。您的书的 _build/html
文件夹中应该有 HTML 文件的集合。
安装
ghp-import
pip install ghp-import
更新您的 GitHub 页面网站的设置:
a. 使用
gh-pages
分支来托管您的网站。b. 如果要在自己的存储库中构建书籍,请选择根目录
/
。如果要使用 jupyter-book 构建文档,请选择/docs
目录。从书籍根目录的
main
分支(应包含_build/html
文件夹)中,调用ghp-import
并将其指向您的 HTML 文件,如下所示:ghp-import -n -p -f _build/html
警告
确保您包含 -n
:这告诉 GitHub 不要用 Jekyll 来构建您的书,我们不希望这样做,因为我们的 HTML 已经建立了!
通常,几分钟后,您的网站应该可以通过以下网址在线查看:https://<user>.github.io/<myonlinebook>/
。 如果不行,请在Options -> GitHub Pages 下检查您的存储库设置,以确保将 gh-pages
分支配置为 GitHub Pages 的构建源和/或查找 GitHub 的 URL 地址。
要更新您的在线图书,请在存储库的 main
分支上更改图书的内容,使用 jupyter-book build mybookname/
重新构建图书,然后使用 ghp-import -n -p -f mylocalbook/_build/html
将新建的 HTML 推送到 gh-pages 分支。
警告
请从 ghp-import
GitHub 存储库 注意此警告:
“…ghp-import
will DESTROY your gh-pages branch… and assumes that the gh-pages
branch is 100% derivative. You should never edit files in your gh-pages
branch by hand if you’re using this script…”