レンダリング検証
Notion の各ブロックタイプを NotroContent
で実際にレンダリングした例です。
各セクションにはレンダリング結果とソースの Markdown を並べて表示しています。
見出し(Heading)
H1・H2・H3・H4 の4階層に対応
見出し 1(H1)
見出し 2(H2)
見出し 3(H3)
見出し 4(H4)
通常の段落テキスト。Notion の見出しブロックは H1〜H4 に対応しています。
Markdown ソースを表示
# 見出し 1(H1) ## 見出し 2(H2) ### 見出し 3(H3) #### 見出し 4(H4) 通常の段落テキスト。Notion の見出しブロックは H1〜H4 に対応しています。
テキスト・インラインスタイル
太字・斜体・取り消し線・インラインコード・リンク
通常の段落(paragraph)です。太字・斜体・取り消し線・インラインコード が使えます。
リンクテキストもサポートしています。
Markdown ソースを表示
通常の段落(paragraph)です。**太字**・*斜体*・~~取り消し線~~・`インラインコード` が使えます。 [リンクテキスト](https://github.com/mosugi/notro-tail)もサポートしています。
リスト(Lists)
箇条書き・番号付き・タスクリスト(ネスト対応)
箇条書きリスト(Bullet list)
- アイテム 1
- アイテム 2
- ネストされたアイテム 2-1
- ネストされたアイテム 2-2
- アイテム 3
番号付きリスト(Numbered list)
- 最初のステップ
- 次のステップ
- サブステップ 2-1
- サブステップ 2-2
- 最後のステップ
タスクリスト(To-do)
- 完了したタスク
- これも完了
- 未完了のタスク
- もう一つの未完了タスク
Markdown ソースを表示
**箇条書きリスト(Bullet list)** - アイテム 1 - アイテム 2 - ネストされたアイテム 2-1 - ネストされたアイテム 2-2 - アイテム 3 **番号付きリスト(Numbered list)** 1. 最初のステップ 2. 次のステップ 1. サブステップ 2-1 2. サブステップ 2-2 3. 最後のステップ **タスクリスト(To-do)** - [x] 完了したタスク - [x] これも完了 - [ ] 未完了のタスク - [ ] もう一つの未完了タスク
コールアウト(Callout)
色付きコールアウトブロック。:::callout{color="..."} ディレクティブ構文
💡 情報コールアウト(blue)
これはコールアウトブロックです。Notion のコールアウトが
:::callout{color="..."} ディレクティブ構文に変換されます。
⚠️ 警告コールアウト(yellow)
色付きのコールアウトも表示できます。
🚨 エラーコールアウト(red)
コールアウト内に複数の段落を含めることもできます。
詳細情報はこちらを参照してください。
Markdown ソースを表示
:::callout{color="blue_background"}
💡 **情報コールアウト(blue)**
これはコールアウトブロックです。Notion のコールアウトが
`:::callout{color="..."}` ディレクティブ構文に変換されます。
:::
:::callout{color="yellow_background"}
⚠️ **警告コールアウト(yellow)**
色付きのコールアウトも表示できます。
:::
:::callout{color="red_background"}
🚨 **エラーコールアウト(red)**
コールアウト内に複数の段落を含めることもできます。
詳細情報はこちらを参照してください。
::: トグル(Toggle)
折りたたみ可能なブロック。<details> + CSS アニメーション
トグルブロック — クリックで展開
トグルの中身です。このコンテンツは展開時のみ表示されます。
- ネストされたリストも使えます
- アイテム 2
別のトグル — 折りたたみ例
長いコンテンツを折りたたむのに便利です。
Markdown ソースを表示
<details> <summary>トグルブロック — クリックで展開</summary> トグルの中身です。このコンテンツは展開時のみ表示されます。 - ネストされたリストも使えます - アイテム 2 </details> <details> <summary>別のトグル — 折りたたみ例</summary> 長いコンテンツを折りたたむのに便利です。 </details>
引用(Quote)
Notion の Quote ブロック → <blockquote>
これは引用ブロック(Blockquote)です。 Notion の「Quote」ブロックに対応しています。 複数行の引用も表示できます。
Markdown ソースを表示
> これは引用ブロック(Blockquote)です。 > Notion の「Quote」ブロックに対応しています。 > 複数行の引用も表示できます。
コードブロック(Code)
Shiki によるシンタックスハイライト。JavaScript・TypeScript・Bash など多数の言語に対応
JavaScript:
// シンタックスハイライト(Shiki)
async function fetchPosts(notion, dbId) {
const posts = [];
for await (const page of iteratePaginatedAPI(notion.dataSources.query, {
data_source_id: dbId,
})) {
posts.push(page);
}
return posts;
}
TypeScript:
interface NotionPage {
id: string;
properties: {
Name: { title: RichText[] };
Slug: { rich_text: RichText[] };
Public: { checkbox: boolean };
};
}
Bash:
# ビルドとプレビュー
npm run build
npm run preview --workspace=notro-tail Markdown ソースを表示
**JavaScript:**
```javascript
// シンタックスハイライト(Shiki)
async function fetchPosts(notion, dbId) {
const posts = [];
for await (const page of iteratePaginatedAPI(notion.dataSources.query, {
data_source_id: dbId,
})) {
posts.push(page);
}
return posts;
}
```
**TypeScript:**
```typescript
interface NotionPage {
id: string;
properties: {
Name: { title: RichText[] };
Slug: { rich_text: RichText[] };
Public: { checkbox: boolean };
};
}
```
**Bash:**
```bash
# ビルドとプレビュー
npm run build
npm run preview --workspace=notro-tail
``` テーブル(Table)
GFM テーブル記法。ヘッダー行・罫線スタイル付き
| ブロックタイプ | Notion 表示 | MDX 出力 |
|---|---|---|
| Paragraph | 普通のテキスト | <p> |
| Heading 1 | 大見出し | <h1> |
| Heading 2 | 中見出し | <h2> |
| Heading 3 | 小見出し | <h3> |
| Bulleted list | 箇条書き | <ul><li> |
| Numbered list | 番号付き | <ol><li> |
| Toggle | 折りたたみ | <details> |
| Quote | 引用 | <blockquote> |
| Code | コード | <pre><code> |
| Callout | コールアウト | <callout> |
Markdown ソースを表示
| ブロックタイプ | Notion 表示 | MDX 出力 | |---|---|---| | Paragraph | 普通のテキスト | `<p>` | | Heading 1 | 大見出し | `<h1>` | | Heading 2 | 中見出し | `<h2>` | | Heading 3 | 小見出し | `<h3>` | | Bulleted list | 箇条書き | `<ul><li>` | | Numbered list | 番号付き | `<ol><li>` | | Toggle | 折りたたみ | `<details>` | | Quote | 引用 | `<blockquote>` | | Code | コード | `<pre><code>` | | Callout | コールアウト | `<callout>` |
数式(Math / KaTeX)
インライン $...$ とブロック $$...$$ 数式を KaTeX でレンダリング
インライン数式: E=mc2 や ∑i=1nxi が書けます。
ブロック数式(KaTeX):
∫−∞∞e−x2dx=π dxd(∫0xf(u)du)=f(x)Markdown ソースを表示
インライン数式: $E = mc^2$ や $\sum_{i=1}^n x_i$ が書けます。
ブロック数式(KaTeX):
$$
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
$$
$$
\frac{d}{dx}\left( \int_{0}^{x} f(u)\,du\right) = f(x)
$$ 区切り線(Divider)
Notion の Divider ブロック → <hr>
Markdown ソースを表示
---
カラムレイアウト(Columns)
2カラムレイアウト。モバイルでは縦積み
左カラム
カラムレイアウト(2カラム)の左側です。 Notion の「Columns」ブロックに対応しています。
- 左側のリスト 1
- 左側のリスト 2
右カラム
カラムレイアウトの右側です。 モバイルでは縦積みになります。
- 右側の番号リスト 1
- 右側の番号リスト 2
Markdown ソースを表示
<columns> <column> **左カラム** カラムレイアウト(2カラム)の左側です。 Notion の「Columns」ブロックに対応しています。 - 左側のリスト 1 - 左側のリスト 2 </column> <column> **右カラム** カラムレイアウトの右側です。 モバイルでは縦積みになります。 1. 右側の番号リスト 1 2. 右側の番号リスト 2 </column> </columns>
カラーアノテーション(Color Annotations)
Notion の色アノテーションは notro-text-* / notro-bg-* CSS クラスで実装。
テキストカラーは StyledSpan.astro、
見出しカラーは H1〜H4.astro が colorToClass() で適用。
テキストカラー
バックグラウンドカラー
CSS クラス一覧を表示
| CSS クラス | CSS 変数 | 適用先 |
|---|---|---|
.notro-text-gray | --notro-gray | span・見出しのテキスト色 |
.notro-text-brown | --notro-brown | span・見出しのテキスト色 |
.notro-text-orange | --notro-orange | span・見出しのテキスト色 |
.notro-text-yellow | --notro-yellow | span・見出しのテキスト色 |
.notro-text-green | --notro-green | span・見出しのテキスト色 |
.notro-text-blue | --notro-blue | span・見出しのテキスト色 |
.notro-text-purple | --notro-purple | span・見出しのテキスト色 |
.notro-text-pink | --notro-pink | span・見出しのテキスト色 |
.notro-text-red | --notro-red | span・見出しのテキスト色 |
.notro-bg-gray | --notro-gray-bg | span・コールアウトの背景色 |
.notro-bg-brown | --notro-brown-bg | span・コールアウトの背景色 |
.notro-bg-orange | --notro-orange-bg | span・コールアウトの背景色 |
.notro-bg-yellow | --notro-yellow-bg | span・コールアウトの背景色 |
.notro-bg-green | --notro-green-bg | span・コールアウトの背景色 |
.notro-bg-blue | --notro-blue-bg | span・コールアウトの背景色 |
.notro-bg-purple | --notro-purple-bg | span・コールアウトの背景色 |
.notro-bg-pink | --notro-pink-bg | span・コールアウトの背景色 |
.notro-bg-red | --notro-red-bg | span・コールアウトの背景色 |
Mermaid ダイアグラム
```mermaid
コードブロックは beautiful-mermaid
を使ってビルド時に SVG へ変換されます。DOM・ブラウザ不要のサーバーサイドレンダリングです。
フローチャート (graph LR)
Markdown ソースを表示
```mermaid graph LR A[Notion API] --> B[loader] B --> C[MDX コンパイル] C --> D[HTML 出力] ```
シーケンス図 (sequenceDiagram)
Markdown ソースを表示
```mermaid sequenceDiagram participant B as Browser participant A as Astro participant N as Notion B->>A: GET /blog/slug/ A->>N: fetch markdown N-->>A: markdown A->>A: compileMdx() A-->>B: HTML ```