Browse Source

simplify link indicators

PHP-GTK3
yggverse 4 months ago
parent
commit
4ec647e4f6
  1. 4
      src/Interface/Model/Gtk/Pango/Markup.php
  2. 26
      src/Model/Gtk/Pango/Markup/Gemtext.php

4
src/Interface/Model/Gtk/Pango/Markup.php

@ -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

26
src/Model/Gtk/Pango/Markup/Gemtext.php

@ -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();
} }

Loading…
Cancel
Save