The MaxMind Zendesk theme is a fork of the Copenhagen theme (the default Zendesk Guide theme).
This project requires both Ruby and NodeJS packages for local development and building.
- Node >= 20
If your machine does not have the correct version of NodeJS installed, look into installing Node version manager.
npm install
Zendesk provides ZCLI to help with local Zendesk theme and app development. You need a Zendesk account and Zendesk API key to use ZCLI.
- Follow the ZCLI docs to install and set up ZCLI on your local machine. This repo was tested with the "Profile" method of authentication.
- Run
npm run develop
A list of recommended VSCode extensions has been provided in
.vscode/extensions.json. To install these extensions,
open the command pallete in VSCode and run the
Extensions: Show Recommended Extensions
command. The list of plugins will show
up in the Extensions pane of VSCode, where you can then choose to install them.
This project is configured to automatically fix code on file save, via .vscode/settings.json.
We are using PostHTML and a few PostHTML plugins to enhance the Zendesk templates during our build process. Most notably, we are using posthtml-include to allow us to break our templates into smaller, more readable templates.
For any new styles added to the theme, or when refactoring existing styles, it is recommended to use the Block Element Modifier (BEM) methodology so that we can keep styles organized and scoped appropriately.
IMPORANT! Zendesk's templating engine is Curlybars, not Handlebars! Curlybars is based on the Handlebars language, but has some subtle Zendeskisms built in.
A FESTIVUS.md file has been included to capture personal dislikes (The Airing of Grievances) and proposed improvements (Feats of Strength) for this project. Feel free to add to this file.