Add Ray DSL Viewer extension
Summary
Ray DSL Viewer is a Raycast extension that provides instant preview for Markdown and Mermaid diagrams.
Features
- Markdown Preview: Render Markdown content with full formatting support
- Mermaid Diagram Support: Visualize flowcharts, sequence diagrams, ER diagrams, and more
- Auto Detection: Automatically detects content type (Markdown or Mermaid)
-
Clipboard Integration: Paste content directly from clipboard with
Cmd+Shift+V - Dark Theme: Mermaid diagrams rendered with a dark theme optimized for Raycast
Screencast



Test plan
- [x] Tested Markdown preview with various formatting
- [x] Tested Mermaid diagram rendering (flowchart, sequence, ER diagram)
- [x] Tested auto-detection of content type
- [x] Tested clipboard paste functionality
- [x] Verified dark theme rendering
Checklist
- [x] I read the extension guidelines
- [x] I read the documentation about publishing
- [x] I ran
npm run buildand tested this distribution build in Raycast - [x] I checked that files in the
assetsfolder are used by the extension itself - [x] I checked that assets used in the
READMEare located outside the metadata folder if they were not generated with our metadata tool
Greptile Overview
Greptile Summary
This PR introduces Ray DSL Viewer, a new extension for previewing Markdown and Mermaid diagrams. The extension provides a form-based interface for entering content with auto-detection, clipboard integration, and real-time preview.
Key Implementation Details:
- Auto-detects content type by checking for Mermaid keywords and Markdown syntax
- Renders Mermaid diagrams via mermaid.ink external service (properly disclosed in descriptions and README)
- Supports embedded Mermaid code blocks within Markdown
- Custom dark theme configuration for Mermaid diagrams
Previous Issues Addressed: The developer has already fixed all issues from earlier review threads:
- Removed debug
console.log/console.errorstatements fromhandlePastefunction - Updated
platformsfrom["macOS", "Windows"]to["macOS"]only (untested on Windows) - Removed hardcoded
cmdmodifiers from shortcuts (now appropriate for macOS-only extension) - Added explicit disclosure about mermaid.ink in both
package.jsondescriptions and README
The extension follows Raycast guidelines with proper metadata, screenshots, CHANGELOG format, and category assignment (Developer Tools, Communication).
Confidence Score: 5/5
- This PR is safe to merge with no remaining issues
- The extension follows all Raycast guidelines and the developer has proactively addressed all issues from previous review threads. The code is clean, well-structured, and properly documented with privacy disclosures.
- No files require special attention
Important Files Changed
| Filename | Overview |
|---|---|
| extensions/ray-dsl-viewer/package.json | Configuration correctly updated to macOS-only after fixing platform issues; mermaid.ink disclosure added to descriptions |
| extensions/ray-dsl-viewer/src/dsl-viewer.tsx | Main extension logic; previous issues (console logs, platform shortcuts) have been resolved in recent commits |
| extensions/ray-dsl-viewer/CHANGELOG.md | Follows required format with {PR_MERGE_DATE} placeholder and proper structure |
Last reviewed commit: df7c3e2
Congratulations on your new Raycast extension! :rocket:
We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 10-15 business days.
Once the PR is approved and merged, the extension will be available on our Store.
Hi 👋
Thanks for your contribution 💪
I have now tested your extension, and I have some feedback ready for you:
I tried to paste mermaid code into the extension and it didn’t work as expected, can you please check?
https://github.com/user-attachments/assets/1c2e7716-2549-4b61-8dcb-382fdd45ed7a
I'm looking forward to testing this extension again 🔥
I converted this PR into a draft until it's ready for the review, please press the button Ready for review when it's ready and we'll have a look 😊
Feel free to contact me here or at Slack if you have any questions.
@0xdhrv Fixed and completed local testing. Please review again 🙏
Thanks for your contribution @fs0414 🔥
We already have an extension in the Store that deals with Markdown <> Richtext. Could we consider enhancing the existing extension below instead of creating another one?
- https://www.raycast.com/ning_cao_cabeza/markdown-to-rich-text by @vegetablesB
I believe you have preview and mermaid support in your extension, which you can add to the existing extension.
If there are unique features or workflows you’re aiming to add, we’d love to hear them and see if they can be integrated into this to avoid duplication and improve discoverability.
This would help avoid duplication and keep related functionality consolidated in one place. As mentioned in our extension guidelines here ↗
@0xdhrv
Thank you for your review.
For this extension, the original plan was to provide the following value to the Store:
- Support rendering multiple content types with a single extension
- Currently supports Markdown and Mermaid, with expectations to extend to other formats like XML and YAML for OpenAPI specifications
While I confirmed that similar existing extensions exist, the following issues led me to proceed with creating my own PR:
- Communication costs with stakeholders due to nearly two years of no contributions
- The extension name ("Markdown to Rich Text Converter") and its reliance on Markdown make it semantically difficult to extend
This is my first time creating a Raycast extension, so I may have some gaps in my understanding of community guidelines. Please let me know if you have any concerns about the release decision or additional points to consider.
@0xdhrv
Thank you for your review.
For this extension, the original plan was to provide the following value to the Store:
- Support rendering multiple content types with a single extension
- Currently supports Markdown and Mermaid, with expectations to extend to other formats like XML and YAML for OpenAPI specifications
While I confirmed that similar existing extensions exist, the following issues led me to proceed with creating my own PR:
- Communication costs with stakeholders due to nearly two years of no contributions
- The extension name ("Markdown to Rich Text Converter") and its reliance on Markdown make it semantically difficult to extend
This is my first time creating a Raycast extension, so I may have some gaps in my understanding of community guidelines. Please let me know if you have any concerns about the release decision or additional points to consider.
We can change the name if the extension is updated with more features. You can also create a PR to update the existing extension; we will review it and merge it.