Files
leonapp/test_announcement_markdown.php
2025-09-20 22:20:08 +08:00

233 lines
7.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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>