- $tree = collect($headers)->map(function($header) {
- $text = trim(str_replace("\xc2\xa0", '', $header->nodeValue));
- if (strlen($text) > 30) {
- $text = substr($text, 0, 27) . '...';
- }
-
- return [
- 'nodeName' => strtolower($header->nodeName),
- 'level' => intval(str_replace('h', '', $header->nodeName)),
- 'link' => '#' . $header->getAttribute('id'),
- 'text' => $text,
- ];
- })->filter(function($header) {
- return strlen($header['text']) > 0;
- });
-
- // Normalise headers if only smaller headers have been used
- $minLevel = $tree->pluck('level')->min();
- $tree = $tree->map(function ($header) use ($minLevel) {
- $header['level'] -= ($minLevel - 2);
- return $header;
- });
-
- return $tree->toArray();
+ $draft = new PageRevision();
+ $draft->page_id = $page->id;
+ $draft->slug = $page->slug;
+ $draft->book_slug = $page->book->slug;
+ $draft->created_by = user()->id;
+ $draft->type = 'update_draft';
+ return $draft;