Thank you for your interest in contributing to dev-md-editor! We welcome contributions from everyone.
-
Fork the repository
git clone https://github.com/nermalcat69/dev-md-editor.git cd dev-md-editor -
Install dependencies
pnpm install
-
Build the project
pnpm build
-
Run type checking
pnpm type-check
-
Run linting
pnpm lint
dev-md-editor/
├── src/
│ ├── types.ts # TypeScript interfaces
│ ├── utils/ # Utility functions
│ ├── server/ # Server-side handlers
│ ├── adapters/ # Framework adapters
│ └── index.ts # Main entry point
├── client/ # React components
├── examples/ # Usage examples
└── dist/ # Built files
-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Follow the existing code style
- Add TypeScript types for new features
- Update documentation if needed
-
Test your changes
pnpm build pnpm type-check pnpm lint
-
Commit your changes
git add . git commit -m "feat: add your feature description"
Currently, we're building out our testing infrastructure. For now, please:
- Build the project to ensure TypeScript compilation
- Test manually with a sample Next.js/SvelteKit/Astro project
- Check all framework adapters work correctly
- TypeScript: All code should be properly typed
- ESLint: Follow the existing linting rules
- Imports: Use absolute imports from
src/ - Comments: Add JSDoc comments for public APIs
- Naming: Use descriptive names for functions and variables
/**
* Converts markdown content to Editor.js format
* @param markdown - The markdown string to convert
* @returns Editor.js compatible data structure
*/
export function markdownToEditorJS(markdown: string): EditorData {
// Implementation
}To add support for a new framework:
-
Create adapter file:
src/adapters/your-framework.ts -
Implement required functions:
mountMarkdownEditor(config)- Framework-specific route handlers
- Middleware/integration helpers
-
Add to main exports: Update
src/index.ts -
Create example: Add to
examples/your-framework.ts -
Update documentation: Add section to README.md
When reporting bugs, please include:
- Framework and version (Next.js 13.5, SvelteKit 1.0, etc.)
- Package version of dev-md-editor
- Steps to reproduce the issue
- Expected vs actual behavior
- Error messages or console output
For new features:
- Check existing issues to avoid duplicates
- Describe the use case and why it's needed
- Provide examples of how it would be used
- Consider backward compatibility
Releases are handled by maintainers:
- Update version in
package.json - Update
CHANGELOG.md - Create GitHub release
- Publish to npm
All contributions go through code review:
- Keep PRs focused on a single feature/fix
- Write clear commit messages
- Respond to feedback promptly
- Update documentation as needed
By contributing, you agree that your contributions will be licensed under the MIT License.
- GitHub Issues: For bugs and feature requests
- Discussions: For questions and general discussion
- Discord: Join our community (coming soon)
We're particularly looking for help with:
- Testing infrastructure and test coverage
- Additional framework support (Remix, Vue, etc.)
- Performance optimizations
- Documentation improvements
- Editor.js plugin system integration
Thank you for contributing! 🙏