Pages
Pages are the fundamental unit of content in Raven Docs. They contain your documentation, notes, meeting minutes, and any other text-based content.
Creating Pages
From the UI
- Open a space
- Click New Page or press
Cmd/Ctrl + N - Start typing your content
From the API
const page = await client.pages.create({
workspaceId: 'ws_123',
spaceId: 'space_456',
title: 'My New Page',
content: {
type: 'doc',
content: [
{
type: 'paragraph',
content: [{ type: 'text', text: 'Hello, world!' }],
},
],
},
});
Page Structure
Content Format
Pages use a ProseMirror-based document format:
{
"type": "doc",
"content": [
{
"type": "heading",
"attrs": { "level": 1 },
"content": [{ "type": "text", "text": "My Heading" }]
},
{
"type": "paragraph",
"content": [{ "type": "text", "text": "Some content." }]
}
]
}
Block Types
| Block | Description | Slash Command |
|---|---|---|
| Paragraph | Standard text | (default) |
| Heading | H1, H2, H3 | /h1, /h2, /h3 |
| Bullet List | Unordered list | /bullet |
| Numbered List | Ordered list | /numbered |
| Checklist | Todo items | /checklist |
| Code Block | Syntax-highlighted code | /code |
| Table | Data tables | /table |
| Image | Embedded images | /image |
| Callout | Info boxes | /callout |
| Divider | Horizontal rule | /divider |
Page Hierarchy
Pages can be nested under other pages:
Parent Page
├── Child Page 1
│ └── Grandchild Page
└── Child Page 2
Moving Pages
Drag and drop pages in the sidebar, or use the API:
await client.pages.move({
pageId: 'page_123',
workspaceId: 'ws_456',
parentId: 'page_789', // New parent
});
Page Links
Internal Links
Link to other pages using double brackets:
Check out the [[API Reference]] for more details.
Or by page ID:
See [[page:page_123|API Reference]].
Backlinks
View all pages that link to the current page in the page info panel.
Version History
Every page change is tracked:
- View history in the page menu
- Compare versions side-by-side
- Restore previous versions
// Get page history
const history = await client.pages.getHistory({
pageId: 'page_123',
});
// Restore a version
await client.pages.restore({
historyId: 'hist_456',
});
Page Metadata
| Field | Description |
|---|---|
id | Unique identifier |
title | Page title |
slug | URL-friendly path |
icon | Emoji or custom icon |
createdAt | Creation timestamp |
updatedAt | Last modified timestamp |
createdBy | Author user ID |
parentId | Parent page ID (if nested) |
Collaboration
Real-time Editing
Multiple users can edit simultaneously:
- Live cursors show who's editing
- Changes merge automatically
- Presence indicators in sidebar
Comments
Add comments to specific text or the whole page:
await client.comments.create({
pageId: 'page_123',
workspaceId: 'ws_456',
text: 'This needs review.',
});
Best Practices
- Descriptive titles - Make pages easy to find
- Use headings - Structure content for scanning
- Link liberally - Connect related content
- Keep pages focused - One topic per page
- Regular updates - Keep content current
Related
- Editor Guide - Master the editor
- Organizing Content - Structure tips
- Pages API - API reference