Fixed conctenation of direct book pages within markdown export

- Updated to ensure seperation with newlines.
- Added test to cover.

For #3341
This commit is contained in:
Dan Brown 2022-03-23 14:31:42 +00:00
parent 981807220c
commit 1c859e94e0
No known key found for this signature in database
GPG key ID: 46D9F943C24A2EF9
2 changed files with 23 additions and 4 deletions

View file

@ -326,7 +326,7 @@ class ExportFormatter
$text .= $this->pageToMarkdown($page) . "\n\n";
}
return $text;
return trim($text);
}
/**
@ -338,12 +338,12 @@ class ExportFormatter
$text = '# ' . $book->name . "\n\n";
foreach ($bookTree as $bookChild) {
if ($bookChild instanceof Chapter) {
$text .= $this->chapterToMarkdown($bookChild);
$text .= $this->chapterToMarkdown($bookChild) . "\n\n";
} else {
$text .= $this->pageToMarkdown($bookChild);
$text .= $this->pageToMarkdown($bookChild) . "\n\n";
}
}
return $text;
return trim($text);
}
}

View file

@ -420,6 +420,25 @@ class ExportTest extends TestCase
$resp->assertSee('# ' . $page->name);
}
public function test_book_markdown_export_concats_immediate_pages_with_newlines()
{
/** @var Book $book */
$book = Book::query()->whereHas('pages')->first();
$this->asEditor()->get($book->getUrl('/create-page'));
$this->get($book->getUrl('/create-page'));
[$pageA, $pageB] = $book->pages()->where('chapter_id', '=', 0)->get();
$pageA->html = '<p>hello tester</p>';
$pageA->save();
$pageB->name = 'The second page in this test';
$pageB->save();
$resp = $this->get($book->getUrl('/export/markdown'));
$resp->assertDontSee("hello tester# The second page in this test");
$resp->assertSee("hello tester\n\n# The second page in this test");
}
public function test_export_option_only_visible_and_accessible_with_permission()
{
$book = Book::query()->whereHas('pages')->whereHas('chapters')->first();