コード・ドキュメント・会話で同じ言葉を同じ意味で使うための用語集。コード上の名前(英語)と日本語表記を対応づける。
| 用語 | 定義 |
|---|---|
| Reader(読者) | ブログを閲覧する人。ログイン不要 |
| Owner(運営者) | ブログの著者。microCMS管理画面で記事を管理する |
| Author(著者) | 記事を書いた人としての表示上の呼称。サイドバーの「プロフィール」カードに表示される。本ブログでは Owner と同一人物 |
| 用語 | 定義 |
|---|---|
| Article(記事) | ブログ1件。UI・ドメイン上の呼称。microCMS上のコンテンツ種別はblogs、現行コードの型名はBlog |
| Blog(ブログ記事) | microCMS APIのエンドポイント名および外部レスポンス型。ドメイン上の Article と同義だが、external/層の中でのみ使う |
| ArticleId(記事ID) | 記事を一意に識別するID。microCMSのコンテンツIDで、URL(/blogs/[id])に使う |
| Title(タイトル) | 記事の題名 |
| Excerpt(要約) | 記事の1文の説明。本文の抜粋ではなく、CMSで別途入力する。画面(カード・詳細ページ)には表示せず、meta description・OGPの説明文にのみ使う |
| Body(本文) | 記事の中身。microCMSのリッチエディタが出力するHTML |
| PublishedAt(公開日) | 記事が公開された日時。並び順・NEW判定・アーカイブ集計の基準 |
| NewBadge(新着バッジ) | 公開から一定期間内の記事に付く「新着」表示 |
| Eyecatch(アイキャッチ) | microCMSに登録する記事画像。未設定でも記事は成立する |
| Draft(下書き) | microCMS上で未公開の状態。本アプリには現れない |
| 用語 | 定義 |
|---|---|
| Category(カテゴリ) | 記事の分類(React / TypeScript / Next.js / CSS / Testing / Git / 日々のこと)。1記事に複数付けられる |
| Slug(スラッグ) | カテゴリをURLやキーとして扱うための英数字表記(例: typescript) |
| CategoryTag(カテゴリタグ) | 記事カード・詳細ページに表示する、カテゴリ名の小さなラベル |
| CategoryFilter(カテゴリ絞り込み) | トップページをカテゴリで絞り込む操作。UIとしてはサイドバーのTopics一覧のみで行い、一覧上部のタブは持たない(旧案で存在したタブは廃止) |
| Topics(トピックス) | サイドバーのカテゴリ一覧。カテゴリ名と記事件数を表示する |
| Archive(アーカイブ) | 公開年月ごとの記事件数の一覧 |
| ArchiveMonth(アーカイブ月) | YYYY-MM形式の年月。アーカイブの1項目 |
| 用語 | 定義 |
|---|---|
| ArticleCard(記事カード) | 一覧に並ぶ1記事分の表示単位。サムネイル・メタ情報・タイトル・タグで構成する |
| Thumbnail(サムネイル) | 記事カード左側の装飾画像。画像ファイルではなく、文字と配色で描画する |
| CardLabel(カード見出し文字) | サムネイルの大きな装飾文字。先頭カテゴリ名をそのまま使う(例: TypeScript) |
| CardTheme(カード配色) | サムネイルの配色バリエーション。blue / dark / green / purple / black / yellow |
| MetaLine(メタ行) | 公開日・新着バッジを横に並べた行 |
| 用語 | 定義 |
|---|---|
| Home(トップページ) | /。最新記事・サイドバーを持つ入口ページ。記事一覧を兼ねる(旧/blogsは廃止)。絞り込み時はヘッダー直下にBreadcrumbが表示される |
| ArticleList(記事一覧) | /のトップページが兼ねる、全記事のカード一覧。フィルタ・検索・ページネーションに対応する |
| ArticleDetail(記事詳細) | /blogs/[id]。1記事の全文ページ |
| About(このブログについて) | /about。ブログのコンセプトを説明するページ。見出しは固定、本文はmicroCMSのabout(オブジェクト形式)で管理する |
| CatchCopy(キャッチコピー) | ヘッダー内、ロゴ・ナビの行の直下に表示する1行のキャッチコピー(つくって、試して、わかったこと。Web開発の学びをここに。)。ページによらず全ページ共通で常時表示する。旧称Hero(大見出し「技術と、日々の余白。」を含む領域)を置き換えた |
| Sidebar(サイドバー) | 検索・著者カード・Topics・Archiveなどを並べる右側の領域 |
| SearchBox(検索ボックス) | サイドバーの入力欄。タイトルの部分一致で絞り込む |
| AuthorCard(著者カード) | アバター・名前・肩書き・自己紹介・SNSアイコン・プロフィールページへのリンクを持つカード |
| Breadcrumb(パンくず) | ヘッダー直下に表示する「HOME > 現在地」表示。記事詳細・プロフィール・トップページのカテゴリ/月絞り込み時に表示する共通部品 |
| ScrollTop(ページ先頭へ戻る) | 右下のフローティングボタン |
| Pagination(ページネーション) | 一覧下部の「前へ」「ページ番号」「次へ」。件数表示・表示件数セレクトとあわせて全件をページ単位で閲覧できる(旧「もっと見る(LoadMore)」を置き換えた) |
| PageSize(表示件数) | 1ページに表示する記事数。10 / 20 / 30件から選択できる(既定10件) |
| Profile(プロフィール) | 著者の自己紹介ページ(/profile)。本アプリ内の内部ページで、内容はmicroCMSのprofileで管理する |
| SnsLink(SNSリンク) | 著者のSNS(GitHub / X など)への外部リンク。著者カードにアイコンで表示する |
| ShareButtons(シェアボタン) | 記事詳細で、表示中の記事をX・Facebook・はてなブックマークへ共有するボタン群。著者のSNSへ飛ぶ「SnsLink」とは別物なので混同しない |
| NotFound(404ページ) | 存在しないURL・記事IDで表示するページ。app/not-found.tsx。HTTPステータス404を返す |
| Sanitize(サニタイズ) | リッチエディタHTMLから許可していないタグ・属性(<script>、onclick等)を取り除く処理。RichTextで描画する直前にサーバー側で行う |
| WebAppManifest(マニフェスト) | PWAとしてインストールするための設定(名前・アイコン・テーマ色など)。app/manifest.tsで定義する |
| ShareUrl(シェアURL) | 各サービスの共有画面を開くURL(例: https://x.com/intent/post?text=…)。記事の絶対URLとタイトルから組み立てる |
| 用語 | 定義 |
|---|---|
| microCMS | ヘッドレスCMS。記事データの唯一の保管場所であり、本アプリの外部システム |
| Content Model(コンテンツモデル) | microCMS上のフィールド定義。DBスキーマに相当する(06_content_model.md) |
| external層 | 外部システム(microCMS)との接続点。src/external/に置く |
| features層 | ドメイン(機能)単位の司令塔。src/features/に置く |
| Server Component | サーバー側で描画・データ取得するReactコンポーネント。本アプリの既定 |
| generateMetadata | ページごとのSEO用メタデータを生成するNext.jsの関数 |
| 使う | 使わない | 理由 |
|---|---|---|
| Article | Post / Entry | UI・ドメインでは Article に統一する |
| Blog | (external層の外では使わない) | microCMSのAPI名としてexternal/内に閉じ込める |
| Category | Tag | 「Tag」は見た目(CategoryTag)に限定して使う |
| PublishedAt | date / createdAt | 「公開日」と「作成日」は別物。表示・ソートは公開日を使う |