Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

CJK Bold Fix

ebibibiebibibi742 downloads

Fixes CJK (Chinese/Japanese/Korean) bold and italic rendering in Live Preview mode.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates1

An Obsidian plugin that fixes bold and italic rendering for CJK (Chinese, Japanese, Korean) text in Live Preview mode.

The Problem

Obsidian's Live Preview (editing mode) uses CodeMirror 6, which follows the CommonMark specification for emphasis parsing. The CommonMark spec's "left-flanking" and "right-flanking" delimiter run rules were designed for space-separated languages like English and break when CJK punctuation appears adjacent to emphasis markers.

Examples of broken patterns

は、**知識があれば**です。       ← Doesn't render as bold
**テスト。**テスト              ← Doesn't render as bold
これは**重要な**テキストです     ← Doesn't render as bold

Note: Reading mode (preview) renders correctly — the bug only affects Live Preview (editing mode).

This is a known CommonMark issue (#650) with 235+ comments, unresolved for 7+ years.

How It Works

The plugin registers a CodeMirror 6 ViewPlugin that operates in 4 phases:

  1. Collect parser emphasis — Reads HyperMD syntax tree to find where the parser applied bold/italic
  2. Find correct emphasis — Uses per-line regex to determine where **...**, *...*, and ***...*** patterns with CJK content should actually be
  3. Override wrong emphasis — Applies font-weight: normal to ranges the parser incorrectly bolded
  4. Apply correct emphasis — Adds bold/italic styling and hides **/* markers where the parser missed

Installation

From Community Plugins

Search for "CJK Bold Fix" in Obsidian's Community Plugins browser.

Manual Installation

  1. Download main.js and manifest.json from the latest release
  2. Create a folder cjk-bold-fix in your vault's .obsidian/plugins/ directory
  3. Copy the files into that folder
  4. Enable the plugin in Obsidian's settings

Supported Languages

  • Japanese (Hiragana, Katakana, Kanji)
  • Chinese (Simplified & Traditional)
  • Korean (Hangul)

Technical Details

  • Approach: ViewPlugin + Decoration (no monkey-patching, no internal API dependencies)
  • Performance: Only processes visible ranges, rebuilds only on document/viewport/selection changes
  • Compatibility: Uses only official Obsidian plugin APIs (registerEditorExtension)
  • Emphasis types: Bold (**), italic (*), and bold+italic (***)

Related

  • CommonMark Issue #650 — The upstream specification issue
  • Obsidian Forum Discussion
  • markdown-cjk-friendly — Spec-level fix for various parsers

License

MIT

87%
HealthExcellent
ReviewSatisfactory
About
Fix bold and italic rendering for Chinese, Japanese and Korean text in Obsidian's Live Preview, restoring emphasis where CJK punctuation breaks CommonMark parsing. Apply correct bold/italic styling and hide emphasis markers in the editor without changing files, processing only visible ranges for performance.
EditingMarkdownLanguages
Details
Current version
1.0.0
Last updated
3 months ago
Created
3 months ago
Updates
1 release
Downloads
742
Compatible with
Obsidian 0.15.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
ebibibiebibibi
github.com/ebibibi
GitHubebibibi
  1. Community
  2. Plugins
  3. Editing
  4. CJK Bold Fix

Related plugins

Outliner

Work with your lists like in Workflowy or Roam Research.

Various Complements

Complete words similar to auto-completion in an IDE.

Simplified Chinese Word Splitting

Adds Simplified Chinese word splitting support for the editor and Vim mode.

Easy Typing

Auto format when typing.

LanguageTool

Unofficial integration of the LanguageTool spell and grammar checker.

Advanced Tables

Improved table navigation, formatting, and manipulation.

Importer

Import data from Notion, Evernote, Apple Notes, Microsoft OneNote, Google Keep, Bear, Roam, and HTML files.

Meta Bind

Make your notes interactive with inline input fields, metadata displays, and buttons.

Creases

Tools for effectively folding Markdown sections.

Linter

Format and style your notes. Linter can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular Markdown contents like list, italics, and bold styles; and more with the use of custom rule options.