Skip to content
Snippets Groups Projects
user avatar
François Bobot authored
    Use $$2+2$$
79fb7b66
History

Frama-C Website

This is the working space for the Frama-C website. It uses Jekill, but you don't have to install anything, since everything is generated by the continuous integration.

For contributing

If you want to edit the website before the release, for updating informations, for releasing your plugin, I strongly encourage you to do so. As usual you can use a branch feature/... and a merge-request to master.

Git LFS

Get Git LFS from the git-lfs package or directly from:

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo aptitude install git-lfs

Get the repository normally and initialize Git LFS:

git clone git@git.frama-c.com:frama-c/frama-c.frama-c.com
cd frama-c.frama-c.com
git lfs install

The bigfiles of the website (*.pdf, *.tar.gz) are not directly in the git repository, only a text file is present.

You can download locally one file:

git lfs pull -X "" -I foo.pdf

Or all pdf:

git lfs pull -X "" -I "*.pdf"

If you want to add a bigfile you have nothing to do. git push will send the needed files.

Generate the changelog page

The changelog page isn't present in the repository but is generated each time from the original changelogs. To generate it locally, you can execute the following commands:

cd generator
chmod +x ./generate
curl https://git.frama-c.com/api/v4/projects/780/repository/files/Changelog/raw?ref=master > ../assets/Changelog
curl https://git.frama-c.com/api/v4/projects/780/repository/files/src%2Fplugins%2Fe-acsl%2Fdoc%2FChangelog/raw?ref=master >> ../assets/Changelog
curl https://git.frama-c.com/api/v4/projects/780/repository/files/src%2Fplugins%2Fwp%2FChangelog/raw?ref=master >> ../assets/Changelog
./generate ../assets/Changelog -o ../html/changelog.html

Installing a development environment

The website is using Ruby dependencies to generate a static site. The dependencies can be installed through bundler.

First check that Ruby and Ruby-gems are installed, if that's not the case check your distribution documentation to install these two packages:

ruby -v
gem -v

Install Bundler:

gem install bundler -v '2.0.2'

Use Bundler to install the required dependencies, launch this command from the project root directory:

bundle install -j $(nproc) --path vendor

You can then either build the static site:

bundle exec jekyll build -d test --future

Or serve it locally to see your modifications in realtime by accessing http://127.0.0.1:4000:

bundle exec jekyll serve