IOAI Guide

For writers

Style guide

Every component a module can use, and how to write it in Markdown.

This page is a reference for writers. The text here only describes the components; module content lives in src/modules/.

Headings

Use ## for sections and ### for subsections. They appear automatically in the On this page list.

A subsection

Body text is set in STIX Two Text, the same face as the main SOTA site.

Math

Write inline math between single dollar signs, like y^=wx+b\hat{y} = w^\top x + b, and display math between double dollar signs:

MSE=1ni=1n(yiy^i)2\mathrm{MSE} = \frac{1}{n} \sum_{i=1}^{n} \left(y_i - \hat{y}_i\right)^2

Code

Fence code with the language name so it gets highlighted.

import numpy as np

def mse(y_true, y_pred):
    # Mean squared error of two arrays
    return np.mean((y_true - y_pred) ** 2)

Callouts

Write them like this. The available types are definition, note, tip, warning, example and exercise.

{% callout "definition", "Optional title" %}
Markdown goes here.
{% endcallout %}

Algorithm box

Algorithm Mini-batch gradient descent
  1. initialize the weights ww
  2. repeat until the validation loss stops improving
  3. sample a mini-batch BB from the training set
  4. wwηwLB(w)w \leftarrow w - \eta \, \nabla_w L_B(w)
{% algorithm "Title" %}
1. first step
2. second step
{% endalgorithm %}

Tables

Markdown tables get the same thin rules as the rest of the site.

Metric Formula
Precision TPTP+FP\frac{TP}{TP + FP}
Recall TPTP+FN\frac{TP}{TP + FN}

Resources and practice problems

These two tables are built from a module's front matter, so writers only fill in lists at the top of the file:

resources:
  - { source: "Book or site", title: "Chapter or page", url: "https://...", note: "Why it helps" }
problems:
  - { source: "IOAI 2025", name: "Task name", url: "https://...", difficulty: "Medium", tags: ["vision"] }