Browse Source

draft section aliases

main
ghost 10 months ago
parent
commit
708b539964
  1. 44
      src/server.php

44
src/server.php

@ -127,10 +127,10 @@ $server->setHandler( @@ -127,10 +127,10 @@ $server->setHandler(
// Parse request
preg_match('/^\/([^\/]*)$/', $request->getPath(), $matches);
$uri = isset($matches[1]) ? $matches[1] : '';
$_uri = isset($matches[1]) ? $matches[1] : '';
// Directory request, build index links as no side menu in gemini version
if ($directory = $filesystem->getDirectoryPathByUri($uri))
if ($directory = $filesystem->getDirectoryPathByUri($_uri))
{
// Check for cached results
/*
@ -165,17 +165,45 @@ $server->setHandler( @@ -165,17 +165,45 @@ $server->setHandler(
{
if (str_starts_with($path, $directory) && $path != $directory)
{
// Init this directory URI
$uri = $filesystem->getDirectoryUriByPath(
$path
);
// Parse URI segments
$segments = [];
foreach ((array) explode(':', $uri) as $segment)
{
$segments[] = $segment;
}
// Set default section alias
$alias = empty($_uri) ? $config->string->main : '';
// Find section name if exists in index file
if ($file = $filesystem->getPagePathByUri($uri . ':' . end($segments)))
{
$alias = $reader->getH1(
$reader->toGemini(
file_get_contents(
$file
)
)
);
}
// Register section link
$sections[] = sprintf(
'=> gemini://%s%s/%s',
'=> gemini://%s%s/%s %s',
$config->gemini->server->host,
$config->gemini->server->port == 1965 ? null : ':' . $config->gemini->server->port,
$filesystem->getDirectoryUriByPath(
$path
)
$uri,
$alias
);
}
}
// Append sections list if exist
if ($sections)
{
// Keep unique
@ -287,7 +315,7 @@ $server->setHandler( @@ -287,7 +315,7 @@ $server->setHandler(
}
// File request, get page content
if ($path = $filesystem->getPagePathByUri($uri))
if ($path = $filesystem->getPagePathByUri($_uri))
{
// Check for cached results
if ($content = $memory->get($path))
@ -317,7 +345,7 @@ $server->setHandler( @@ -317,7 +345,7 @@ $server->setHandler(
/* @TODO
$pages = [];
if ($directory = $filesystem->getDirectoryPathByUri($uri))
if ($directory = $filesystem->getDirectoryPathByUri($_uri))
{
foreach ($filesystem->getPagePathsByPath($directory) as $file)
{

Loading…
Cancel
Save