diff --git a/src/Interface/Model/Gtk/Pango/Markup.php b/src/Interface/Model/Gtk/Pango/Markup.php index 32068bd0..ceb07e97 100644 --- a/src/Interface/Model/Gtk/Pango/Markup.php +++ b/src/Interface/Model/Gtk/Pango/Markup.php @@ -22,6 +22,9 @@ interface Markup public const TAG_QUOTE = '%s'; public const TAG_TEXT = '%s'; + public const LINK_PREFIX_GEMINI = '⇒'; + public const LINK_PREFIX_DEFAULT = '⇗'; + public const WRAP_BREAK = PHP_EOL; public const WRAP_WIDTH = 320; // px diff --git a/src/Model/Gtk/Pango/Markup/Gemtext.php b/src/Model/Gtk/Pango/Markup/Gemtext.php index cbdf9103..786ba4db 100644 --- a/src/Model/Gtk/Pango/Markup/Gemtext.php +++ b/src/Model/Gtk/Pango/Markup/Gemtext.php @@ -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(); } } \ No newline at end of file