Configurations Guide

General JSON structure

Naviga Writer uses JSON to store configuration, and for this guide it is assumed that the reader has at least introductory knowledge of JSON.

Suggested Reading:

First sections in the config file

{
    "language": "en_EN",
    "labelLanguage": "en",
    "conceptServiceConfig": {
        //...
    },
    "contentHost": {
        //...
    },
    "plugins": [
        //...
    ]
}

"language"

The "language" and "labellanguage" sets the Writer language for the plugins, not the language to be used when you write the content.

See Language Configuration for more information.

"contentHost"

Configuration block for OpenContent search integration.

"conceptServiceConfig"

"conceptServiceConfig" is the service for the Concept plugin that sets the configuration for Open Content. The searches in Open Content are run through the "PropertyMap"-key sets the Writer property to map Open Contents properties.

conceptServiceConfig is no longer mandatory since Writer version 6.2

Plugins section in the config file

The plugins section contains a list of all the plugins that are included in the Writer setup. To be able to find if a certain plugin/function is included in the configuration, a search in the browser is recommended.

Plugin Configuration Block

It's worth taking a closer look at the "plugins"-section and the plugin objects inside it, since this is where most changes will be made, and when browsing the Writer Plugin List a plugin configuration block will always be listed for that specific plugin.

As seen in the example above, the "plugins"-property is a list which can contain many objects. These objects are each a configuration definition for a plugin.

{
    "id": "io.infomaker.myplugin",
    "name": "im-myplugin",
    "url": "https://plugins.writer.infomaker.io/v1/infomaker/im-myplugin/1.0.0/index.js",
    "style": "https://plugins.writer.infomaker.io/v1/infomaker/im-myplugin/1.0.0/style.css",
    "enabled": true,
    "data": {
        "apiKey": "abcd1234"
    }
}

Property

Description

"id"

This is the unique id given to a plugin which the plugin, depending on the plugin, uses to fetch its configuration defined in the "data"-property. Some plugins are able to appear multiple times in the plugins list, but they should always have a unique id. (This becomes more complex when overriding plugins by unit, see below)

"name"

The name of the plugin, can be found in the plugin config block on the plugin's readme page

"url"

Full path to the plugin's main javascript file, can be found in the plugin config block on the plugin's readme page

"style"

Full path to the plugin's CSS stylesheet. This will in some cases not be defined, when the plugin does not define its own style. Can be found in the plugin config block on the plugin's readme page

"enabled"

true or false, tells the Writer if the plugin should be loaded or not. Could be useful when needing to disable a plugin for a specific unit. More information on unit override further down.

"data"

The main configuration that the plugin has access to when running. What "data" contains is dependent on the plugin and more information about a plugin's configuration can be found on the plugin's readme page.

Be sure to read the plugin's readme page when changing configuration

Importance of Plugin order

The plugins are listed after each other, in an unspecified order. It is important to notice that the config is read from top to bottom. As they are read from top to bottom the plugin that is read first will be the one that executes a task. If two plugins can do the same operation, the first will do the task. An example is the configuration of the Iframely plugin and the social embed plugin, where Iframely then will manage the Instagram etc, video etc, instead of the social media embed plugin if that is placed below.

{
    "id": "se.infomaker.ximconcept.story",
    "name": "ximconcept",
    "url": "https://plugins.writer.infomaker.io/releases/7.8.5/im-ximconcept.js?concept=story",
    "style": "https://plugins.writer.infomaker.io/releases/7.8.5/im-ximconcept.css?concept=story",
    "enabled": true,
    "mandatory": false,
    "data": {
        "label": "Story",
        "name": "x-im/story",
        "enableHierarchy": true,
        "editable": true,
        "placeholderText": "Search stories"
    }
},
{
    "id": "se.infomaker.ximconcept.contentprofile",
    "name": "ximconcept",
    "url": "https://plugins.writer.infomaker.io/releases/7.8.5/im-ximconcept.js?concept=contentprofile",
    "style": "https://plugins.writer.infomaker.io/releases/7.8.5/im-ximconcept.css?concept=contentprofile",
    "enabled": true,
    "mandatory": false,
    "data": {
        "label": "Functiontags",
        "name": "x-im/content-profile",
        "enableHierarchy": true,
        "editable": true,
        "placeholderText": "Search functiontags"
    }
},

This is a general configuration guide and each configuration must be tested in a test environment before it is implemented in any production environment.

Configuration details

When you want to learn more about config, the user guide is a start. The functions are described for a normal set up of Writer. In most cases, the configuration documentation is found in the documentation of each plugin and the Writer User Guide provides you with links to each plugin documentation.

Version dependencies

The Writer version has dependencies to the plugin versions (or vice versa). This dependency is stated in the so-called dependency-part of the plugin documentation of each plugin. This must be checked carefully 🌟.

🌟 New configuration tool available: Writer configuration tool. Use it together with the Writer plugin documentation. This helpful tool is still under development and we gladly receive feedback.