Skip to content

Commit a5afe88

Browse files
fix: formatting for all pages (#216)
* fix: formatting for all pages * fix: formatting * fix: formatting * fix: formatting * fix: formatting * fix: formatting * fix: replace preview branch with master
1 parent bdf8de4 commit a5afe88

58 files changed

Lines changed: 2510 additions & 2278 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CLAUDE.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4+
5+
## Project Overview
6+
7+
This is the **Plane developer documentation site** built with **VitePress** (Vue 3-based static site generator). It covers REST API reference, self-hosting guides, and developer tools documentation for the Plane project management platform.
8+
9+
Live site: https://developers.plane.so
10+
11+
## Commands
12+
13+
```bash
14+
pnpm install # Install dependencies (use --frozen-lockfile in CI)
15+
pnpm dev # Start dev server at http://localhost:5173
16+
pnpm build # Production build
17+
pnpm preview # Preview production build
18+
pnpm check:format # Check Prettier formatting
19+
pnpm fix:format # Auto-fix Prettier formatting
20+
```
21+
22+
**CI checks on PRs** (to `master`): Prettier formatting + VitePress build must pass.
23+
24+
## Architecture
25+
26+
- **`docs/`** — All documentation content and VitePress config
27+
- **`docs/.vitepress/config.mts`** — Main VitePress config: navigation, sidebar structure, SEO, Algolia search, analytics. This is a large file (~39KB) that defines the entire site structure.
28+
- **`docs/.vitepress/theme/`** — Custom theme with Vue components and global styles
29+
- **`docs/api-reference/`** — REST API endpoint docs (180+ endpoints across 25+ categories)
30+
- **`docs/self-hosting/`** — Deployment guides (Docker, Kubernetes, etc.)
31+
- **`docs/dev-tools/`** — Webhooks, OAuth apps, agents, MCP server docs
32+
33+
## Custom Vue Components
34+
35+
Used directly in markdown files — defined in `docs/.vitepress/theme/components/`:
36+
37+
| Component | Usage |
38+
| ---------------------- | ----------------------------------------------------------------- |
39+
| `<ApiParam>` | API parameter with name, type, required badge, expandable details |
40+
| `<CodePanel>` | Multi-language code tabs (cURL, Python, JavaScript) |
41+
| `<ResponsePanel>` | Syntax-highlighted API response JSON |
42+
| `<Card>` | Feature card with icon, title, description |
43+
| `<CardGroup cols="N">` | Responsive grid layout (2, 3, or 4 columns) |
44+
45+
## API Documentation Pattern
46+
47+
API endpoint pages follow a strict two-column layout pattern:
48+
49+
```markdown
50+
<div class="api-two-column">
51+
<div class="api-left">
52+
<!-- Parameters using <ApiParam> -->
53+
</div>
54+
<div class="api-right">
55+
<!-- Code examples using <CodePanel> + <ResponsePanel> -->
56+
</div>
57+
</div>
58+
```
59+
60+
Each endpoint page: one file per endpoint, includes path/body params, OAuth scopes, and code examples in cURL/Python/JavaScript.
61+
62+
## Conventions
63+
64+
- **Frontmatter**: Every markdown page needs `title`, `description`, and `keywords` fields
65+
- **Images**: Stored in `docs/.vitepress/public/images/`, referenced with absolute paths (`/images/...`)
66+
- **Branch workflow**: Branch from `master`, use `fix/`, `feat/`, `docs/`, `update/` prefixes
67+
- **Formatting**: Prettier enforced — 120 char width, 2-space indent, semicolons, double quotes, ES5 trailing commas
68+
- **Sidebar updates**: When adding new pages, update the sidebar config in `docs/.vitepress/config.mts`

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,11 +106,11 @@ Write clear, concise commit messages:
106106

107107
### Pull Requests
108108

109-
1. Create a branch from `preview`
109+
1. Create a branch from `master`
110110
2. Make your changes
111111
3. Test locally with `pnpm dev`
112112
4. Build and verify with `pnpm build && pnpm preview`
113-
5. Submit a pull request to the `preview` branch
113+
5. Submit a pull request to the `master` branch
114114

115115
### PR Guidelines
116116

docs/dev-tools/build-plane-app/create-oauth-application.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,12 @@ keywords: plane oauth application, create plane app, client id secret, plane app
66

77
# Create an OAuth Application
88

9-
1. Navigate to **Workspace Settings****Integrations**. `https://app.plane.so/<workspace>/settings/integrations/`
9+
1. Navigate to **Workspace Settings****Integrations**.
10+
11+
```text
12+
https://app.plane.so/<workspace>/settings/integrations/
13+
```
14+
1015
2. Click **Build your own**.
1116
3. Fill in the required details:
1217

docs/dev-tools/build-plane-app/examples.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,4 +242,4 @@ if __name__ == "__main__":
242242

243243
## Publish to Marketplace
244244

245-
Apps can be listed on the [Plane Marketplace](https://plane.so/marketplace/integrations). Contact [support@plane.so](mailto:support@plane.so) to list your app.
245+
Apps can be listed on the [Plane Marketplace](https://plane.so/marketplace/integrations). Contact [support@plane.so](mailto:support@plane.so) to list your app.

docs/dev-tools/build-plane-app/oauth-scopes.md

Lines changed: 90 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -10,125 +10,125 @@ This document lists all OAuth scopes available when building a Plane app. Reques
1010

1111
## Project scopes
1212

13-
| Scope | Description |
14-
|-------|-------------|
15-
| `projects:read` | Read projects |
16-
| `projects:write` | Create and update projects |
17-
| `projects.features:read` | Read project features |
18-
| `projects.features:write` | Create and update project features |
19-
| `projects.members:read` | Read project members |
20-
| `projects.members:write` | Manage project members |
21-
| `projects.states:read` | Read project states |
22-
| `projects.states:write` | Create and update project states |
23-
| `projects.labels:read` | Read project labels |
24-
| `projects.labels:write` | Create and update project labels |
25-
| `projects.intakes:read` | Read project intakes |
26-
| `projects.intakes:write` | Create and update project intakes |
27-
| `projects.epics:read` | Read project epics |
28-
| `projects.epics:write` | Create and update project epics |
29-
| `projects.cycles:read` | Read project cycles |
30-
| `projects.cycles:write` | Create and update project cycles |
31-
| `projects.pages:read` | Read project pages |
32-
| `projects.pages:write` | Create and update project pages |
33-
| `projects.modules:read` | Read project modules |
34-
| `projects.modules:write` | Create and update project modules |
35-
| `projects.work_items:read` | Read project work items |
36-
| `projects.work_items:write` | Create and update project work items |
37-
| `projects.work_items.comments:read` | Read work item comments |
38-
| `projects.work_items.comments:write` | Create and update work item comments |
39-
| `projects.work_items.attachments:read` | Read work item attachments |
40-
| `projects.work_items.attachments:write` | Create and update work item attachments |
41-
| `projects.work_items.links:read` | Read work item links |
42-
| `projects.work_items.links:write` | Create and update work item links |
43-
| `projects.work_items.relations:read` | Read work item relations |
44-
| `projects.work_items.relations:write` | Create and update work item relations |
45-
| `projects.work_items.activities:read` | Read work item activities |
46-
| `projects.work_items.activities:write` | Create and update work item activities |
47-
| `projects.work_items.worklogs:read` | Read work item worklogs |
48-
| `projects.work_items.worklogs:write` | Create and update work item worklogs |
49-
| `projects.work_item_types:read` | Read work item types |
50-
| `projects.work_item_types:write` | Create and update work item types |
51-
| `projects.work_item_properties:read` | Read work item properties |
52-
| `projects.work_item_properties:write` | Create and update work item properties |
53-
| `projects.work_item_property_options:read` | Read work item property options |
13+
| Scope | Description |
14+
| ------------------------------------------- | -------------------------------------------- |
15+
| `projects:read` | Read projects |
16+
| `projects:write` | Create and update projects |
17+
| `projects.features:read` | Read project features |
18+
| `projects.features:write` | Create and update project features |
19+
| `projects.members:read` | Read project members |
20+
| `projects.members:write` | Manage project members |
21+
| `projects.states:read` | Read project states |
22+
| `projects.states:write` | Create and update project states |
23+
| `projects.labels:read` | Read project labels |
24+
| `projects.labels:write` | Create and update project labels |
25+
| `projects.intakes:read` | Read project intakes |
26+
| `projects.intakes:write` | Create and update project intakes |
27+
| `projects.epics:read` | Read project epics |
28+
| `projects.epics:write` | Create and update project epics |
29+
| `projects.cycles:read` | Read project cycles |
30+
| `projects.cycles:write` | Create and update project cycles |
31+
| `projects.pages:read` | Read project pages |
32+
| `projects.pages:write` | Create and update project pages |
33+
| `projects.modules:read` | Read project modules |
34+
| `projects.modules:write` | Create and update project modules |
35+
| `projects.work_items:read` | Read project work items |
36+
| `projects.work_items:write` | Create and update project work items |
37+
| `projects.work_items.comments:read` | Read work item comments |
38+
| `projects.work_items.comments:write` | Create and update work item comments |
39+
| `projects.work_items.attachments:read` | Read work item attachments |
40+
| `projects.work_items.attachments:write` | Create and update work item attachments |
41+
| `projects.work_items.links:read` | Read work item links |
42+
| `projects.work_items.links:write` | Create and update work item links |
43+
| `projects.work_items.relations:read` | Read work item relations |
44+
| `projects.work_items.relations:write` | Create and update work item relations |
45+
| `projects.work_items.activities:read` | Read work item activities |
46+
| `projects.work_items.activities:write` | Create and update work item activities |
47+
| `projects.work_items.worklogs:read` | Read work item worklogs |
48+
| `projects.work_items.worklogs:write` | Create and update work item worklogs |
49+
| `projects.work_item_types:read` | Read work item types |
50+
| `projects.work_item_types:write` | Create and update work item types |
51+
| `projects.work_item_properties:read` | Read work item properties |
52+
| `projects.work_item_properties:write` | Create and update work item properties |
53+
| `projects.work_item_property_options:read` | Read work item property options |
5454
| `projects.work_item_property_options:write` | Create and update work item property options |
55-
| `projects.work_item_property_values:read` | Read work item property values |
56-
| `projects.work_item_property_values:write` | Create and update work item property values |
57-
| `projects.milestones:read` | Read project milestones |
58-
| `projects.milestones:write` | Create and update project milestones |
55+
| `projects.work_item_property_values:read` | Read work item property values |
56+
| `projects.work_item_property_values:write` | Create and update work item property values |
57+
| `projects.milestones:read` | Read project milestones |
58+
| `projects.milestones:write` | Create and update project milestones |
5959

6060
## Wiki scopes
6161

62-
| Scope | Description |
63-
|-------|-------------|
64-
| `wiki.pages:read` | Read wiki pages |
62+
| Scope | Description |
63+
| ------------------ | ---------------------------- |
64+
| `wiki.pages:read` | Read wiki pages |
6565
| `wiki.pages:write` | Create and update wiki pages |
6666

6767
## Customer scopes
6868

69-
| Scope | Description |
70-
|-------|-------------|
71-
| `customers:read` | Read customers |
72-
| `customers:write` | Create and update customers |
73-
| `customers.requests:read` | Read customer requests |
74-
| `customers.requests:write` | Create and update customer requests |
75-
| `customers.properties:read` | Read customer properties |
76-
| `customers.properties:write` | Create and update customer properties |
77-
| `customers.property_values:read` | Read customer property values |
69+
| Scope | Description |
70+
| --------------------------------- | ------------------------------------------ |
71+
| `customers:read` | Read customers |
72+
| `customers:write` | Create and update customers |
73+
| `customers.requests:read` | Read customer requests |
74+
| `customers.requests:write` | Create and update customer requests |
75+
| `customers.properties:read` | Read customer properties |
76+
| `customers.properties:write` | Create and update customer properties |
77+
| `customers.property_values:read` | Read customer property values |
7878
| `customers.property_values:write` | Create and update customer property values |
79-
| `customers.work_items:read` | Read customer work items |
80-
| `customers.work_items:write` | Create and update customer work items |
79+
| `customers.work_items:read` | Read customer work items |
80+
| `customers.work_items:write` | Create and update customer work items |
8181

8282
## Initiatives scopes
8383

84-
| Scope | Description |
85-
|-------|-------------|
86-
| `initiatives:read` | Read initiatives |
87-
| `initiatives:write` | Create and update initiatives |
88-
| `initiatives.projects:read` | Read initiative projects |
84+
| Scope | Description |
85+
| ---------------------------- | ------------------------------------- |
86+
| `initiatives:read` | Read initiatives |
87+
| `initiatives:write` | Create and update initiatives |
88+
| `initiatives.projects:read` | Read initiative projects |
8989
| `initiatives.projects:write` | Create and update initiative projects |
90-
| `initiatives.epics:read` | Read initiative epics |
91-
| `initiatives.epics:write` | Create and update initiative epics |
92-
| `initiatives.labels:read` | Read initiative labels |
93-
| `initiatives.labels:write` | Create and update initiative labels |
90+
| `initiatives.epics:read` | Read initiative epics |
91+
| `initiatives.epics:write` | Create and update initiative epics |
92+
| `initiatives.labels:read` | Read initiative labels |
93+
| `initiatives.labels:write` | Create and update initiative labels |
9494

9595
## Workspace scopes
9696

97-
| Scope | Description |
98-
|-------|-------------|
99-
| `workspaces.members:read` | Read workspace members |
100-
| `workspaces.features:read` | Read workspace features |
97+
| Scope | Description |
98+
| --------------------------- | ------------------------------------ |
99+
| `workspaces.members:read` | Read workspace members |
100+
| `workspaces.features:read` | Read workspace features |
101101
| `workspaces.features:write` | Create and update workspace features |
102102

103103
## Stickies scopes
104104

105-
| Scope | Description |
106-
|-------|-------------|
107-
| `stickies:read` | Read stickies |
105+
| Scope | Description |
106+
| ---------------- | -------------------------- |
107+
| `stickies:read` | Read stickies |
108108
| `stickies:write` | Create and update stickies |
109109

110110
## Teamspaces scopes
111111

112-
| Scope | Description |
113-
|-------|-------------|
114-
| `teamspaces:read` | Read teamspaces |
115-
| `teamspaces:write` | Create and update teamspaces |
116-
| `teamspaces.projects:read` | Read teamspace projects |
112+
| Scope | Description |
113+
| --------------------------- | ------------------------------------ |
114+
| `teamspaces:read` | Read teamspaces |
115+
| `teamspaces:write` | Create and update teamspaces |
116+
| `teamspaces.projects:read` | Read teamspace projects |
117117
| `teamspaces.projects:write` | Create and update teamspace projects |
118-
| `teamspaces.members:read` | Read teamspace members |
119-
| `teamspaces.members:write` | Create and update teamspace members |
118+
| `teamspaces.members:read` | Read teamspace members |
119+
| `teamspaces.members:write` | Create and update teamspace members |
120120

121121
## Profile scopes
122122

123-
| Scope | Description |
124-
|-------|-------------|
123+
| Scope | Description |
124+
| -------------- | ----------------- |
125125
| `profile:read` | Read user profile |
126126

127127
## Agent Run scopes
128128

129-
| Scope | Description |
130-
|-------|-------------|
131-
| `agent_runs:read` | Read agent runs |
132-
| `agent_runs:write` | Create and update agent runs |
133-
| `agent_runs.activities:read` | Read agent run activities |
134-
| `agent_runs.activities:write` | Create and update agent run activities |
129+
| Scope | Description |
130+
| ----------------------------- | -------------------------------------- |
131+
| `agent_runs:read` | Read agent runs |
132+
| `agent_runs:write` | Create and update agent runs |
133+
| `agent_runs.activities:read` | Read agent run activities |
134+
| `agent_runs.activities:write` | Create and update agent run activities |

docs/dev-tools/build-plane-app/overview.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ Follow these steps to build your first Plane app:
5252
### 1. Create an OAuth application
5353

5454
Register your app in Plane to get credentials:
55+
5556
- Navigate to **Workspace Settings****Integrations**
5657
- Configure your app's URLs and permissions
5758
- Store your **Client ID** and **Client Secret** securely
@@ -61,6 +62,7 @@ Register your app in Plane to get credentials:
6162
### 2. Choose your authentication flow
6263

6364
Decide between Bot Token or User Token based on your use case:
65+
6466
- **Bot Token** - For agents, webhooks, and automation
6567
- **User Token** - For user-specific actions and permissions
6668

@@ -69,6 +71,7 @@ Decide between Bot Token or User Token based on your use case:
6971
### 3. Implement OAuth
7072

7173
Set up the OAuth flow to obtain access tokens:
74+
7275
- Redirect users to Plane's consent screen
7376
- Handle the callback with authorization code
7477
- Exchange code for access tokens
@@ -79,6 +82,7 @@ Set up the OAuth flow to obtain access tokens:
7982
### 4. Handle webhooks
8083

8184
Set up webhook handlers to receive real-time events:
85+
8286
- Verify webhook signatures for security
8387
- Process events like work item updates, comments, and more
8488
- Respond to events with automated actions
@@ -102,6 +106,7 @@ Free ngrok URLs change on restart. Update your app settings when the URL changes
102106
### Official SDKs
103107

104108
Speed up development with official SDKs for Node.js and Python:
109+
105110
- OAuth helpers for token management
106111
- Typed API clients for all endpoints
107112
- Built-in error handling and retries
@@ -111,6 +116,7 @@ Speed up development with official SDKs for Node.js and Python:
111116
### Complete examples
112117

113118
See full working implementations:
119+
114120
- TypeScript (Express) example
115121
- Python (Flask) example
116122
- OAuth flow, webhooks, and API integration

0 commit comments

Comments
 (0)