https://github.com/kako-jun/know-it-break-it
Bilingual site teaching the evaluation criteria of creative fields (art, music, comedy, manga, film) so you can break them on purpose
https://github.com/kako-jun/know-it-break-it
astro cloudflare-pages creativity i18n tailwindcss typescript
Last synced: 13 days ago
JSON representation
Bilingual site teaching the evaluation criteria of creative fields (art, music, comedy, manga, film) so you can break them on purpose
- Host: GitHub
- URL: https://github.com/kako-jun/know-it-break-it
- Owner: kako-jun
- Created: 2026-04-14T04:07:06.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-05-18T02:11:45.000Z (about 1 month ago)
- Last Synced: 2026-06-16T00:34:56.211Z (13 days ago)
- Topics: astro, cloudflare-pages, creativity, i18n, tailwindcss, typescript
- Language: Astro
- Size: 91.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# know-it-break-it
**あたまのネジとはずしかた**
Know It. Break It.
型を知って、武器にしろ。
## Concept
プロが見ているポイントがある。それは言語化できる。型を知らずに破っても、それはただの無知だ。型を知って破って初めて、それが個性になる。
## Domains
5 ドメイン × 各 3 評価軸(合計 15 軸)。実体は `src/lib/criteria.ts` を正本とする。
- 美術 — 構図 / 象徴 / 色彩
- 音楽 — コード進行 / 転調 / 外し
- 漫才 — 転回 / 普遍性 / タイムオーバー
- 漫画 — 編集者の評価軸 / 持ち込みの壁 / コマ割り
- 映画 — ストーリー構造 / ペーシング / キャラクター変容
各評価軸には ja / en の `label` / `description` / `examples` が付き、トップページ (`/[lang]/`) で全ドメインを動的に展開して表示する。
## Tech
- Astro 5 + TypeScript + Tailwind CSS
- pnpm (パッケージマネージャ)
- Cloudflare Pages(デプロイ予定)
- AI 生成コンテンツ + 人間確認 + 静的記事
- 正解のあるクイズ(schema は確保済み、本実装は別 Issue)
- 404 ページは `src/pages/404.astro`(ja / en 併記)
- Footer はファミリーサイト(osaka-kenpo / gilga / break-and-shift)へのリンクを含む
## i18n
- `/ja/` — 日本語(デフォルト)
- `/en/` — English
- 言語切り替えUIは全ページに表示
- 記事も `lang` フィールドで言語別管理
- 記事詳細の言語切り替えは同じ正規化 slug の翻訳記事へ移動する
- 翻訳記事が未作成の場合、404 を避けるため相手言語の記事一覧へ移動する
- SEO 用 `rel="alternate"` は翻訳記事が存在する場合のみ出力する
## Content Guidelines
### 記事ファイル命名規約
- 日本語記事: `{slug}.md`(例: `sample.md`)
- 英語記事: `{slug}-en.md`(例: `sample-en.md`)
- `lang` frontmatter とファイル名サフィックスを一致させること
- URL スラグからは言語サフィックスが除去される(`sample-en` → `/en/articles/sample/`)
### 多言語コンテンツの追加
1. `locales`(`src/lib/i18n.ts`)に言語を追加
2. `domainLabels` / `difficultyLabels` / `uiLabels` に該当言語のラベルを追加
3. 記事ファイルを `{slug}-{lang}.md` 形式で作成
4. frontmatter の `lang` を該当言語に設定
### 記事 frontmatter
`src/content/config.ts` で定義。新規記事は `src/content/templates/article.md` をコピーして書き始める。
| key | 必須 | 説明 |
| -------------- | ---- | ------------------------------------------------------------------------------------ |
| `title` | yes | 記事タイトル |
| `domain` | yes | `art` / `music` / `manzai` / `manga` / `movie` |
| `difficulty` | yes | `beginner` / `intermediate` / `advanced` |
| `tags` | yes | 自由タグの配列 |
| `lang` | yes | `ja` / `en`(デフォルト `ja`) |
| `publishedAt` | yes | 公開日 |
| `updatedAt` | no | 更新日 |
| `description` | yes | 一覧・SEO 用の 1〜2 文 |
| `criteria` | no | この記事が扱う評価軸 key 配列。`src/lib/criteria.ts` の domain ごとの key と紐付ける |
| `quiz.enabled` | no | クイズ機能フラグ(本実装は別 Issue) |
## Dev
```bash
pnpm install
pnpm dev
```
### テスト
```bash
pnpm test:unit
```
### ビルド
```bash
pnpm build
```
## Related Projects
- [大阪けんぽう](https://github.com/kako-jun/osaka-kenpo) — 法律の暗黙知
- [gilga](https://github.com/kako-jun/gilga) — 悪意の暗黙知
- [break-and-shift](https://github.com/kako-jun/break-and-shift) — 確率の暗黙知