create-sourcebit
v0.10.0
Published
Create and configure a Sourcebit installation
Downloads
8
Readme
create-sourcebit
An interactive setup process for Sourcebit
Introduction
Sourcebit uses a configuration file of sourcebit.js
to define and configure all of its plugins. While this file can be created manually, this command-line interface provides an interactive setup that gathers enough information about the user's environment and content architecture to create a working configuration.
Every Sourcebit plugin must define the questions that should be asked and process the answers. This takes place via the getSetup
and getOptionsFromSetup
methods.
Plugin registry
The list of plugins offered by the interactive setup process is pulled from the plugins.json
file in the root of the repository. It's an array of objects with the following properties:
module
(String): The name of the plugin's npm module- Example:
sourcebit-source-contentful
- Example:
description
(String): A human-friendly description of the plugin- Example:
A Contentful source plugin for Sourcebit
- Example:
author
(String): The name/handle of the plugin's author- Example:
John Doe <[email protected]>
- Example:
type
(enum:source|target
): The type of plugin- Example:
source
- Example:
plugins.json
[
{
"module": "/Users/eduardoboucas/Sites/sourcebit-source-contentful",
"description": "A Contentful source plugin for Sourcebit",
"author": "Stackbit",
"type": "source"
},
{
"module": "/Users/eduardoboucas/Sites/sourcebit-target-jekyll",
"description": "A Sourcebit plugin for Jekyll",
"author": "Stackbit",
"type": "target"
}
]
Local plugin registry
You can create your own plugins.json
file and tell the setup process to use it. This is useful when you're developing a plugin locally and you want it to appear on the list of available plugins without having to publish it to the official registry.
To use a local plugin registry, create a file with the structure above and start the setup process with the --plugins
flag pointing to its path.
npx create-sourcebit --plugins=./my-plugins.json