1.0.0 • Published 5 years ago

@linkorb/storybook-template-story-loader v1.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

storybook-template-story-loader

This addon for storybook allows to load multiple templates. \ It supports twig, handlebar, html, markdown templates.

Adding the package to an existing storybook project

To install addon:

npm install -D storybook-template-story-loader

or

yarn add -D storybook-template-story-loader

Storybook configuration for templates

Set the addon in the place you configure storybook like this:

import { AddStories, setConfigs } from 'storybook-template-story-loader';

const manifest = require('../public/build/manifest.json'); // twig manifest file

const options = {
  name: 'storybook name',
  manifest,
};

setConfigs(options);

const loadStories = () => {
  const templateData = require.context('../templates', true, /\.json$/);
  const templateTwigs = require.context('../templates', true, /\.twig$/);

  AddStories(templateTwigs, templateData, 'twig');
}

For handlebar template:

const loadStories = () => {
  const templateData = require.context('../src', true, /\.json$/);
  const templateHtml = require.context('../src', true, /\.html$/);
  const templateHandlebars = require.context('../src', true, /\.handlebars$/);

  AddStories(templateHtml);
  AddStories(templateHandlebars, templateData, 'handlebar');
}

const options = {
  name: 'storybook name',
};

setConfigs(options);

configure(loadStories, module);

Global Options

You can pass configuration object to set options.

import { AddStories, setConfigs } from 'storybook-template-story-loader';

const options = {
  ...
};

setConfigs(options);

options

KeyDescriptionTypeDefault
namename to display in the top left cornerString''
urlURL for name in top left corner to link toString'#'
goFullScreenshow story component as full screenBooleanfalse
showStoriesPaneldisplay panel that shows a list of storiesBooleantrue
showAddonPaneldisplay panel that shows addon configurationsBooleantrue
showSearchBoxdisplay floating search box to search through storiesStringfalse
addonPanelInRightshow addon panel as a vertical panel on the rightStringfalse
sortStoriesByKindsorts storiesStringfalse
hierarchySeparatorregex for finding the hierarchy separatorStringnull
hierarchyRootSeparatorregex for finding the hierarchy root separatorStringnull
sidebarAnimationssidebar tree animationsStringtrue
selectedAddonPanelid to select an addon panelStringundefined
enableShortcutsThe order of addons in the "Addon panel" is the same as you import them in 'addons.js'. The first panel will be opened by default as you run StorybookStringtrue
manifestmanifest object for twig templateString{}

Adding stories

To add stories:

import { AddStories } from 'storybook-template-story-loader';

AddStories(templates, data, type);

Templates and data

const templates = require.context('../src', true, /\.html$/);
const data = require.context('../src', true, /\.json$/);

Types

supported types are handlebar, twig, html, md.

Publishing to npm

npm login
npm publish --access public

License

This project is licensed under the MIT License - see the LICENSE.md file for details