Plugins
Syntax/Embeddings
Embeddings are additions to the standard markdown syntax in An Otter Wiki. They provide capabilities beyond basic markdown, such as special layout elements, enhanced features, and entirely new functionality.
Embeddings are an experimental feature and subject to change.
Usage
An embedding starts with {{EmbeddingName and ends with }}. Between the opening and closing braces you can pass options and args.
Options are key-value pairs separated by | in the form |key=value. Each option starts with a | followed by the key, an = and the value.
Args are any remaining lines that are not options. They form the body content of the embedding and can contain regular markdown.
{{EmbeddingName
|option1=value1
|option2=value2
args content (markdown)
}}
Escaping: Use \| to include a literal | in a key, value, or args. Use \= to include a literal = in a key.
AttachmentList
{{AttachmentList
|caption=Attachments
|filter=*
|format=full/details/minimal
|icons=true/false
}}
With format you can decide what is displayed in the table: minimal shows only the filenames, details shows filename, date and size, full shows all information.
| Attachment | Size | Date | Author | Comment | |
|---|---|---|---|---|---|
| example.pdf | 110.0KiB | 2026-03-08 11:26 | Anonymous | Added AttachmentList documentation. |
DataTable
{{datatable
|paging=false
|perPage=42
|searchable=false
|sortable=true
|fixedHeight=True
|caption=Python Stable
| Version | Released |
| -------:| ---------- |
| 3.13 | 2024-10-07 |
| 3.12 | 2023-10-02 |
| 3.11 | 2022-10-24 |
| 3.10 | 2021-10-04 |
| 3.9 | 2020-10-05 |
| 3.8 | 2019-10-14 |
| 3.7 | 2018-06-27 |
| 3.0 | 2008-12-03 |
}}
| Version | Released |
|---|---|
| 3.13 | 2024-10-07 |
| 3.12 | 2023-10-02 |
| 3.11 | 2022-10-24 |
| 3.10 | 2021-10-04 |
| 3.9 | 2020-10-05 |
| 3.8 | 2019-10-14 |
| 3.7 | 2018-06-27 |
| 3.0 | 2008-12-03 |
{{datatable
|src=data.csv
|delimiter=;
|quotechar="
|header=true
|columns=1,3
|headers=Name,Score
|caption=My Data
}}
Options specific to CSV:
src: filename of a CSV attachment on the pagedelimiterfield delimiter, default;quotecharcharacter used to quote fields, default"headeruse first row as column headers (defaulttrue)columnscomma-separated list of 1-based column indices or header names to includeheaderscomma-separated list of column header labels (overrides CSV headers)
Figure
{{Figure
|caption=Figure 1: Example Python code
|align=center/left/right
|width=100%
|height=300px
|style=additional inline css
```python
#!/usr/bin/env python
print("Hello, World!")
```
}}
ImageFrame
{{ImageFrame
|caption=An Otter Wiki Logo
|width=30%
|position=right/left
|float=right/left
|text-align=center/left/right/justify
|style=custom css
[](/static/img/otter.png)
}}
Use |src= to embed an attachment directly, with an optional |alt= text:
{{ImageFrame
|caption=An Otter Wiki Logo
|src=otter.png
|alt=The Otter Wiki logo
}}
Use an absolute path to embed an attachment from another page:
{{ImageFrame
|src=/OtherPage/otter.png
}}
External images can be embedded via a full URL:
{{ImageFrame
|src=https://example.com/image.png
|alt=Description
}}
InfoBox
{{InfoBox
|caption=Some Caption
|position=right/left
|float=right/left
|width=35%
|text-align=justify
|style=additional inline css
|Random Key=Value
|Answer=42
|Homepage=[otterwiki.com](https://otterwiki.com)
Lorem _ipsum_ dolor sit **amet**, consectetur
adipiscing elit.
```python
#!/usr/bin/env python
markdown=True
```
}}
Note: On small screens the box automatically expands to full width regardless of the width option.
The optional |style= allows additional inline CSS overrides.
Lorem ipsum dolor sit amet, consectetur
adipiscing elit.
#!/usr/bin/env python markdown=True | |
| Random Key | Value |
| Answer | 42 |
| Homepage | otterwiki.com |
PageIndex
{{PageIndex
|src=*
|toc=true/false
|toggle=true/false
}}
Options:
src: glob pattern to filter pages by title (default*, matches all pages)toc: show page headings (defaultfalse)toggle: show the toggle for the page headings (defaulttrue)
Video
{{Video
|width=10%
|muted=false/true
|controls=true/false
|autoplay=false/true
|loop=false/true
|src=/full/path/to/video.mp4
/alternative/full/path/to/video.mp4
}}
YouTube URLs (youtube.com/watch?v=… or youtu.be/…) are rendered as embedded iframes:
{{Video
|width=100%
|muted=false/true
|controls=true/false
|autoplay=false/true
|loop=false/true
https://www.youtube.com/watch?v=dQw4w9WgXcQ
}}

