66use Illuminate \Contracts \Foundation \Application ;
77use Illuminate \Contracts \View \Factory ;
88use Illuminate \Http \RedirectResponse ;
9+ use Illuminate \Http \Request ;
10+ use Illuminate \Http \Response ;
911use Illuminate \View \View ;
1012
1113class DocsController extends Controller
@@ -17,9 +19,9 @@ class DocsController extends Controller
1719 /**
1820 * Handle the incoming request.
1921 *
20- * @return Application|Factory|View|RedirectResponse
22+ * @return Application|Factory|View|RedirectResponse|Response
2123 */
22- public function __invoke (Documentation $ docs , ?string $ page = null )
24+ public function __invoke (Request $ request , Documentation $ docs , ?string $ page = null )
2325 {
2426 if ($ page === null ) {
2527 return redirect ()->route ('docs ' , [self ::DEFAULT_PAGE ]);
@@ -29,10 +31,14 @@ public function __invoke(Documentation $docs, ?string $page = null)
2931 abort (404 );
3032 }
3133
32- $ index = $ docs ->getIndex (config ('site.defaultVersion ' ));
33-
3434 $ document = $ docs ->get (config ('site.defaultVersion ' ), $ page );
3535
36+ if ($ request ->accepts (['text/markdown ' , 'text/plain ' ]) && ! $ request ->accepts (['text/html ' ])) {
37+ return response ($ document ['markdown ' ])->header ('Content-Type ' , 'text/markdown; charset=utf-8 ' );
38+ }
39+
40+ $ index = $ docs ->getIndex (config ('site.defaultVersion ' ));
41+
3642 $ matter = $ document ['matter ' ];
3743 $ markdown = $ document ['markdown ' ];
3844 $ body = $ document ['html ' ];
0 commit comments