' . PHP_EOL; echo '' . PHP_EOL; echo ' ' . PHP_EOL; try { $pageMapper = new PageMapper(); $pagesList = getPagesList(); if (empty($pagesList)) { file_put_contents('php://stderr', "Error: getPagesList() returned 0 pages. Check DOKU_INC or permissions.\n"); file_put_contents('php://stderr', "Data dir is: " . $conf['datadir'] . "\n"); } if ($pagesList) { foreach ($pagesList as $row) { $dokuPageId = $row['id']; file_put_contents('php://stderr', "Processing: $dokuPageId ... \n"); $page_file = wikiFN($dokuPageId); if (!$dokuPageId || !@file_exists($page_file)) continue; $metadata = p_get_metadata($dokuPageId); $sections = getDocumentsByHeadings($dokuPageId, $metadata); $info = []; if (!empty($sections)) { foreach ($sections as $hid => $section) { if (empty($section['section'])) continue; $data = [ 'id' => sprintf('%u', crc32($dokuPageId . $hid) ?: 1), 'namespace' => getCategories($dokuPageId), 'pagename' => getPagename($dokuPageId), 'level' => (int)$section['level'], 'modified' => (int)($metadata['date']['modified'] ?? time()), 'title' => strip_tags($section['title_text']), 'title_to_index' => $section['title_to_index'], 'body' => get_clean_text($section['section']) ]; echo formatXml($data) . PHP_EOL; $pageMapper->add($dokuPageId, $data['title'], $section['title'], $hid); } } else { $raw_content = io_readFile($page_file); $data = [ 'id' => sprintf('%u', crc32($dokuPageId) ?: 1), 'namespace' => getCategories($dokuPageId), 'pagename' => getPagename($dokuPageId), 'level' => 1, 'modified' => (int)($metadata['date']['modified'] ?? time()), 'title' => strip_tags($metadata['title'] ?? $dokuPageId), 'title_to_index' => $metadata['title'] ?? $dokuPageId, 'body' => get_clean_text($raw_content) ]; if (!empty(trim($data['body']))) { echo formatXml($data) . PHP_EOL; $pageMapper->add($dokuPageId, $data['title_to_index'], $data['title_to_index']); } } } } } catch (Throwable $e) { // Log fatal errors to stderr so they don't corrupt the XML but you can still see them file_put_contents('php://stderr', $e->getMessage() . "\n"); } echo '' . PHP_EOL;