• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

marekdedic / prosemirror-remark / 14286002573

05 Apr 2025 09:34PM UTC coverage: 73.113% (-8.5%) from 81.604%
14286002573

Pull #509

github

marekdedic
Migrated syntax extension tests to vitest
Pull Request #509: Switched to vitest

54 of 125 branches covered (43.2%)

310 of 424 relevant lines covered (73.11%)

14.41 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

91.67
/src/syntax-extensions/BlockquoteExtension.ts
1
import type { BlockContent, Blockquote, DefinitionContent } from "mdast";
2
import type {
3
  DOMOutputSpec,
4
  NodeSpec,
5
  Node as ProseMirrorNode,
6
  Schema,
7
} from "prosemirror-model";
8
import type { Command } from "prosemirror-state";
9

10
import { wrapIn } from "prosemirror-commands";
4✔
11
import { type InputRule, wrappingInputRule } from "prosemirror-inputrules";
4✔
12
import { createProseMirrorNode, NodeExtension } from "prosemirror-unified";
4✔
13

14
/**
15
 * @public
16
 */
17
export class BlockquoteExtension extends NodeExtension<Blockquote> {
4✔
18
  public override proseMirrorInputRules(
19
    proseMirrorSchema: Schema<string, string>,
20
  ): Array<InputRule> {
21
    return [
8✔
22
      wrappingInputRule(
23
        /^\s{0,3}>\s$/u,
24
        proseMirrorSchema.nodes[this.proseMirrorNodeName()],
25
      ),
26
    ];
27
  }
28

29
  public override proseMirrorKeymap(
30
    proseMirrorSchema: Schema<string, string>,
31
  ): Record<string, Command> {
32
    return {
8✔
33
      "Mod->": wrapIn(proseMirrorSchema.nodes[this.proseMirrorNodeName()]),
34
    };
35
  }
36

37
  public override proseMirrorNodeName(): string {
38
    return "blockquote";
190✔
39
  }
40

41
  public override proseMirrorNodeSpec(): NodeSpec {
42
    return {
8✔
43
      content: "block+",
44
      group: "block",
45
      parseDOM: [{ tag: "blockquote" }],
46
      toDOM(): DOMOutputSpec {
47
        return ["blockquote", 0];
×
48
      },
49
    };
50
  }
51

52
  public override proseMirrorNodeToUnistNodes(
53
    _node: ProseMirrorNode,
54
    convertedChildren: Array<BlockContent | DefinitionContent>,
55
  ): Array<Blockquote> {
56
    return [
4✔
57
      {
58
        children: convertedChildren,
59
        type: this.unistNodeName(),
60
      },
61
    ];
62
  }
63

64
  public override unistNodeName(): "blockquote" {
65
    return "blockquote";
160✔
66
  }
67

68
  public override unistNodeToProseMirrorNodes(
69
    _node: Blockquote,
70
    proseMirrorSchema: Schema<string, string>,
71
    convertedChildren: Array<ProseMirrorNode>,
72
  ): Array<ProseMirrorNode> {
73
    return createProseMirrorNode(
4✔
74
      this.proseMirrorNodeName(),
75
      proseMirrorSchema,
76
      convertedChildren,
77
    );
78
  }
79
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc