0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AstroでMarkdownブログ記事を作成する方法

Posted at

Astroでは、使い慣れたMarkdown形式でブログ記事を簡単に作成できます。ここでは、記事用のMarkdownファイルを作成し、共通のレイアウトを適用する基本的な手順を紹介します。

ブログ記事作成の基本的な流れ

  1. 記事のレイアウトを作成する: ブログ記事全体で共通するヘッダーやフッターなどの見た目を定義するコンポーネントを作成します
  2. Markdownファイルを作成する: 記事の内容をMarkdownで記述し、どのレイアウトを使うかを指定します
  3. 確認する: 開発サーバーで表示を確認します

Astoroでブログ作成する手順

1.レイアウトコンポーネントを作成する(src/layouts/BlogPostLayout.astro)

まず、ブログ記事の骨組みとなるレイアウトコンポーネントを作成します。src/layouts/ ディレクトリ(なければ作成してください)に BlogPostLayout.astro というファイルを作成し、以下のコードを記述します。

---
// レイアウトコンポーネント (BlogPostLayout.astro)
// Markdownファイルのフロントマターからデータを受け取る
const { frontmatter } = Astro.props;
---
<html lang="ja">
<head>
    <meta charset="utf-8" /> {/* ← 重要: 文字化けを防ぐために必ず記述 */}
    <meta name="viewport" content="width=device-width" />
    <title>{frontmatter.title}</title> {/* Markdownのタイトルを表示 */}
</head>
<body>
    <header>
        <p>My Astro Blog</p> {/* 例:共通ヘッダー */}
    </header>
    <main>
        <h1>{frontmatter.title}</h1> {/* Markdownのタイトルを表示 */}
        <article>
            <slot /> {/* ← ここにMarkdown本文の内容が挿入される */}
        </article>
    </main>
    <footer>
        <p>© My Blog</p> {/* 例:共通フッター */}
    </footer>
</body>
</html>
  • src/layouts/ ディレクトリに置くのが一般的です。
  • Astro.props.frontmatter で、Markdownファイルに記述されたタイトルなどの情報を受け取ります。
  • <slot /> タグの部分に、Markdownファイルの本文が自動的に挿入されます。
  • 重要: layout を使う場合、<meta charset="utf-8"> はレイアウトファイル内に記述する必要があります。

2.Markdown記事ファイルを作成する (src/pages/my-first-post.md)

次に、src/pages/ ディレクトリに実際のブログ記事となるMarkdownファイルを作成します。ここでは例として my-first-post.md という名前で作成します。

---
# src/pages/my-first-post.md
layout: ../layouts/BlogPostLayout.astro # 使用するレイアウトファイルを指定
title: '私の最初の投稿'
pubDate: 2025-04-13
description: 'これは私の最初のAstroブログ投稿です。'
author: 'Astro Learner'
---

## はじめに

これは **Markdown** で書かれた最初のブログ記事です。
Astroを使うと、簡単にMarkdownでコンテンツを作成できます。

- リスト項目1
- リスト項目2

記事の内容はここに自由に記述できます。
  • ファイル名はそのままURLの一部になります (この例では /my-first-post)。
  • ファイルの先頭にある --- で囲まれた部分は フロントマター と呼ばれ、記事のメタデータをYAML形式で記述します。
    • layout: で、先ほど作成したレイアウトファイルのパスを指定します (src/pages から見た相対パス)。
    • title: は記事のタイトルで、レイアウト側 ({frontmatter.title}) で利用できます。
    • pubDate, description, author など、自由にメタデータを追加できます(レイアウト側で利用しなければ表示には影響しません)。
  • --- の後がMarkdown形式の本文です。

3.開発サーバーで確認する

ターミナルで開発サーバーを起動します。

npm run dev
# または pnpm dev, yarn dev

ブラウザで http://localhost:4321/my-first-post にアクセスしてください。

Markdownで記述した本文が、BlogPostLayout.astro で定義したレイアウト(ヘッダー、フッター、タイトルなど)の中に表示されていれば成功です!

補足:もっと記事が増えたら

ブログ記事が非常に多くなる場合は、Astroの「Content Collections API」という機能を使うと、より効率的に記事を管理できます。型チェックや一覧ページの生成などが簡単になりますが、まずはこの方法でMarkdown記事の作成に慣れるのがおすすめです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?