# 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 ```