X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/c7a2d568bf693add30c8402d68d1f46f09a44c5b..refs/pull/2522/head:/app/Entities/Tools/PageContent.php diff --git a/app/Entities/Tools/PageContent.php b/app/Entities/Tools/PageContent.php index 2d3b324a1..62982f4ad 100644 --- a/app/Entities/Tools/PageContent.php +++ b/app/Entities/Tools/PageContent.php @@ -1,9 +1,14 @@ page->html = $this->formatHtml($html); $this->page->text = $this->toPlainText(); + $this->page->markdown = ''; + } + + /** + * Update the content of the page with new provided Markdown content. + */ + public function setNewMarkdown(string $markdown) + { + $this->page->markdown = $markdown; + $html = $this->markdownToHtml($markdown); + $this->page->html = $this->formatHtml($html); + $this->page->text = $this->toPlainText(); + } + + /** + * Convert the given Markdown content to a HTML string. + */ + protected function markdownToHtml(string $markdown): string + { + $environment = Environment::createCommonMarkEnvironment(); + $environment->addExtension(new TableExtension()); + $environment->addExtension(new TaskListExtension()); + $environment->addExtension(new CustomStrikeThroughExtension()); + $converter = new CommonMarkConverter([], $environment); + return $converter->convertToHtml($markdown); } /**