Content Profiles¶
Content profiles let you change the way how your content should be edited and what validation rules should apply.
Definition¶
You can specify custom profiles in server/data/content_types.json
file.
Then you can sync it with database using cli command:
python manage.py app:initialize_data --entity-name content_types
In the file there should be list of profiles:
[
{"_id": "story", "label": "Story", "enabled": 1, ...},
{"_id": "snap", "label": "Snap", "enabled": 0, ...}
]
Available fields are:
_id
string- Profile id, its value will be set in
item.profile
field and will be available in output. label
string- Label visible in the client.
description
string- Optional profile description.
priority
int- Used for sorting in descending order.
enabled
boolean- Flag if profile is enabled (visible in lists) or not.
schema
dictSchema configuration for profile. There you can define validation rules for Item Schema fields:
"schema": { "headline": { "type": "string", "required": true, "maxlength": 120, }, "keywords": { "type": "list", "required": true, "allowed": ["sport", "news"] } }
Keys are field names, and for each field you can specify:
type
string- One of
string
,list
,dict
,integer
,number
. required
boolean- If
true
, field must be there and be non empty. minlength
,maxlength
int- Minimum and maximum length allowed for
string
type. allowed
list- List of allowed values for
string
orlist
type. schema
dict- Validation rules for
dict
type items. nullable
boolean- If True the value can be set to
null
. regex
stringRegex validation rule, eg.:
"regex": "[a-z]+"
editor
dictEditor configuration for profile, there you can set what fields will be visible and how these should be displayed:
"editor": { "headline": { "order": 1, "sdWidth": "full", "enabled": true }, "body_html": { "order": 5, "formatOptions": ["h2", "bold", "italic"], "enabled": true }, "ednote": { "enabled": false } }
Rules for fields are:
order
int- Where the field is visible in the editor.
sdWidth
string- One of
full
,half
andquarter
. Fields are floating so there can be more on the same line as long as they fit there. enabled
boolean- If
false
field won’t be visible in the editor. formatOptions
listWhat format options should be available, only works with
body_html
andabstract
fields. For each there will be a button visible in the editor toolbar.h2
bold
italic
underline
quote
anchor
embed
picture
removeFormat
Available schema fields¶
These are fields you can use in your content profile:
Plain text profile¶
Before there are any content profiles defined for a desk there is one called Plain text.
Package profiles¶
Package profiles are not yet supported.