Where to Place the Post Files
They should be placed in src/content/posts/ directory. You can also create sub-directories to better organize your posts and assets.
src/content/posts/├── post-1.md└── post-2/ ├── cover.png └── index.mdFront-matter of Posts
Each post in Marrakesh Sentinel starts with a front-matter section written in YAML format. This section contains metadata about the post, such as its title, publication date, description, tags, and more.
Example
---title: Title of the publicationpublished: 2026-10-01description: Description of the publication.image: ./cover.jpgtags: [Foo, Bar]category: Front-enddraft: false---Supported Attributes
| Attribute | Description |
|---|---|
title | The title of the post. |
published | The date the post was published. |
description | A short description of the post. Displayed on index page. |
image | The cover image path of the post. 1. Start with http:// or https://: Use web image2. Start with /: For image in public dir3. With none of the prefixes: Relative to the markdown file |
tags | The tags of the post. |
category | The category of the post. |
draft | If this post is still a draft, which won’t be displayed. |
Syntax Overview
This document defines the complete syntax supported by Marrakesh Sentinel and demonstrates how each element renders.
Headings
# Heading 1## Heading 2### Heading 3#### Heading 4Text Formatting
Source
*italic* **bold** ~~strikethrough~~ __underline__ <mark>highlighted</mark> `inline code`Preview
italic bold strikethrough underline highlighted inline code
Links
Source
[Visit Marrakesh Sentinel](https://marrakeshsentinel.com)Preview
Images
Source
Preview
Blockquotes
Source
> The desert teaches clarity.>>> Nested quotes are supported.Preview
The desert teaches clarity.
Nested quotes are supported.
Lists
Unordered List
Source
- Alpha- Beta - Nested itemPreview
-
Alpha
-
Beta
- Nested item
Ordered List
Source
1. First2. Second3. ThirdPreview
- First
- Second
- Third
Task Lists
Source
- [x] Parse input- [ ] Render outputPreview
- Parse input
- Render output
Tables
Source
| Feature | Supported | Notes ||---------|-----------|-------------|| Bold | Yes | **Syntax** || Code | Yes | Inline & blocks |Preview
| Feature | Supported | Notes |
|---|---|---|
| Bold | Yes | Syntax |
| Code | Yes | Inline & blocks |
Code Blocks
Source
```jsfunction greet(name) { return `Hello, ${name}`;}#``` remove the extra #Preview
function greet(name) { return `Hello, ${name}`;}Admonitions
Following types of admonitions are supported: note tip important warning caution
Source
:::noteHighlights information that users should take into account, even when skimming.:::
:::tipOptional information to help a user be more successful.:::
:::importantCrucial information necessary for users to succeed.:::
:::warningCritical content demanding immediate user attention due to potential risks.:::
:::cautionNegative potential consequences of an action.:::Preview
NOTEHighlights information that users should take into account, even when skimming.
TIPOptional information to help a user be more successful.
IMPORTANTCrucial information necessary for users to succeed.
WARNINGCritical content demanding immediate user attention due to potential risks.
CAUTIONNegative potential consequences of an action.
Footnotes
Source
This sentence needs context.[^1]
[^1]: Footnotes appear at the end of the document.Preview
This sentence needs context.1
Spoiler
You can add spoilers to your text. The text also supports Markdown syntax.
The content
The content :spoiler[is hidden **ayyy**]!Embedded Videos
Just copy the embed code from YouTube or other platforms, and paste it in the markdown file.
<iframe width="560" height="315" src="https://www.youtube.com/embed/Ujvy-DEA-UM?si=paJ8jEySsc9MdtqN" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>Advanced Code Block Features
GitHub Repository Cards
You can add dynamic cards that link to GitHub repositories, on page load, the repository information is pulled from the GitHub API.
Source
::github{repo="meel-hd/sentinel"}Preview
Rendering ANSI escape sequences
ANSI colors:- Regular: Red Green Yellow Blue Magenta Cyan- Bold: Red Green Yellow Blue Magenta Cyan- Dimmed: Red Green Yellow Blue Magenta Cyan
256 colors (showing colors 160-177):160 161 162 163 164 165166 167 168 169 170 171172 173 174 175 176 177
Full RGB colors:ForestGreen - RGB(34, 139, 34)
Text formatting: Bold Dimmed Italic UnderlineCode editor frames
console.log('Title attribute example')<div>File name comment example</div>Terminal frames
echo "This terminal frame has no title"Write-Output "This one has a title!"Math
Source
$$E = mc^2$$
$$\begin{aligned}E &= mc^2 \\[6pt]\mathcal{L}(\phi,\partial\phi) &= \tfrac{1}{2}\partial_\mu\phi\,\partial^\mu\phi - \tfrac{1}{2}m^2\phi^2 \\[6pt]\Box\phi + m^2\phi &= 0\end{aligned}$$
$$\mathbf{A} =\begin{pmatrix}1 & 2 & 3 \\0 & -1 & 4 \\5 & 6 & 0\end{pmatrix},\qquad\det(\mathbf{A}) = 1\cdot\det\!\begin{pmatrix}-1&4\\6&0\end{pmatrix}-2\cdot\det\!\begin{pmatrix}0&4\\5&0\end{pmatrix}+3\cdot\det\!\begin{pmatrix}0&-1\\5&6\end{pmatrix}$$
$$\int_{-\infty}^{\infty} e^{-x^2}\,dx = \sqrt{\pi},\qquad\sum_{n=0}^{\infty}\frac{x^n}{n!}=e^{x}$$
$$f(x)=\begin{cases}x^2 & x \ge 0\\[4pt]-x & x < 0\end{cases}$$
$$\begin{aligned}\nabla\cdot\mathbf{E} &= \frac{\rho}{\varepsilon_0} \\[4pt]\nabla\times\mathbf{B} - \dfrac{1}{c^2}\dfrac{\partial\mathbf{E}}{\partial t} &= \mu_0 \mathbf{J}\end{aligned}$$Preview
Footnotes
-
Footnotes appear at the end of the document. ↩