|
|
@ -76,6 +76,15 @@ $filesystem = new \Yggverse\Gemini\Dokuwiki\Filesystem( |
|
|
|
) |
|
|
|
) |
|
|
|
); |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Init reader |
|
|
|
|
|
|
|
$reader = new \Yggverse\Gemini\Dokuwiki\Reader(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Init helper |
|
|
|
|
|
|
|
$helper = new \Yggverse\Gemini\Dokuwiki\Helper( |
|
|
|
|
|
|
|
$filesystem, |
|
|
|
|
|
|
|
$reader |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
// Init server |
|
|
|
// Init server |
|
|
|
$server = new \Yggverse\TitanII\Server(); |
|
|
|
$server = new \Yggverse\TitanII\Server(); |
|
|
|
|
|
|
|
|
|
|
@ -93,6 +102,8 @@ $server->setHandler( |
|
|
|
global $config; |
|
|
|
global $config; |
|
|
|
global $memory; |
|
|
|
global $memory; |
|
|
|
global $filesystem; |
|
|
|
global $filesystem; |
|
|
|
|
|
|
|
global $reader; |
|
|
|
|
|
|
|
global $helper; |
|
|
|
|
|
|
|
|
|
|
|
$response = new \Yggverse\TitanII\Response(); |
|
|
|
$response = new \Yggverse\TitanII\Response(); |
|
|
|
|
|
|
|
|
|
|
@ -142,9 +153,6 @@ $server->setHandler( |
|
|
|
return $response; |
|
|
|
return $response; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Init reader |
|
|
|
|
|
|
|
$reader = new \Yggverse\Gemini\Dokuwiki\Reader(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Define base URL |
|
|
|
// Define base URL |
|
|
|
$reader->setMacros( |
|
|
|
$reader->setMacros( |
|
|
|
'~URL:base~', |
|
|
|
'~URL:base~', |
|
|
@ -157,33 +165,59 @@ $server->setHandler( |
|
|
|
); |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
// Define index menu |
|
|
|
// Define index menu |
|
|
|
/* @TODO |
|
|
|
$index = []; |
|
|
|
$pages = []; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($directory = $filesystem->getDirectoryPathByUri($_uri)) |
|
|
|
// Append index sections |
|
|
|
|
|
|
|
if ($sections = $helper->getChildrenSectionLinksByUri($_uri)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
foreach ($filesystem->getPagePathsByPath($directory) as $file) |
|
|
|
// Append header |
|
|
|
|
|
|
|
$index[] = sprintf( |
|
|
|
|
|
|
|
'### %s', |
|
|
|
|
|
|
|
$config->string->sections |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Append sections |
|
|
|
|
|
|
|
foreach ($sections as $section) |
|
|
|
{ |
|
|
|
{ |
|
|
|
$pages[] = sprintf( |
|
|
|
$index[] = $section; |
|
|
|
'=> /%s', |
|
|
|
} |
|
|
|
$filesystem->getPageUriByPath( |
|
|
|
} |
|
|
|
$file |
|
|
|
|
|
|
|
) |
|
|
|
// Get children pages |
|
|
|
|
|
|
|
if ($pages = $helper->getChildrenPageLinksByUri($_uri)) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
// Append header |
|
|
|
|
|
|
|
$index[] = sprintf( |
|
|
|
|
|
|
|
'### %s', |
|
|
|
|
|
|
|
$config->string->pages |
|
|
|
); |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Append pages |
|
|
|
|
|
|
|
foreach ($pages as $page) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
$index[] = $page; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if ($pages) |
|
|
|
// Set macros value |
|
|
|
|
|
|
|
if ($index) |
|
|
|
{ |
|
|
|
{ |
|
|
|
$reader->setRule( |
|
|
|
$reader->setRule( |
|
|
|
'/\{\{indexmenu>:([^\}]+)\}\}/i', |
|
|
|
'/\{\{indexmenu>:([^\}]+)\}\}/i', |
|
|
|
implode( |
|
|
|
implode( |
|
|
|
PHP_EOL, |
|
|
|
PHP_EOL, |
|
|
|
$pages |
|
|
|
$index |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$reader->setRule( |
|
|
|
|
|
|
|
'/\{\{indexmenu_n>[\d]+\}\}/i', |
|
|
|
|
|
|
|
implode( |
|
|
|
|
|
|
|
PHP_EOL, |
|
|
|
|
|
|
|
$index |
|
|
|
) |
|
|
|
) |
|
|
|
); |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Convert |
|
|
|
// Convert |
|
|
|
$gemini = $reader->toGemini( |
|
|
|
$gemini = $reader->toGemini( |
|
|
@ -326,86 +360,8 @@ $server->setHandler( |
|
|
|
); |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
// Get children sections |
|
|
|
// Get children sections |
|
|
|
$sections = []; |
|
|
|
if ($sections = $helper->getChildrenSectionLinksByUri($_uri)) |
|
|
|
|
|
|
|
|
|
|
|
foreach ($filesystem->getTree() as $path => $files) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (str_starts_with($path, $directory) && $path != $directory) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
// Init link name |
|
|
|
|
|
|
|
$alt = null; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Init this directory URI |
|
|
|
|
|
|
|
$uri = $filesystem->getDirectoryUriByPath( |
|
|
|
|
|
|
|
$path |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Skip sections deeper this level |
|
|
|
|
|
|
|
if (substr_count($uri, ':') > ($_uri ? substr_count($_uri, ':') + 1 : 0)) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Get section names |
|
|
|
|
|
|
|
$segments = []; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach ((array) explode(':', $uri) as $segment) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
$segments[] = $segment; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Find section index if exists |
|
|
|
|
|
|
|
if ($file = $filesystem->getPagePathByUri(implode(':', $segments) . ':' . $segment)) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
$alt = $reader->getH1( |
|
|
|
|
|
|
|
$reader->toGemini( |
|
|
|
|
|
|
|
file_get_contents( |
|
|
|
|
|
|
|
$file |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Find section page if exists |
|
|
|
|
|
|
|
else if ($file = $filesystem->getPagePathByUri(implode(':', $segments))) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
$alt = $reader->getH1( |
|
|
|
|
|
|
|
$reader->toGemini( |
|
|
|
|
|
|
|
file_get_contents( |
|
|
|
|
|
|
|
$file |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Reset title of undefined segment |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
$alt = null; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Register section link |
|
|
|
|
|
|
|
$sections[] = sprintf( |
|
|
|
|
|
|
|
'=> /%s %s', |
|
|
|
|
|
|
|
$uri, |
|
|
|
|
|
|
|
$alt |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Append sections |
|
|
|
|
|
|
|
if ($sections) |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
// Keep unique |
|
|
|
|
|
|
|
$sections = array_unique( |
|
|
|
|
|
|
|
$sections |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Sort asc |
|
|
|
|
|
|
|
sort( |
|
|
|
|
|
|
|
$sections |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Append header |
|
|
|
// Append header |
|
|
|
$lines[] = sprintf( |
|
|
|
$lines[] = sprintf( |
|
|
|
'## %s', |
|
|
|
'## %s', |
|
|
@ -420,37 +376,8 @@ $server->setHandler( |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Get children pages |
|
|
|
// Get children pages |
|
|
|
$pages = []; |
|
|
|
if ($pages = $helper->getChildrenPageLinksByUri($_uri)) |
|
|
|
|
|
|
|
|
|
|
|
foreach ($filesystem->getPagePathsByPath($directory) as $file) |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
$pages[] = sprintf( |
|
|
|
|
|
|
|
'=> /%s %s', |
|
|
|
|
|
|
|
$filesystem->getPageUriByPath( |
|
|
|
|
|
|
|
$file |
|
|
|
|
|
|
|
), |
|
|
|
|
|
|
|
$reader->getH1( |
|
|
|
|
|
|
|
$reader->toGemini( |
|
|
|
|
|
|
|
file_get_contents( |
|
|
|
|
|
|
|
$file |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($pages) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
// Keep unique |
|
|
|
|
|
|
|
$pages = array_unique( |
|
|
|
|
|
|
|
$pages |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Sort asc |
|
|
|
|
|
|
|
sort( |
|
|
|
|
|
|
|
$pages |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Append header |
|
|
|
// Append header |
|
|
|
$lines[] = sprintf( |
|
|
|
$lines[] = sprintf( |
|
|
|
'## %s', |
|
|
|
'## %s', |
|
|
@ -486,8 +413,6 @@ $server->setHandler( |
|
|
|
$lines |
|
|
|
$lines |
|
|
|
); |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
// @TODO '~index:menu~' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Cache results |
|
|
|
// Cache results |
|
|
|
$memory->set( |
|
|
|
$memory->set( |
|
|
|
'/', |
|
|
|
'/', |
|
|
|