Sanity Table Plugin
This is a Sanity Studio v3 plugin.
For the v2 version, please refer to the v2 repository.
This is a (triple) fork of the Sanity Plugin Table, migrated to Sanity Studio V3.
Only the v3 version is maintained by Sanity.io.
Acknowledgements
Big thanks to the original contributors for their work!
Disclaimer
Sometimes a table is just what you need.
However, before using the Table plugin, consider if there are other ways to model your data that are:
- easier to edit and validate
- easier to query
Approaching your schemas in a more structured manner can often pay dividends down the line.
Install
Install using npm
$ npm i --save @sanity/table
Usage
Add the plugin to your project configuration. Then use the type in your schemas
import { defineConfig } from 'sanity';
import { table } from '@sanity/table';
export default defineConfig({
name: 'default',
title: 'My Cool Project',
projectId: 'my-project-id',
dataset: 'production',
plugins: [
table(),
],
schema: {
types: [
{
name: 'product',
title: 'Product',
type: 'document',
fields: [
{
name: 'sizeChart',
title: 'Size Chart',
type: 'table',
},
],
},
],
},
});
Configuration
You can optionally configure the _type
used for the row object in the table schema by passing a rowType
when adding the plugin. For most users this is unnecessary, but it can be useful if you are migrating from a legacy table plugin.
export default defineConfig({
plugins: [
table({
rowType: 'my-custom-row-type',
}),
],
});
License
MIT © ʞunp ʇɹǝdnɹ, Mathis Bullinger, Dave Lucia and Sanity.io
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.
Release new version
Run "CI & Release" workflow.
Make sure to select the main branch and check "Release new version".
Semantic release will only release on configured branches, so it is safe to run release on any branch.