OK much
This commit is contained in:
@@ -1,60 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>课程详情</title>
|
||||
<link rel="stylesheet" href="/static/css/book.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
{% include 'navbar.html' %} <!-- 引入navbar.html -->
|
||||
|
||||
<!-- 课程详情主体部分 -->
|
||||
<div class="course-details">
|
||||
<!-- 上半部分:课程封面和详情 -->
|
||||
<div class="course-overview">
|
||||
<div class="course-cover">
|
||||
<img src="/static/image/algorithm/book_cover.png" alt="课程封面" class="cover-image">
|
||||
</div>
|
||||
<div class="course-info">
|
||||
<h2 class="course-title">计算机科学导论</h2>
|
||||
<p class="course-author">作者:张教授</p>
|
||||
<p class="course-description">
|
||||
本课程将介绍计算机科学的基本概念,包括计算机的硬件结构、操作系统、编程语言等基础知识,适合初学者。
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<hr/>
|
||||
<br/>
|
||||
<!-- 下半部分:课程教案列表 -->
|
||||
<div class="lesson-plans">
|
||||
<!-- <h3>课程教案</h3> -->
|
||||
<div class="lesson-cards">
|
||||
<!-- 每个教案的卡片 -->
|
||||
<div class="lesson-card">
|
||||
<img src="/static/image/algorithm/book_cover.png" alt="教案封面" class="lesson-image">
|
||||
<div class="lesson-info">
|
||||
<h4 class="lesson-title">第一章:计算机概述</h4>
|
||||
<p class="lesson-description">介绍计算机的基础概念和发展历程。</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 继续添加其他教案 -->
|
||||
<div class="lesson-card">
|
||||
<img src="/static/image/algorithm/book_cover.png" alt="教案封面" class="lesson-image">
|
||||
<div class="lesson-info">
|
||||
<h4 class="lesson-title">第二章:操作系统基础</h4>
|
||||
<p class="lesson-description">学习操作系统的基本原理与结构。</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 可以继续添加更多教案卡片 -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script>
|
||||
var book_name = "{{book_name}}";
|
||||
|
||||
</script>
|
||||
</html>
|
||||
54
Html/templates/course.html
Normal file
54
Html/templates/course.html
Normal file
@@ -0,0 +1,54 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>课程详情</title>
|
||||
<link rel="stylesheet" href="/static/css/course.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
{% include 'navbar.html' %} <!-- 引入navbar.html -->
|
||||
|
||||
<!-- 课程详情主体部分 -->
|
||||
<div class="course-details">
|
||||
<!-- 上半部分:课程封面和详情 -->
|
||||
<div class="course-overview">
|
||||
<div class="course-cover">
|
||||
<img src="{{course_data.course_img_path}}" alt="课程封面" class="cover-image">
|
||||
</div>
|
||||
<div class="course-info">
|
||||
<h2 class="course-title">{{course_data.course_name}}</h2>
|
||||
<p class="course-author">作者:{{course_data.course_auther}}</p>
|
||||
<p class="course-description">
|
||||
{{course_data.description}}
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr/>
|
||||
<br/>
|
||||
<!-- 下半部分:课程教案列表 -->
|
||||
<div class="lesson-plans">
|
||||
<!-- <h3>课程教案</h3> -->
|
||||
<div class="lesson-cards">
|
||||
<!-- 每个教案的卡片 -->
|
||||
{% for lesson in course_data.lessons %}
|
||||
<div class="lesson-card">
|
||||
<img src="{{lesson.lesson_img_path}}" alt="教案封面" class="lesson-image">
|
||||
<div class="lesson-info">
|
||||
<h4 class="lesson-title">{{lesson.lesson_name}}</h4>
|
||||
<p class="lesson-description">{{lesson.markdown}}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script>
|
||||
var course_id = "{{course_id}}";
|
||||
|
||||
</script>
|
||||
</html>
|
||||
@@ -13,7 +13,7 @@
|
||||
<!-- 主页主体部分 -->
|
||||
<div class="dashboard">
|
||||
<h2 class="dashboard-title">—— 我的选课 ——</h2>
|
||||
<div class="course-cards" >
|
||||
<div class="course-cards" id="course-cards">
|
||||
<!-- 每个课程的卡片 -->
|
||||
<div class="course-card"onclick="openCourseProgress('algorithm')">
|
||||
<img src="/static/image/algorithm/book_cover.png" alt="课程封面" class="course-image">
|
||||
@@ -51,5 +51,14 @@
|
||||
</div>
|
||||
</div>
|
||||
<script src="/static/js/dashboard.js"></script>
|
||||
<script>
|
||||
window.appData = {
|
||||
user_data: JSON.parse(`{{user_data}}`.replace(/"/g, "\"")),
|
||||
user_course_data: JSON.parse(`{{user_course_data}}`.replace(/"/g, "\""))
|
||||
}
|
||||
console.log(window.appData.user_data)
|
||||
console.log(window.appData.user_course_data)
|
||||
show_user_data(window.appData.user_data, window.appData.user_course_data)
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<script>
|
||||
document.cookie = "vscode-tkn=44edc269-6f88-46ab-9790-dc253f66ac36; path=/; SameSite=None; Secure";
|
||||
</script>
|
||||
<script src="https://cdn.bootcdn.net/ajax/libs/marked/13.0.2/marked.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/1.1.1/marked.min.js"></script>
|
||||
<script src="https://cdn.socket.io/4.0.0/socket.io.min.js"></script>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||
<script src="https://unpkg.com/split.js/dist/split.min.js"></script>
|
||||
@@ -33,8 +33,7 @@
|
||||
|
||||
<!-- 中间嵌入的 Vscode-web 窗口,带有 tkn 参数 -->
|
||||
<div class="vscode-web"id="vscodeWeb">
|
||||
<!-- <iframe src="http://127.0.0.1:9888/?workspace=/mnt/c/CAKE/vscode/example_folder&folder=/mnt/c/CAKE/vscode/example_folder" style="width: 100%;height: 100%;"></iframe> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="dragbar2"></div>
|
||||
@@ -65,7 +64,8 @@
|
||||
<script type="text/javascript">
|
||||
window.appData = {
|
||||
username:"{{user_id}}",
|
||||
folder:"{{path}}",
|
||||
course_id:"{{course_id}}",
|
||||
chapter_id:"{{chapter_id}}"
|
||||
}
|
||||
</script>
|
||||
<script src="/static/js/chatbox.js"></script>
|
||||
@@ -126,7 +126,7 @@
|
||||
// 在成功获取 session 后创建并插入 iframe
|
||||
const iframe = document.createElement('iframe');
|
||||
const sessionInfo = data
|
||||
iframe.src = 'http://127.0.0.1:9090/?workspace=/mnt/c/CAKE/vscode/{{user_id}}/{{path}}&folder=/mnt/c/CAKE/vscode/{{user_id}}/{{path}}';
|
||||
iframe.src = '{{vscode_web_url}}/?workspace={{workspace_path}}&folder={{workspace_path}}';
|
||||
iframe.style.width = '100%';
|
||||
iframe.style.height = '100%';
|
||||
|
||||
@@ -146,8 +146,8 @@
|
||||
|
||||
|
||||
// 动态加载 Markdown 文件
|
||||
function loadMarkdown(filename) {
|
||||
fetch(`/${filename}-markdown`)
|
||||
function loadMarkdown(course_id, filename) {
|
||||
fetch(`/${course_id}-${filename}-markdown`)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data.html_url) {
|
||||
@@ -166,7 +166,7 @@
|
||||
});
|
||||
}
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
loadMarkdown('{{path}}');
|
||||
loadMarkdown('{{course_id}}','{{chapter_id}}');
|
||||
});
|
||||
|
||||
|
||||
|
||||
@@ -6,37 +6,39 @@
|
||||
<title>课程选择主页</title>
|
||||
<link rel="stylesheet" href="/static/css/index.css">
|
||||
</head>
|
||||
<body>
|
||||
<body onload="init_index()" >
|
||||
{% include 'navbar.html' %} <!-- 引入navbar.html -->
|
||||
<main>
|
||||
<div class="course-selection">
|
||||
<h2>课程列表</h2>
|
||||
<div class="course-list">
|
||||
<div class="course-card">
|
||||
<img src="/static/image/algorithm/book_cover.png" alt="课程1">
|
||||
<h3>课程名称 1</h3>
|
||||
<p>课程描述信息,简要介绍课程内容和学习目标。</p>
|
||||
<button class="select-button">选择课程</button>
|
||||
{% for course_id, course in courses_data.items() %}
|
||||
<div class="course-card" onclick="show_course_details('{{ course_id }}')">
|
||||
<img src="{{ course.course_img_path }}" alt="{{ course.course_name }}">
|
||||
<h3>{{ course.course_name }}</h3>
|
||||
<p>{{ course.course_description }}</p>
|
||||
{% if course_id in selected_courses %}
|
||||
<button class="selected-button">已选择</button>
|
||||
{% else %}
|
||||
<button class="select-button" data-course-id="{{course_id}}">选择课程</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="course-card">
|
||||
<img src="/static/image/algorithm/book_cover.png" alt="课程2">
|
||||
<h3>课程名称 2</h3>
|
||||
<p>课程描述信息,简要介绍课程内容和学习目标。</p>
|
||||
<button class="select-button">选择课程</button>
|
||||
</div>
|
||||
<div class="course-card">
|
||||
<img src="/static/image/algorithm/book_cover.png" alt="课程3">
|
||||
<h3>课程名称 3</h3>
|
||||
<p>课程描述信息,简要介绍课程内容和学习目标。</p>
|
||||
<button class="select-button">选择课程</button>
|
||||
</div>
|
||||
<!-- 添加更多课程卡片 -->
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<p>© 2024 学生管理系统 | 所有权利保留</p>
|
||||
<p>版权所有 © 2024 “华实伴学君”——教学练评一体的虚拟编码助教</p>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
<script>
|
||||
window.appData = {
|
||||
user_selected_courses: JSON.parse(`{{selected_courses}}`.replace(/"/g, "\""))
|
||||
}
|
||||
|
||||
</script>
|
||||
<script src="/static/js/index.js"></script>
|
||||
</html>
|
||||
|
||||
@@ -21,6 +21,9 @@
|
||||
<input type="password" id="password" name="password" placeholder="请输入密码" required>
|
||||
</div>
|
||||
<button type="submit" class="login-btn">登录</button>
|
||||
<div class="register-link">
|
||||
<a href="/register">注册新账号</a>
|
||||
</div>
|
||||
<div class="forgot-password">
|
||||
<a href="#">忘记密码?</a>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,48 @@
|
||||
<!-- 页眉导航栏 -->
|
||||
<header class="navbar">
|
||||
<style>
|
||||
/* 页眉导航栏 */
|
||||
.navbar {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
background-color: #2575fc;
|
||||
padding: 10px 30px;
|
||||
color: white;
|
||||
border-radius: 10px;
|
||||
margin: 20px;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.navbar .logo h1 {
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.navbar-links a {
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
margin: 0 20px;
|
||||
font-size: 16px;
|
||||
transition: color 0.3s;
|
||||
}
|
||||
|
||||
.navbar-links a:hover {
|
||||
color: #f1c40f;
|
||||
}
|
||||
|
||||
.navbar .avatar img {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid white;
|
||||
}
|
||||
.avatar{
|
||||
margin-left: 200px;
|
||||
}
|
||||
</style>
|
||||
<div class="logo">
|
||||
<h1>学生管理系统</h1>
|
||||
<h1>华实君:教学练评一体的虚拟助教</h1>
|
||||
</div>
|
||||
<nav class="navbar-links">
|
||||
<a href="/">首页</a>
|
||||
|
||||
36
Html/templates/register.html
Normal file
36
Html/templates/register.html
Normal file
@@ -0,0 +1,36 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>用户注册</title>
|
||||
<link rel="stylesheet" href="/static/css/login.css">
|
||||
<script src="/static/js/register.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="login-container">
|
||||
<div class="login-card">
|
||||
<h2 class="login-title">欢迎注册!</h2>
|
||||
<form class="login-form" id="register-form">
|
||||
<div class="input-group">
|
||||
<label for="username">用户名</label>
|
||||
<input type="text" id="username" name="username" placeholder="请输入用户名" required>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label for="email">邮箱</label>
|
||||
<input type="email" id="email" name="email" placeholder="请输入邮箱" required>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label for="password">密码</label>
|
||||
<input type="password" id="password" name="password" placeholder="请输入密码" required>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label for="confirm-password">确认密码</label>
|
||||
<input type="password" id="confirm-password" name="confirm-password" placeholder="请确认密码" required>
|
||||
</div>
|
||||
<button type="submit" class="login-btn">注册</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user