# Markdown makra

Wiki umožňuje používat makra, předprogramované konstrukty, které umí replikovat složitější konstrukce nebo umožní generovat jinak nedosažitelné HTML výstupy.

Přehled všech maker najdete ve [zdrojovém kódu](https://gitlab.mff.cuni.cz/matfyzak/wiki/-/tree/master/src/moin/macros), následuje přehled nejpoužívanějších maker:

## Box

Multifunkční makro pro vytváření boxů všeho druhu, nahrazuje `<div>`. Sám o sobě nic nedělá, s použitím vhodných tříd z tématu wiki ale vytváří například homepage wiki.

<{MultiColumn(2)}>
```
<{Box()}>
Nic moc...
<{/Box}>
```

<{Box()}>
Nic moc...
<{/Box}>
<{/MultiColumn}>


<{MultiColumn(2)}>
```
<{Box(background-color=#FF7377)}>
## Nadpis

má červené pozadí!
<{/Box}>
```

<{Box(background-color=#FF7377)}>
## Nadpis

má červené pozadí!
<{/Box}>
<{/MultiColumn}>

<{MultiColumn(2)}>
```

<{Box([bordered, half-width])}>
S okrajem a dvěma třídami!
<{/Box}>
```

<{Box([avoid-column-break, bordered, half-width])}>
S okrajem a dvěma třídami!
<{/Box}>
<{/MultiColumn}>

Pro vytváření klasických wiki info boxů vpravo na začátku stránky slouží třída `infobox`:

<{MultiColumn(2)}>
```
<{Box(infobox)}>
infobox obsah tady
<{/Box}>

text stránky začíná tady
```

<{Box(infobox)}>
infobox obsah tady
<{/Box}>

text stránky začíná tady

<{/MultiColumn}>

Argumentem `max-width` můžete omezit šířku bloku:

```
<{Box(max-width=100)}>
Tenhle text se zalomí
<{/Box}>
```

<{Box(max-width=100)}>
Tenhle text se zalomí
<{/Box}>

## MultiColumn

```
<{MultiColumn(2)}>
- Tento
- text
- bude

<{Box(avoid-column-break)}>
- *ale*
- *tady*
- *se*
- *nezalomí!*
<{/Box}>

- ve
- dvou
- sloupcích
<{/MultiColumn}>
```

<{MultiColumn(2)}>
- Tento
- text
- bude

<{Box(avoid-column-break)}>
- *ale*
- *tady*
- *se*
- *nezalomí!*
<{/Box}>

- ve
- dvou
- sloupcích
<{/MultiColumn}>

## ImageGallery

```
<{ImageGallery()}>
![](/Kapely/SarasotaLogo.jpg)
![Obrázky mohou mít i popisek](/Kapely/sons-of-sawdust-logo.png)
<{/ImageGallery}>
```

<{ImageGallery()}>
![](/Kapely/SarasotaLogo.jpg)
![Obrázky mohou mít i popisek](/Kapely/sons-of-sawdust-logo.png)
<{/ImageGallery}>

## Details

<{MultiColumn(2)}>
```
<{Details(Klikni sem pro zobrazení)}>
Tento text se zobrazí po rozkliknutí.
<{/Details}>
```

<{Details(Klikni sem pro zobrazení)}>
Tento text se zobrazí po rozkliknutí.
<{/Details}>

<{/MultiColumn}>

## Spoiler a NSFW

<{MultiColumn(2)}>
```
<{Spoiler()}>
Fibonacci halda zvládá operace v amortizovaně konstantním čase!
<{/Spoiler}>

<{Nsfw()}>
![](BDSMFF/BDSMFF-logo.png)
<{/Nsfw}>
```

K `Nsfw` můžete přidat vlastní popis jako argument.

<{Box(avoid-column-break)}>
<{Spoiler()}>
Fibonacci halda zvládá operace v amortizovaně konstantním čase!
<{/Spoiler}>

<{Nsfw()}>
![](BDSMFF/BDSMFF-logo.png)
<{/Nsfw}>
<{/Box}>

<{/MultiColumn}>


## Forum post

<{MultiColumn(2)}>

```
<{ForumPost(poster=John Doe, timestamp=2025-10-15)}>
Sem patří normální markdown
<{/ForumPost}>
```

<{ForumPost(poster=John Doe, timestamp=2025-10-15)}>
Sem patří normální markdown
<{/ForumPost}>

<{/MultiColumn}>

## Alert Boxy

<{MultiColumn(2)}>

<{Box(avoid-column-break)}>
```
<{AlertBox(note, "Toto je poznámka")}>
Text poznámky
<{/AlertBox}>
```
<{/Box}>

<{Box(avoid-column-break)}>
<{AlertBox(note, "Toto je poznámka")}>
Text poznámky
<{/AlertBox}>
<{/Box}>

<{/MultiColumn}>

<{MultiColumn(2)}>
<{Box(avoid-column-break)}>
```
<{AlertBox(important, "Toto je důležité")}>
Důležitý text
<{/AlertBox}>
```
<{/Box}>
<{Box(avoid-column-break)}>
<{AlertBox(important, "Toto je důležité")}>
Důležitý text
<{/AlertBox}>
<{/Box}>
<{/MultiColumn}>

<{MultiColumn(2)}>
<{Box(avoid-column-break)}>
```
<{AlertBox(warning, "Toto je varování")}>
Text varování
<{/AlertBox}>
```
<{/Box}>
<{Box(avoid-column-break)}>
<{AlertBox(warning, "Toto je varování")}>
Text varování
<{/AlertBox}>
<{/Box}>
<{/MultiColumn}>

<{MultiColumn(2)}>
<{Box(avoid-column-break)}>
```
<{AlertBox(caution, "Toto je upozornění")}>
Text upozornění
<{/AlertBox}>
```
<{/Box}>
<{Box(avoid-column-break)}>
<{AlertBox(caution, "Toto je upozornění")}>
Text upozornění
<{/AlertBox}>
<{/Box}>
<{/MultiColumn}>

<{MultiColumn(2)}>
<{Box(avoid-column-break)}>
```
<{AlertBox(tip, "Toto je Tip")}>
Text tipu
<{/AlertBox}>
```
<{/Box}>
<{Box(avoid-column-break)}>
<{AlertBox(tip, "Toto je Tip")}>
Text tipu
<{/AlertBox}>
<{/Box}>
<{/MultiColumn}>