Official walkthroughs and strategies from our latest Capture The Flag competitions.
Chrome, tokens and shared components come from github.com/stellarvector/theme; read its README before adding a component here.
- Add your profile in
data/authors.ymlif you haven't already - Create a new markdown file in
content/writeups/YYYY/SLUGGIFIED_CTF_NAME/challenge.md. Create the directories if necessary (e.g. first writeup of the year) but make sure the ctf directory does not already exist. - Add the following frontmatter:
---
title: "Challenge Name" # Shown verbatim: write it as it should appear
date: YYYY-MM-DD
author: "YourName" # As defined in data/authors.yml
category: "ChallengeCategory" # E.g. crypto, web, reversing etc. as defined by the CTF
tags: ["add", "tags", "here"] # Tags related to the content
summary: "A summary of max 200 characters for displaying in the writeup cards on the site, this teases the visitor to read your writeup"
hasMathNotation: false # Change to true if you use mathjax's $ or $$
featured: false # An admin will decide on this
---- Place any images in
static/assets/images/YYYY/SLUGGIFIED_CTF_NAME/and reference them as/assets/images/YYYY/SLUGGIFIED_CTF_NAME/image.png.
Titles are rendered exactly as written — in the card, the <h1> and the browser tab — so
that challenge names such as GateCrash keep their casing. Write the title the way you want
it to read; do not use the file slug.
- Install Hugo (extended version, >= 0.161.0) and Node.js.
- Run
npm installto install the Tailwind CSS toolchain (Hugo shells out to it during the build). - Run
hugo server. - Go to http://localhost:1313/
The theme is pulled in as a Hugo module (github.com/stellarvector/theme), so Go must be
installed as well. Run hugo mod get -u github.com/stellarvector/theme to update it.
Run hugo to generate the static site in the public/ directory.
| Concern | Source of truth |
|---|---|
| Writeups and authors data | This repository |
| Search logic and lightbox | This repository |
| TOC behavior and reading progress | This repository |
| Chrome, tokens, and base behavior | Shared Hugo module |