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('|(