Exporter Configuration

An exporter can be configured in many ways, both in terms of its description/metadata and behavior. All exporter configuration is done through modifications to exporter.json file located in the package root.

This is an example of exporter.json taken from the Flutter Exporter:

{
    "id": "io.supernova.html-preview",
    "name": "HTML Preview",
    "description": "Exporter for visual preview of design system elements, effectively generating static HTML documentation",
    "source_dir": "src",
    "version": "1.0.0",
    "tags": [
        "HTML",
        "CSS",
        "Preview"
    ],
    "author": "Jiri Trecak",
    "organization": "Supernova",
    "homepage": "https://supernova.io",
    "config": {
        "output": "output.json",
        "sources": "sources.json",
        "js": "src/js/helpers.js"
    },
    "engines": {
        "pulsar": "1.0.0",
        "supernova": "1.0.0"
    },
    "contributes": {
        "configuration": [{
            "default": true,
            "key": "generateColors",
            "label": "Generate color list page",
            "type": "boolean"
        }, {
            "default": true,
            "key": "generateBorders",
            "label": "Generate border list page",
            "type": "boolean"
        }]
    }
}

Exporter Store Information

Following is the list of all keys you can use to configure your exporter in terms of how others see it:

id (required)

Unique exporter identifier. Using reverse domain name notation is recommended. When publishing to Exporter Store, the package must always have a unique identifier not present in the store already, unless you are uploading an update to an existing package.

name (required)

Name of the exporter. We recommend some nice, memorable name. You don't have to put the platform into the name, because you have tags for the same purpose. Never name your exporter as [X] exporter - the "exporter" part is in many cases added by the system which results in Flutter exporter exporter :)

description (required)

Exporter description. Describe what the exporter does, how people should use it, and anything you would like to state there. If you want to put contact where people can talk with you or do a bit of self-promotion in regards to the exporter, feel free to do that :) We believe people should take pride in their hard work.

Currently, only multi-line plain text can be used. However, we are working on markdown description support, which will align with the release of our documentation system.

author (optional)

Name or nickname of the author or the company who created the exporter.

organization (optional)

Name of the organization which created the exporter. You can use author and organization together, or just one, or none if you want to remain anonymous, your choice.

homepage (optional)

Marketing URL you want others to visit when they land on the detail page of your exporter.

tags (required)

An array of tags that define your exporter. Some examples are Flutter, tokens,styles,apple,android and so on. Always, at minimum, put platform and usage tags. At a minimum, one tag is required otherwise exporter.json will not validate properly.

Exporter Configuration

Following is the list of all keys you can use to configure exporter behavior:

source_dir (required)

The directory from which all Pulsar blueprints are loaded. src is recommended.

version (required)

The semantic version of the current version of the exporter, written as major.minor.patch. Shorthand major.minor without patch information is also allowed.

config (required)

Contains three possible keys:

  • sources - URL to the source configuration file, must be a valid path to JSON file

  • output - URL to the output configuration file, must be a valid path to the JSON file

  • js - URL to the javascript helper file, must be a valid path to the JS file

sources and output are recommended, while js is optional.

engines (required)

Contains two possible keys:

  • pulsar - Language version to use. For now, only 1.0

  • supernova - SDK version to use. For now, only 1.0

Both keys are required.

contributes (optional)

Exporter contribution point that allows you to do advanced things, such as expose exporter configuration and have Supernova build UI for it. Please refer to contribution point documentation for details.

Please note that we are constantly reviewing the quality of the exporters. You should always avoid publishing exporters with offensive names, descriptions, or content, otherwise, we will remove it from the exporter store. Multiple offenses will result in the permanent removal of the user account from the platform.

We strive to build a lovely, living community that tries to push the limits of what is possible with design systems and code generation and offenses against it will not be tolerated.

Last updated