@@ -15,13 +15,24 @@ npx prisma dev
1515```
1616を実行し、` t ` キーを押して表示される DATABASE_URL をコピー
1717
18- ルートディレクトリに .env.local という名前のファイルを作成し、以下の内容を記述
18+ ルートディレクトリに .env または .env .local という名前のファイルを作成し、以下の内容を記述
1919``` dotenv
2020API_KEY=GeminiAPIキー
2121BETTER_AUTH_URL=http://localhost:3000
2222DATABASE_URL="postgres://... (prisma devの出力)"
23+ GOOGLE_CLIENT_ID=
24+ GOOGLE_CLIENT_SECRET=
25+ GITHUB_CLIENT_ID=
26+ GITHUB_CLIENT_SECRET=
2327```
2428
29+ * ` API_KEY ` はGeminiのAPIキーを作成して設定します。未設定の場合チャットが使えません
30+ * ` GITHUB_CLIENT_ID ` ` GITHUB_CLIENT_SECRET ` はGitHub OAuthのクライアントIDとシークレットを設定します。未設定の場合「GitHubでログイン」が使えません。
31+ 作り方については https://www.better-auth.com/docs/authentication/github を参照
32+ * ` GOOGLE_CLIENT_ID ` ` GOOGLE_CLIENT_SECRET ` はGoogle OAuthのクライアントIDとシークレットを設定します。未設定の場合「Googleでログイン」が使えません。
33+ 作り方については https://www.better-auth.com/docs/authentication/google を参照 (GitHubのほうがかんたんかも)
34+
35+
2536別のターミナルで、
2637``` bash
2738npx drizzle-kit migrate
@@ -43,23 +54,31 @@ npm run lint
4354```
4455でコードをチェックします。出てくるwarningやerrorはできるだけ直しましょう。
4556
57+ ### データベースのスキーマ
58+
4659* データベースのスキーマ(./app/schema/hoge.ts)を編集した場合、 ` npx drizzle-kit generate ` でmigrationファイルを作成し、 ` npx drizzle-kit migrate ` でデータベースに反映します。
47- * また、mainにマージする際に本番環境のデータベースにもmigrateをする必要があります
60+ * 本番環境のデータベースのmigrateはmainにpushされた際にGitHub Actionで実行されます
4861* スキーマのファイルを追加した場合は app/lib/drizzle.ts でimportを追加する必要があります(たぶん)
4962* ` npx prisma dev ` で立ち上げたデータベースは ` npx prisma dev ls ` でデータベース名の確認・ ` npx prisma dev rm default ` で削除ができるらしい
5063
5164### 本番環境の場合
5265
5366上記の環境変数以外に、
54- * BETTER_AUTH_SECRET に任意の文字列
55- * GOOGLE_CLIENT_IDとGOOGLE_CLIENT_SECRETにGoogle OAuthのクライアントIDとシークレット https://www.better-auth.com/docs/authentication/google
56- * GITHUB_CLIENT_IDとGITHUB_CLIENT_SECRETにGitHub OAuthのクライアントIDとシークレット https://www.better-auth.com/docs/authentication/github
67+
68+ * ` BETTER_AUTH_SECRET ` に任意の文字列
69+
70+ が必要です。
5771
5872現在は本番環境(my-code.utcode.net)はCoolifyでデプロイしています。
5973Cloudflare Worker のビルドログとステータス表示が見れますが、そちらは使っていません。
6074
6175## ドキュメント
6276
77+ ``` bash
78+ npm run checkDocs
79+ ```
80+ でドキュメントの読み込み時にエラーにならないか確認できます (index.ymlの間違いなど)
81+
6382* ドキュメントはセクション(見出し)ごとにわけ、 public/docs/言語id/ページid/並び替え用連番-セクション名.md に置く。
6483* ページはディレクトリの名前によらず 言語id/index.yml に書かれている順で表示される。
6584* セクションはセクションIDによらずファイル名順で表示される。
@@ -99,6 +118,8 @@ Cloudflare Worker のビルドログとステータス表示が見れますが
99118* REPLのコード例は1セクションに最大1つまで。
100119 * コードエディターとコード実行ブロックはいくつでも置けます。
101120* ページ0以外の各ページの最後はレベル2見出し「この章のまとめ」と、レベル3見出し「練習問題n」を置く
121+ * 編集したドキュメントにローカルの開発環境でアクセスする際は `npx tsx ./scripts/checkDocs.ts --write` でrevisions.ymlを更新してください。チャットを正しく動作させるために必要です。基本的には手動でこのファイルを編集する必要はありません。
122+ * 本番環境ではドキュメントの変更がmainブランチにpushされた際に自動で更新されます。gitのコミットidを参照して更新するため、ローカルで更新したrevisions.ymlはpushしないでください。
102123
103124# ## ベースとなるドキュメントの作り方
104125
@@ -129,18 +150,17 @@ Cloudflare Worker のビルドログとステータス表示が見れますが
129150 - Canvasを使われた場合はやり直す。(Canvasはファイル名付きコードブロックで壊れる)
130151 - 太字がなぜか `**キーワード**` の代わりに `\*\*キーワード\*\*` となっている場合がある。 `\*\*` → `**` の置き換えで対応
131152 - 見出しの前に `-----` (水平線)が入る場合がある。my.code();は水平線の表示に対応しているが、消す方向で統一
132- - `言語名-repl` にはページ内で一意なIDを追加する (例 : ` 言語名-repl:1` )
133153 - REPLの出力部分に書かれたコメントは消えるので修正する
134154 - ダメな例
135155 ` ` ` `
136- ` ` ` js-repl:1
156+ ` ` ` js-repl
137157 > console.log("Hello")
138158 Hello // 文字列を表示する
139159 ` ` `
140160 ````
141161 - 以下のようにすればok
142162 ` ` ` `
143- ` ` ` js-repl:1
163+ ` ` ` js-repl
144164 > console.log("Hello") // 文字列を表示する
145165 Hello
146166
@@ -150,7 +170,6 @@ Cloudflare Worker のビルドログとステータス表示が見れますが
150170 ` ` `
151171 ````
152172 - 練習問題のファイル名は不都合がなければ `practice(章番号)_(問題番号).拡張子` で統一。空でもよいのでファイルコードブロックとexecコードブロックを置く
153- - 1章にはたぶん練習問題要らない。
154173
155174# # markdown仕様
156175
0 commit comments