C#製の静的サイトジェネレータ「Statiq」を試す。

Uncategorized
709 words

C#で動作する静的サイトジェネレーターがあるとのことだったので試してみました。

環境

  • Windows 11 Home 21H2 22000.493
  • .NET Core 5.0.405
  • Statiq.Web 1.0.0-beta.44

準備

.NET Core 5.0

.NET Core 5.0 Framework を使うので未インストールの場合は、事前にインストールしておきます。

こちら から「.NET Core SDK 5.0」をダウンロードしてインストールします。

.NET Core SDK 5.0 ダウンロード

インストールしてあるか調べる方法

次のコマンドを使うと .NET Core のインストール状態が分かります。

1
dotnet --list-sdks

私の場合は 5.0 と 6.0 がインストールしてありました。

.NET Core インストール状態

Statiq

コンソールアプリの作成

Statiq を使うため、.NETCoreコンソールアプリを作成します。

適当なフォルダでコマンドプロンプトを開き、

コマンドプロンプト起動

次のコマンドを使ってコンソールアプリを作成します。

1
dotnet new console -o MyGenerator --framework net5.0

コンソールアプリ作成

Statiq のインストール

今作ったコンソールアプリに Statiq をインストールします。

まず、コマンドプロンプトのディレクトリを今作ったコンソールアプリに移動して、

1
cd .\MyGenerator\

ディレクトリー移動

移動できたら次のコマンドをコピペして 最新のStatiqパッケージ をインストールします。

最新バージョンは こちら から確認できます。

1
dotnet add package Statiq.Web --version 1.0.0-beta.44

Statiq の設定

Statiqパッケージがインストールできたら、Statiqを使うように処理を修正します。

「Program.cs」を開いて次のようにコードを修正します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using Statiq.App;
using Statiq.Web;
using System.Threading.Tasks;

namespace MyGenerator
{
class Program
{
static async Task<int> Main(string[] args)
{
return await Bootstrapper
.Factory
.CreateWeb(args)
.RunAsync();
}
}
}

Statiqの設定

記事の追加

ブログの記事が無いと動作確認ができないので、ひとまず簡単な記事を追加します。

プロジェクトフォルダ内にフォルダ名「input」というフォルダを作り、

inputフォルダ作成

inputフォルダ内にフォルダ名「posts」というフォルダを作ります。

postsフォルダ作成

さらにpostsフォルダ内に記事の素となる、マークダウンファイル「example.md」というテキストファイルを作ります。

マークダウンファイル作成

今作った example.md をテキストエディターで開いて、次の内容をコピペします。

1
2
3
4
5
6
7
8
Title: This Is An Example Post
Lead: Yay for examples!
Published: 12/13/2014
Tags:
- Examples
- Code
---
This is my example blog post content.

マークダウン記事作成

テーマの適用

このままだとまだブログの体裁をなしていないので、こちら から最小構成のブログテーマをダウンロードして適用させます。

まずプロジェクトフォルダに「theme」フォルダを作り、

themeフォルダ作成

CleanBlogテーマ をダウンロードして、今作ったthemeフォルダに展開します。

テーマをダウンロード

展開したらこんな感じになりました。

テーマの展開

動作確認

最後に動作確認をします。

次のコマンドを実行すると「http://localhost:5080/」で動作確認ができます。

1
dotnet run -- preview

dotnet run

My Blog

今後

とりあえず静的サイトジェネレーターが動くところまで確認できました。

今後は、デプロイや機能追加について調べていこうと思います。

参考

https://www.statiq.dev/framework/