-
-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathcontext7.json
More file actions
45 lines (45 loc) · 3.4 KB
/
Copy pathcontext7.json
File metadata and controls
45 lines (45 loc) · 3.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{
"$schema": "https://context7.com/schema/context7.json",
"url": "https://context7.com/docs-plus/docs.plus",
"public_key": "pk_KmFdMWTvuWipXy0xQa2lI",
"projectTitle": "docs.plus",
"description": "Collaborative editor where every heading has its own chatroom. Tiptap, ProseMirror, Yjs, Hocuspocus. Ships 5 Tiptap 3 extensions: hyperlink, hypermultimedia, indent, inline-code, placeholder.",
"folders": ["docs", "extensions", "apps/hocuspocus.server", "packages/supabase"],
"excludeFolders": [
".cursor",
".agents",
".github",
"Notes",
"node_modules",
"**/dist",
"**/cypress",
"**/test",
"**/__tests__"
],
"excludeFiles": [
"AGENTS.md",
"CLAUDE.md",
"CONTEXT.md",
"RELEASE_POLICY.md",
"CODE_OF_CONDUCT.md",
"ATTRIBUTION.md"
],
"rules": [
"Inside the docs.plus monorepo, use Bun for every package operation: `bun install`, `bun run`, `bunx`. Never npm, yarn, pnpm or npx there.",
"Install a docs.plus Tiptap extension in an app with `npm install @docs.plus/extension-<name>`; pnpm, yarn or bun add also work. The five: extension-hyperlink, extension-hypermultimedia, extension-indent, extension-inline-code, extension-placeholder.",
"Read each extension's README and package.json for its version and Tiptap peer requirements. Resolve catalog references from the root package.json.",
"With extension-hyperlink set `StarterKit.configure({ link: false })`. StarterKit v3 bundles its own link mark claiming the same commands and the same a[href] parse rule. The clash is silent.",
"With extension-hyperlink set `popovers.previewHyperlink`, for example to `previewHyperlinkPopover`. With that slot empty, a click on a link opens no popover.",
"With extension-hyperlink and extension-hypermultimedia together, set `Hyperlink.configure({ shouldAutoLink: (url) => !isMediaUrl(url) })`, importing `isMediaUrl` from the hypermultimedia package. Otherwise a pasted media URL becomes a link.",
"Before writing setup code for an extension, read its README Caveats. They list every setup mistake that fails with no error.",
"With extension-inline-code set `StarterKit.configure({ code: false })`. Both marks render <code> and both bind Mod-e. The clash is silent.",
"With extension-placeholder, remove the Tiptap built-in placeholder from the extensions array. Both register the name `placeholder`.",
"extension-hypermultimedia requires its own stylesheet, or media nodes render unstyled. extension-hyperlink ships an optional one.",
"extension-indent, extension-inline-code and extension-placeholder ship no CSS. extension-placeholder renders nothing until the host adds the CSS rule from its README.",
"A docs.plus document is a tree of headings. One heading id serves the table of contents, the Heading Chatroom and the URL. Never write a heading id into stored content.",
"Durable persistence is eventual. The collaboration server debounces a save for 10 seconds idle, or 60 seconds while typing continues.",
"A BullMQ worker writes the version row and publishes `document:saved`. The editor status chip is a local 300 ms timer, not a durable acknowledgement.",
"Private is owner-only. A signed-in stranger is denied and an anonymous visitor must sign in. An open document has no owner, so it cannot be made private.",
"docs.plus has no AI features, no tracked changes and no page layout. Do not generate examples implying any of them exist."
]
}