Example GitBook website using GitLab Pages.
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
- Adding Content
- Building locally
- GitLab User or Group Pages
- Did you fork this project?
- Troubleshooting
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 10
image: node:10
# 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 3.2.3 # fetch final stable version
- gitbook install # add any requested plugins in book.json
test:
stage: test
script:
- gitbook build . public # build to public path
only:
- branches # this job will affect every branch except 'master'
except:
- master
# the 'pages' job will deploy and build your site to the 'public' path
pages:
stage: deploy
script:
- gitbook build . public # build to public path
artifacts:
paths:
- public
expire_in: 1 week
only:
- master # this job will affect only the 'master' branch
Adding Content
Adding content is pretty straight foreward in GitBook. You can add
markdown files in the root folder itself or create folders and sub
folders to organize the content. In order make the added file appear
in the side bar, you need to add the file link as a list item to the
SUMMARY.md file. So if you've added a file named
example.md
, you need to add the file link in the SUMMARY.md file
as shown below.
* [Introduction](README.md)
* [<your title>](example.md)
If you have arranged your content in terms of folders and subfolders and
wish the same to be reflected in the sidebar, you need to construct your
list in the SUMMARY.md file in the same manner as that of your folder structure.
For example if you've got three folders Alice, Bob and Charlie and they
all have four files, i.e. example1.md
, example2.md
, example3.md
,
and intro.md
in them and you want that structure preseved in the side menu,
you may construct your list in the SUMMARY.md file as follows:
* [Introduction](README.md)
* [Alice](alice/intro.md)
* [First Example](alice/example1.md)
* [Second Example](alice/example2.md)
* [Third Example](alice/example3.md)
* [Bob](bob/intro.md)
* [First Example](bob/example1.md)
* [Second Example](bob/example2.md)
* [Third Example](bob/example3.md)
* [Charlie](charlie/intro.md)
* [First Example](charlie/example1.md)
* [Second Example](charlieexample2.md)
* [Third Example](charlie/example3.md)
Building locally
To work locally with this project, you'll have to follow the steps below:
- Fork, clone or download this project
- 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 master branch:
git push
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