nuagedelait / sanity-pagebuilder

Sanity plugin to create a fast website admin with pagebuilder
MIT License
17 stars 1 forks source link

Sanity plugin pagebuilder

This is a Sanity Studio v3 plugin.

Installation

npm install @nuagedelait/sanity-pagebuilder

Features

Usage

Add it as a plugin in sanity.config.ts (or .js):

import {defineConfig} from 'sanity'
import { pagebuilderTool } from '@nuagedelait/sanity-pagebuilder'

export default defineConfig({
  //...
  plugins: [pagebuilderTool()],
})

Config

You can extends schemas of the plugins without the pain of handling desk structure

export default defineConfig({
  //...
  plugins: [pagebuilderTool(
    {
      addBlocksSchemas: [ 'array of blocks schemas in sections' ]
      addContentSchemas: [ 'array of content schemas like custom `posts` or `articles`' ]
      addManagmentSchemas: [ 'array of diverses schemas (used if contents)' ] 
      api: 'sanity api version, default : `v2023-08-01`'
    }
  )],
})

Localization new

You can use localization by adding a language array to the plugin config It will add :

export default defineConfig({
  //...
  plugins: [pagebuilderTool(
    {
      addBlocksSchemas: [ 'array of blocks schemas in sections' ]
      addContentSchemas: [ 'array of content schemas like custom `posts` or `articles`' ]
      addManagmentSchemas: [ 'array of diverses schemas (used if contents)' ] 
      api: 'sanity api version, default : `v2023-08-01`',
      languages: ['en','fr']
    }
  )],
})

If you have custom schema, you can add the localization fields using the i18n function :

import { i18n } from '@nuagedelait/sanity-pagebuilder'

const schemaWithLocale = i18n(
  schema,  // your custom schema
  languages, // your languages list, ex : ['en', 'fr']
  true // if needed, add translations field
),

License

MIT © nuagedelait

Develop & test

This plugin uses @sanity/plugin-kit with default configuration for build & watch scripts.

See Testing a plugin in Sanity Studio on how to run this plugin with hotreload in the studio.