Astroでブログを構築する
更新: 2025年11月6日
Astroでブログを構築するための利用ツールや詳細な手順、ぶつかった問題などを解決した際の記述
SEOとか諸々考えるならnoteとかに記事を書いてるほうがいいんだろうけど、独自ドメインも持ってるし、今は便利なサービスもAIもどんどん出てくるのでサクッと使ってみたい技術を使ってブログを構築するのがいいだろう。と思い立ちAstroでSSGするかぁ。となった。
コード自体はGitHubにPublicな状態で設置したのでなにか気になるものがあればご参考に。 こちらはBlog側で、記事作成等のAdmin機能は別リポジトリとなっております。 https://github.com/mogeta/muzigen.net_v2
技術選定
- Astro 5.14.6
- 前はAngularとScully を利用していたが色々と厳しさが出てきた
- Firebase Hosting
- デプロイ先
- Firebase Firestore
- 記事保存
- Firebase Storage
- 記事作成画面からの画像保存等に使用
- Tailwind
- おなじみのCSS周り
- GitHub Action
- デプロイ担当
やってること
デプロイ時にFirebaseから記事データを取得。 コードでいうとこの辺。 https://github.com/mogeta/muzigen.net_v2/blob/main/src/pages/blog/%5Bid%5D.astro
最初はmarkedを利用していたが、流石にこの辺もモダンなものに変換するか。ということで、次にremarkに移行。codeハイライト等を行っていたが、色々調査した結果、Astro本体が持つパース機能をそのまま流用できるということをAIから指摘され、そちらに移行した(昔のバージョンでは不可だったような気がした)
それがこの辺
//プロセッサーの取得
const processor = await createMarkdownProcessor({
syntaxHighlight: {
type: 'shiki',
excludeLangs: ['mermaid'],
},
rehypePlugins: [rehypeMermaid],
});
//レンダリング処理
await processor.render(data.content)).code
AIに書かせた構造図等
まとめ
Blog用途であればこんなもんでしょ。ってのができたので引き続きリファクタリングとレイアウト改善に着手予定。 WordPressとか使うよりかは楽。