learnerchen-forever2k downloadsAI assisting writing, Rendering and publishing notes to WeChat MP platform
English | 简体中文
Write notes in Obsidian, render them to WeChat format with one click, and push them to your WeChat drafts. Works on every platform — publish end-to-end from your phone.
wewrite_theme: true to design an entire layout. Built-in templates are one click away, and the theme editor previews changes in real time.Basic formatting (H1–H6, bold, italic, strikethrough, inline code), code blocks (dark/light color themes, line numbers, macOS traffic-light decorations), ordered/unordered lists, task lists, tables, blockquotes, callouts, horizontal rules, footnotes, external links.
LaTeX math (MathJax SVG), Mermaid diagrams, Excalidraw sketches, wiki-link note embeds, and the inline icons Obsidian, Iconize and Remix inject into a note.
PDF embeds rendered as images: PDF++ region screenshots (![[file.pdf#page=N&rect=x1,y1,x2,y2|caption]]) and whole-page embeds (![[file.pdf#page=N]]) are automatically rendered and cached as PNGs at publish time — powered by Obsidian's built-in PDF.js, with no extra dependencies.
Dataview queries (dataview / dataviewjs code blocks and inline $= ...) are evaluated through the Dataview plugin and rendered as theme-styled text, consistent with handwritten Markdown.
An image embedded without a size fills the reading column at its own pixel ratio, so a wide screenshot stays readable on a phone without you resizing it by hand — an image you sized yourself (![[photo.png|200x150]]) keeps the size you gave it. Tables size to their content: a narrow table is centred instead of hugging the left edge, and a wide one scrolls sideways inside the article rather than squeezing its columns and folding English words in half.
Entry points: Command palette + editor right-click "WeWrite" submenu + the note header's "⋮" menu + the mobile editor toolbar — all offer the same actions.
Inserting images
| Action | Description |
|---|---|
| Insert Image from Vault | A thumbnail grid of every image in the vault, with a folder dropdown and a filename filter — unlike Obsidian's own attachment picker, which lists bare file names |
| Insert Image from System | The device's own photo picker, i.e. the camera roll on a phone. The image is copied into the vault first — into the folder your Default location for new attachments setting names — and converted to PNG when its format is one Obsidian cannot display |
AI writing tools
| Feature | Description |
|---|---|
| Proofread | Spelling / grammar / punctuation checks for Chinese and English. The result is a list you scan before deciding anything: every correction colour-coded by severity (spelling and punctuation red, grammar orange, wording blue), click to jump to it, only the changed characters marked in your text, and a suggestion you can rewrite before accepting. Accept or ignore one at a time, or all the remaining ones of a single type; ←/→ navigate and Enter accepts. Runs on the selection, or on the whole note when nothing is selected — code, frontmatter, links and $math$ are withheld from the model, so they never come back as "corrections" |
| Synonyms | Alternatives for the selected word, chosen against the sentence it sits in — the sense and a usage note are shown for each option, and the list can be re-rolled in place |
| Translate | 10 target languages; code, links, math and tags are protected from translation, and a result that lost one is flagged before it replaces your text |
| Generate Mermaid | Description → Obsidian-compatible diagram. Pick the diagram type instead of letting the model guess; the source is syntax-checked (and repaired once when it fails) before insertion |
| Generate Formula | Description → LaTeX, block or inline, compiled with Obsidian's own MathJax before insertion |
| Generate Image | Text description → AI illustration, inserted at the cursor |
| Generate Summary | WeChat-compliant summaries generated in the article view |
AI text providers: OpenAI / OpenAI Compatible (DeepSeek, Qwen, etc.) / Anthropic / Gemini / Ollama (local) / OpenRouter.
Image generation providers: Alibaba Wan 2.6 / Alibaba Qwen-Image 3.0 / ByteDance Seedream 5.0 / OpenAI DALL·E (the two Alibaba providers also require a Workspace ID).
Automatic size fitting: enter any free-form size (1440*613, 2K, 1024x1024, …) and the plugin converts it to each model's legal constraints — e.g. Seedream requires ≥2560×1440 total pixels with width and height as multiples of 64 — so WeChat banner ratios work out of the box.
Write → real-time preview in the WeWrite article view → configure title / author / summary / cover → push to drafts with one click → confirm and send via the Official Accounts Assistant app on your phone.
Dedicated image post view. Up to 20 images with captions, drag-and-drop sorting, phone-frame swipe preview, crop support.
Images / article drafts / image drafts in separate tabs. Sync, delete, download to vault, copy CDN links, set as cover. Assets referenced by published articles are automatically flagged to prevent accidental deletion.
A theme is a Markdown note with wewrite_theme: true (stored in wewrite/themes/). Ten built-in presets — Minimal GitHub, Classic WeChat, Elegant Serif, Paper Long-form, Grid Document, Typography Aesthetic, Clean Media, Colorful Accents, Warm Daily and Dark Tech — are authored on the same theme system as the ten downloadable ones, so a built-in theme now dresses every element (headings, quotes, callouts, tables, dividers, lists, inline marks, images, formulas, Mermaid, Excalidraw) instead of only the handful the old presets knew about. A wizard creates a theme in one dialog, and the visual editor covers the 100+ decorations and their parameters.
Two settings are theme-level rather than per-decoration, so one value reaches every element of that kind:
Built-in WebDAV sync: share one vault across devices, resolve conflicts visually, and roll back via the sync journal. Quota-aware for Jianguoyun's free plan (auto pause/resume, notes-first priority).
Full JSON export (with version number) for cross-vault migration. Automatically detects legacy v1.x settings on first launch and migrates them in one click.
Requires Obsidian 1.6.6 or later — the plugin calls
FileManager.trashFile(API introduced in 1.6.6), so older builds cannot run it. Language detection usesgetLanguage()(API 1.8.7) behind arequireApiVersionguard and falls back to English on 1.6.6–1.8.6.
Search "WeWrite" in the Obsidian Community Plugins marketplace, install and enable it.
Or install manually:
<vault>/.obsidian/plugins/wewrite/For step-by-step details and FAQs, see the Tutorials below.
The tutorials are currently written in Chinese; the Chinese README provides the full feature overview in Chinese.
What actually changed in each version lives in CHANGELOG.md. After an update WeWrite shows a What's New dialog, and the What's new in WeWrite command reopens it at any time.
Complete rewrite: mobile-first architecture, Obsidian native rendering + zero-CSS inline styling pipeline, theme-note system with 100+ decorations, AI writing assistant (proofread / synonyms / translate / Mermaid / formulas / image / summary), unified FNV1a-64 asset fingerprint database, three-zone cover editor, image post support, WebDAV multi-device sync, encrypted API key storage, settings import/export, automatic v1.x migration.
app:// image paths, inline math inside lists, images uploaded before copying to WeChat); added the What's New dialog; release notes are now generated from CHANGELOG.md.v1.x features no longer applicable in 2.0:
- CSS files +
juicepost-injection → replaced by zero-CSS inline rendering- IndexedDB storage → replaced by Obsidian native API
- Desktop-only → now fully cross-platform
- Flat theme presets → upgraded to hierarchical theme-note system
This plugin was deeply inspired by the following projects:
Thanks to the developers of these projects for their contributions to the open-source community.