@newwwton/addon-storysource
v5.3.0-alpha.23
Published
Stories addon for storybook
Downloads
44
Readme
Storybook Storysource Addon
This addon is used to show stories source in the addon panel.

Getting Started
First, install the addon
yarn add @storybook/addon-storysource --devAdd this line to your addons.js file
import '@storybook/addon-storysource/register';Use this hook to a custom webpack.config. This will generate a decorator call in every story:
module.exports = function({ config }) {
config.module.rules.push({
test: /\.stories\.jsx?$/,
loaders: [require.resolve('@storybook/source-loader')],
enforce: 'pre',
});
return config;
};Loader Options
The loader can be customized with the following options:
parser
The parser that will be parsing your code to AST (based on prettier)
Allowed values:
javascript- defaulttypescriptflow
Be sure to update the regex test for the webpack rule if utilizing Typescript files.
Usage:
module.exports = function({ config }) {
config.module.rules.push({
test: /\.stories\.tsx?$/,
loaders: [
{
loader: require.resolve('@storybook/source-loader'),
options: { parser: 'typescript' },
},
],
enforce: 'pre',
});
return config;
};prettierConfig
The prettier configuration that will be used to format the story source in the addon panel.
Defaults:
{
printWidth: 100,
tabWidth: 2,
bracketSpacing: true,
trailingComma: 'es5',
singleQuote: true,
}Usage:
module.exports = function({ config }) {
config.module.rules.push({
test: /\.stories\.jsx?$/,
loaders: [
{
loader: require.resolve('@storybook/source-loader'),
options: {
prettierConfig: {
printWidth: 100,
singleQuote: false,
},
},
},
],
enforce: 'pre',
});
return config;
};uglyCommentsRegex
The array of regex that is used to remove "ugly" comments.
Defaults:
[/^eslint-.*/, /^global.*/];Usage:
module.exports = function({ config }) {
config.module.rules.push({
test: /\.stories\.jsx?$/,
loaders: [
{
loader: require.resolve('@storybook/source-loader'),
options: {
uglyCommentsRegex: [/^eslint-.*/, /^global.*/],
},
},
],
enforce: 'pre',
});
return config;
};injectDecorator
Tell storysource whether you need inject decorator. If false, you need to add the decorator by yourself;
Defaults: true
Usage:
module.exports = function({ config }) {
config.module.rules.push({
test: /\.stories\.jsx?$/,
loaders: [
{
loader: require.resolve('@storybook/source-loader'),
options: { injectDecorator: false },
},
],
enforce: 'pre',
});
return config;
};Theming
Storysource will automatically use the light or dark syntax theme based on your storybook theme. See Theming Storybook for more information.

