diff --git a/src/config-example.php b/src/config-example.php index de4e0d4..92d63b5 100644 --- a/src/config-example.php +++ b/src/config-example.php @@ -9,6 +9,9 @@ $config['lang'] = 'en'; // 'de' or 'en' //$config['theme'] = 'slim'; +// Open external links in new browser tab? (adds `target="_blank"` to external links) +//$config['openExternalLinksInNewTab'] = false; + // Hide directories having no 'index.md' in breadcrumbs //$config['showCompleteBreadcrumbs'] = false; diff --git a/src/server/logic/Context.php b/src/server/logic/Context.php index 799a0ce..94f9168 100644 --- a/src/server/logic/Context.php +++ b/src/server/logic/Context.php @@ -31,6 +31,7 @@ class Context { 'lang' => 'en', 'theme' => 'slim', 'demoMode' => false, + 'openExternalLinksInNewTab' => true, 'showCompleteBreadcrumbs' => true ); diff --git a/src/server/logic/RenderService.php b/src/server/logic/RenderService.php index 7fab70a..be63636 100644 --- a/src/server/logic/RenderService.php +++ b/src/server/logic/RenderService.php @@ -14,25 +14,30 @@ class RenderService { } public function renderMarkdown($markdownText, $isEditMode) { + $config = $this->context->getConfig(); + require_once __DIR__ . '/../lib/parsedown/Parsedown.php'; $html = Parsedown::instance()->text($markdownText); // Support `TODO` and `FIXME` $html = preg_replace('/(^|\\W)(TODO|FIXME):?(\\W|$)/', '$1$2$3', $html); - if ($isEditMode) { - // Append `?edit` to local links (in order to stay in edit mode) - $html = preg_replace_callback('|(