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.3.5'
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