This is the source code for the Bitcraze website.
The content is written in markdown and html and the intention is to make it as easy as possible to modify the code. There is an integrated development and test environment based on Docker to reduce the amount of software required.
-
Clone this repository
git clone https://github.com/bitcraze/bitcraze-website.git
-
Go to the root of the repository. All tools should be run from here.
cd bitcraze-website
-
Download dependencies. This will download Bootstrap and set things up.
./tools/do download_deps
-
Start the development server. The development server in Jekyll continuously builds the site when the source changes.
./tools/run-in-dev.sh
-
Open a web browser and go to http://localhost. If you are not on Linux you will have to use docker-machine to figure out your address.
-
Make your changes. The site will automatically rebuild when you modify a file, so all you have to do is to reload the page in your browser to see the results.
-
Commit and issue a pull request
-
Done!
All you need to contribute is
If you don't want to use docker you will need ruby on you system. We have not set our systems up this way but is should not be a big deal. Uf you do, please add documentation for it here.
You can find more information about the technologies used here
- Jekyll - we use Jekyll to generate static html from markdown or html
- Compass - Compass is used (through a Jekyll plugin) to compile SCSS into CSS
- Bootstrap - The CSS is based on Bootrstrap
- Docker - Docker is used to create a consistent development and test environment
- HTML Proofer
The top level directories are
- src - the source code for ths site, markdown, js, scss, templates and so on. This is where you need to look if you want to add or change the text or styling. Read the Jekyll documentation for an explanation of the file structure here.
- test - unit tests for Jekyll plugins
- bootsrap - bootstrap is download here
- _site - this is where the generated site goes
- tools - scripts for building the site and running the server. See comments in the scripts for documentation on how to use them.
The code in this repository is the base for all static content on the website. The blog on the other hand, is not part if this code, it is running on a Wordpress instance. The dynamic content is injected into the static pages where needed, you will find tags in the source code indicating where. For instance
<!-- inject wp blog -->
- Convert as much of the content as possible to markdown. Write Jekyll plugins that generate the approprate html.