233 lines
7.9 KiB
PHP
233 lines
7.9 KiB
PHP
<?php
|
||
// 包含配置文件
|
||
require_once 'config.php';
|
||
|
||
// 使用config.php中的数据库连接
|
||
if (!isset($conn) || !$conn instanceof mysqli) {
|
||
die('数据库连接失败,请检查配置文件。');
|
||
}
|
||
|
||
// 创建测试公告数据
|
||
$testAnnouncement = [
|
||
'title' => 'Markdown公告测试',
|
||
'content' => "# Markdown公告测试
|
||
|
||
这是一个**Markdown格式**的公告示例。
|
||
|
||
## 支持的Markdown特性
|
||
- **粗体文本**:使用双星号包裹
|
||
- *斜体文本*:使用星号包裹
|
||
- 列表:使用-或*开头
|
||
- 链接:[访问示例网站](https://example.com)
|
||
- 代码块:
|
||
|
||
```php
|
||
// PHP代码示例
|
||
function hello() {
|
||
echo 'Hello, Markdown!';
|
||
}
|
||
```
|
||
|
||
## 表格示例
|
||
| 功能 | 描述 |
|
||
|------|------|
|
||
| 粗体 | 文本更醒目 |
|
||
| 斜体 | 文本更柔和 |
|
||
| 列表 | 内容分点展示 |
|
||
| 代码 | 保留格式显示 |
|
||
|
||
## 引用
|
||
> 这是一段引用文本
|
||
> 可以有多行引用",
|
||
'created_at' => date('Y-m-d H:i:s')
|
||
];
|
||
|
||
// 模拟历史公告数据
|
||
$testHistoryAnnouncements = [
|
||
[
|
||
'title' => '测试公告一',
|
||
'content' => "# 测试公告一
|
||
|
||
**重要提示**:这是第一条测试公告。
|
||
|
||
- 支持Markdown格式
|
||
- 可以包含各种元素
|
||
|
||
```javascript
|
||
console.log('第一条测试公告');
|
||
```",
|
||
'created_at' => date('Y-m-d H:i:s', strtotime('-1 day'))
|
||
],
|
||
[
|
||
'title' => '测试公告二',
|
||
'content' => "# 测试公告二
|
||
|
||
*这是第二条测试公告*,使用了不同的Markdown格式。
|
||
|
||
- 列表项一
|
||
- 列表项二
|
||
- 列表项三",
|
||
'created_at' => date('Y-m-d H:i:s', strtotime('-2 days'))
|
||
]
|
||
];
|
||
?>
|
||
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>公告Markdown支持测试 - <?php echo APP_STORE_NAME; ?></title>
|
||
<!-- Bootstrap CSS -->
|
||
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||
<!-- 自定义CSS -->
|
||
<link rel="stylesheet" href="styles.css">
|
||
<!-- Font Awesome -->
|
||
<link rel="stylesheet" href="/css/all.min.css">
|
||
<!-- SweetAlert2 -->
|
||
<link rel="stylesheet" href="/js/sweetalert.js/dist/sweetalert2.min.css">
|
||
<script src="/js/sweetalert.js/dist/sweetalert2.all.min.js"></script>
|
||
<!-- Marked.js 用于Markdown解析 -->
|
||
<script src="js/marked.js"></script>
|
||
<!-- Fluent Design 模糊效果 -->
|
||
<style>
|
||
.blur-bg {
|
||
backdrop-filter: blur(10px);
|
||
background-color: rgba(255, 255, 255, 0.5);
|
||
}
|
||
.page-transition {
|
||
animation: fadeIn 0.5s ease-in-out;
|
||
}
|
||
@keyframes fadeIn {
|
||
from { opacity: 0; transform: translateY(20px); }
|
||
to { opacity: 1; transform: translateY(0); }
|
||
}
|
||
.announcement-item {
|
||
margin-bottom: 2rem;
|
||
padding: 1rem;
|
||
border: 1px solid #e9ecef;
|
||
border-radius: 0.3rem;
|
||
}
|
||
.announcement-item h3 {
|
||
margin-bottom: 0.5rem;
|
||
color: #343a40;
|
||
}
|
||
.date {
|
||
color: #6c757d;
|
||
font-size: 0.9rem;
|
||
margin-bottom: 1rem;
|
||
}
|
||
.content {
|
||
color: #495057;
|
||
line-height: 1.6;
|
||
}
|
||
</style>
|
||
</head>
|
||
<body class="page-transition">
|
||
<!-- 导航栏 -->
|
||
<nav class="navbar navbar-expand-lg navbar-light blur-bg">
|
||
<div class="container">
|
||
<a href="index.php"><img src="/favicon.jpeg" alt="Logo" style="height: 30px; margin-right: 10px; border-radius: var(--border-radius);"></a>
|
||
<a class="navbar-brand" href="index.php">返回首页</a>
|
||
</div>
|
||
</nav>
|
||
|
||
<div class="container mt-4">
|
||
<h1 class="text-center">公告Markdown支持测试</h1>
|
||
<p class="text-center">此页面用于测试首页公告和历史公告的Markdown支持功能。</p>
|
||
|
||
<div class="row mt-4">
|
||
<div class="col-md-12">
|
||
<button class="btn btn-primary mb-4" onclick="showMarkdownInfo()">
|
||
<i class="fas fa-info-circle"></i> 了解Markdown
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 首页公告预览 -->
|
||
<div class="row mt-6">
|
||
<div class="col-md-12">
|
||
<h2>首页公告预览</h2>
|
||
<div class="alert alert-info blur-bg">
|
||
<h4 class="alert-heading"><?php echo htmlspecialchars($testAnnouncement['title']); ?></h4>
|
||
<p class="text-muted small">发布时间: <?php echo date('Y-m-d H:i', strtotime($testAnnouncement['created_at'])); ?></p>
|
||
<div id="home-announcement-content"><?php echo htmlspecialchars($testAnnouncement['content']); ?></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 历史公告预览 -->
|
||
<div class="row mt-8">
|
||
<div class="col-md-12">
|
||
<h2>历史公告预览</h2>
|
||
<div class="announcements-list">
|
||
<?php foreach($testHistoryAnnouncements as $announcement): ?>
|
||
<div class="announcement-item">
|
||
<h3><?php echo htmlspecialchars($announcement['title']); ?></h3>
|
||
<p class="date"><?php echo htmlspecialchars($announcement['created_at']); ?></p>
|
||
<div class="content history-content"><?php echo htmlspecialchars($announcement['content']); ?></div>
|
||
</div>
|
||
<?php endforeach; ?>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 原始Markdown文本显示 -->
|
||
<div class="row mt-8">
|
||
<div class="col-md-12">
|
||
<h2>原始Markdown文本</h2>
|
||
<div class="card">
|
||
<div class="card-body">
|
||
<pre class="bg-light p-3 rounded"><code><?php echo htmlspecialchars($testAnnouncement['content']); ?></code></pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<script>
|
||
// 解析Markdown内容
|
||
document.addEventListener('DOMContentLoaded', function() {
|
||
// 解析首页公告
|
||
const homeAnnouncement = document.getElementById('home-announcement-content');
|
||
if (homeAnnouncement) {
|
||
homeAnnouncement.innerHTML = marked.parse(homeAnnouncement.textContent);
|
||
}
|
||
|
||
// 解析历史公告
|
||
const historyContents = document.querySelectorAll('.history-content');
|
||
historyContents.forEach(function(element) {
|
||
element.innerHTML = marked.parse(element.textContent);
|
||
});
|
||
});
|
||
|
||
// 显示Markdown信息弹窗
|
||
function showMarkdownInfo() {
|
||
Swal.fire({
|
||
title: '<strong>Markdown支持说明</strong>',
|
||
icon: 'info',
|
||
html: `
|
||
<p>公告内容现已支持Markdown语法。</p>
|
||
<h5 class="mt-3">支持的Markdown语法:</h5>
|
||
<ul style="text-align: left;">
|
||
<li><strong>粗体文本</strong>: 使用**双星号**包裹</li>
|
||
<li><em>斜体文本</em>: 使用*星号*包裹</li>
|
||
<li><h1>标题</h1>: 使用#号开头</li>
|
||
<li>列表: 使用-或*开头</li>
|
||
<li>代码块: 使用```包裹代码</li>
|
||
<li>链接: [链接文本](链接地址)</li>
|
||
<li>表格: 使用|分隔单元格</li>
|
||
<li>引用: 使用>开头</li>
|
||
</ul>
|
||
`,
|
||
showCloseButton: true,
|
||
focusConfirm: false,
|
||
confirmButtonText: '我明白了',
|
||
confirmButtonAriaLabel: '关闭对话框'
|
||
});
|
||
}
|
||
</script>
|
||
|
||
<!-- Bootstrap JS Bundle with Popper -->
|
||
<script src="js/bootstrap.bundle.js"></script>
|
||
</body>
|
||
</html>
|