From 4de9c94bd5a7d2df4afe03cc13a2630cedb32966 Mon Sep 17 00:00:00 2001 From: Andy Miller Date: Mon, 30 May 2016 17:14:21 -0600 Subject: [PATCH] Remove double URL encode when processing params in links - #860 --- CHANGELOG.md | 1 + system/src/Grav/Common/Markdown/ParsedownGravTrait.php | 2 +- tests/unit/Grav/Common/Markdown/ParsedownTest.php | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8700ef976..3fd30a979 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ * Detect if user really meant to extend parent blueprint, not another one (fixes old page type blueprints) * Fixed a bug in `Page::relativePagePath()` when `Page::$name` is not defined * Fix for poor handling of params + query element in `Uri::processParams()` [#859](https://github.com/getgrav/grav/issues/859) + * Fix for double encoding in markdown links [#860](https://github.com/getgrav/grav/issues/860) # v1.1.0-beta.5 ## 05/23/2016 diff --git a/system/src/Grav/Common/Markdown/ParsedownGravTrait.php b/system/src/Grav/Common/Markdown/ParsedownGravTrait.php index bf4955c71..a2a3aa662 100644 --- a/system/src/Grav/Common/Markdown/ParsedownGravTrait.php +++ b/system/src/Grav/Common/Markdown/ParsedownGravTrait.php @@ -300,7 +300,7 @@ trait ParsedownGravTrait if (isset($url['query'])) { $actions = array_reduce(explode('&', $url['query']), function ($carry, $item) { $parts = explode('=', $item, 2); - $value = isset($parts[1]) ? $parts[1] : true; + $value = isset($parts[1]) ? rawurldecode($parts[1]) : true; $carry[$parts[0]] = $value; return $carry; diff --git a/tests/unit/Grav/Common/Markdown/ParsedownTest.php b/tests/unit/Grav/Common/Markdown/ParsedownTest.php index 1b22f1c04..28069b14d 100644 --- a/tests/unit/Grav/Common/Markdown/ParsedownTest.php +++ b/tests/unit/Grav/Common/Markdown/ParsedownTest.php @@ -289,6 +289,8 @@ class ParsedownTest extends \Codeception\TestCase\Test $this->parsedown->text('[cnn.com](http://www.cnn.com)')); $this->assertSame('

google.com

', $this->parsedown->text('[google.com](https://www.google.com)')); + $this->assertSame('

complex url

', + $this->parsedown->text('[complex url](https://github.com/getgrav/grav/issues/new?title=[add-resource]%20New%20Plugin/Theme&body=Hello%20**There**)')); } public function testExternalLinksSubDir()