We appreciate your interest in helping improve Discourse Graphs! Contributions, whether in code or documentation, are always welcome. 🙌
Before diving into a pull request, it’s a good idea to open an issue to discuss what you have in mind. This ensures your work aligns with the project’s goals and reduces the chance of duplicating ongoing efforts.
If you’re uncertain about the value of your proposed change, don’t hesitate to create an issue anyway 😄. We’ll review it together, and once we agree on next steps, you can confidently move forward.
Here’s how to contribute:
- Fork and clone the repository.
- Create a new branch for your updates.
- Implement your changes, making sure your code:
- Is formatted with Prettier
- Follows our Style Guide
- Passes all TypeScript type checks
- Write tests that validate your change and/or fix.
- Push your branch and open a pull request. 🚀
The Discourse Graphs website hosts documentation for plugins and general information. Here's how to add or edit documentation:
Blog posts are located in /apps/website/app/(home)/blog/posts/
-
Create your post file: Copy
EXAMPLE.mdas a starting template and rename it to your desired URL slug (e.g.,my-new-post.md) -
Required metadata: Every blog post must start with YAML frontmatter (reference
EXAMPLE.mdfor the exact format):--- title: "Your Post Title" date: "YYYY-MM-DD" author: "Author's name" published: true # Set to true to make the post visible ---
-
Content: Write your content below the frontmatter using standard Markdown
Plugin documentation is organized in /apps/website/app/(docs)/docs/ with separate folders:
/obsidian/pages/- Obsidian plugin documentation/roam/pages/- Roam Research extension documentation/sharedPages/- Documentation shared between platforms
- Create your documentation file: Add a new
.mdfile in the appropriate platform'spages/folder - Use standard Markdown: No special frontmatter is required for documentation files
- Update navigation: You may need to update the corresponding
navigation.tsfile to include your new page in the sidebar
All documentation images should be placed in /apps/website/public/docs/[platform]/ following this structure:
- Platform-specific images:
/public/docs/[platform]/(e.g.,/public/docs/roam/,/public/docs/obsidian/) - General documentation images:
/public/docs/
When referencing images in your documentation, use relative paths from the public folder:
To preview your changes locally:
- Environment setup: Copy
/apps/website/.env.exampleto/apps/website/.envand configure any necessary environment variables - Install dependencies: Run
npm installfrom the project root - Start development server: Run
npm run devornpx turbo devto start the website locally - View your changes: Navigate to
http://localhost:3000to see your documentation
The website uses Next.js with the App Router, so changes to Markdown files should be reflected automatically during development.