diff --git a/src/server/logic/EditorService.php b/src/server/logic/EditorService.php index b6a0e1c..5265c94 100644 --- a/src/server/logic/EditorService.php +++ b/src/server/logic/EditorService.php @@ -39,7 +39,7 @@ class EditorService { gzwrite ($fp, $markdownText); gzclose($fp); - return $this->context->getRenderService()->renderMarkdown($markdownText); + return $this->context->getRenderService()->renderMarkdown($markdownText, true); } } diff --git a/src/server/logic/Main.php b/src/server/logic/Main.php index 7c51583..8496866 100644 --- a/src/server/logic/Main.php +++ b/src/server/logic/Main.php @@ -97,7 +97,7 @@ class Main { $data['articleFilename'] = $articleFilename; $articleMarkdown = file_get_contents($this->context->getArticleBaseDir() . $articleFilename); $data['articleMarkdown'] = $articleMarkdown; - $data['articleHtml'] = $this->context->getRenderService()->renderMarkdown($articleMarkdown); + $data['articleHtml'] = $this->context->getRenderService()->renderMarkdown($articleMarkdown, $isEditMode); $this->renderPage($data); } diff --git a/src/server/logic/RenderService.php b/src/server/logic/RenderService.php index 5d422b2..59485e2 100644 --- a/src/server/logic/RenderService.php +++ b/src/server/logic/RenderService.php @@ -2,9 +2,23 @@ class RenderService { - public function renderMarkdown($markdownText) { + public function renderMarkdown($markdownText, $isEditMode) { require_once __DIR__ . '/../lib/parsedown/Parsedown.php'; - return Parsedown::instance()->text($markdownText); + $html = Parsedown::instance()->text($markdownText); + if ($isEditMode) { + // Append `?edit` to local links (in order to stay in edit mode) + $html = preg_replace_callback('|(