Thanks for your interest in improving MarkdownX. This is a small OSS project maintained in spare time, so expect friendly but occasionally slow review cycles.
By contributing to this repository you agree that your contributions are licensed under the Apache License 2.0, the same license the project uses.
Open a GitHub issue using the bug report template. Please include:
- Bitbucket Data Center version and edition
- MarkdownX plugin version
- Steps to reproduce
- Expected vs. actual behaviour
- Browser + Bitbucket server log excerpts (redact secrets before posting)
Never report security vulnerabilities in public issues — see SECURITY.md.
Open a GitHub issue using the feature request template. Describe the problem first, then the solution you have in mind and any alternatives you considered.
- Fork the repo and create a topic branch off
main(feature/…,fix/…). - Keep changes focused — one PR per logical change.
- Build and test locally before opening the PR (see below).
- Open a PR against
mainand fill in the template. - A maintainer will review as time allows.
- Java: 4-space indent, no tabs. Prefer constructor injection and
@Named/@ComponentImport(Atlassian Spring Scanner 2.x). - JavaScript: 2-space indent, semicolons, single quotes. No framework — vanilla ES modules bundled by Vite.
- CSS: 2-space indent, class names prefixed
markdownx-to avoid collisions with Bitbucket's own styles. - Prefer user-visible strings in
src/main/resources/i18n/markdownx.propertieswhen practical.
cd frontend && npm install && npm run build && cd ..
export JAVA_HOME=/path/to/jdk21
mvn package -DskipTestsThis repository does not ship unit tests yet. At minimum, before opening a PR please:
- Build the plugin (above).
- Start the bundled Bitbucket and install the JAR:
cd docker && docker compose up -d ./deploy-plugin.sh admin admin
- Open a test Markdown file containing Mermaid, PlantUML, and LaTeX blocks in file view, file browser, a pull request, and a commit. Verify rendering.
Please describe your manual test steps in the PR.
Maintainers review PRs as time allows — typically within a week, but no hard SLA. We may ask for changes; small follow-up commits are fine (squashing happens at merge time).
Releases are cut by the maintainers. Each GitHub Release attaches the built plugin JAR as a downloadable artifact.
This project follows the Contributor Covenant 2.1. By participating you agree to abide by its terms.