🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

storybook-addon-html-document

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

storybook-addon-html-document

A Storybook addon that extracts and displays compiled syntax-highlighted HTML, and can load html documents.

latest
Source
npmnpm
Version
1.0.1
Version published
Weekly downloads
124
51.22%
Maintainers
1
Weekly downloads
 
Created
Source

Storybook Addon HTML DOCUMENT

A Storybook addon that extracts and displays compiled syntax-highlighted HTML, and can load html documents. It uses highlight.js for syntax highlighting.

Source of ideas

Expand @whitespace-se/storybook-addon-html

Getting Started

npm i --save-dev storybook-addon-html-document

Register addon

Create a file called main.js inside the .storybook directory and add the following content:

// .storybook/main.js
module.exports = {
    addons: [
        'storybook-addon-html-document'
    ],
}

Usage

Add withHTMLDOC as a global decorator inside .storybook/preview.js:

// .storybook/preview.js
// if you use @storybook/html.
//import { addDecorator } from '@storybook/html';
//import { withHTMLDOC } from 'storybook-addon-html-document/html';
import { addDecorator } from '@storybook/react';
import { withHTMLDOC } from 'storybook-addon-html-document/react';

addDecorator(withHTMLDOC);

The HTML is formatted with Prettier. You can override the Prettier config (except parser and plugins) by providing an object following the Prettier API override format:

// .storybook/preview.js
// if you use @storybook/html.
//import { addDecorator } from '@storybook/html';
//import { withHTMLDOC } from 'storybook-addon-html-document/html';
import { addDecorator } from '@storybook/react';
import { withHTML } from 'storybook-addon-html-document/react';

addDecorator(
  withHTML({
    prettier: {
      tabWidth: 4,
      useTabs: false,
      htmlWhitespaceSensitivity: 'strict',
    },
  }),
);

Matters need attention

  • Html-loader need to be included in your webpack configuration.
  • When the resource needs included in your html docments code are babel excluded, Or you can create a directory that is not hit by babel.
//Suggest moving to move stories native html resources outside the project.
baseConfig.module.rules.push({
    test: /\.(html)$/,
    include:[path.join(appPath,'/.storybook/resource')],
    exclude: path.join(appPath,'/public/index.html'),
    use: [{
        loader:'html-loader',
        options:{
            minimize:false
        }
    }]
})
//Setup file-loader Ensure that html native resources are properly loaded
baseConfig.module.rules.push({
    include:function(url){
        //排除loader注入文件
        if(!/node\_modules\/.*?\-loader/.test(url)){
            return true
        }else{
            // console.log(url)
        }
    },
    issuer:function(url){
        if(/\.storybook\/resource.+\.html/.test(url)){
            // console.log(url)
            return true
        }
    },
    loader:'file-loader',
    options: {
        name: 'static/media/[name].[hash:8].[ext]'
    }
})

Supported frameworks

When importing the decorator, use the correct path for your framework, e.g. storybook-addon-html-document/react for React or storybook-addon-html-document/html for HTML.

Right now, the addon can be used with these frameworks:

  • HTML
  • React

Keywords

storybook

FAQs

Package last updated on 07 Apr 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts