Bloques

Markdown reference

Every markdown syntax Bloques parses, with notes on what survives a round-trip through the editor.

Bloques uses CommonMark plus GitHub-flavored markdown (GFM), frontmatter, and MDX. For component syntax, see Components.

Frontmatter

YAML frontmatter at the top of a file. Bloques reads title and description for the page; other keys round-trip as metadata.

---
title: Connect GitHub
description: Install the GitHub App and link a repo.
---

Headings

Six levels, # through ######. The H1 comes from the title frontmatter. Don't repeat it in the body.

## Section

### Subsection

Paragraphs and line breaks

Separate paragraphs with a blank line. For a hard break inside a paragraph, end the line with a trailing backslash. The editor serializes hard breaks as a trailing backslash, not the two-space form.

First line.\
Second line on a new row.

A new paragraph.

Emphasis

**bold**
_italic_
**_bold italic_**
~~strikethrough~~
`inline code`

Strikethrough comes from GFM. Inline code blocks suppress bold and italic inside the same span: code wins.

[Quickstart](/quickstart)
[GitHub](https://github.com)
<https://bloques.site>

Autolinks (<https://...>) parse on read but the editor re-emits them as standard [text](url) links on save.

Images

![Alt text describing the image](/images/diagram.png)
![Alt text](/images/diagram.png "Optional title")

Always write descriptive alt text. See Images for upload and sizing.

Lists

Bullet, numbered, and nested. Indent nested items by two spaces under bullets, three under numbered.

- First
- Second
  - Nested
  - Nested

1. First
2. Second
   1. Nested
   2. Nested

Task lists (- [ ] and - [x]) parse without error, but the editor drops the checkbox state. Use a plain bullet list or a table instead.

Blockquotes

Prefix each line with >. Use a blank > line for a paragraph break inside the quote, or a trailing backslash for a hard break.

> A single-line quote.

> First paragraph.
>
> Second paragraph.

> A line\
> and a hard break.

Code blocks

Fenced with triple backticks. Always tag the language.

```ts
const site = "bloques";
```

The language tag survives round-trip. Indented code blocks (four-space) parse but the editor re-emits them as fenced blocks without a language.

Horizontal rule

Three or more -, *, or _ on a line. The editor normalizes to ***.

---

Tables

GFM tables with per-column alignment.

| Name  |   Role   | Count |
| :---- | :------: | ----: |
| Alice | Engineer |     3 |
| Bob   | Designer |    12 |
  • :--- left (default; the editor drops the explicit colon)
  • :---: center
  • ---: right

Cells hold inline content only: no lists, code blocks, or components. For a line break inside a cell, use <br/>. A raw <br> (not self-closed) is invalid MDX and Bloques rejects it.

| Header       |
| ------------ |
| line<br/>two |

Inline HTML

Three tags map to inline styles and round-trip cleanly:

H<sub>2</sub>O
E=mc<sup>2</sup>
<u>Underlined</u>

Other HTML tags parse as literal text and are not rendered. Use a component instead: see Components.

Escaping

Backslash-escape any markdown character to render it literally.

\*not italic\*
\`not code\`
\| not a table cell \|

What's not supported

  • Task lists: parsed, but checkbox state is dropped on save.
  • Footnotes: not parsed; [^1] syntax renders as plain text.
  • Definition lists: not parsed.
  • Indented code blocks: parsed, but re-emitted as a fenced block.
  • Arbitrary HTML: only <sub>, <sup>, <u>, and <br/> (in tables) are recognized.