Table of Contents
Below you can find the manual for the Markdown parser used on this site. Some functions are not yet implemented, but will be added in the future.
Markdown Help (Supported Syntax)
This page explains how to format text using the Markdown features supported on this site.
Table of Contents (Auto)
All headings like # Heading are automatically collected into a Table of Contents (desktop sidebar + mobile collapsible menu).
Headings
Use # for headings.
# Title
## Section
### Subsection
#### Smaller sectionNotes:
- Your headings become HTML headings.
- They get automatic anchors and appear in the Table of Contents.
Paragraphs and Line Breaks
- Normal text becomes a paragraph.
- A blank line ends a paragraph.
- Inside a paragraph, a new line becomes a line break.
Example:
This is line one
This is line two
This is a new paragraph.Horizontal Line
Use exactly:
Inline Formatting
Bold
**bold text**bold text
Italic
*italic text*italic text
Inline Code
`code`
code
Links
[link text](https://example.com)Notes:
- Inline formatting works inside paragraphs, list items, table cells, and blockquotes.
- The parser escapes HTML inside normal text, so
<b>hello</b>will be shown as text (not rendered).
Blockquotes
Start a line with >.
> This is a quote.
> Another quote line.This is a quote.
Another quote line.
Notes:
- A blank line ends the quote.
Lists
Unordered Lists
Use - or *:
- Item 1
- Item 2
* Item 3- Item 1
- Item 2
- Item 3
Ordered Lists
Use 1. / 2. / etc:
1. First
2. Second
3. Third- First
- Second
- Third
Nested Lists (Indentation)
Indent nested items with spaces:
- Parent
- Child
- Grandchild
- Next parent- Parent
- Child
- Grandchild
- Next parent
Multi-line List Items
A list item can continue on the next line (without starting a new bullet/number). Example:
- First line of the item
Second line of the same item
Third line still the same item
- New item- First line of the item
Second line of the same item
Third line still the same item - New item
Notes:
- A blank line keeps the list open, but the next non-empty line will not automatically continue the previous item unless it immediately follows a list item.
Tables
A table row is any line that starts and ends with |.
Simple Table
| Name | Value |
| Alice | 10 |
| Bob | 20 || Name | Value |
| Alice | 10 |
| Bob | 20 |
Table With Header + Alignment
Use a separator line with dashes, and optional colons:
:---left---:right:---:center
| Item | Price | Note |
|:-----|------:|:----:|
| Apple | 1.20 | fresh |
| Pear | 2.50 | ok || Item | Price | Note |
|---|---|---|
| Apple | 1.20 | fresh |
| Pear | 2.50 | ok |
Notes:
- Inline formatting works inside cells (bold/italic/code/links).
- Tables are wrapped in a horizontal scroll container for small screens.
Images (Figures) With Optional Size
Supported format:
Examples:



Notes:
- Images are loaded from:
/uploads/<course_id>/<filename> - The text inside
![ ... ]becomes the caption under the image. - Images include a click-to-zoom behavior (checkbox-based).
Fenced Code Blocks
Use triple backticks.
Code Block Without Language
:::code
some code here
:::some code hereCode Block With Language Label
```php
echo "Hello";```php
echo "Hello";Notes:
- The website renders a styled code block.
- If you provide a language after the opening backticks, it appears as a label.
- A “Copy code” button is automatically added.
Boxes (Callouts)
You can create block boxes using:
:::info
Content...
:::Content...
Supported box types:
infosuccesswarningdangerexercisertlcode
Example: Info Box
:::danger
This is a **danger** box with *formatting* and `inline code`.
:::
This is a danger box with formatting and inline code.
:::success
This is a **success** box with *formatting* and `inline code`.
:::
This is a success box with formatting and inline code.
This is an info box with formatting and inline code.
Example: Exercise Box
:::exercise
**Task:** Compute 2+2.
Write your answer below.
:::
Task: Compute 2+2.
Write your answer below.
Code Box
A :::code box outputs a code block style container and does not parse Markdown inside as normal content.
:::code
function hello() {
return "hi";
}
:::Notes:
- Boxes can contain multiple paragraphs, lists, quotes, tables, etc. (except
code, which is treated as raw code content).
Solutions (Hidden / Toggle)
Inside any other box (like exercise) you can add a solution block:
::: exercise
Solve: **3 × 7**
:::solution
The result is **21**.
:::
:::Solve: 3 × 7
The result is 21.
Behavior:
- A “Show Solution” button is created.
- Clicking toggles the visibility of the solution content.
What is currently NOT Supported
These common Markdown features are not implemented by this parser:
- Strikethrough (
~~text~~) - Underline
- Automatic URL linking (you must use
text) - Inline HTML rendering in normal text (HTML is escaped)
- Nested blockquotes inside other blocks beyond what’s described
- Markdown task lists (
- [x]) - Markdown heading IDs like
{#id}
We work hard on adding more features over time.
Tips and Common Gotchas
- Use blank lines to end paragraphs and quotes cleanly.
- For nested lists, be consistent with indentation.
- For images, the filename must match an existing upload in your course folder.
- For tables, each row must begin and end with
|.