Source code for Maple Bacon's team website.
Install Nix on any Linux (WSL2 on Windows) or
macOS computer, and enable the flakes and nix-command experimental features
(experimental-features = nix-command flakes in /etc/nix/nix.conf).
Then:
git clone https://github.com/ubcctf/ubcctf.github.io
cd ubcctf.github.io
nix develop
and within the nix develop shell,
jekyll <build|serve>
Ensure you have Ruby and Bundler installed:
ruby -v
gem install bundlerClone this repository, set up bundle to install to this directory, and install project dependencies locally.
git clone https://github.com/ubcctf/ubcctf.github.io
cd ubcctf.github.io
bundle config path 'vendor/bundle' --local
bundle install
bundle exec jekyll <build|serve>When updating gems, if you are not in a nix develop shell, please make sure
that you have BUNDLE_FORCE_RUBY_PLATFORM=true set in your environment, or in
.bundle/config. This works around a bug in
bundix by forcing the gem
infrastructure to build native extensions from source.
After changing the gems, run lock-gems from the nix develop shell (or,
bundix -l). This will update gemset.nix, used by the Nix infrastructure
to automatically grab the proper Jekyll.
Create a new file with the following contents at the path _authors/{short_name}.md:
short_name: Your alias, must match your author file name. No spaces. This will displayed on blog posts and the article list.name: Your name or nickname for the about page.position: Categories you play in. Can be any or multiple of the following, comma separated:- Web
- Crypto
- Misc
- Rev
- Pwn
website: Link to your website or a social media account.website_title: Pretty name of your website - the content within the <a> tag.layout: must beauthor
Template:
---
short_name: hackerman
name: John Doe
position: Web,Crypto,Misc,Rev,Pwn
website: https://www.web.site
website_title: web.site
layout: author
---
Some description.Finally, open a PR.
Create a new file with the following contents at the path _posts/{yyyy}-{mm}-{dd}-{ctf_name}-{challenge_name}.md:
layout: must beauthortitle: Name of your blog post, format is"[{ctf_name}] {challenge_name}"author: Authorsshort_name. Author must already exist in_authors/, see creating a new author.
Template:
---
layout: post
title: "[FakeCTF 2024] Challenge Name"
author: hackerman
---
Post contents support *markdown*!If your post has any assets place them in assets/ and link the path appropriately in the post contents.
Tip
We should probably standardize the assets/ format. It's currently a bit of a mess.
Finally, test the post locally and open a PR.