Publishing in the Store
How to list your Kimai extension in the Marketplace
If you create a plugin or any other kind of software around Kimai, which you want to see listed in the Store, follow these short guidelines.
The website is generated with Jekyll and managed at GitHub. It is translated to many languages, and there is a little more work required than just adding a markdown page. But not much … and it just needs a couple of minutes! You’ll get help at GitHub if something doesn’t work.
Adding a plugin
Let’s assume your developer prefix is acme
and your item name is foo
.
- Add your developer/company information to the
_data/developer.yml
file (see belowDeveloper information
):acme: name: Acme company username: acme photo: profile: "#"
- Create a store file definition at
_data/store/acme-foo.yml
for your item (see belowProduct information
):developer: acme icon: fas fa-home price: 0 bundle: name: "FooBundle" clone: "https://github.com/acme/foo.git" versions: - [ "2.0", "2.0" ]
- Copy and paste
_store/keleo-custom-content-bundle.md
to_store/acme-foo.md
and change:title: Foo type: plugin
You also need to replace
{% include store/keleo-custom-content-bundle.md %}
with some introductory text for your new item. - Create a translation for your plugin in
_data/en/store.yaml
:items: acme-foo: title: Foo — a cool plugin for Kimai intro: A longer introduction between approx. 100 and 180 character
The translation of the store pages will be done by the Team after merging your content.
Developer information
The information about yourself or your company comes from the developer.yml file.
It starts by defining your company/developer ID and then adding the following keys:
name
- your company or personal name (mandatory)description
- a short self-description in one sentence (mandatory)image
- full URL to your company logo or avatar (mandatory)
There are more keys available, especially to store contact information.
homepage
- full URL to your website (optional)github
- your GitHub organization or profile URL (optional)twitter
- full URL to your twitter profile (optional)
The ID should be built from the lowercased version of your name: use only alphabetical character and remove all special chars and spaces.
Use one of the existing developer entries as example, copy & paste and adapt to your needs:
kevinpapst:
name: Kevin Papst
description: Freelancer, PHP professional and Kimai core developer since 2007
image: https://avatars1.githubusercontent.com/u/533162?s=460&v=4
homepage: https://www.kevinpapst.de
github: https://github.com/kevinpapst
twitter: https://twitter.com/keleo
Product information
Create a new markdown file in the _store directory, follow the filename pattern:
company-short-descriptive-name.md
Within the Jekyll Front Matter you have the following attributes available:
name
- a name for your Store entry will be used in the list view and in the title of the detail screen (mandatory)intro
- a descriptive sentence for this entry will be used in the detail screen (mandatory)developer
- your company/developer ID (mandatory)date
- date of the last release (mandatory)image
- product image (optional)icon
- fontawesome icon class (optional, but should be given when no image is supplied - a fallback icon will be used if not given)price
- the item price (optional, if not given explain pricing structure in the full-text)version
- last release version (optional)download
- full URL to the download if available (optional)documentation
- slug to your (optional) documentation pagegithub
- full URL to the GitHub project (optional)screenshot
- full URL to an image / screenshot (optional)new
- indicates that the Store item is new, represents a visible state in the shop (set totrue
- this will be removed after a while) (optional)featured
- a boolean indicating if this item will be featured in the Store (decision is done by the project maintainer)features
- array with up to 6 features (short description with approx. 5 words each, currently only shown in the list view iffeatured
istrue
) (optional)tags
- array with up to 4 tag, try to stay in the range of existing tags if applicable (optional)
A full example can be seen in the file keleo-css-custom-bundle.md.