コンテンツへスキップ
NotroTail

レンダリング検証

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)

  1. 最初のステップ
  2. 次のステップ
    1. サブステップ 2-1
    2. サブステップ 2-2
  3. 最後のステップ

タスクリスト(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=mc2E = mc^2E=mc2i=1nxi\sum_{i=1}^n x_ii=1nxi が書けます。

ブロック数式(KaTeX):

ex2dx=π\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}ex2dx=π ddx(0xf(u)du)=f(x)\frac{d}{dx}\left( \int_{0}^{x} f(u)\,du\right) = f(x)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. 右側の番号リスト 1
  2. 右側の番号リスト 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.astrocolorToClass() で適用。

テキストカラー

graybrownorangeyellowgreenbluepurplepinkred

バックグラウンドカラー

gray_backgroundbrown_backgroundorange_backgroundyellow_backgroundgreen_backgroundblue_backgroundpurple_backgroundpink_backgroundred_background
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)

Notion API loader MDX コンパイル HTML 出力
Markdown ソースを表示
```mermaid
graph LR
  A[Notion API] --> B[loader]
  B --> C[MDX コンパイル]
  C --> D[HTML 出力]
```

シーケンス図 (sequenceDiagram)

GET /blog/slug/ fetch markdown markdown compileMdx() HTML Browser Astro Notion
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
```