Website Platform + Themes
Creek is fundamentally a flexible website platform.
Design toolkit: Themes
You can edit themes with the Theme Toolkit and our npm package called:
This allows you to edit theme files on your desktop code editing environment, and use things like
git and build tools like webpack, browserify, or gulp.
Get theme path:
This gives you the theme folder including, importantly, the ID, which is different for each theme, and generated when you create the theme.
Adds anti-cache string based on the last-modified time of the file, and includes the current theme directory.
You can define options for a theme with a flexible YAML-compatible options tool.
When editing the theme, go to the Options editor, and add YAML data to the options text editor that appears.
Working with git,
thm, and options
You should also store a copy of this YAML data in
theme.json so that it's committed to git.
However, there is no current way to push the
options.yml file to the remote Themes API. You must manually edit the options YAML data in the browser-based theme options editor. This prevents you from overriding options that were edited by the user in the browser.
Also, each theme has a different copy of the options, so if you are using
thm then you must manually copy the options YAML data between each version (or sync'd git branch) of the theme by using the browser-based theme options editor.
Later on, we will figure out a workflow for
options.yml that will let you push changes to the remote theme, without overriding the changes made in the browser. (If you have ideas, let us know. It's a tricky issue.)
Announcement Banner: Message: We are running a fundraiser. Please donate today! Visible: yes Button Text: Donate Button URL: /donate
Add this tag to your theme to output the options:
All of the keys in your YAML data will be converted to camel-case. So
Announcement Banner becomes
This will render as:
noin your options in place of
false. YAML by default will convert these to booleans. This allows for a more "natural" option language for users without code experience.