Headless rich text editor built on ProseMirror with extensible architecture for building custom editors
94
{
"context": "This criteria evaluates how well the engineer uses @tiptap/core to define custom nodes and marks with proper schema definitions, including attributes with default values, and integrates them into an editor instance.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Node Extension Creation",
"description": "Uses Node.create() to define the CalloutBox as a node extension with proper name and configuration",
"max_score": 20
},
{
"name": "Mark Extension Creation",
"description": "Uses Mark.create() to define the ColorHighlight as a mark extension with proper name and configuration",
"max_score": 20
},
{
"name": "Node Schema Definition",
"description": "Defines the CalloutBox schema using addAttributes() to specify the variant attribute with proper parseHTML and renderHTML methods, setting content model to allow block content, and configuring it as a block-level element with the group property",
"max_score": 20
},
{
"name": "Mark Schema Definition",
"description": "Defines the ColorHighlight schema using addAttributes() to specify the color attribute with proper parseHTML and renderHTML methods for applying the mark to inline text",
"max_score": 20
},
{
"name": "Default Attribute Values",
"description": "Correctly sets default values for attributes using the default property within addAttributes() - variant defaults to 'info' and color defaults to 'yellow'",
"max_score": 10
},
{
"name": "Editor Integration",
"description": "Creates an Editor instance using new Editor() or Editor.create(), registers both custom extensions in the extensions array, and initializes it in headless mode (element: null)",
"max_score": 10
}
]
}Install with Tessl CLI
npx tessl i tessl/npm-tiptap--coredocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10