Example GitBook website using GitLab Pages.
This project uses an orphan branch (pages
) to host the book, since GitBook
expects a README.md file present
in the root directory, and we already use one in the master
branch to provide
information about GitBook on GitLab Pages. That way, you can have your project's
code in the master
branch and use pages
for accommodating only your website
content.
Learn more about GitLab Pages at https://pages.gitlab.io and the official documentation https://docs.gitlab.com/ce/user/project/pages/.
Table of Contents generated with DocToc
GitLab CI
This project's static Pages are built by GitLab CI, following the steps
defined in .gitlab-ci.yml
:
# requiring the environment of NodeJS 4.2.2
image: node:4.2.2
# add 'node_modules' to cache for speeding up builds
cache:
paths:
- node_modules/ # Node modules and dependencies
before_script:
- npm install gitbook-cli -g # install gitbook
- gitbook fetch latest # fetch latest stable version
#- gitbook fetch pre # fetch latest pre-release version
#- gitbook fetch 2.6.7 # fetch specific version
# the 'pages' job will deploy and build your site to the 'public' path
pages:
stage: deploy
script:
- gitbook build # build to public path
artifacts:
paths:
- public
only:
- pages # this job will affect only the 'pages' branch
Building locally
To work locally with this project, you'll have to follow the steps below:
- Fork, clone or download this project
- Track
pages
branch:git checkout --track origin/pages
- Install GitBook
npm install gitbook-cli -g
- Fetch GitBook's latest stable version
gitbook fetch latest
- Preview your project:
gitbook serve
- Add content
- Generate the website:
gitbook build
(optional) - Push your changes to the pages branch:
git push origin pages
Read more at GitBook's documentation.
GitLab User or Group Pages
To use this project as your user/group website, you will need one additional
step: just rename your project to namespace.gitlab.io
, where namespace
is
your username
or groupname
. This can be done by navigating to your
project's Settings.
Read more about user/group Pages and project Pages.
Did you fork this project?
If you forked this project for your own use, please go to your project's Settings and remove the forking relationship, which won't be necessary unless you want to contribute back to the upstream project.
Troubleshooting
-
CSS is missing! That means two things:
Either that you have wrongly set up the CSS URL in your templates, or your static generator has a configuration option that needs to be explicitly set in order to serve static assets under a relative URL.
Forked from @virtuacreative