simplify link indicators

This commit is contained in:
yggverse 2024-08-01 18:15:41 +03:00
parent 5ea787cb0f
commit 4ec647e4f6
2 changed files with 11 additions and 19 deletions

View file

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

View file

@ -116,7 +116,7 @@ class Gemtext extends \Yggverse\Yoda\Abstract\Model\Gtk\Pango\Markup
else else
{ {
$prefix = self::LINK_PREFIX_DEFAULT; $prefix = self::LINK_PREFIX_EXTERNAL;
$line[] = self::link( $line[] = self::link(
self::_url( self::_url(
@ -208,34 +208,26 @@ class Gemtext extends \Yggverse\Yoda\Abstract\Model\Gtk\Pango\Markup
private static function _url( private static function _url(
string $link, string $link,
string $base, string $base,
string &$prefix = self::LINK_PREFIX_DEFAULT string &$prefix = self::LINK_PREFIX_EXTERNAL
): ?string ): ?string
{ {
$address = new Address( $address = new Address(
$link $link
); );
$request = new Address(
$base
);
if ($address->isRelative()) if ($address->isRelative())
{ {
$address->toAbsolute( $address->toAbsolute(
new Address( $request
$base
)
); );
} }
switch ($address->getScheme()) $prefix = $address->getScheme() == $request->getScheme() ? self::LINK_PREFIX_INTERNAL
{ : self::LINK_PREFIX_EXTERNAL;
case 'gemini':
$prefix = self::LINK_PREFIX_GEMINI;
break;
default:
$prefix = self::LINK_PREFIX_DEFAULT;
}
return $address->get(); return $address->get();
} }