静的サイトジェネレーターPelicanでブログを作ろう

静的サイトジェネレーター Pelican を使ってブログを作る方法を紹介します。

2024年04月12日

静的サイトジェネレーターPelicanでブログを作ろう

代表の佐野です。好きなプログラミング言語はPythonです!

技術ブログをはじめるにあたって、最初にどうやってブログを作ろうかなと考えていました。最近だとNoteStudioのようなSaaS、WordPressのようなサーバーを用意して利用するサーバーアプリケーションがあります。このサイトはどうやって作っているかというと、静的サイトジェネレーターというものを使っています。

静的サイトジェネレーターとは

静的サイトジェネレーターは、サーバーとして動作するWEBアプリとは異なり、WEBサイトを構成するファイルのみを生成し、WEBサーバーへ公開できるジェネレーターアプリです。

メリットは動的に動作するWEBアプリケーションに比べ、サーバーの負荷が低く(これによりコストも削減できます)、セキュリティが高く、デプロイが簡単です。デメリットは、CMS(コンテンツマネジメントシステム)のように直感的に操作できるわけではなく、技術的な知識も多く求められます。

Pelicanを使ってブログを作る

このサイトはPelicanというPythonで書かれた静的サイトジェネレーターを利用して作られています。reStructuredTextやMarkdownで記事を書いて、テーマを適用してWEBサイトを生成できます。

また弊社WEBサイトはAmazon Web Services(AWS)S3というストレージサービスを使って公開しています。AWS S3は静的WEBホスティングができるので、こういった生成したHTMLファイルのみを使ったWEBサイトを公開するときには便利です。

Pythonのインストール(本当は仮想環境などの話が少しあったり)やAWS S3の設定などは割愛しますが、Pelicanを使ってブログを作る手順を簡単に紹介します。

前準備

  • Pythonのインストール。3.12がこの記事での最新です。
  • pipx:Pythonで作られるコマンドラインツールを管理するツールがあると便利です。インストールされていることを前提に進めます。

メインの作業

pipx install "pelican[markdown]"
mkdir myblog
cd myblog
pelican-quickstart
# (必要な質問に答えていきます。英語での質問になります。

Pelicanの環境が作られたら、大体が以下のようなディレクトリ構成になると思われます。

myblog/
├── content
│   └── (Markdownファイル)
├── output
├── pelicanconf.py
├── publishconf.py
└── Makefile

contentフォルダーの中にstart-blog.mdというファイルをつくって、以下を書いてみます。

---
Title: はじめてのブログ
Date: 2024-04-12
Category: ブログ
Tags: ブログ, Pelican
Slug: start-blog
Summary: はじめてのブログを書いてみました。
---

はじめてのブログを書いてみました。これからもよろしくお願いします。

ブログの記事を書いたら、以下のコマンドでWEBサイトを生成してプレビューを表示してみましょう(開発サーバーを起動します)。

pelican -lr

http://127.0.0.1/8000 へアクセスすると、ブログの記事が表示されます。

終わりに

設計事務所のテックブログで(想定読者のことなど考えずに)いきなりPythonの話やWEBサイトの話を書いてしまいましたが、会社WEBサイトの改修をしていたので、どうせならとまとめてみました。

設定やサイトのデザインを含めて、静的サイトジェネレーターのサイト構築には知識が求められる方法ですが、PythonでWEBサイトを作りたいときの選択肢の1つとして、Pelicanを使ってみてはいかがでしょうか。