Payload is now completely free and open-source.
If you like what we're doing, stop by GitHub and give us a star!

Code Field

This field uses prismjs for syntax highlighting and react-simple-code-editor for the editor itself.

Config

OptionDescription
name *To be used as the property name when stored and retrieved from the database.
labelUsed as a field label in the Admin panel and to name the generated GraphQL type.
uniqueEnforce that each entry in the Collection has a unique value for this field.
indexBuild a MongoDB index for this field to produce faster queries. Set this field to true if your users will perform queries on this field's data often.
minLengthUsed by the default validation function to ensure values are of a minimum character length.
maxLengthUsed by the default validation function to ensure values are of a maximum character length.
validateProvide a custom validation function that will be executed on both the Admin panel and the backend. More
saveToJWTIf this field is top-level and nested in a config supporting Authentication, include its data in the user JWT.
hooksProvide field-based hooks to control logic for this field. More
accessProvide field-based access control to denote what users can see and do with this field's data. More
hiddenRestrict this field's visibility from all APIs entirely. Will still be saved to the database, but will not appear in any API or the Admin panel.
defaultValueProvide data to be used for this field's default value. More
localizedEnable localization for this field. Requires localization to be enabled in the Base config.
requiredRequire this field to have a value.
adminAdmin-specific configuration. See below for more detail.

* An asterisk denotes that a property is required.

Admin config

In addition to the default field admin config, the Code field type also allows for the customization of a language property.

The following prismjs plugins are imported, enabling the language property to accept the following values:

PluginLanguage
prism-csscss
prism-clikeclike
prism-markupmarkup, html, xml, svg, mathml, ssml, atom, rss
prism-javascriptjavascript, js
prism-jsonjson
prism-jsxjsx
prism-typescripttypescript, ts
prism-tsxtsx
prism-yamlyaml, yml

Example

`collections/ExampleCollection.ts

import { CollectionConfig } from 'payload/types';
const ExampleCollection: CollectionConfig = {
slug: 'example-collection',
fields: [
{
name: 'trackingCode', // required
type: 'code', // required
required: true,
admin: {
language: 'js'
}
}
]
};
Next

Collapsible Field