From 43e21420a39b18920a25a4f8d9bf23dd534f2d38 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+github@gmail.com> Date: Thu, 12 May 2022 15:18:23 +0200 Subject: [PATCH] fixes #28 --- TracToGitlabPlugin.php | 41 ++++++++++++++++++++++++++++++++++++++++- plugin.manifest | 2 +- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/TracToGitlabPlugin.php b/TracToGitlabPlugin.php index 01466ec..f8477b9 100644 --- a/TracToGitlabPlugin.php +++ b/TracToGitlabPlugin.php @@ -9,6 +9,13 @@ final class TracToGitlabPlugin extends StudIPPlugin implements StandardPlugin, S { parent::__construct(); + StudipFormat::addStudipMarkup( + 'gitlab', + '\bgitlab:([$#!]\d+|[0-9a-f]+)\b', + NULL, + 'TracToGitlabPlugin::markupGitlabLinks' + ); + if (!is_object($GLOBALS['user']) || $GLOBALS['user']->id === 'nobody') { return; } @@ -130,4 +137,36 @@ final class TracToGitlabPlugin extends StudIPPlugin implements StandardPlugin, S Navigation::addItem('/gitlab-dashboard', $navigation); } -} + + public static function markupGitlabLinks($markup, $matches, $contents) + { + if ($matches[1][0] === '#') { + return sprintf( + '<a href="%s" target="_blank">%s</a>', + 'https://gitlab.studip.de/studip/studip/issues/' . substr($matches[1], 1), + $matches[0] + ); + } + + if ($matches[1][0] === '!') { + return sprintf( + '<a href="%s" target="_blank">%s</a>', + 'https://gitlab.studip.de/studip/studip/merge_requests/' . substr($matches[1], 1), + $matches[0] + ); + } + + if ($matches[1][0] === '$') { + return sprintf( + '<a href="%s" target="_blank">%s</a>', + 'https://gitlab.studip.de/studip/studip/snippets/' . substr($matches[1], 1), + $matches[0] + ); + } + + return sprintf( + '<a href="%s" target="_blank">%s</a>', + 'https://gitlab.studip.de/studip/studip/commit/' . $matches[1], + substr($matches[0], 0, 15) + ); + }} diff --git a/plugin.manifest b/plugin.manifest index 3fa6aee..921fb27 100644 --- a/plugin.manifest +++ b/plugin.manifest @@ -1,5 +1,5 @@ pluginname=Trac to gitlab converter pluginclassname=TracToGitlabPlugin origin=UOL -version=1.1.1 +version=1.1.2 studipMinVersion=5.0 -- GitLab