ShaarliParsedown: add PHPDoc/comments
This commit is contained in:
parent
9ef8555ad2
commit
a1cd7a3b2f
3 changed files with 43 additions and 2 deletions
|
@ -4,6 +4,11 @@
|
||||||
|
|
||||||
namespace Shaarli\Formatter\Parsedown;
|
namespace Shaarli\Formatter\Parsedown;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parsedown extension for Shaarli.
|
||||||
|
*
|
||||||
|
* Extension for both Parsedown and ParsedownExtra centralized in ShaarliParsedownTrait.
|
||||||
|
*/
|
||||||
class ShaarliParsedown extends \Parsedown
|
class ShaarliParsedown extends \Parsedown
|
||||||
{
|
{
|
||||||
use ShaarliParsedownTrait;
|
use ShaarliParsedownTrait;
|
||||||
|
|
|
@ -4,6 +4,11 @@
|
||||||
|
|
||||||
namespace Shaarli\Formatter\Parsedown;
|
namespace Shaarli\Formatter\Parsedown;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ParsedownExtra extension for Shaarli.
|
||||||
|
*
|
||||||
|
* Extension for both Parsedown and ParsedownExtra centralized in ShaarliParsedownTrait.
|
||||||
|
*/
|
||||||
class ShaarliParsedownExtra extends \ParsedownExtra
|
class ShaarliParsedownExtra extends \ParsedownExtra
|
||||||
{
|
{
|
||||||
use ShaarliParsedownTrait;
|
use ShaarliParsedownTrait;
|
||||||
|
|
|
@ -6,24 +6,48 @@
|
||||||
|
|
||||||
use Shaarli\Formatter\BookmarkDefaultFormatter as Formatter;
|
use Shaarli\Formatter\BookmarkDefaultFormatter as Formatter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Trait used for Parsedown and ParsedownExtra extension.
|
||||||
|
*
|
||||||
|
* Extended:
|
||||||
|
* - Format links properly in search context
|
||||||
|
*/
|
||||||
trait ShaarliParsedownTrait
|
trait ShaarliParsedownTrait
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
protected function inlineLink($excerpt)
|
protected function inlineLink($excerpt)
|
||||||
{
|
{
|
||||||
return $this->shaarliFormatLink(parent::inlineLink($excerpt), true);
|
return $this->shaarliFormatLink(parent::inlineLink($excerpt), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
protected function inlineUrl($excerpt)
|
protected function inlineUrl($excerpt)
|
||||||
{
|
{
|
||||||
return $this->shaarliFormatLink(parent::inlineUrl($excerpt), false);
|
return $this->shaarliFormatLink(parent::inlineUrl($excerpt), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Properly format markdown link:
|
||||||
|
* - remove highlight tags from HREF attribute
|
||||||
|
* - (optional) add highlight tags to link caption
|
||||||
|
*
|
||||||
|
* @param array|null $link Parsedown formatted link array.
|
||||||
|
* It can be empty.
|
||||||
|
* @param bool $fullWrap Add highlight tags the whole link caption
|
||||||
|
*
|
||||||
|
* @return array|null
|
||||||
|
*/
|
||||||
protected function shaarliFormatLink(?array $link, bool $fullWrap): ?array
|
protected function shaarliFormatLink(?array $link, bool $fullWrap): ?array
|
||||||
{
|
{
|
||||||
|
// If open and clean search tokens are found in the link, process.
|
||||||
if (
|
if (
|
||||||
is_array($link)
|
is_array($link)
|
||||||
&& strpos($link['element']['attributes']['href'], Formatter::SEARCH_HIGHLIGHT_OPEN) !== false
|
&& strpos($link['element']['attributes']['href'] ?? '', Formatter::SEARCH_HIGHLIGHT_OPEN) !== false
|
||||||
&& strpos($link['element']['attributes']['href'], Formatter::SEARCH_HIGHLIGHT_CLOSE) !== false
|
&& strpos($link['element']['attributes']['href'] ?? '', Formatter::SEARCH_HIGHLIGHT_CLOSE) !== false
|
||||||
) {
|
) {
|
||||||
$link['element']['attributes']['href'] = $this->shaarliRemoveSearchTokens(
|
$link['element']['attributes']['href'] = $this->shaarliRemoveSearchTokens(
|
||||||
$link['element']['attributes']['href']
|
$link['element']['attributes']['href']
|
||||||
|
@ -40,6 +64,13 @@ protected function shaarliFormatLink(?array $link, bool $fullWrap): ?array
|
||||||
return $link;
|
return $link;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove open and close tags from provided string.
|
||||||
|
*
|
||||||
|
* @param string $entry input
|
||||||
|
*
|
||||||
|
* @return string Striped input
|
||||||
|
*/
|
||||||
protected function shaarliRemoveSearchTokens(string $entry): string
|
protected function shaarliRemoveSearchTokens(string $entry): string
|
||||||
{
|
{
|
||||||
$entry = str_replace(Formatter::SEARCH_HIGHLIGHT_OPEN, '', $entry);
|
$entry = str_replace(Formatter::SEARCH_HIGHLIGHT_OPEN, '', $entry);
|
||||||
|
|
Loading…
Reference in a new issue