100 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!DOCTYPE html>
 | 
						|
<html lang="zh-CN">
 | 
						|
<head>
 | 
						|
    <meta charset="UTF-8">
 | 
						|
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
						|
    <title>{% block title %}儿童语言学习系统{% endblock %}</title>
 | 
						|
    
 | 
						|
    <!-- Bootstrap CSS -->
 | 
						|
    <link href="https://cdn.bootcdn.net/ajax/libs/bootstrap/5.1.3/css/bootstrap.min.css" rel="stylesheet">
 | 
						|
    <!-- Font Awesome -->
 | 
						|
    <link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
 | 
						|
    <!-- Custom CSS -->
 | 
						|
    <link href="{{ url_for('static', filename='css/style.css') }}" rel="stylesheet">
 | 
						|
    
 | 
						|
    {% block head %}{% endblock %}
 | 
						|
</head>
 | 
						|
<body>
 | 
						|
    <!-- 导航栏 -->
 | 
						|
    <nav class="navbar navbar-expand-lg navbar-light bg-white shadow-sm">
 | 
						|
        <div class="container">
 | 
						|
            <a class="navbar-brand fw-bold text-primary" href="{{ url_for('main.index') }}">
 | 
						|
                <i class="fas fa-child me-2"></i>儿童语言学习系统
 | 
						|
            </a>
 | 
						|
            
 | 
						|
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
 | 
						|
                <span class="navbar-toggler-icon"></span>
 | 
						|
            </button>
 | 
						|
            
 | 
						|
            <div class="collapse navbar-collapse" id="navbarNav">
 | 
						|
                <ul class="navbar-nav ms-auto">
 | 
						|
                    {% if current_user.is_authenticated %}
 | 
						|
                        <li class="nav-item dropdown">
 | 
						|
                            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown">
 | 
						|
                                <i class="fas fa-user-circle me-1"></i>{{ current_user.name }}
 | 
						|
                            </a>
 | 
						|
                            <ul class="dropdown-menu">
 | 
						|
                                <li><a class="dropdown-item" href="{{ url_for('main.dashboard') }}">
 | 
						|
                                    <i class="fas fa-tachometer-alt me-2"></i>学习主页
 | 
						|
                                </a></li>
 | 
						|
                                <li><hr class="dropdown-divider"></li>
 | 
						|
                                <li><a class="dropdown-item" href="{{ url_for('auth.logout') }}">
 | 
						|
                                    <i class="fas fa-sign-out-alt me-2"></i>退出登录
 | 
						|
                                </a></li>
 | 
						|
                            </ul>
 | 
						|
                        </li>
 | 
						|
                    {% else %}
 | 
						|
                        <li class="nav-item">
 | 
						|
                            <a class="nav-link" href="{{ url_for('auth.login') }}">
 | 
						|
                                <i class="fas fa-sign-in-alt me-1"></i>登录
 | 
						|
                            </a>
 | 
						|
                        </li>
 | 
						|
                        <li class="nav-item">
 | 
						|
                            <a class="nav-link btn btn-primary text-white ms-2 px-3" href="{{ url_for('auth.register') }}">
 | 
						|
                                <i class="fas fa-user-plus me-1"></i>注册
 | 
						|
                            </a>
 | 
						|
                        </li>
 | 
						|
                    {% endif %}
 | 
						|
                </ul>
 | 
						|
            </div>
 | 
						|
        </div>
 | 
						|
    </nav>
 | 
						|
 | 
						|
    <!-- Flash消息 -->
 | 
						|
    <div class="container mt-3">
 | 
						|
        {% with messages = get_flashed_messages(with_categories=true) %}
 | 
						|
            {% if messages %}
 | 
						|
                {% for category, message in messages %}
 | 
						|
                    <div class="alert alert-{{ 'danger' if category == 'error' else category }} alert-dismissible fade show" role="alert">
 | 
						|
                        <i class="fas fa-{{ 'exclamation-triangle' if category == 'error' else 'check-circle' if category == 'success' else 'info-circle' }} me-2"></i>
 | 
						|
                        {{ message }}
 | 
						|
                        <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
 | 
						|
                    </div>
 | 
						|
                {% endfor %}
 | 
						|
            {% endif %}
 | 
						|
        {% endwith %}
 | 
						|
    </div>
 | 
						|
 | 
						|
    <!-- 主要内容 -->
 | 
						|
    <main>
 | 
						|
        {% block content %}{% endblock %}
 | 
						|
    </main>
 | 
						|
 | 
						|
    <!-- 页脚 -->
 | 
						|
    <footer class="bg-light py-4 mt-auto">
 | 
						|
        <div class="container text-center">
 | 
						|
            <p class="text-muted mb-0">
 | 
						|
                © 2025 儿童语言学习系统 - 让孩子快乐学语言
 | 
						|
            </p>
 | 
						|
        </div>
 | 
						|
    </footer>
 | 
						|
 | 
						|
    <!-- Bootstrap JS -->
 | 
						|
    <script src="https://cdn.bootcdn.net/ajax/libs/bootstrap/5.1.3/js/bootstrap.bundle.min.js"></script>
 | 
						|
    <!-- Custom JS -->
 | 
						|
    <script src="{{ url_for('static', filename='js/main.js') }}"></script>
 | 
						|
    
 | 
						|
    {% block scripts %}{% endblock %}
 | 
						|
</body>
 | 
						|
</html>
 |