Browse Source

add gemtext mode

main
ghost 9 months ago
parent
commit
fa2bb2bd77
  1. 3
      example/config.json
  2. 85
      src/server.php

3
example/config.json

@ -36,7 +36,8 @@ @@ -36,7 +36,8 @@
"view":
{
"raw":"Raw data",
"reader":"Reader"
"reader":"Reader",
"gemtext":"Gemtext"
}
}
},

85
src/server.php

@ -496,6 +496,48 @@ $server->setHandler( @@ -496,6 +496,48 @@ $server->setHandler(
break;
case 'gemtext':
// Key
$result[] = null;
$result[] = sprintf(
'# %s',
trim(
preg_replace( // single-line
'/[\s]+/',
' ',
$record['key']
)
)
);
// Value
$result[] = null;
$result[] = trim(
preg_replace(
[
'/[\n\r]{3,}/', // remove extra breaks
],
[
PHP_EOL . PHP_EOL,
],
$record['value']
)
);
// Time
$result[] = null;
$result[] = sprintf(
'%s in %d',
date(
'Y-m-d',
$record['time']
),
$record['block']
);
break;
default:
// Key
@ -546,18 +588,53 @@ $server->setHandler( @@ -546,18 +588,53 @@ $server->setHandler(
$config->geminiapp->string->navigation
);
if ('raw' == $request->getQuery())
switch ($request->getQuery())
{
case 'raw':
$result[] = null;
$result[] = sprintf(
'=> /%s?gemtext %s',
$record['transaction'],
$config->geminiapp->string->view->gemtext
);
$result[] = null;
$result[] = sprintf(
'=> /%s %s',
$record['transaction'],
$config->geminiapp->string->view->reader
);
}
else
{
break;
case 'gemtext':
$result[] = null;
$result[] = sprintf(
'=> /%s %s',
$record['transaction'],
$config->geminiapp->string->view->reader
);
$result[] = null;
$result[] = sprintf(
'=> /%s?raw %s',
$record['transaction'],
$config->geminiapp->string->view->raw
);
break;
default:
$result[] = null;
$result[] = sprintf(
'=> /%s?gemtext %s',
$record['transaction'],
$config->geminiapp->string->view->gemtext
);
$result[] = null;
$result[] = sprintf(
'=> /%s?raw %s',

Loading…
Cancel
Save