feat: 添加文档功能和页面模板

This commit is contained in:
2026-04-10 18:09:36 +08:00
parent f5e00f1f35
commit d1cd73ccdb
7 changed files with 3019 additions and 1 deletions

58
web/docs.php Normal file
View File

@@ -0,0 +1,58 @@
<?php
require_once('./include/db_info.inc.php');
require_once('./include/setlang.php');
require_once('./include/const.inc.php');
$docs_dir = __DIR__ . '/doc';
$doc_entries = array();
if (is_dir($docs_dir)) {
$doc_files = glob($docs_dir . '/*.md');
if ($doc_files !== false) {
sort($doc_files, SORT_NATURAL | SORT_FLAG_CASE);
foreach ($doc_files as $doc_file) {
$doc_entries[] = array(
'file' => basename($doc_file),
'title' => preg_replace('/\.md$/i', '', basename($doc_file))
);
}
}
}
$selected_file = '';
if (isset($_GET['file'])) {
$selected_file = basename($_GET['file']);
}
if (empty($selected_file) && !empty($doc_entries)) {
$selected_file = $doc_entries[0]['file'];
}
$selected_title = '文档';
$selected_markdown = '';
if (!empty($selected_file)) {
$selected_path = realpath($docs_dir . DIRECTORY_SEPARATOR . $selected_file);
$docs_root = realpath($docs_dir);
if (
$selected_path !== false &&
$docs_root !== false &&
strpos($selected_path, $docs_root . DIRECTORY_SEPARATOR) === 0 &&
is_file($selected_path) &&
preg_match('/\.md$/i', $selected_path)
) {
$selected_markdown = file_get_contents($selected_path);
if ($selected_markdown === false) {
$selected_markdown = '';
} else {
$selected_markdown = preg_replace('/^\xEF\xBB\xBF/', '', $selected_markdown);
}
$selected_title = preg_replace('/\.md$/i', '', basename($selected_path));
}
}
$show_title = $selected_title . ' - ' . $OJ_NAME;
require('template/' . $OJ_TEMPLATE . '/docs.php');
?>