1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-23 15:22:41 +01:00

Normalize Phriction links when looking them up in remarkup

Summary: Fixes T10845.

Test Plan: Verified that `[[ quack ]]` and `[[ QUACK ]]` both work. Previously, the link had to exactly match the capitalization of the target.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T10845

Differential Revision: https://secure.phabricator.com/D15777
This commit is contained in:
epriestley 2016-04-20 19:04:22 -07:00
parent 93e341fbda
commit 34c488e165

View file

@ -104,6 +104,7 @@ final class PhrictionRemarkupRule extends PhutilRemarkupRule {
foreach ($metadata as $spec) { foreach ($metadata as $spec) {
$link = $spec['link']; $link = $spec['link'];
$slug = PhabricatorSlug::normalize($link);
$name = $spec['explicitName']; $name = $spec['explicitName'];
$class = 'phriction-link'; $class = 'phriction-link';
@ -111,24 +112,24 @@ final class PhrictionRemarkupRule extends PhutilRemarkupRule {
// in text as: "Title" <link>. Otherwise, we'll just render: <link>. // in text as: "Title" <link>. Otherwise, we'll just render: <link>.
$is_interesting_name = (bool)strlen($name); $is_interesting_name = (bool)strlen($name);
if (idx($existant_documents, $link) === null) { if (idx($existant_documents, $slug) === null) {
// The target document doesn't exist. // The target document doesn't exist.
if ($name === null) { if ($name === null) {
$name = explode('/', trim($link, '/')); $name = explode('/', trim($slug, '/'));
$name = end($name); $name = end($name);
} }
$class = 'phriction-link-missing'; $class = 'phriction-link-missing';
} else if (idx($visible_documents, $link) === null) { } else if (idx($visible_documents, $slug) === null) {
// The document exists, but the user can't see it. // The document exists, but the user can't see it.
if ($name === null) { if ($name === null) {
$name = explode('/', trim($link, '/')); $name = explode('/', trim($slug, '/'));
$name = end($name); $name = end($name);
} }
$class = 'phriction-link-lock'; $class = 'phriction-link-lock';
} else { } else {
if ($name === null) { if ($name === null) {
// Use the title of the document if no name is set. // Use the title of the document if no name is set.
$name = $visible_documents[$link] $name = $visible_documents[$slug]
->getContent() ->getContent()
->getTitle(); ->getTitle();