+ );
+}
+
+function FeatureCard(props: {
+ reversed?: boolean;
+ icon: ReactNode;
+ title: ReactNode;
+ children: ReactNode;
+ iconColor: string;
+}) {
+ return (
+
+
+
+
+ {props.icon}
+
+
{props.title}
-
-
-
✏️ 実践的な練習問題
-
- 各チュートリアルには練習問題が含まれており、学んだ内容を実際に試すことができます。
- 練習問題は段階的に難易度が上がるように設計されており、理解度を深めるのに役立ちます。
- 書いたコードはその場ですぐにAIアシスタントがレビューし、フィードバックを提供します。
-
-
+
{props.children}
+
+
+ {/* スクリーンショットのプレースホルダー(後で実際の画像に差し替えてください) */}
+
+ Screenshot
From 08babd9a879ef82179783b85d11e9c444d256a0e Mon Sep 17 00:00:00 2001
From: na-trium-144 <100704180+na-trium-144@users.noreply.github.com>
Date: Fri, 20 Mar 2026 01:13:30 +0900
Subject: [PATCH 2/7] =?UTF-8?q?=E5=9E=8B=E3=82=A8=E3=83=A9=E3=83=BC?=
=?UTF-8?q?=E4=BF=AE=E6=AD=A3=E3=80=81=E3=83=AC=E3=82=B9=E3=83=9D=E3=83=B3?=
=?UTF-8?q?=E3=82=B7=E3=83=96=E3=81=AE=E5=80=A4=E3=82=92=E8=AA=BF=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/page.tsx | 215 +++++++++++++++++++++++++++------------------------
1 file changed, 113 insertions(+), 102 deletions(-)
diff --git a/app/page.tsx b/app/page.tsx
index d0396d78..f1ed452c 100644
--- a/app/page.tsx
+++ b/app/page.tsx
@@ -4,7 +4,7 @@ import { getPagesList } from "@/lib/docs";
import clsx from "clsx";
import { ReactNode } from "react";
import { LanguageIcon } from "./terminal/icons";
-import { RuntimeLang } from "./terminal/runtime";
+import { RuntimeLang } from "@my-code/runtime/languages";
export const metadata: Metadata = {
title: "my.code(); へようこそ",
@@ -15,39 +15,49 @@ export const metadata: Metadata = {
export default async function Home() {
const pagesList = await getPagesList();
return (
-
-
-
-
-
-
- my.code();
-
- へようこそ
-
-
- 環境構築不要、その場で実践。
-
-
- AIアシスタントとの対話履歴があなただけの教材へと進化する、
-
- 新しいプログラミング学習サイトです。
-
-
-
- はじめる
-
+
+
+
+
+
+
+
+ my.code();
+
+ へようこそ
+
+
+ 環境構築不要、その場で実践。
+
+
+ AIアシスタントとの対話履歴があなただけの教材へと進化する、
+
+ 新しいプログラミング学習サイトです。
+
+
+
+ はじめる
+
+
-
- {/*
主な特徴
*/}
-
- {/*
主な特徴*/}
+
+ {/**/}
-
- 面倒な開発環境のセットアップで挫折する必要はありません。
- チュートリアル内のサンプルコードは、ボタン一つでそのまま実行可能。
- もちろん自由に編集して結果を試すこともできます。
- {/*さらに、エラーメッセージの解説やエラー箇所のハイライト表示など、初心者に優しい機能も充実しています。*/}
-
-
- エラーの原因がわからない?コードの意味を知りたい?
- AIアシスタントにいつでも質問できます。
- あなたとの対話履歴がそのまま蓄積され、あなただけの最強の復習ノートへと進化します。
-
-
- {/*todo: 他セクションと同じスタイルの文章で書き直す?*/}
- 各チュートリアルには練習問題が含まれており、学んだ内容を実際に試すことができます。
- 練習問題は段階的に難易度が上がるように設計されており、理解度を深めるのに役立ちます。
- 書いたコードはその場ですぐにAIアシスタントがレビューし、フィードバックを提供します。
-
-
+
+ 面倒な開発環境のセットアップで挫折する必要はありません。
+ チュートリアル内のサンプルコードは、ボタン一つでそのまま実行可能。
+ もちろん自由に編集して結果を試すこともできます。
+ {/*さらに、エラーメッセージの解説やエラー箇所のハイライト表示など、初心者に優しい機能も充実しています。*/}
+
+
+ エラーの原因がわからない?コードの意味を知りたい?
+ AIアシスタントにいつでも質問できます。
+ あなたとの対話履歴がそのまま蓄積され、あなただけの最強の復習ノートへと進化します。
+
+
+ {/*todo: 他セクションと同じスタイルの文章で書き直す?*/}
+ 各チュートリアルには練習問題が含まれており、学んだ内容を実際に試すことができます。
+ 練習問題は段階的に難易度が上がるように設計されており、理解度を深めるのに役立ちます。
+ 書いたコードはその場ですぐにAIアシスタントがレビューし、フィードバックを提供します。
+
+
-
+
-
- さあ、学習を始めましょう
-
-
- 豊富なラインナップから、学びたい言語を選択してください。
-
-
- {pagesList.map((group) => {
- return (
-
-
-
-
-
- {group.name}
-
-
»
+
+ さあ、学習を始めましょう
+
+
+ 豊富なラインナップから、学びたい言語を選択してください。
+
+
+ {pagesList.map((group) => {
+ return (
+
+
+
+
+
+ {group.name}
+
+ »
+
+
{group.description}
-
{group.description}
-
-
- );
- })}
+
+ );
+ })}
+
);
@@ -145,11 +156,11 @@ function FeatureCard(props: {
return (
-
+
{props.icon}
From 29c798e8071e4cbafbc65de7ce124d312a50e6a3 Mon Sep 17 00:00:00 2001
From: na-trium-144 <100704180+na-trium-144@users.noreply.github.com>
Date: Fri, 20 Mar 2026 02:49:14 +0900
Subject: [PATCH 3/7] =?UTF-8?q?footer=E3=82=92=E8=BF=BD=E5=8A=A0,=20?=
=?UTF-8?q?=E4=B8=8B=E9=83=A8=E3=81=AEpadding=E3=82=92=E8=BF=BD=E5=8A=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/(docs)/@chat/chat/[chatId]/chatArea.tsx | 2 +-
.../@docs/[lang]/[pageId]/pageContent.tsx | 2 +-
app/footer.tsx | 48 +++++++++++++++++++
app/layout.tsx | 2 +
app/page.tsx | 2 +-
app/sidebar.tsx | 13 ++++-
6 files changed, 64 insertions(+), 5 deletions(-)
create mode 100644 app/footer.tsx
diff --git a/app/(docs)/@chat/chat/[chatId]/chatArea.tsx b/app/(docs)/@chat/chat/[chatId]/chatArea.tsx
index 7b8c7e7f..c2a9dfee 100644
--- a/app/(docs)/@chat/chat/[chatId]/chatArea.tsx
+++ b/app/(docs)/@chat/chat/[chatId]/chatArea.tsx
@@ -27,7 +27,7 @@ export function ChatAreaContainer(props: {
"has-chat-1:shadow-md has-chat-1:bg-base-200",
// navbar(z-40)よりは下、ChatListForSectionのdropdown(デフォルトでz-999だがz-30に変えている)よりも上
"z-35",
- "p-4",
+ "p-4 pb-16",
"flex flex-col",
"overflow-y-auto"
)}
diff --git a/app/(docs)/@docs/[lang]/[pageId]/pageContent.tsx b/app/(docs)/@docs/[lang]/[pageId]/pageContent.tsx
index f2daec28..fe075476 100644
--- a/app/(docs)/@docs/[lang]/[pageId]/pageContent.tsx
+++ b/app/(docs)/@docs/[lang]/[pageId]/pageContent.tsx
@@ -146,7 +146,7 @@ export function PageContent(props: PageContentProps) {
const [isFormVisible, setIsFormVisible] = useState(false);
return (
-
+
+
+
+
+ );
+}
diff --git a/app/layout.tsx b/app/layout.tsx
index ce0238f3..610e4316 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -13,6 +13,7 @@ import { AutoAnonymousLogin } from "./accountMenu";
import { SidebarMdProvider } from "./sidebar";
import { RuntimeProvider } from "@my-code/runtime/context";
import { getPagesList } from "@/lib/docs";
+import { Footer } from "./footer";
export const metadata: Metadata = {
title: {
@@ -53,6 +54,7 @@ export default async function RootLayout({
+