Chrome extension that replaces the default Azure DevOps wiki markdown editor with a WYSIWYG experience powered by ProseMirror, markdown-it (GFM-style tables and task lists), and remark-family utilities where needed for Azure DevOps–specific markdown.
Try the WYSIWYG editor right in your browser — no install required:
👉 bthos.github.io/azure-devops-wiki-editor
The demo is the project's playground.html deployed to GitHub Pages (.github/workflows/pages.yml); it runs the same editor bundle the extension ships.
- Node.js (v12 or higher)
- npm (comes with Node.js)
- Google Chrome browser
To build the development version of the extension, follow these steps:
-
Clone the Repository:
git clone https://github.com/bthos/azure-devops-wiki-editor.git cd azure-devops-wiki-editor -
Install Dependencies: Make sure you have Node.js and npm installed. Then, run the following command to install the required dependencies:
npm install
-
Build the Development Version: Run the following command to build the development version of the extension:
npm run dev-build
This will create a development build in the dist/ directory. The development build includes source maps and unminified code for easier debugging.
To build the production version of the extension, follow these steps:
-
Install Dependencies: If you haven't already, install the dependencies:
npm install
-
Clean the Build Directory (Optional):
npm run clean
-
Build the Production Version: Run the following command to build the production version of the extension:
npm run build
This will create a production build in the dist/ directory. The production build is optimized with minified code and no source maps. It also creates a ZIP file ready for distribution.
To test the editor functionality locally before installing it as a Chrome extension:
-
Start the development server:
npm run server
-
Open your browser and navigate to:
http://localhost:8080/playground.html -
You'll see a test page with the WYSIWYG editor where you can try out the features without needing to install the extension.
- Build the extension using either the development or production build steps above
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" by toggling the switch in the top right corner
- Click on the "Load unpacked" button
- Select the
dist/directory where the build files are located - Navigate to any Azure DevOps wiki page
- Try editing a page to verify the WYSIWYG editor appears and functions correctly
- Test the following features:
- Basic text formatting (bold, italic, lists)
- Creating and editing tables
- Adding links and images
- Switching between WYSIWYG and Markdown modes
- Saving changes to the wiki page
If the editor doesn't appear:
- Check the browser's console for any error messages
- Try refreshing the page
- Ensure the extension is enabled in Chrome
- Verify you're on a supported Azure DevOps wiki page (URL should match
*://dev.azure.com/*/_wiki/*or*://*.visualstudio.com/*/_wiki/*)
- WYSIWYG editing for Azure DevOps Wiki pages — edit rich content without hand-writing Markdown.
- One-click WYSIWYG ⇄ Markdown toggle — flip back to the native Azure DevOps Markdown editor anytime for advanced formatting. Toggle-switch position (left/right) is configurable in the extension popup.
- Activates on in-app (SPA) navigation — no page reload required when arriving at a wiki page from another Azure DevOps page (since v3.1.1).
- Standard Markdown: headers (H1–H6), ordered/unordered lists, task lists (checkboxes), blockquotes, and code blocks.
- Tables — insert via a visual grid picker, then add/remove rows & columns or delete the table from the toolbar dropdown.
- Text & highlight colors — native color pickers; serialized as inline
<span style="color:…;background-color:…">wiki HTML (wikiStylemark). - Code syntax highlighting in read-only code blocks (highlight.js).
- Math (KaTeX) — inline
$x+y$and display$$…$$/\[…\]; toolbar buttons for inline & display math. - Mermaid diagrams — Azure DevOps
::: mermaid … :::blocks rendered live; fenced```mermaidis normalized to the ADO container on save. - Video embeds — Azure DevOps
::: video … :::blocks with native<video>preview for direct MP4/WebM/Ogg links. - Azure DevOps–specific markup:
- @mentions (with people picker)
- Work item references (
#123) rendered as clickable chips linking to the work item - Wiki TOC generation (
[[_TOC_]]) - Wiki links
- Image & file upload — drag, drop, or paste; multi-file uploads collapse into a single undo step.
- Undo/redo history tuned for the wiki editing flow.
- Theme aware — automatically follows your Azure DevOps theme (Light, Dark, High Contrast Dark/Light); the popup follows your browser's dark-mode preference.
- Custom domains — works with Azure DevOps cloud (
dev.azure.com,*.visualstudio.com) and on-premises Azure DevOps Server via custom domains added in the popup. - Split-screen (editor/preview) and full-screen editing modes.
| Action | Windows/Linux | macOS |
|---|---|---|
| Bold | Ctrl+B | ⌘+B |
| Italic | Ctrl+I | ⌘+I |
| Strike Through | Ctrl+S | ⌘+S |
| Heading 1-6 | Ctrl+1-6 | ⌘+1-6 |
| Code Block | Ctrl+Shift+C | ⌘+Shift+C |
| Link | Ctrl+K | ⌘+K |
| Switch to HTML | Ctrl+Tab | ⌘+Tab |
| Save Changes | Ctrl+S | ⌘+S |
- Fork the repository
- Create a new branch for your feature or bugfix
- Make your changes
- Test thoroughly using the steps above
- Create a pull request with a clear description of your changes
This project is licensed under the ISC License. See the LICENSE file for details.
The source code for this project is available at GitHub.
If you encounter any issues:
- Check the existing issues to see if it's already reported
- If not, create a new issue with:
- Steps to reproduce the problem
- Expected behavior
- Actual behavior
- Browser version and OS
- Any relevant error messages from the console
Core runtime libraries include prosemirror-*, prosemirror-markdown, markdown-it-multimd-table, markdown-it-task-lists, and remark-parse / remark-stringify / remark-gfm / unified (see package.json).
Key tooling (see package.json for exact versions):
esbuild— Bundling the extensiontypescript— Type checking and authoringvitest,happy-dom,@vitest/coverage-v8— Unit tests@types/chrome— Chrome extension TypeScript typeshttp-server— Local playground server (npm run server)cross-env— Cross-platform env in build scriptsarchiver— ZIP output for releasesstandard-version,commitizen,@commitlint/*,cz-conventional-changelog— Versioning and commits
clean: Removes the dist directory and zip filestest: Runs the Vitest unit test suite (vitest run)dev-build: Builds development version with source mapsbuild: Builds production version with optimizations and creates ZIP fileserver: Starts a local development serverversion: Synchronizes version from package.json to manifest.json