Skip to content
This repository has been archived by the owner on Aug 4, 2023. It is now read-only.

hotdoy/grav-theme-wheat

Repository files navigation

Wheat - Starter-kit for Grav CMS

Discord Get Grav

Live project

Description

Wheat is a theme for Grav CMS. It's goal is to give a reasonable starting point for building sustainable websites by limiting overheads and development tooling. It takes a responsible approach to web development and try to lead by examples while offering common patterns and related solutions.

It uses no build tool, no framework of any kind, only needs a basic LAMP setup, uses Github Actions for automatic deployment and takes about 30 minutes to setup. Wheat is mostly aimed at front-end developers or anyone familiar with HTML, CSS, Twig, Javascript and Grav in general.

⚠️ I'm in the process of restructuring the docs so things might get a bit bumpy.

Docs (WIP)

Stuff I still haven't documented

Page templates

  • Blog
  • Calendar
  • Collection
  • Default
  • Event
  • FAQ
  • Form
  • Product
  • Post

Modular templates

  • Actions
  • Carousel
  • Details
  • Editor
  • Emphasis
  • Form
  • Map
  • Media
  • Mediatext
  • Numbers
  • Quotes

External libraries shipped with Wheat

_ROOT folder

The theme comes with a _ROOT directory where you should keep everything that will eventually go in your server's webroot. Doing this, you can be certain it follows the theme when using the Github Actions or when you move you theme around. Don't forget to manually move those files after you make a new release from the _ROOT folder to you webroot. This usually contains favicons, webmanifest, serviceworker.js, etc.

Going Live

  • From the Grav Admin Dashboard: Use the backup generator to create a ZIP of the whole site.
  • Go to cPanel and use the File Manager to upload the ZIP to your server.
  • Unzip it.
  • Make sure everything is there, you might have to upload your .htaccess and other files manually, I don't know, just make sure it's alright.
  • Copy the content of user/themes/wheat/_ROOT at the root of your website.
  • I think that's it really.
  • Oh! and you might want to go over your plugins, themes and site settings since these should probably not be the same as what you used in development.

Github Actions

The theme comes with some Github Actions for deploying and purging Cloudflare.

To get the deployment up and running, you need to create a new ftp account trough cPanel, with the root folder pointing to the location of the theme and add the credentials as Github Secrets (from your repo, go to settings, then Secrets from the sidebar).

Check the official docs

  • FTP_HOST
  • FTP_USER
  • FTP_PASSWORD

Cloudflare cache can also be purged at the same time if you need it, given you have access to an API token and the zone.

Check the official docs

  • CLOUDFLARE_TOKEN
  • CLOUDFLARE_ZONE

Release process

Releasing is a pretty straightforward process once your Github Actions are properly configured.

  • Make sure all of your changes are committed.
  • Update the version number in blueprint.yaml.
  • Add an entry to CHANGELOG.md with a short description of your changes (Grav will show the changelog to the user in various locations).
  • Commit the changes using the new version number as summary.
  • Push to origin.
  • Create a pull request.
  • Merge (push) the pull request into master.
  • Github Actions should take over and deploy your changes.

Front-end author UI

The "Front-end author UI" is meant to speed up the content management while in development or staging. It coud technically be used in Production but cannot be recommended since you might end up caching some of the front-end UI aimed at authors. You can activate this feature in the theme settings unde Admin/Front-end author UI.

Schema.org

Most page templates comes with their own schema.org implementation based on Google's recommendations. This can be a significant advantage when "selling" this starter kit as stakeholders usually take SEO seriously.