mirror of
https://github.com/YGGverse/bdoku.git
synced 2026-03-31 17:55:36 +00:00
implement related links
This commit is contained in:
parent
aa70644e46
commit
c60d0e80a8
2 changed files with 41 additions and 20 deletions
|
|
@ -20,6 +20,7 @@
|
||||||
},
|
},
|
||||||
"string":
|
"string":
|
||||||
{
|
{
|
||||||
|
"links":"Links",
|
||||||
"actions":"Actions",
|
"actions":"Actions",
|
||||||
"main":"Main page",
|
"main":"Main page",
|
||||||
"source":"Source",
|
"source":"Source",
|
||||||
|
|
|
||||||
|
|
@ -125,11 +125,48 @@ $server->setHandler(
|
||||||
{
|
{
|
||||||
if ($path = $filesystem->getPagePathByUri($matches[1]))
|
if ($path = $filesystem->getPagePathByUri($matches[1]))
|
||||||
{
|
{
|
||||||
// Append extra data
|
// Init reader
|
||||||
|
$reader = new \Yggverse\Gemini\Dokuwiki\Reader();
|
||||||
|
|
||||||
|
// Define base URL
|
||||||
|
$reader->setMacros(
|
||||||
|
'~URL:base~',
|
||||||
|
sprintf(
|
||||||
|
'gemini://%s%s/%s',
|
||||||
|
$config->gemini->server->host,
|
||||||
|
$config->gemini->server->port == 1965 ? null : ':' . $config->gemini->server->port,
|
||||||
|
'' // @TODO append relative prefix (:)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Convert
|
||||||
|
$gemini = $reader->toGemini(
|
||||||
|
file_get_contents(
|
||||||
|
$path
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
$lines = [
|
$lines = [
|
||||||
PHP_EOL
|
$gemini
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// Get page links
|
||||||
|
if ($links = $reader->getLinks($gemini))
|
||||||
|
{
|
||||||
|
$lines[] = sprintf(
|
||||||
|
'## %s',
|
||||||
|
$config->string->links
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach ($links as $link)
|
||||||
|
{
|
||||||
|
$lines[] = sprintf(
|
||||||
|
'=> %s',
|
||||||
|
$link
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Append actions header
|
// Append actions header
|
||||||
$lines[] = sprintf(
|
$lines[] = sprintf(
|
||||||
'## %s',
|
'## %s',
|
||||||
|
|
@ -161,26 +198,9 @@ $server->setHandler(
|
||||||
$lines
|
$lines
|
||||||
);
|
);
|
||||||
|
|
||||||
// Read document
|
|
||||||
$reader = new \Yggverse\Gemini\Dokuwiki\Reader();
|
|
||||||
|
|
||||||
// Define base URL
|
|
||||||
$reader->setMacros(
|
|
||||||
'~URL:base~',
|
|
||||||
sprintf(
|
|
||||||
'gemini://%s%s/',
|
|
||||||
$config->gemini->server->host,
|
|
||||||
$config->gemini->server->port == 1965 ? null : ':' . $config->gemini->server->port
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// Return converted response
|
// Return converted response
|
||||||
$response->setContent(
|
$response->setContent(
|
||||||
$reader->toGemini(
|
$gemini . $data
|
||||||
file_get_contents(
|
|
||||||
$path
|
|
||||||
) . $data
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue