110 lines
4.3 KiB
HTML
110 lines
4.3 KiB
HTML
<!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/teacherboard.css">
|
||
<link rel="stylesheet" href="/static/css/dashboard.css">
|
||
<link rel="stylesheet" href="/static/css/lesson.css">
|
||
<link rel="stylesheet" href="/static/css/teacher_course_setting.css">
|
||
<link rel="stylesheet" href="/static/css/lesson_setting.css">
|
||
<link rel="stylesheet" href="/static/css/modelinput.css">
|
||
|
||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
||
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
|
||
<script src="/static/js/modelinput.js"></script>
|
||
<!-- Markdown Editor (EasyMDE) -->
|
||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/easymde/dist/easymde.min.css" />
|
||
<script src="https://cdn.jsdelivr.net/npm/easymde/dist/easymde.min.js"></script>
|
||
|
||
<!-- Markdown 渲染与安全 -->
|
||
<script src="https://cdn.jsdelivr.net/npm/markdown-it/dist/markdown-it.min.js"></script>
|
||
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.1.7/dist/purify.min.js"></script>
|
||
<link rel="stylesheet" href="/static/css/lesson_markdown.css">
|
||
|
||
</head>
|
||
<body >
|
||
{% include 'navbar.html' %} <!-- 引入navbar.html -->
|
||
|
||
|
||
<div id="courseDetails" class="course-details">
|
||
<div class="details-header">
|
||
<span id="course-title"></span>
|
||
<button class="close-btn" onclick="closeCourseDetails()">×</button>
|
||
</div>
|
||
<div class="details-content" id="details-content">
|
||
<p>...</p> <!-- 加载覆盖 -->
|
||
</div>
|
||
<h3>课程章节列表:
|
||
<button id="toggle-reorder" class="reorder-btn" title="设置章节顺序" aria-pressed="false">
|
||
<i class="fa-solid fa-arrow-up-short-wide"></i>
|
||
</button>
|
||
</h3>
|
||
<ul id="chapter-list">
|
||
<div id="loading-message"><p>加载中...</p></div>
|
||
</ul>
|
||
<button class="add-chapter-btn" onclick="showInputForNewChapter()">新增章节</button>
|
||
</div>
|
||
|
||
<!-- 课时编辑页主体:左侧大纲 + 右侧编辑 -->
|
||
<div class="lesson-editor">
|
||
<aside class="outline">
|
||
<button id="toggle-outline-reorder" class="reorder-btn" title="排序模式" aria-pressed="false">
|
||
<i class="fa-solid fa-arrow-up-short-wide"></i>
|
||
</button>
|
||
<!-- 新增:删除模式按钮 -->
|
||
<button id="toggle-outline-delete" class="delete-btn" title="删除模式" aria-pressed="false">
|
||
<i class="fa-solid fa-trash-can"></i>
|
||
</button>
|
||
|
||
<ul id="outline-tree"></ul>
|
||
</aside>
|
||
|
||
<main class="editor-pane">
|
||
<div class="editor-tabs">
|
||
<button class="tab-btn active" data-target="tab-lesson" id="tab-btn-lesson">Lesson</button>
|
||
<button class="tab-btn" data-target="tab-prompt" id="tab-btn-prompt">Prompt</button>
|
||
<button class="tab-btn" data-target="tab-score" id="tab-btn-score">Score Prompt</button>
|
||
|
||
<div class="actions">
|
||
<button id="save-all-btn">保存全部</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="tab-content">
|
||
<div id="tab-lesson" class="tab active">
|
||
<textarea id="editor-lesson" data-type="lesson"></textarea>
|
||
</div>
|
||
<div id="tab-prompt" class="tab">
|
||
<textarea id="editor-prompt" data-type="prompt"></textarea>
|
||
</div>
|
||
<div id="tab-score" class="tab">
|
||
<textarea id="editor-score" data-type="score"></textarea>
|
||
</div>
|
||
<aside class="md-preview-pane" id="md-preview">
|
||
<div style="color:#64748b">预览区域会实时渲染当前激活的编辑器内容…</div>
|
||
</aside>
|
||
</div>
|
||
</main>
|
||
</div>
|
||
|
||
<script src="/static/js/course_current.js"></script>
|
||
<script src="/static/js/teacherboard.js"></script>
|
||
<script src="/static/js/teacher_course_setting.js"></script>
|
||
<script src="/static/js/lesson_markdown.js"></script>
|
||
<script src="/static/js/lesson.js"></script>
|
||
|
||
<script>
|
||
window.lesson = {{ lesson|tojson|safe }};
|
||
window.chapter = {{ chapter|tojson|safe }};
|
||
window.material = {{ material|tojson|safe }};
|
||
console.log(window.lesson);
|
||
console.log(window.chapter);
|
||
console.log(window.material);
|
||
openCourseDetails(window.material.material_id);
|
||
</script>
|
||
</body>
|
||
</html>
|