Skip to content

Commit 89447bc

Browse files
authored
Merge pull request #56 from kkremitzki/expand-readme
Expand README with Debian-based & Docker instructions
2 parents df9cd02 + 0889fb8 commit 89447bc

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

README.md

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,32 @@
11
# <img src="images/freecad.svg" style="zoom:50%;" /> Developers Handbook
22

3-
This is the repo for the [Developers Handbook](https://freecad.github.io/DevelopersHandbook/)
3+
This is the repo for the [Developers Handbook](https://freecad.github.io/DevelopersHandbook/).
44

55
## Install and run locally
66

7-
Make sure the dependencies `Ruby`, `Jekyll` and `Bundler` are installed on your system. See the [Jekyll installation guidelines](https://jekyllrb.com/docs/installation/) as well as the [Ruby 101 notes](https://jekyllrb.com/docs/ruby-101/) on how to setup your system.
7+
This handbook uses Jekyll, a static site generator written in Ruby. There are several options for setting up local development. Examples below illustrate the process using Bundler on a Debian-based system, or using a Docker container to keep things separate from the host system. After setup, the handbook will be available at `http://127.0.0.1:4000`.
88

9-
Clone this repo locally, run the `Bundler` installation and serve the site at `http://127.0.0.1:4000`:
9+
### Debian-based system setup
10+
11+
Although Jekyll is packaged in Debian, the `github-pages` gem is not, so Bundler is required to handle dependencies. It is not necessary to `apt install jekyll`.
12+
13+
Bundler requires `ruby-dev` and `build-essential` to build Ruby gem native extensions.
1014

1115
```bash
12-
bundle install
13-
bundle exec jekyll serve
16+
$ sudo apt install ruby-bundler ruby-dev build-essential
17+
$ bundle install
18+
$ bundle exec jekyll serve
1419
```
20+
21+
### Docker container setup
22+
23+
Docker bind mounts the handbook source directory inside the container and marks it as private & unshared with any other container, before calling `jekyll serve` as in the instructions above.
24+
25+
```bash
26+
$ docker run --rm --volume="$PWD:/srv/jekyll:Z" -it jekyll/jekyll jekyll serve
27+
```
28+
29+
### References
30+
31+
- [Jekyll installation guidelines](https://jekyllrb.com/docs/installation/)
32+
- [Ruby 101 notes](https://jekyllrb.com/docs/ruby-101/)

0 commit comments

Comments
 (0)