diff --git a/Html/apps/services/backboard_service.py b/Html/apps/services/backboard_service.py
index 3bfbdfa..f723814 100644
--- a/Html/apps/services/backboard_service.py
+++ b/Html/apps/services/backboard_service.py
@@ -44,6 +44,8 @@ def realtime_response(config: dict, realtime_action: dict) -> None:
bb.pasted_content = realtime_action.get("content")
with open(os.path.join(bb.root_path, bb.active_file_path), "r", encoding="utf-8") as f:
bb.active_file_content = f.read()
+ # TODO: 让大模型检查当前这个文件和用户paste的代码,基于此判断是否需要打断学生写代码并询问其理解
+ # chatmanager.ase_client.send("check_code", {"file_path": file_path, "content": bb.pasted_content})
elif rtype == "fileEdit":
file_path = realtime_action.get("filePath")
diff --git a/Html/apps/services/course_service.py b/Html/apps/services/course_service.py
index 77b7b1e..5de7364 100644
--- a/Html/apps/services/course_service.py
+++ b/Html/apps/services/course_service.py
@@ -391,7 +391,6 @@ def _default_markdowns(lesson_name: str):
"""三份占位 Markdown 文本。可按需调整模板内容。"""
ts = datetime.now().strftime('%Y-%m-%d %H:%M')
lesson_md = f"""# {lesson_name}
-> Auto-generated at {ts}
## 阶段一:示例阶段
### 步骤A
@@ -402,7 +401,6 @@ def _default_markdowns(lesson_name: str):
"""
prompt_md = f"""# {lesson_name}
-> Prompt for LLM (auto-generated at {ts})
## 阶段一:示例阶段
### 步骤A
@@ -413,7 +411,6 @@ def _default_markdowns(lesson_name: str):
"""
score_prompt_md = f"""# {lesson_name}
-> Scoring Prompt for LLM (auto-generated at {ts})
## 评分准则
- 正确性、完整性、可读性、效率(按需调整权重)
diff --git a/Html/apps/static/css/footer.css b/Html/apps/static/css/footer.css
new file mode 100644
index 0000000..0f558a5
--- /dev/null
+++ b/Html/apps/static/css/footer.css
@@ -0,0 +1,85 @@
+/* === 同款页脚 === */
+.hs-footer {
+ background: #ffffff;
+ border-top: 1px solid #e5e7eb;
+ color: #4b5563;
+ font-size: 14px;
+ line-height: 1.8;
+ padding: 48px 20px 24px;
+}
+
+.footer-main {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 48px;
+ max-width: 1200px;
+ margin: 0 auto;
+}
+
+.footer-col {
+ flex: 1 1 240px;
+}
+
+.footer-col h4 {
+ font-size: 16px;
+ font-weight: 600;
+ color: #111827;
+ margin: 0 0 16px;
+}
+
+.footer-col ul {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+.footer-col li {
+ margin: 4px 0;
+}
+
+.footer-col a {
+ color: #4b5563;
+ text-decoration: none;
+}
+
+.footer-col a:hover {
+ color: #2563eb;
+}
+
+.footer-bottom {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ flex-wrap: wrap;
+ gap: 12px;
+ max-width: 1200px;
+ margin: 40px auto 0;
+ border-top: 1px solid #e5e7eb;
+ padding-top: 24px;
+ font-size: 13px;
+ color: #9ca3af;
+}
+
+.footer-bottom-left a,
+.footer-bottom-right a {
+ color: #9ca3af;
+ margin-right: 12px;
+ text-decoration: none;
+}
+
+.footer-bottom-left a:hover,
+.footer-bottom-right a:hover {
+ text-decoration: underline;
+}
+
+/* 移动端 */
+@media (max-width: 768px) {
+ .footer-main {
+ flex-direction: column;
+ gap: 32px;
+ }
+ .footer-bottom {
+ flex-direction: column;
+ align-items: flex-start;
+ }
+}
diff --git a/Html/apps/templates/course.html b/Html/apps/templates/course.html
index 1052d08..96792e8 100644
--- a/Html/apps/templates/course.html
+++ b/Html/apps/templates/course.html
@@ -46,6 +46,7 @@
+ {% include 'foot.html' %}