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's state inspection APIs (isActive() and getAttributes()) to implement format detection and attribute retrieval functions. The focus is on proper usage of the Editor instance methods for querying editor state.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Uses editor.isActive()",
"description": "Implementation calls editor.isActive() method to check if marks or nodes are active at the current selection. This is the correct @tiptap/core API for detecting active formatting.",
"max_score": 35
},
{
"name": "Uses editor.getAttributes()",
"description": "Implementation calls editor.getAttributes() method to retrieve attributes from marks or nodes. This is the correct @tiptap/core API for extracting attribute data.",
"max_score": 35
},
{
"name": "Correct mark checking",
"description": "When checking if a mark is active (e.g., 'bold', 'link'), passes the mark name as a string parameter to editor.isActive() (e.g., editor.isActive('bold')).",
"max_score": 10
},
{
"name": "Correct node checking",
"description": "When checking if a node is active (e.g., 'heading', 'bulletList'), passes the node name as a string parameter to editor.isActive() (e.g., editor.isActive('heading')).",
"max_score": 10
},
{
"name": "Proper attribute retrieval",
"description": "When retrieving attributes, passes the mark or node name to editor.getAttributes() and returns the resulting object (e.g., editor.getAttributes('heading') returns {level: 2}).",
"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