diff --git a/web/docs/index.php b/web/docs/index.php index bce0cca..ddf7be0 100644 --- a/web/docs/index.php +++ b/web/docs/index.php @@ -1,38 +1,31 @@ (defaults to "index"). */ +/* PMM docs site — scans md/*.md into a left file tree and renders the selected + * page on the right. URL: docs/index.php?page= (defaults to "index"). */ define('PMM_SITE', 1); require dirname(__DIR__) . '/_common.php'; -/* doc pages: [slug, title] — grouped sections */ -$groups = [ - '开始' => [ - 'index' => '快速开始', - 'install' => '安装', - 'download'=> '下载', - ], - '了解' => [ - 'features' => '核心特性', - 'cli' => '命令参考', - 'mirror' => '镜像源', - ], - '社区' => [ - 'translate' => '翻译 / 语言包', - 'source' => '源码', - ], -]; -// flatten for page lookup -$pages = []; -foreach ($groups as $g => $list) foreach ($list as $slug => $t) $pages[$slug] = $t; +$mdDir = __DIR__ . '/md'; + +/* Discover every .md file; title = first "# " line, else the filename. */ +$pages = []; // slug -> title +if (is_dir($mdDir)) { + foreach (glob($mdDir . '/*.md') as $f) { + $slug = basename($f, '.md'); + $title = $slug; + $raw = (string)file_get_contents($f); + if (preg_match('/^#\s+(.+)$/m', $raw, $m)) $title = trim($m[1]); + $pages[$slug] = $title; + } +} $page = isset($_GET['page']) ? (string)$_GET['page'] : 'index'; if (!isset($pages[$page])) $page = 'index'; $title = $pages[$page]; -$mdPath = __DIR__ . '/' . $page . '.md'; $body = ''; -if (is_file($mdPath)) { - $body = (string)file_get_contents($mdPath); +$f = $mdDir . '/' . $page . '.md'; +if (is_file($f)) { + $body = (string)file_get_contents($f); $body = str_replace("\r", "", $body); // md() regex hard-codes \n $body = md($body); } @@ -40,11 +33,10 @@ if (is_file($mdPath)) { pmm_header('docs', '文档 · ' . $title); ?>