implement link prefix indicators

This commit is contained in:
yggverse 2024-08-01 18:10:05 +03:00
parent c58d16e861
commit 5ea787cb0f
2 changed files with 28 additions and 4 deletions

View file

@ -22,6 +22,9 @@ interface Markup
public const TAG_QUOTE = '<i>%s</i>';
public const TAG_TEXT = '<span>%s</span>';
public const LINK_PREFIX_GEMINI = '⇒';
public const LINK_PREFIX_DEFAULT = '⇗';
public const WRAP_BREAK = PHP_EOL;
public const WRAP_WIDTH = 320; // px

View file

@ -116,14 +116,21 @@ class Gemtext extends \Yggverse\Yoda\Abstract\Model\Gtk\Pango\Markup
else
{
$prefix = self::LINK_PREFIX_DEFAULT;
$line[] = self::link(
self::_url(
$entity->getAddress(),
$request
$request,
$prefix
),
$entity->getAddress(),
$entity->getAlt() ? $entity->getAlt()
: $entity->getAddress() // @TODO date
sprintf(
'%s %s',
$prefix,
$entity->getAlt() ? $entity->getAlt()
: $entity->getAddress() // @TODO date
)
);
}
@ -200,7 +207,8 @@ class Gemtext extends \Yggverse\Yoda\Abstract\Model\Gtk\Pango\Markup
private static function _url(
string $link,
string $base
string $base,
string &$prefix = self::LINK_PREFIX_DEFAULT
): ?string
{
$address = new Address(
@ -216,6 +224,19 @@ class Gemtext extends \Yggverse\Yoda\Abstract\Model\Gtk\Pango\Markup
);
}
switch ($address->getScheme())
{
case 'gemini':
$prefix = self::LINK_PREFIX_GEMINI;
break;
default:
$prefix = self::LINK_PREFIX_DEFAULT;
}
return $address->get();
}
}