use BookStack\Entities\Tools\PageContent;
use BookStack\Exceptions\NotFoundException;
use BookStack\Exports\ExportFormatter;
-use BookStack\Exports\ZipExportBuilder;
+use BookStack\Exports\ZipExports\ZipExportBuilder;
use BookStack\Http\Controller;
use Throwable;
<?php
-namespace BookStack\Exports\ZipExportModels;
+namespace BookStack\Exports\ZipExports\Models;
-use BookStack\Exports\ZipExportFiles;
+use BookStack\Exports\ZipExports\ZipExportFiles;
use BookStack\Uploads\Attachment;
class ZipExportAttachment extends ZipExportModel
<?php
-namespace BookStack\Exports\ZipExportModels;
+namespace BookStack\Exports\ZipExports\Models;
-use BookStack\Exports\ZipExportFiles;
+use BookStack\Exports\ZipExports\ZipExportFiles;
use BookStack\Uploads\Image;
class ZipExportImage extends ZipExportModel
<?php
-namespace BookStack\Exports\ZipExportModels;
+namespace BookStack\Exports\ZipExports\Models;
use JsonSerializable;
<?php
-namespace BookStack\Exports\ZipExportModels;
+namespace BookStack\Exports\ZipExports\Models;
use BookStack\Entities\Models\Page;
use BookStack\Entities\Tools\PageContent;
-use BookStack\Exports\ZipExportFiles;
+use BookStack\Exports\ZipExports\ZipExportFiles;
class ZipExportPage extends ZipExportModel
{
<?php
-namespace BookStack\Exports\ZipExportModels;
+namespace BookStack\Exports\ZipExports\Models;
use BookStack\Activity\Models\Tag;
<?php
-namespace BookStack\Exports;
+namespace BookStack\Exports\ZipExports;
use BookStack\Entities\Models\Page;
use BookStack\Exceptions\ZipExportException;
-use BookStack\Exports\ZipExportModels\ZipExportPage;
+use BookStack\Exports\ZipExports\Models\ZipExportPage;
use ZipArchive;
class ZipExportBuilder
<?php
-namespace BookStack\Exports;
+namespace BookStack\Exports\ZipExports;
use BookStack\Uploads\Attachment;
use BookStack\Uploads\AttachmentService;
<?php
-namespace BookStack\Exports;
+namespace BookStack\Exports\ZipExports;
use BookStack\App\Model;
-use BookStack\Entities\Models\Page;
-use BookStack\Exports\ZipExportModels\ZipExportAttachment;
-use BookStack\Exports\ZipExportModels\ZipExportImage;
-use BookStack\Exports\ZipExportModels\ZipExportModel;
-use BookStack\Exports\ZipExportModels\ZipExportPage;
+use BookStack\Exports\ZipExports\Models\ZipExportAttachment;
+use BookStack\Exports\ZipExports\Models\ZipExportImage;
+use BookStack\Exports\ZipExports\Models\ZipExportModel;
+use BookStack\Exports\ZipExports\Models\ZipExportPage;
use BookStack\Uploads\Attachment;
use BookStack\Uploads\Image;
public function buildReferences(ZipExportFiles $files): void
{
- // TODO - Parse page MD & HTML
+ // Parse page content first
foreach ($this->pages as $page) {
- $page->html = $this->parser->parse($page->html ?? '', function (Model $model) use ($files, $page) {
+ $handler = function (Model $model) use ($files, $page) {
return $this->handleModelReference($model, $page, $files);
- });
- // TODO - markdown
+ };
+
+ $page->html = $this->parser->parse($page->html ?? '', $handler);
+ if ($page->markdown) {
+ $page->markdown = $this->parser->parse($page->markdown, $handler);
+ }
}
// dd('end');
<?php
-namespace BookStack\Exports;
+namespace BookStack\Exports\ZipExports;
use BookStack\App\Model;
use BookStack\Entities\Queries\EntityQueries;