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 @@
"view": "view":
{ {
"raw":"Raw data", "raw":"Raw data",
"reader":"Reader" "reader":"Reader",
"gemtext":"Gemtext"
} }
} }
}, },

85
src/server.php

@ -496,6 +496,48 @@ $server->setHandler(
break; 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: default:
// Key // Key
@ -546,18 +588,53 @@ $server->setHandler(
$config->geminiapp->string->navigation $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[] = null;
$result[] = sprintf( $result[] = sprintf(
'=> /%s %s', '=> /%s %s',
$record['transaction'], $record['transaction'],
$config->geminiapp->string->view->reader $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[] = null;
$result[] = sprintf( $result[] = sprintf(
'=> /%s?raw %s', '=> /%s?raw %s',

Loading…
Cancel
Save