I’m really impressed by the grav framework and it felt easy at the start but I’m really confused about creating custom pages. I’ve done the “blog tutorial” but it was barely a glimpse to understand the structure.
I want to create a simple portfoliio website, with single home page that contains projects, each project has a subpage.
Project overview on the main page will have few things, like logo, image and description.
Project subpage should have ability to put custom fields, like project date, various ammount of images, might vary between each project page.
I’ve wordpress experience and creating custom page type with custom fields feels a bit easier, bit I’d like to give it a shot in Grav. Any pointers how can I achieve it?
As I can see, for each project overview page you could use default.md template.
For project subpage if you want to to manage the custom fields content in admin, you will need custom blueprints. Page blueprints is where you configure page admin custom tabs and fields. See blueprints docs
As Hugo said, look into blueprints for making it easy to edit in admin. Other than that, you would only need to make different templates for each page type (overview, project page, project subpage) and assign them as you normally would by naming the Markdown-files appropriately.
Remember that FrontMatter is fairly agnostic, you can use any YAML data in any Markdown-file for assigning variables, arrays, file-paths, etc. For example, you could assign project date as simply as project_date: 2016-10-16 and images like this:
images:
- file: hat.jpg
name: Hats
description: Lorem Ipsum
- file: cat.jpg
name: Cats
description: Lorem Ipsum
- file: that.jpg
name: Thats
description: Lorem Ipsum
Of course, Grav’s media mechanisms also allows you to iterate over all images found in a page’s folder too.