From 03340c18ead651ef9e11f883745695f2edafbae3 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Tue, 12 May 2020 12:44:48 +0200 Subject: Slim router: handle add tag route --- application/formatter/BookmarkMarkdownFormatter.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'application/formatter') diff --git a/application/formatter/BookmarkMarkdownFormatter.php b/application/formatter/BookmarkMarkdownFormatter.php index 077e5312..5d244d4c 100644 --- a/application/formatter/BookmarkMarkdownFormatter.php +++ b/application/formatter/BookmarkMarkdownFormatter.php @@ -114,7 +114,7 @@ class BookmarkMarkdownFormatter extends BookmarkDefaultFormatter /** * Replace hashtag in Markdown links format - * E.g. `#hashtag` becomes `[#hashtag](?addtag=hashtag)` + * E.g. `#hashtag` becomes `[#hashtag](./add-tag/hashtag)` * It includes the index URL if specified. * * @param string $description @@ -133,7 +133,7 @@ class BookmarkMarkdownFormatter extends BookmarkDefaultFormatter * \p{Mn} - any non marking space (accents, umlauts, etc) */ $regex = '/(^|\s)#([\p{Pc}\p{N}\p{L}\p{Mn}]+)/mui'; - $replacement = '$1[#$2]('. $indexUrl .'?addtag=$2)'; + $replacement = '$1[#$2]('. $indexUrl .'./add-tag/$2)'; $descriptionLines = explode(PHP_EOL, $description); $descriptionOut = ''; -- cgit v1.2.3 From 301c7ab1a079d937ab41c6f52b8804e5731008e6 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Tue, 28 Jul 2020 20:46:11 +0200 Subject: Better support for notes permalink --- application/formatter/BookmarkDefaultFormatter.php | 22 ++++++++++++++-------- application/formatter/BookmarkFormatter.php | 6 ++++-- application/formatter/FormatterFactory.php | 2 +- 3 files changed, 19 insertions(+), 11 deletions(-) (limited to 'application/formatter') diff --git a/application/formatter/BookmarkDefaultFormatter.php b/application/formatter/BookmarkDefaultFormatter.php index c6c59064..08e710eb 100644 --- a/application/formatter/BookmarkDefaultFormatter.php +++ b/application/formatter/BookmarkDefaultFormatter.php @@ -50,11 +50,10 @@ class BookmarkDefaultFormatter extends BookmarkFormatter */ public function formatUrl($bookmark) { - if (! empty($this->contextData['index_url']) && ( - startsWith($bookmark->getUrl(), '?') || startsWith($bookmark->getUrl(), '/') - )) { - return $this->contextData['index_url'] . escape($bookmark->getUrl()); + if ($bookmark->isNote() && !empty($this->contextData['index_url'])) { + return rtrim($this->contextData['index_url'], '/') . '/' . escape(ltrim($bookmark->getUrl(), '/')); } + return escape($bookmark->getUrl()); } @@ -63,11 +62,18 @@ class BookmarkDefaultFormatter extends BookmarkFormatter */ protected function formatRealUrl($bookmark) { - if (! empty($this->contextData['index_url']) && ( - startsWith($bookmark->getUrl(), '?') || startsWith($bookmark->getUrl(), '/') - )) { - return $this->contextData['index_url'] . escape($bookmark->getUrl()); + if ($bookmark->isNote()) { + if (!empty($this->contextData['index_url'])) { + $prefix = rtrim($this->contextData['index_url'], '/') . '/'; + } + + if (!empty($this->contextData['base_path'])) { + $prefix = rtrim($this->contextData['base_path'], '/') . '/'; + } + + return escape($prefix ?? '') . escape(ltrim($bookmark->getUrl(), '/')); } + return escape($bookmark->getUrl()); } diff --git a/application/formatter/BookmarkFormatter.php b/application/formatter/BookmarkFormatter.php index a80d83fc..22ba7aae 100644 --- a/application/formatter/BookmarkFormatter.php +++ b/application/formatter/BookmarkFormatter.php @@ -3,8 +3,8 @@ namespace Shaarli\Formatter; use DateTime; -use Shaarli\Config\ConfigManager; use Shaarli\Bookmark\Bookmark; +use Shaarli\Config\ConfigManager; /** * Class BookmarkFormatter @@ -80,6 +80,8 @@ abstract class BookmarkFormatter public function addContextData($key, $value) { $this->contextData[$key] = $value; + + return $this; } /** @@ -128,7 +130,7 @@ abstract class BookmarkFormatter */ protected function formatRealUrl($bookmark) { - return $bookmark->getUrl(); + return $this->formatUrl($bookmark); } /** diff --git a/application/formatter/FormatterFactory.php b/application/formatter/FormatterFactory.php index 5f282f68..a029579f 100644 --- a/application/formatter/FormatterFactory.php +++ b/application/formatter/FormatterFactory.php @@ -38,7 +38,7 @@ class FormatterFactory * * @return BookmarkFormatter instance. */ - public function getFormatter(string $type = null) + public function getFormatter(string $type = null): BookmarkFormatter { $type = $type ? $type : $this->conf->get('formatter', 'default'); $className = '\\Shaarli\\Formatter\\Bookmark'. ucfirst($type) .'Formatter'; -- cgit v1.2.3 From 624123177f8673f978c49186b43fd96c6827d8a0 Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Tue, 28 Jul 2020 21:09:22 +0200 Subject: Include empty basePath in formatting --- application/formatter/BookmarkDefaultFormatter.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'application/formatter') diff --git a/application/formatter/BookmarkDefaultFormatter.php b/application/formatter/BookmarkDefaultFormatter.php index 08e710eb..9d4a0fa0 100644 --- a/application/formatter/BookmarkDefaultFormatter.php +++ b/application/formatter/BookmarkDefaultFormatter.php @@ -50,7 +50,7 @@ class BookmarkDefaultFormatter extends BookmarkFormatter */ public function formatUrl($bookmark) { - if ($bookmark->isNote() && !empty($this->contextData['index_url'])) { + if ($bookmark->isNote() && isset($this->contextData['index_url'])) { return rtrim($this->contextData['index_url'], '/') . '/' . escape(ltrim($bookmark->getUrl(), '/')); } @@ -63,11 +63,11 @@ class BookmarkDefaultFormatter extends BookmarkFormatter protected function formatRealUrl($bookmark) { if ($bookmark->isNote()) { - if (!empty($this->contextData['index_url'])) { + if (isset($this->contextData['index_url'])) { $prefix = rtrim($this->contextData['index_url'], '/') . '/'; } - if (!empty($this->contextData['base_path'])) { + if (isset($this->contextData['base_path'])) { $prefix = rtrim($this->contextData['base_path'], '/') . '/'; } -- cgit v1.2.3