Package the Firefox extension

June 21, 2026 · View on GitHub

doocs-md

WeChat Markdown Editor

status node pr stars forks
release npm docker

中文 | English

Overview

Instantly renders Markdown into WeChat-ready articles, so you never have to wrestle with formatting in the WeChat Official Account editor again. Standard Markdown syntax is all you need to produce clean, well-styled articles.

If this project is useful to you, a Star ⭐️ is always appreciated.

Online Editor

https://md.doocs.org

Chrome is recommended for the best experience.

Motivation

Most open-source WeChat Markdown editors suffer from overly complex styles that require manual tweaking after every paste. This project aims to provide a simpler, more focused editor so content creators can spend their time writing rather than fixing layout.

Pull requests are welcome. You can also share ideas in Discussions.

Features

  • Standard Markdown syntax and math formulas (KaTeX)
  • Mermaid diagrams, PlantUML, and GFM alert blocks
  • Ruby annotation extension: [text]{ruby} and [text]^(ruby) formats
  • Multiple code highlight themes; customizable theme colors and CSS
  • Local draft management with auto-save
  • Sync editor preferences after sign-in (cloud sync)
  • Multiple image hosting options (GitHub, Alibaba Cloud OSS, Tencent COS, Qiniu, MinIO, S3, Cloudflare R2, and more)
  • File import and export
  • AI assistant integration (DeepSeek, OpenAI, Tongyi Qianwen, Tencent Hunyuan, Volcengine, 302.AI, etc.)

Supported Image Hosts

#ServiceConfiguration requiredNotes
1DefaultNo-
2GitHubRepo, TokenHow to get a GitHub token
3Alibaba Cloud OSSAccessKey ID, AccessKey Secret, Bucket, RegionDocs
4Tencent COSSecretId, SecretKey, Bucket, RegionDocs
5Qiniu KodoAccessKey, SecretKey, Bucket, Domain, RegionDocs
6MinIOEndpoint, Port, UseSSL, Bucket, AccessKey, SecretKeyDocs
7S3-compatibleEndpoint, Region, Bucket, AccessKey, SecretKeySupports AWS S3, Oracle, DigitalOcean, and other S3-compatible storage
8WeChat Official AccountappID, appsecret, proxy domainTutorial
9Cloudflare R2AccountId, AccessKey, SecretKey, Bucket, DomainS3 API docs
10UpyunBucket, Operator, Password, DomainDocs
11TelegramBot Token, Chat IDUsage guide
12CloudinaryCloud Name, API Key, API SecretDocs
13Custom uploadYesHow to configure

Demo

Theme switchingImage upload
demo1demo2
Style customizationOne-click formatting
demo3demo4

Development & Build

# Install the required Node version
nvm i && nvm use

# Install dependencies
pnpm i

# Start the dev server, available at http://localhost:5173/md/
pnpm web dev

# Production build, served under /md/
pnpm web build

# Production build, served at the root path
pnpm web build:h5-netlify

# Chrome extension dev mode
# After starting, open chrome://extensions/, enable Developer mode,
# then load the unpacked extension from apps/web/.output/chrome-mv3-dev
pnpm web ext:dev

# Package the Chrome extension
pnpm web ext:zip

# Package the Firefox extension — output: apps/web/.output/md-{version}-firefox.zip
pnpm web firefox:zip

# Package the uTools plugin — output: apps/utools/release/md-utools-v{version}.zip
pnpm utools:package

# Cloudflare Workers development and deployment
pnpm web wrangler:dev
pnpm web wrangler:deploy

Self-hosting

Option 1: npm CLI

# Install globally
npm i -g @doocs/md-cli

# Start (default port: 8800)
md-cli

# Start with a custom port
md-cli port=8899

Supported CLI options:

  • port: Listening port. Defaults to 8800; a random port is chosen if occupied.
  • spaceId: dcloud service space ID
  • clientSecret: dcloud service space secret

Option 2: Docker

docker run -d -p 8080:80 doocs/md:latest

Then open http://localhost:8080 in your browser. For more details on the Docker image, see https://github.com/doocs/docker-md.

Star History

Star History Chart

Who's Using It

See USERS.md for a list of WeChat Official Accounts using this project.

Contributing

PRs and Issues are welcome. Please read CONTRIBUTING.md for the contribution workflow and guidelines.

Support

If this project has been helpful, you're welcome to support its continued development.

support1
support2

Feedback

For bug reports or feature requests, please open an Issue. You can also scan the QR code below to join the WeChat discussion group. If the QR code has expired, add the account as a friend with the note md.

doocs-md-wechat-group
wechat-ylb