私の静的なNuxtブログは、ドラフト、スケジュールされた「ド... ノート

私の静的なNuxtブログは、ドラフト、スケジュールされた「ドリップ」、自動再構築を公開します。

この記事は、完全に静的なNuxtサイトでの投稿スケジューリングのソリューションを詳述しています。静的サイトは本質的にサーバーサイドレンダリング機能を欠いているため、再構築メカニズムなしでは直接的な投稿スケジューリングは不可能です。断続的に執筆する著者は、ドラフト、スケジュールされたキュー、自動再構築を含むシステムを開発しました。このセットアップは、SSGとしてプリレンダリングされたNuxt 4、ヘッドレスCMSとしてのStoryblok、そしてアプリケーションを常に稼働させておくためにPM2によって管理されるNitroサーバーを利用しています。GitHub Actionsは、デプロイとサイトの再構築に使用されます。コアアイデアは、SSGでの公開は2つのステップを含むということです。CMSでのコンテンツの更新、そして静的サイトの再構築です。スケジューリングは、これらの2つのステップを将来の時刻のために自動化します。ドラフトは、ステータスと公開日とともにサーバーサイドに保存され、スケジュールされるまでライブサイトには影響しません。Nitroのスケジュールされたタスクは、過去または現在の公開日を持つ記事をチェックするために1時間ごとに実行されます。記事が公開時期になると、それらはStoryblokのリッチテキスト形式に変換され、CMSにプッシュされます。その後、GitHub APIを介して単一のサイト再構築がトリガーされ、新しいコンテンツがライブサイトに表示されることが保証されます。このシステムは、Nitroの組み込みスケジュールタスク機能を利用して、cronボックスのような個別のサービスを回避します。重要な点は、スケジュールされたタスクを実行するためにはNitroサーバーが実行されている必要があるため、小さなVPSにホストされ、PM2によって管理されていることです。著者は、冗長なデプロイを避けるために、スケジュールされた記事のバッチごとに単一の再構築を最適化することを強調しています。最後に、正確なスケジューリングのためにはタイムゾーンへの細心の注意が不可欠です。このソリューションにより、著者は事前にコンテンツを作成し、自動的に公開させることができ、手動での介入から解放されます。