Skip to content

Markdown

Every Markdown and GFM construct Blasdoc renders.

Blasdoc parses with unified and remark-parse, with GitHub Flavored Markdown enabled. Everything CommonMark and GFM describe is rendered as ordinary, semantic HTML elements — no wrapper divs, no classes you did not ask for.

Text

md
**bold**, *emphasis*, ~~struck through~~, `inline code`, and a
[link](https://angular.dev).

bold, emphasis, struck through, inline code, and a link.

Headings

Every heading gets an anchor derived from its text, so a link can reach it and a table of contents can be built from the same rule. The outline on the right of this page comes from exactly that.

md
## Usage
### Detail

Lists

md
- unordered
- items
 
1. ordered
2. items
 
- [x] a task
- [ ] another task
  • unordered

  • items

  1. ordered

  2. items

Blockquotes

md
> Content arrives as a string.

Content arrives as a string.

Tables

GFM tables, with per-column alignment:

md
| Syntax | Channel | Applied as |
| --- | :---: | ---: |
| `variant="primary"` | attribute | input |
| `[variant]="tone"` | binding | input |
SyntaxChannelApplied as
variant="primary"attributeinput
[variant]="tone"bindinginput

Code

Fenced code is highlighted by Shiki and turned into IR nodes — never an HTML string. See Code blocks for the fence options.

md
```ts
const parser = createBlasdocParser();
```

Thematic breaks and images

md
---
 
![Alt text](/og-image.png)

Front matter

YAML front matter is parsed and exposed on the parse result rather than rendered. Blasdoc reads blasdoc.theme from it; everything else is yours.

md
---
title: Bindings
blasdoc:
  theme: github
---

What is not rendered

Footnotes and link definitions are parsed away rather than rendered. Raw HTML is kept, but filtered through an allow-list — see Safety.