Dear Kanka users, here’s your early end of year present! Character sheets get another big update this time round, as well as lots of other quality of live changes to Kanka.
Character sheets keep getting better
We’re continuing our improvements to the marketplace with this release too. Character sheets get several new features that will hopefully simply them and allow for more interesting designs.
Firstly, you can now hide attributes. These don’t show up on an entity’s attributes tab, and a user can’t modify them from there. This new setting is for attributes that are calculations. To make an attribute hidden, click on the eye on the left of the attribute’s name.

An entity’s hidden attributes can be shown from the attributes editing form. This brings up a popup with all the hidden attributes.

The HTML field now has proper rendering to make our artisans’ lives easier.

Next up, the new @i18n()
translation engine now also allows passing variables. For example, the character sheet can contain @i18n('Editing :name', ['name' => $_entity_name])
. More details available in the marketplace docs.
The @foreach()
directive is now available on character sheets. This comes in hand with the next change.
A whole bunch of variables are now available when rendering a character sheet on an entity. For example, the entity’s name can be displayed with {{ $_entity_name }}
, or a character’s appearances with @foreach ($_character_appearances as $name => $appearance)
. The full list of available variables are available here.
The install plugin workflow and interface is now better. For members who only have a single boosted campaign, clicking on a plugin’s Install button automatically installs it in that campaign. For those who have multiple options, the interface now clearly has an Install button next to each boosted campaign.

And lastly, attributes in the marketplace and in Kanka now support a dropdown selection. This is available by having a normal attribute with [range:London,Berlin,Zurich]
in the attribute name. When using the live editing
of the attribute, the field will be a dropdown of the options instead of a free text. When editing a character’s attributes, the field is still a text field.

Kanka improvements before winter sets in
The code that parses mentions in the text editor is now more flexible. This means that mentions no longer disappear when using a plugin like “dark mode reader”.
When viewing an entity with the relation explorer, mirrored relations who have a different relation name now appear as two arrows instead of just one.
We’ve removed the position field when editing entity abilities, and abilities now have a new reorder abilities interface.

When creating or editing a timeline, the eras tab is no longer available, and is accessible as a subpage instead. This now means that timeline eras have bulk actions, and other improvements to the user experience.

The timeline element’s icon field now suggests icons the same way the map marker field does. Ten recently used, padded with the ten most popular icons in Kanka are shown when the field is focused on.
Timeline elements individually get a new option to display the linked event’s date.

When filtering on attributes, the !
prefix on the attribute value is now parsed to mean “Look for entities with the attribute that doesn’t have this value”. Simply writing !
as the value searches for entities with the attribute that isn’t empty.
Quick links get a new filters field for entity links, to be able to pass filters to the various subpages, thus changing the order in which elements in a table display. Quick links also get a new active field, that is active by default. An inactive quick link won’t be visible in the campaign’s sidebar.
Most pop-up forms now use the same layout as the quick creator. We’ve also fixed all the issues with weird borders in those popups.
The entities API endpoint now includes the same urls
array as the other endpoints does for entities.
Lastly, users no longer need to log in to hide ads on a boosted campaign.
Under the hood
We’ve also made several changes to Kanka’s code that should be invisible to our users, but which have a large impact on our lives as developers.
Kanka uses the VueJS framework in several parts of the app. The framework and code now uses version 3 instead of version 2.
The code related to posts is slowly migrating from the old entity-note
nomenclature to the more recent post
one. With this update, this change impacts urls and the API. A future update will focus on changing the database layer.
And as always, bug fixes
When editing a post that has “admin” or “self” as the visibility, but the permission allows another user to edit the post, the visibility field is now invisible instead of showing just “all” as the visibility.
Fixed a bug in the permission engine for roles. It could cause a view permission to be set on an entity type, but members not being able to see the entities.
The events sidebar link defaults to the nested view like the rest of the sidebar links.
When uploading an image in the text editor on a boosted campaign as a non-admin, or uploading a non-image file, the error message now properly displays what the issue is instead of wrongly saying that the campaign isn’t boosted.
The inventory quantity field now properly renders as a numeric field.
When installing a plugin from the marketplace, the plugin highlighting on the link works again.
Fixed a bug where calendars with a parent calendar would sometimes crash in the yearly view mode.
Lastly, the visibility field on map marker presets no longer switches back to all when editing.
Marketplace commissions with Salvatos for a cause
To celebrate the release of Kanka 1.37 and all the improvements it includes for the Marketplace, 37% of all money received through Salvatos‘ Ko-fi page from now until 23:59 on December 30, 2022 (Eastern time) will be donated to Doctors Without Borders Canada for worldwide emergency response and medical help.
That’s it for this update! If you missed the previous one, you can read it here.
As always, thank you to our amazing subscribers who make these frequent updates possible. Come join us and our community on our Discord server!
Photo by Amélie Mourichon on Unsplash
I have a boosted campaign but do not see an option for accessing/creating Timelines?
The menu pane on the left side has World: Characters/Locations/Maps/Organizations/Families/Calendars/Creatures/Races; Campaign: Quests/Journals/Items/Events/Abilities; Notes; Other: Tags/Relations/Gallery/Attribute Templates.
I was hoping to use one to organize the flow of a few events in a world-building context to make sure they were coherent. Thanks!
My bad. It has to be turned on as a module.
Thanks to everyone’s generosity, we raised a total of 96 CAD for Doctors Without Borders through CSS tips and commissions! That’s equivalent to almost 10 thermal blankets for emergency response, or 2 safe delivery kits to assist in uncomplicated births that don’t require surgical intervention. Thank you all and happy new year! <3