diff --git a/SeacmsAppPlugin.php b/SeacmsAppPlugin.php index 722bc47..b3dcae2 100644 --- a/SeacmsAppPlugin.php +++ b/SeacmsAppPlugin.php @@ -37,7 +37,10 @@ class SeacmsAppPlugin extends AbstractPicoPlugin implements LateApiAware 'POST pages/(.*)/create' => 'createPage', // TODO only define for POST 'GET pages' => 'apiPagesBase', 'GET pages/(.*)' => 'apiPageBase', - 'GET pages/(.*)/md' => 'apiPageAsMd' + 'GET pages/(.*)/md' => 'apiPageAsMd', + 'GET pages/(.*)/(.*)/md' => 'apiPageAsMd2Levels', + 'GET pages/(.*)/(.*)/(.*)/md' => 'apiPageAsMd3Levels', + 'GET pages/(.*)/(.*)/(.*)/(.*)/md' => 'apiPageAsMd4Levels', ]; } @@ -100,11 +103,37 @@ class SeacmsAppPlugin extends AbstractPicoPlugin implements LateApiAware $pages = $this->getPico()->getPages(); if (array_key_exists($pageName,$pages)){ - return new MdResponse(200,$pages[$pageName]['raw_content']); + return new MdResponse(200,$pages[$pageName]['raw_content'],[ + 'Content-Disposition' => 'inline; filename="'.str_replace('/','-',$pageName).'.md"' + ]); } else { return new JsonResponse(404,['code'=>404,'reason'=>"Page '$pageName' has not been found !"]); } } + /** + * method to see page as md + * @return JsonResponse + */ + public function apiPageAsMd2Levels(string $folder1,string $pageName): JsonResponse + { + return $this->apiPageAsMd("$folder1/$pageName"); + } + /** + * method to see page as md + * @return JsonResponse + */ + public function apiPageAsMd3Levels(string $folder1,string $folder2,string $pageName): JsonResponse + { + return $this->apiPageAsMd("$folder1/$folder2/$pageName"); + } + /** + * method to see page as md + * @return JsonResponse + */ + public function apiPageAsMd4Levels(string $folder1,string $folder2,string $folder3,string $pageName): JsonResponse + { + return $this->apiPageAsMd("$folder1/$folder2/$folder3/$pageName"); + } } \ No newline at end of file