Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@storyblok/richtext

Package Overview
Dependencies
Maintainers
0
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@storyblok/richtext

Storyblok RichText Resolver

  • 0.2.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
31K
decreased by-15.54%
Maintainers
0
Weekly downloads
 
Created
Source

@storyblok/richtext

A custom resolver for the Storyblok Richtext field.


Storyblok JS npm

Follow @Storyblok Follow @Storyblok

🚀 Usage

If you are first-time user of the Storyblok, read the Getting Started guide to get a project ready in less than 5 minutes.

Installation

npm install @storyblok/richtext

or yarn:

yarn add @storyblok/richtext

or pnpm:

pnpm add @storyblok/richtext

Basic

import { richTextResolver } from '@storyblok/richtext'

const { render } = richTextResolver()

const html = render(doc)

document.querySelector<HTMLDivElement>('#app')!.innerHTML = `
  <div>
  ${html}
  </div>
`

Overwrite resolvers

To overwrite an existing resolver, you can pass a property called resolvers available on the richTextResolver options.

import { MarkTypes, richTextResolver } from '@storyblok/richtext'

const html = richTextResolver({
  resolvers: {
    [MarkTypes.LINK]: (node) => {
      return `<button href="${node.attrs?.href}" target="${node.attrs?.target}">${node.children}</button>`
    },
  },
}).render(doc)

Typing with Generics

It is possible to ensure correct typing support in a framework-agnostic way by using Typescript Generics

  • Vanilla string
  • Vue VNode
  • React React.ReactElement

This way the @storyblok/richtext is ignorant of framework specific types, avoiding having to import them and having vue react etc as dependencies.

// Vanilla
const options: SbRichtextOptions<string> = {
  resolvers: {
    [MarkTypes.LINK]: (node: Node<string>) => {
      return `<button href="${node.attrs?.href}" target="${node.attrs?.target}">${node.children}</button>`
    },
  },
}

const html = richTextResolver<string>(options).render(doc)
// Vue
const options: SbRichtextOptions<VNode> = {
  renderFn: h,
}
const root = () => richTextResolver<VNode>(options).render(doc)

Setup

pnpm install

This command will install the dependencies for the workspace, including the dependencies for the playgrounds under /playground and different framework wrappers /packages

Run Playground

To run the vanilla Typescript playground:

pnpm run playground

Vue playground:

pnpm run playground:vue

React playground:

pnpm run playground:react

Alternatively you can run the following command to run all the playgrounds:

pnpm run playground:all

Build

To build the core package:

pnpm run build

To build the wrappers under /packages:

pnpm run build:packages

Lint

To lint the core package:

pnpm run lint

To lint the wrappers under /packages:

pnpm run lint:packages

Alternatively, you can run the following command to fix the linting issues:

pnpm run lint:fix

Test

To run the tests for the core package:

pnpm run test
  • Storyblok Technology Hub: Storyblok integrates with every framework so that you are free to choose the best fit for your project. We prepared the technology hub so that you can find selected beginner tutorials, videos, boilerplates, and even cheatsheets all in one place.
  • Getting Started: Get a project ready in less than 5 minutes.
  • Storyblok CLI: A simple CLI for scaffolding Storyblok projects and fieldtypes.

ℹ️ More Resources

Support

Contributing

Please see our contributing guidelines and our code of conduct. This project use semantic-release for generate new versions by using commit messages and we use the Angular Convention to naming the commits. Check this question about it in semantic-release FAQ

Keywords

FAQs

Package last updated on 05 Jul 2024

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc