GitHub pages is a free service that GitHub provides to let you host website content using your GitHub repositories.
Once you've built the intermediate files for your book (in _build) or built the HTML
for your book (in _site), you can push your book contents to GitHub so that
others can access your book.
Prerequisites
If you are building your book's HTML manually
We assume that you have already built your book's HTML and that your HTML content is in the
_site/folder. We also assume that you have a GitHub repository created for your book.If you are using GitHub-page's Jekyll builder
We assume that you have a GitHub repository created for your book. We also assume that your book's template and content have been pushed to your GitHub repository.
Publish your book's HTML manually to GitHub-pages
You can manually publish HTML to GitHub-pages so that it will serve a website for you. To do so, we'll need to push the HTML for our book to a branch, tell GitHub-pages that this branch contains raw HTML (not a Jekyll template), and then activate GitHub-pages on the repository. To do this, follow these steps:
- Confirm that your book's HTML is built. You should see a
collection of HTML files/folders in the
_sitefolder. Install the
ghp-importtool. This is a command-line tool for quickly pushing some built HTML to a GitHub-pages branch.pip install ghp-import
Use
ghp-importto push your book's HTML onto thegh-pagesbranch of your repository.ghp-import -n -p -f _site
The
-nadds a.nojekyllfile to your book's built HTML, and the-pand-ftellghp-importto push the contents of_site/to thegh-pagesbranch. Runghp-import -hto see more configuration options for this tool.- Confirm that your
gh-pagesbranch has newly-pushed HTML for your book. You should see a.nojekyllfile as well as the contents of_site/in the root of yourgh-pagesbranch. Enable GitHub site building for your repository.
From your GitHub repository, click
Settingsthen scroll down to theGitHub Pagessection. You should see the messageYour site is published at <YOUR-URL>. Ensure that you're building from thegh-pagesbranch.Go to the URL listed at
<YOUR-URL>and you should see your live site.
Automatically build your book's HTML with the GitHub Pages Jekyll builder
You'll need to activate GitHub-pages on your repository in order to tell GitHub to host a website from the repository's contents. To do so, follow these steps:
- Confirm that each page's HTML is built. You should see a
collection of HTML files/folders in the
_buildfolder. - Commit and push the changes to your repository.
Enable GitHub site building for your repository.
From your GitHub repository, click
Settingsthen scroll down to theGitHub Pagessection. You should see the messageYour site is published at <YOUR-URL>. Ensure that you're building from the correct folder.Go to the URL listed at
<YOUR-URL>and you should see your live site.
That should be all that is needed for GitHub Pages to automatically build
and publish your site. Any time you push changes to the _build/ folder
(by running jupyter-book build locally and pushing the changes to GitHub),
your book content will update.