mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-03-31 16:45:27 +00:00
add new tags word wrap support
This commit is contained in:
parent
375a7f0d52
commit
66b94ee7d3
3 changed files with 42 additions and 11 deletions
|
|
@ -82,24 +82,33 @@ class Markup implements \Yggverse\Yoda\Interface\Model\Gtk\Pango\Markup
|
||||||
): string
|
): string
|
||||||
{
|
{
|
||||||
return sprintf(
|
return sprintf(
|
||||||
'* %s', // @TODO
|
'<span>%s</span>', // @TODO
|
||||||
self::_wrap(
|
self::_wrap(
|
||||||
htmlspecialchars(
|
htmlspecialchars(
|
||||||
$value
|
sprintf(
|
||||||
|
'* %s',
|
||||||
|
$value
|
||||||
|
)
|
||||||
),
|
),
|
||||||
|
self::TAG_LIST,
|
||||||
$width
|
$width
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function quote(
|
public static function quote(
|
||||||
string $value
|
string $value,
|
||||||
|
int $width = self::WRAP_WIDTH
|
||||||
): string
|
): string
|
||||||
{
|
{
|
||||||
return sprintf(
|
return sprintf(
|
||||||
'<i>%s</i>',
|
'<i>%s</i>',
|
||||||
htmlspecialchars(
|
self::_wrap(
|
||||||
$value
|
htmlspecialchars(
|
||||||
|
$value
|
||||||
|
),
|
||||||
|
self::TAG_QUOTE,
|
||||||
|
$width
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -113,6 +122,7 @@ class Markup implements \Yggverse\Yoda\Interface\Model\Gtk\Pango\Markup
|
||||||
htmlspecialchars(
|
htmlspecialchars(
|
||||||
$value
|
$value
|
||||||
),
|
),
|
||||||
|
self::TAG_TEXT,
|
||||||
$width
|
$width
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -131,8 +141,12 @@ class Markup implements \Yggverse\Yoda\Interface\Model\Gtk\Pango\Markup
|
||||||
bool $close
|
bool $close
|
||||||
): string
|
): string
|
||||||
{
|
{
|
||||||
if (in_array($const, [self::TAG_CODE]))
|
if (in_array($const, [
|
||||||
{
|
self::TAG_CODE,
|
||||||
|
self::TAG_LIST,
|
||||||
|
self::TAG_QUOTE,
|
||||||
|
self::TAG_TEXT
|
||||||
|
])) {
|
||||||
return sprintf(
|
return sprintf(
|
||||||
$close ? '</%s>' : '<%s>',
|
$close ? '</%s>' : '<%s>',
|
||||||
$const
|
$const
|
||||||
|
|
@ -145,6 +159,7 @@ class Markup implements \Yggverse\Yoda\Interface\Model\Gtk\Pango\Markup
|
||||||
// @TODO optimization wanted, wordwrap / set_line_wrap not solution
|
// @TODO optimization wanted, wordwrap / set_line_wrap not solution
|
||||||
protected static function _wrap(
|
protected static function _wrap(
|
||||||
string $string,
|
string $string,
|
||||||
|
string $tag,
|
||||||
int $width,
|
int $width,
|
||||||
string $break = PHP_EOL,
|
string $break = PHP_EOL,
|
||||||
int $line = 1,
|
int $line = 1,
|
||||||
|
|
@ -163,9 +178,21 @@ class Markup implements \Yggverse\Yoda\Interface\Model\Gtk\Pango\Markup
|
||||||
if (isset($words[$line]))
|
if (isset($words[$line]))
|
||||||
{
|
{
|
||||||
$label->set_markup(
|
$label->set_markup(
|
||||||
implode(
|
sprintf(
|
||||||
' ' , $words[$line]
|
'%s%s%s',
|
||||||
) . ' ' . $word
|
self::tag(
|
||||||
|
$tag,
|
||||||
|
false
|
||||||
|
),
|
||||||
|
implode(
|
||||||
|
' ' , $words[$line]
|
||||||
|
) . ' ' . $word,
|
||||||
|
self::tag(
|
||||||
|
$tag,
|
||||||
|
true
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($label->get_layout()->get_pixel_size()['width'] > $width)
|
if ($label->get_layout()->get_pixel_size()['width'] > $width)
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,9 @@ interface Markup
|
||||||
{
|
{
|
||||||
public const ENCODING = 'UTF-8';
|
public const ENCODING = 'UTF-8';
|
||||||
public const TAG_CODE = 'tt';
|
public const TAG_CODE = 'tt';
|
||||||
|
public const TAG_QUOTE = 'i';
|
||||||
|
public const TAG_TEXT = 'span';
|
||||||
|
public const TAG_LIST = 'span';
|
||||||
public const WRAP_WIDTH = 320;
|
public const WRAP_WIDTH = 320;
|
||||||
|
|
||||||
public static function code(
|
public static function code(
|
||||||
|
|
|
||||||
|
|
@ -157,7 +157,8 @@ class Gemtext extends \Yggverse\Yoda\Abstract\Model\Gtk\Pango\Markup
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$line[] = self::quote(
|
$line[] = self::quote(
|
||||||
$entity->getText()
|
$entity->getText(),
|
||||||
|
$width
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue