public function chapterToMarkdown(Chapter $chapter): string
{
$text = '# ' . $chapter->name . "\n\n";
- $text .= $chapter->description . "\n\n";
+
+ $description = (new HtmlToMarkdown($chapter->descriptionHtml()))->convert();
+ if ($description) {
+ $text .= $description . "\n\n";
+ }
+
foreach ($chapter->pages as $page) {
$text .= $this->pageToMarkdown($page) . "\n\n";
}
{
$bookTree = (new BookContents($book))->getTree(false, true);
$text = '# ' . $book->name . "\n\n";
+
+ $description = (new HtmlToMarkdown($book->descriptionHtml()))->convert();
+ if ($description) {
+ $text .= $description . "\n\n";
+ }
+
foreach ($bookTree as $bookChild) {
if ($bookChild instanceof Chapter) {
$text .= $this->chapterToMarkdown($bookChild) . "\n\n";
public function test_chapter_markdown_export()
{
$chapter = $this->entities->chapter();
+ $chapter->description_html = '<p>My <strong>chapter</strong> description</p>';
+ $chapter->save();
$page = $chapter->pages()->first();
+
$resp = $this->asEditor()->get($chapter->getUrl('/export/markdown'));
$resp->assertSee('# ' . $chapter->name);
$resp->assertSee('# ' . $page->name);
+ $resp->assertSee('My **chapter** description');
}
public function test_book_markdown_export()
{
$book = Book::query()->whereHas('pages')->whereHas('chapters')->first();
+ $book->description_html = '<p>My <strong>book</strong> description</p>';
+ $book->save();
+
$chapter = $book->chapters()->first();
+ $chapter->description_html = '<p>My <strong>chapter</strong> description</p>';
+ $chapter->save();
+
$page = $chapter->pages()->first();
$resp = $this->asEditor()->get($book->getUrl('/export/markdown'));
$resp->assertSee('# ' . $book->name);
$resp->assertSee('# ' . $chapter->name);
$resp->assertSee('# ' . $page->name);
+ $resp->assertSee('My **book** description');
+ $resp->assertSee('My **chapter** description');
}
public function test_book_markdown_export_concats_immediate_pages_with_newlines()