功能特性: - 前端文章展示 (Markdown渲染、代码高亮) - 后台管理系统 (文章、分类、标签、作者管理) - 图片上传 (点击、拖拽、粘贴) - 网站设置 (Logo、底部宣传图片上传) - 访问统计 (IP记录、趋势图表) - 参考来源、附件支持 - 单端口部署 (16012) 技术栈: - Flask 3.0 + SQLAlchemy - SQLite数据库 - marked.js + highlight.js (Markdown渲染) - Chart.js (统计图表)
71 lines
3.1 KiB
HTML
71 lines
3.1 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>
|
|
<link rel="stylesheet" href="{{ url_for('static', filename='css/admin.css') }}">
|
|
{% block extra_css %}{% endblock %}
|
|
</head>
|
|
<body class="admin-body">
|
|
<div class="admin-wrapper">
|
|
<!-- 侧边栏 -->
|
|
<aside class="sidebar">
|
|
<div class="sidebar-header">
|
|
<h2>📚 管理后台</h2>
|
|
</div>
|
|
<nav class="sidebar-nav">
|
|
<a href="{{ url_for('admin.dashboard') }}" class="nav-item {% if request.endpoint == 'admin.dashboard' %}active{% endif %}">
|
|
📊 仪表盘
|
|
</a>
|
|
<a href="{{ url_for('admin.articles') }}" class="nav-item {% if 'article' in request.endpoint %}active{% endif %}">
|
|
📝 文章管理
|
|
</a>
|
|
<a href="{{ url_for('admin.authors') }}" class="nav-item {% if 'author' in request.endpoint %}active{% endif %}">
|
|
👤 作者管理
|
|
</a>
|
|
<a href="{{ url_for('admin.categories') }}" class="nav-item {% if 'category' in request.endpoint %}active{% endif %}">
|
|
📁 分类管理
|
|
</a>
|
|
<a href="{{ url_for('admin.tags') }}" class="nav-item {% if 'tag' in request.endpoint %}active{% endif %}">
|
|
🏷️ 标签管理
|
|
</a>
|
|
<a href="{{ url_for('admin.settings') }}" class="nav-item {% if request.endpoint == 'admin.settings' %}active{% endif %}">
|
|
⚙️ 网站设置
|
|
</a>
|
|
<a href="{{ url_for('admin.stats') }}" class="nav-item {% if 'stats' in request.endpoint %}active{% endif %}">
|
|
📈 访问统计
|
|
</a>
|
|
</nav>
|
|
<div class="sidebar-footer">
|
|
<a href="{{ url_for('frontend.index') }}" target="_blank">🌐 查看网站</a>
|
|
<a href="{{ url_for('admin.logout') }}">🚪 退出登录</a>
|
|
</div>
|
|
</aside>
|
|
|
|
<!-- 主内容区 -->
|
|
<main class="main-content">
|
|
<header class="content-header">
|
|
<h1>{% block page_title %}{% endblock %}</h1>
|
|
<div class="user-info">
|
|
欢迎,{{ session.get('admin_username', '管理员') }}
|
|
</div>
|
|
</header>
|
|
|
|
<div class="content-body">
|
|
{% with messages = get_flashed_messages(with_categories=true) %}
|
|
{% if messages %}
|
|
{% for category, message in messages %}
|
|
<div class="alert alert-{{ category }}">{{ message }}</div>
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endwith %}
|
|
|
|
{% block content %}{% endblock %}
|
|
</div>
|
|
</main>
|
|
</div>
|
|
|
|
{% block extra_js %}{% endblock %}
|
|
</body>
|
|
</html> |