summaryrefslogtreecommitdiff
path: root/listeners/GenerateIndex.php
diff options
context:
space:
mode:
Diffstat (limited to 'listeners/GenerateIndex.php')
-rw-r--r--listeners/GenerateIndex.php22
1 files changed, 22 insertions, 0 deletions
diff --git a/listeners/GenerateIndex.php b/listeners/GenerateIndex.php
new file mode 100644
index 0000000..80dd481
--- /dev/null
+++ b/listeners/GenerateIndex.php
@@ -0,0 +1,22 @@
+<?php
+
+namespace App\Listeners;
+
+use TightenCo\Jigsaw\Jigsaw;
+
+class GenerateIndex
+{
+ public function handle(Jigsaw $jigsaw)
+ {
+ $data = collect($jigsaw->getCollection('posts')->map(function ($page) use ($jigsaw) {
+ return [
+ 'title' => $page->title,
+ 'categories' => $page->categories,
+ 'link' => rightTrimPath($jigsaw->getConfig('baseUrl')) . $page->getPath(),
+ 'snippet' => $page->getExcerpt(),
+ ];
+ })->values());
+
+ file_put_contents($jigsaw->getDestinationPath() . '/index.json', json_encode($data));
+ }
+}