• #nuxt
  • #content
  • #mdx
  • #requirements
未分類

プロジェクトの目的

  • 個人メモを素早く公開し、後日バックエンド機能を追加できる柔軟な構成を維持する。
  • Markdown / MDX を中心に据え、Vue コンポーネントを埋め込むことで高度な表現を可能にする。
  • ドキュメント駆動のワークフローを採用し、トラブル対応も Markdown で記録する。

想定ユーザーとユースケース

  • 自分自身および関係者がサイト運用・ノウハウ共有のために利用。
  • タグや日付で分類されたナレッジベースとして参照する。
  • 将来的に UI コンポーネント集や API 仕様書を同一プラットフォームで公開する。

技術スタックと要件

  • フロントエンド: Nuxt 3(ドキュメント駆動モード) + @nuxt/content。
  • データストア: 開発環境では Node.js 22.6 + node:sqlite。将来は Cloudflare D1 や外部 DB に接続できるよう抽象化。
  • ビルド/デプロイ: Cloudflare Pages。GitHub Actions で CI/CD を組み、webapi を個別ワークスペースとして扱う。
  • 認証・権限: 現段階では公開サイト、将来は JWT またはセッションベースを検討。

コンテンツルール

  • content/ 直下に Markdown / MDX ファイルを配置。ディレクトリ構造がそのまま URL になる。
  • フロントマターには title, description, tags, publishedAt, updatedAt, status, visibility を推奨。
  • statusdraft / publishedvisibilitypublic / private を想定。リスト表示でフィルタリングできるようにする。
  • コードスニペットは Markdown のフェンスコードを使用し、ハイライト言語を明示する。

共有パッケージと拡張

  • packages/ui で共有コンポーネントを管理し、Nuxt アプリから import できるようビルド設定を整備。
  • packages/config を作成して ESLint / Prettier 設定を共通化することを検討。
  • API サーバーは Nitro, NestJS, Fastify などから選択し、apps/api に配置できるようにする。

運用フロー

  1. メモやドキュメントを memo/ に作成し、必要に応じて content/ にコピー。
  2. フロントマターを更新し、pnpm dev で動作確認。
  3. Git でコミットし、Pull Request でレビュー後にデプロイ。
  4. トラブルが発生した場合は、memo/YYYY-MM-DD/ に原因と対処を記録し、共通メモへ反映する。

今後の課題

  • Content DB を SQLite から Cloudflare D1 へ切り替える際の移行手順の整備。
  • UI コンポーネントの Storybook 化、あるいは同等のカタログ化。
  • 検索機能(全文検索 / タグ検索)の導入検討。