Ok, you just finished to build your new awesome theme and you want to make it available as a Grav Skeleton.

The official Grav documentation does not provide any information about this point, while I'm writing this post, so I'd like to share how I use to build the skeleton, for mine Gravstrap Theme.

A skeleton is nothing more than a Grav user folder that contains configurations and pages. There should be no plugins or themes however, as those should be defined in .dependencies file.

The .dependencies file contains all the dependencies used by your theme. To build that file, you must start from an existing file and adapt it to reflect your theme dependencies.

The Grav team released their tool to build all the skeletons, unfortunately it works only for Mac. If you plan to use it, you can skip this tutorial, otherwise, the .dependencies file is used by their tool when they rebuild all skeletons, so you might omit it. But this is only a deduction.

Before starting, be sure you declared all the dependencies in the theme's blueprints.yaml file.

You must define all the theme required dependencies, also the ones required by plugins, because gpm do not install them recursively.

Now you are really ready to start.

You need a Github repository to handle your skeleton: create one and push your Grav application user folder, after you remove all themes and plugins from it.

Next, you must build a ready-to-run Grav install, which means you must build a zip file which contains a full Grav install, with your theme and all the plugins it requires.

You must do these steps to accomplish that task:

  • Download the latest Grav release
  • Remove the user folder and replace it with your skeleton repository
  • Install the theme and required plugins
  • Clear the cache
  • Compress the Grav Skeleton package as a zip file
  • Add it as a package in the latest Skeleton release.

There's a lot of work to do, but I made a simple script which makes all the hard work for you. It takes care to download the latest Grav release, build the skeleton and create the zip file and put it at the same level of the Grav package.

To get started, just grab that script, open it then configure the dir, repo and theme variables to fit your needs. When you are done, save the script and run it as follows:

sh make-grav-skeleton.sh

If everything works file, you should have the skeleton zip file in the folder where you run the script:


Now you are ready to complete the Skeleton building, uploading it to Github, but I guess you should test the application works as expected before go.

If everything is fine, create a new tag for your skeleton and push it to Github. Next go to the tag release at Github you just created, click on the tag link and then click on the Edit tag button. Upload the zip file in the file attachments field and publish the release to complete the process.

Next Post Previous Post

Related Posts