Files
tech-blog/app/templates/admin/base.html
hz4th_coder e689fed71e 初始化技术博客项目
功能特性:
- 前端文章展示 (Markdown渲染、代码高亮)
- 后台管理系统 (文章、分类、标签、作者管理)
- 图片上传 (点击、拖拽、粘贴)
- 网站设置 (Logo、底部宣传图片上传)
- 访问统计 (IP记录、趋势图表)
- 参考来源、附件支持
- 单端口部署 (16012)

技术栈:
- Flask 3.0 + SQLAlchemy
- SQLite数据库
- marked.js + highlight.js (Markdown渲染)
- Chart.js (统计图表)
2026-06-04 23:12:34 +08:00

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>