Content
Stancy uses spatie/sheets to parse your data files. This allows you to use Markdown (with YAML frontmatter), JSON or YAML files.
Collections
Before you can start creating content you have to configure your collection(s).
<?php
use Spatie\Sheets\ContentParsers\JsonParser;
return [
'default_collection' => 'static',
'collections' => [
'static',
'blog',
'data' => [
'content_parser' => JsonParser::class,
'extension' => 'json',
],
],
];The above configuration will add three collections static, blog and data. The first two use the markdown with YAML frontmatter by default but the data collection uses JSON.
Sheets
The single files in a collection are called "sheet". You have full control over the content of your sheets.
predefined Variables
Pages use some predefined variables which you can use to tell the page how to handle the data.
_viewdefines the view to use if the page get's rendered_pageDatadefines the PageData class to use_sheetsdefines a list of additional sheets or collections to load
---
_view: page.blog
_pageData: \App\Pages\Blog
_sheets:
posts: blog:*
---
# Blog---
_view: blog.post
_pageData: \App\Pages\Post
title: my first post
------
_view: blog.post
_pageData: \App\Pages\Post
title: my second post
---These markdown files with YAML frontmatter will generate the following array that's passed to your view.
[
'slug' => 'blog',
'contents' => '<h1>Blog</h1>',
'posts' => [
[
'slug' => 'first-post',
'title' => 'my first post',
],
[
'slug' => 'second-post',
'title' => 'my second post',
]
]
]Last updated
Was this helpful?