Astroでサイトを構築する際、Markdownファイルを使ってページを生成したいということがあったので、調べたことをメモしておきます。
サンプルコード
Markdownファイルを src/pages/ ディレクトリ内に設置することで、ページが生成されます。
例として、src/pages/posts/ 内にpost1.mdというファイルを生成して、以下の内容にします。
--- layout: ../../layouts/PostLayout.astro title: '記事タイトル' description: '記事説明文' --- # 見出し1サンプル 本文サンプル **強調**テスト ## 見出し2サンプル 1. リストサンプル 2. リストサンプル * リストサンプル * リストサンプル
2行目で設定しているレイアウトファイルを作成します。
src/layouts/ 内にPostLayout.astroを作成して、以下の内容にします。
--- const {frontmatter} = Astro.props; --- <!doctype html> <html lang="ja"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width" /> <title>{frontmatter.title}</title> <meta name="description" content={frontmatter.description}> </head> <body> <slot /> </body> </html>
post1.mdで設定したtitleとdescriptionを2行目で受け取って、10~11行目で設定しています。
これでMarkdownファイルを使ったページ生成ができました。
マークダウンでHTMLを生成するデモページ
コメントが承認されるまで時間がかかります。