{"id":24708232,"url":"https://github.com/tats-u/markdown-cjk-friendly","last_synced_at":"2026-06-14T17:01:40.587Z","repository":{"id":272236433,"uuid":"915917695","full_name":"tats-u/markdown-cjk-friendly","owner":"tats-u","description":"Make CommonMark more friendly for Japanese/Chinese/Korean (CommonMark next specification draft)—plugins \u0026 patched packages","archived":false,"fork":false,"pushed_at":"2026-02-05T15:15:53.000Z","size":2326,"stargazers_count":96,"open_issues_count":3,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-05T21:47:54.044Z","etag":null,"topics":["chinese","cjk","commonmark","japanese","korean","markdown","markdown-it","markdown-it-plugin","remark","remark-plugin"],"latest_commit_sha":null,"homepage":"https://tats-u.github.io/markdown-cjk-friendly/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tats-u.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-13T05:13:49.000Z","updated_at":"2026-02-05T15:17:58.000Z","dependencies_parsed_at":"2026-02-05T12:14:36.643Z","dependency_job_id":null,"html_url":"https://github.com/tats-u/markdown-cjk-friendly","commit_stats":null,"previous_names":["tats-u/markdown-cj-friendly","tats-u/markdown-cjk-friendly"],"tags_count":69,"template":false,"template_full_name":null,"purl":"pkg:github/tats-u/markdown-cjk-friendly","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tats-u%2Fmarkdown-cjk-friendly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tats-u%2Fmarkdown-cjk-friendly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tats-u%2Fmarkdown-cjk-friendly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tats-u%2Fmarkdown-cjk-friendly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tats-u","download_url":"https://codeload.github.com/tats-u/markdown-cjk-friendly/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tats-u%2Fmarkdown-cjk-friendly/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29166249,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T14:37:12.680Z","status":"ssl_error","status_checked_at":"2026-02-06T14:36:22.973Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chinese","cjk","commonmark","japanese","korean","markdown","markdown-it","markdown-it-plugin","remark","remark-plugin"],"created_at":"2025-01-27T06:28:58.641Z","updated_at":"2026-06-14T17:01:40.578Z","avatar_url":"https://github.com/tats-u.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Markdown packages in CommonMark revision candidate compatible with Chinese, Japanese, and Korean (CJK)\n\n[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/tats-u/markdown-cjk-friendly) [![CodSpeed Badge](https://img.shields.io/endpoint?url=https://codspeed.io/badge.json)](https://codspeed.io/tats-u/markdown-cjk-friendly?utm_source=badge)\n\n## Packages / \u003cspan lang=\"ja\"\u003eパッケージ一覧\u003c/span\u003e / \u003cspan lang=\"zh-Hans-CN\"\u003e相关的包\u003c/span\u003e / \u003cspan lang=\"ko\"\u003e패키지 목록\u003c/span\u003e\n\n- [`markdown-it-cjk-friendly`](./packages/markdown-it-cjk-friendly) [![Version](https://img.shields.io/npm/v/markdown-it-cjk-friendly)](https://npmjs.com/package/markdown-it-cjk-friendly) ![Node Current](https://img.shields.io/node/v/markdown-it-cjk-friendly) [![NPM Downloads](https://img.shields.io/npm/dm/markdown-it-cjk-friendly)](https://npmjs.com/package/markdown-it-cjk-friendly) [![NPM Last Update](https://img.shields.io/npm/last-update/markdown-it-cjk-friendly)](https://npmjs.com/package/markdown-it-cjk-friendly) [![Socket Badge](https://badge.socket.dev/npm/package/markdown-it-cjk-friendly)](https://socket.dev/npm/package/markdown-it-cjk-friendly) [\\[Snyk Security\\]](https://security.snyk.io/package/npm/markdown-it-cjk-friendly)\n- [`remark-cjk-friendly`](./packages/remark-cjk-friendly) [![Version](https://img.shields.io/npm/v/remark-cjk-friendly)](https://npmjs.com/package/remark-cjk-friendly) ![Node Current](https://img.shields.io/node/v/remark-cjk-friendly) [![NPM Downloads](https://img.shields.io/npm/dm/remark-cjk-friendly)](https://npmjs.com/package/remark-cjk-friendly) [![NPM Last Update](https://img.shields.io/npm/last-update/remark-cjk-friendly)](https://npmjs.com/package/remark-cjk-friendly) [![Socket Badge](https://badge.socket.dev/npm/package/remark-cjk-friendly)](https://socket.dev/npm/package/remark-cjk-friendly) [\\[Snyk Security\\]](https://security.snyk.io/package/npm/remark-cjk-friendly)\n  - [`remark-cjk-friendly-gfm-strikethrough`](./packages/remark-cjk-friendly-gfm-strikethrough) [![Version](https://img.shields.io/npm/v/remark-cjk-friendly-gfm-strikethrough)](https://npmjs.com/package/remark-cjk-friendly-gfm-strikethrough) ![Node Current](https://img.shields.io/node/v/remark-cjk-friendly-gfm-strikethrough) [![NPM Downloads](https://img.shields.io/npm/dm/remark-cjk-friendly-gfm-strikethrough)](https://npmjs.com/package/remark-cjk-friendly-gfm-strikethrough) [![NPM Last Update](https://img.shields.io/npm/last-update/remark-cjk-friendly-gfm-strikethrough)](https://npmjs.com/package/remark-cjk-friendly-gfm-strikethrough) [![Socket Badge](https://badge.socket.dev/npm/package/remark-cjk-friendly-gfm-strikethrough)](https://socket.dev/npm/package/remark-cjk-friendly-gfm-strikethrough) [\\[Snyk Security\\]](https://security.snyk.io/package/npm/remark-cjk-friendly-gfm-strikethrough)\n  - [`micromark-extension-cjk-friendly`](./packages/micromark-extension-cjk-friendly) [![Version](https://img.shields.io/npm/v/micromark-extension-cjk-friendly)](https://npmjs.com/package/micromark-extension-cjk-friendly) ![Node Current](https://img.shields.io/node/v/micromark-extension-cjk-friendly) [![NPM Downloads](https://img.shields.io/npm/dm/micromark-extension-cjk-friendly)](https://npmjs.com/package/micromark-extension-cjk-friendly) [![NPM Last Update](https://img.shields.io/npm/last-update/micromark-extension-cjk-friendly)](https://npmjs.com/package/micromark-extension-cjk-friendly) [![Socket Badge](https://badge.socket.dev/npm/package/micromark-extension-cjk-friendly)](https://socket.dev/npm/package/micromark-extension-cjk-friendly) [\\[Snyk Security\\]](https://security.snyk.io/package/npm/micromark-extension-cjk-friendly)\n    - [`micromark-extension-cjk-friendly-util`](./packages/micromark-extension-cjk-friendly-util) [![Version](https://img.shields.io/npm/v/micromark-extension-cjk-friendly-util)](https://npmjs.com/package/micromark-extension-cjk-friendly-util) ![Node Current](https://img.shields.io/node/v/micromark-extension-cjk-friendly-util) [![NPM Downloads](https://img.shields.io/npm/dm/micromark-extension-cjk-friendly-util)](https://npmjs.com/package/micromark-extension-cjk-friendly-util) [![NPM Last Update](https://img.shields.io/npm/last-update/micromark-extension-cjk-friendly-util)](https://npmjs.com/package/micromark-extension-cjk-friendly-util) [![Socket Badge](https://badge.socket.dev/npm/package/micromark-extension-cjk-friendly-util)](https://socket.dev/npm/package/micromark-extension-cjk-friendly-util) [\\[Snyk Security\\]](https://security.snyk.io/package/npm/micromark-extension-cjk-friendly-util)\n    - [`micromark-extension-cjk-friendly-gfm-strikethrough`](./packages/micromark-extension-cjk-friendly-gfm-strikethrough) [![Version](https://img.shields.io/npm/v/micromark-extension-cjk-friendly-gfm-strikethrough)](https://npmjs.com/package/micromark-extension-cjk-friendly-gfm-strikethrough) ![Node Current](https://img.shields.io/node/v/micromark-extension-cjk-friendly-gfm-strikethrough) [![NPM Downloads](https://img.shields.io/npm/dm/micromark-extension-cjk-friendly-gfm-strikethrough)](https://npmjs.com/package/micromark-extension-cjk-friendly-gfm-strikethrough) [![NPM Last Update](https://img.shields.io/npm/last-update/micromark-extension-cjk-friendly-gfm-strikethrough)](https://npmjs.com/package/micromark-extension-cjk-friendly-gfm-strikethrough) [![Socket Badge](https://badge.socket.dev/npm/package/micromark-extension-cjk-friendly-gfm-strikethrough)](https://socket.dev/npm/package/micromark-extension-cjk-friendly-gfm-strikethrough) [\\[Snyk Security\\]](https://security.snyk.io/package/npm/micromark-extension-cjk-friendly-gfm-strikethrough)\n- [marked-cjk-friendly](./packages/marked-cjk-friendly) [![Version](https://img.shields.io/npm/v/marked-cjk-friendly)](https://npmjs.com/package/marked-cjk-friendly) ![Node Current](https://img.shields.io/node/v/marked-cjk-friendly) [![NPM Downloads](https://img.shields.io/npm/dm/marked-cjk-friendly)](https://npmjs.com/package/marked-cjk-friendly) [![NPM Last Update](https://img.shields.io/npm/last-update/marked-cjk-friendly)](https://npmjs.com/package/marked-cjk-friendly) [![Socket Badge](https://badge.socket.dev/npm/package/marked-cjk-friendly)](https://socket.dev/npm/package/marked-cjk-friendly) [\\[Snyk Security\\]](https://security.snyk.io/package/npm/marked-cjk-friendly)\n- ~~[`markdown-it-cj-friendly`](./packages/markdown-it-cj-friendly)~~ [![Version](https://img.shields.io/npm/v/markdown-it-cj-friendly)](https://npmjs.com/package/markdown-it-cj-friendly) [![NPM Downloads](https://img.shields.io/npm/dm/markdown-it-cj-friendly)](https://npmjs.com/package/markdown-it-cj-friendly) (Deprecated; switch to `markdown-it-cjk-friendly`)\n\n## Ports / \u003cspan lang=\"ja\"\u003e移植\u003c/span\u003e / \u003cspan lang=\"zh-Hans-CN\"\u003e移植\u003c/span\u003e / \u003cspan lang=\"ko\"\u003e이식\u003c/span\u003e\n\n### As an extension / \u003cspan lang=\"ja\"\u003e拡張機能として\u003c/span\u003e / \u003cspan lang=\"zh-Hans-CN\"\u003e作为扩展\u003c/span\u003e / \u003cspan lang=\"ko\"\u003e확장 기능\u003c/span\u003e\n\n- [Comrak](https://github.com/kivikakk/comrak)\n  - [commonmarker](https://github.com/gjtorikian/commonmarker)\n  - [GitLab Flavored Markdown (gitlab-glfm-markdown gem)](https://gitlab.com/gitlab-org/ruby/gems/gitlab-glfm-markdown) ([dingus](https://gitlab-org.gitlab.io/ruby/gems/gitlab-glfm-markdown/))\n- [goldmark-cjk-friendly](https://github.com/tats-u/goldmark-cjk-friendly) (Official port for [goldmark](https://github.com/yuin/goldmark))\n- [Markdig](https://github.com/xoofx/markdig)\n\n## Planned / \u003cspan lang=\"ja\"\u003e予定\u003c/span\u003e / \u003cspan lang=\"zh-Hans-CN\"\u003e未来的改进\u003c/span\u003e / \u003cspan lang=\"ko\"\u003e예정\u003c/span\u003e\n\n- Tweak specifications\n- Port for non-JavaScript implementations\n\n## Specification / \u003cspan lang=\"ja\"\u003e規格書\u003c/span\u003e / \u003cspan lang=\"zh-Hans-CN\"\u003e规范\u003c/span\u003e / \u003cspan lang=\"ko\"\u003e설명서\u003c/span\u003e\n\nSee [specification.md](specification.md).\n\n\u003cspan lang=\"ja\"\u003e[specification.md](specification.md)（英語） を参照してください。\u003c/span\u003e\n\n\u003cspan lang=\"zh-Hans-CN\"\u003e参考 [specification.md](specification.md)（英文）。\u003c/span\u003e\n\n\u003cspan lang=\"ko\"\u003e[specification.md](specification.md)(영어)를 참고해 주시기 바랍니다.\u003c/span\u003e\n\n### Documents for implementers / \u003cspan lang=\"ja\"\u003e実装者向け文書\u003c/span\u003e / \u003cspan lang=\"zh-Hans-CN\"\u003e实现文档\u003c/span\u003e / \u003cspan lang=\"ko\"\u003e구현자를 위한 문서\u003c/span\u003e\n\n- [implementers-tips.md](implementers-tips.md) (English)\n- [ranges.md](ranges.md) (English)\n\n## Demo / \u003cspan lang=\"ja\"\u003eデモ\u003c/span\u003e / \u003cspan lang=\"zh-Hans-CN\"\u003e演示\u003c/span\u003e / \u003cspan lang=\"ko\"\u003e데모\u003c/span\u003e\n\nhttps://tats-u.github.io/markdown-cjk-friendly\n\n## Problem / \u003cspan lang=\"ja\"\u003e問題\u003c/span\u003e / \u003cspan lang=\"zh-Hans-CN\"\u003e问题\u003c/span\u003e / \u003cspan lang=\"ko\"\u003e문제\u003c/span\u003e\n\nCommonMark has a problem that the following emphasis marks `**` are not recognized as emphasis marks in Japanese,Chinese, and Korean.\n\n\u003cspan lang=\"ja\"\u003eCommonMarkには、日本語・中国語・韓国語内の次のような強調記号(`**`)が強調記号として認識されない問題があります。\u003c/span\u003e\n\n\u003cspan lang=\"zh-Hans-CN\"\u003eCommonMark存在以下问题：在中文、日语和韩语文本中，强调标记`**`不会被识别为强调标记。\u003c/span\u003e\n\n\u003cspan lang=\"ko\"\u003eCommonMark는 한국어, 일본어, 중국어에서 다음과 같은 강조 표시 `**`가 강조 표시로 인식되지 않는 문제가 있습니다.\u003c/span\u003e\n\n```md\n**このアスタリスクは強調記号として認識されず、そのまま表示されます。**この文のせいで。\n\n**该星号不会被识别，而是直接显示。**这是因为它没有被识别为强调符号。\n\n**이 별표는 강조 표시로 인식되지 않고 그대로 표시됩니다(이 괄호 때문에)**이 문장 때문에.\n```\n\nThis problem occurs because the character just inside the `**` is a (Japanese or Chinese) punctuation mark (。) or parenthesis and the character just outside is not a space or punctuation mark.\n\n\u003cspan lang=\"ja\"\u003eこれが起こった原因は、終了側の`**`のすぐ内側が約物（。やカッコ）、かつ外側が約物や空白以外の文字であるためです。\u003c/span\u003e\n\n\u003cspan lang=\"zh-Hans-CN\"\u003e这个问题是因为在`**`的结束部分，内侧字符是标点符号（。）或括号，而外侧字符不是空格或标点符号。\u003c/span\u003e\n\n\u003cspan lang=\"ko\"\u003e이 문제는 `**` 바로 안쪽의 문자가 (일본어나 중국어) 문장 부호(。) 또는 괄호이고 바깥쪽 문자가 공백이나 문장 부호가 아니기 때문에 발생합니다.\u003c/span\u003e\n\nOf course, not only the end side but also the start side has the same issue.\n\n\u003cspan lang=\"ja\"\u003eもちろん終了側だけでなく、開始側も同様の問題が存在します。\u003c/span\u003e\n\n\u003cspan lang=\"zh-Hans-CN\"\u003e当然，不仅是结束侧，开始侧也存在同样的问题。\u003c/span\u003e\n\n\u003cspan lang=\"ko\"\u003e물론 끝나는 부분뿐만 아니라 시작하는 부분에서도 동일한 문제가 있습니다.\u003c/span\u003e\n\nCommonMark issue: https://github.com/commonmark/commonmark-spec/issues/650\n\n## Who should adopt this specifications instead of the original CommonMark or GFM? / \u003cspan lang=\"ja\"\u003e元のCommonMarkやGFMの代わりにこの仕様を採用べき人\u003c/span\u003e / \u003cspan lang=\"zh-Hans-CN\"\u003e谁应该采用这个规范而不是原始的CommonMark或GFM？\u003c/span\u003e / \u003cspan lang=\"ko\"\u003e누가 원래의 CommonMark나 GFM 대신 이 사양을 채택해야 하는가\u003c/span\u003e\n\nIf you are an engineer who must handle Chinese, Japanese, and Korean content that cannot be fully supervised, it is strongly recommended to adopt this specification instead of plain CommonMark or GFM. \"Cannot be fully supervised\" refers to situations such as:\n\n1. When you need to display user-generated or AI-generated content as-is\n2. When many translators do not understand this CommonMark behavior, and you cannot provide real-time rendering previews similar to production, and `\u003cstrong\u003e` tags are not allowed\n    - When using translation services like Crowdin or Transifex\n    - When the person responsible for translation quality is not an engineer or does not understand this CommonMark behavior\n\nAdditionally, if you are creating Markdown-related software or services primarily targeting Chinese, Japanese, or Korean users (or all of them), it is strongly recommended to adopt this specification.\n\n\u003cspan lang=\"ja\"\u003eもしエンジニアであるあなたが全てに監修を入れられない日本語・中国語・韓国語のコンテンツを扱わなければならない場合、素のCommonMarkやGFMではなく、この仕様を採用することを強く推奨します。「全てに監修を入れられない」というのは、例えば次のようなものを指します。\u003c/span\u003e\n\n1. \u003cspan lang=\"ja\"\u003eユーザまたはAIが作成したコンテンツをそのまま表示する必要がある場合\u003c/span\u003e\n2. \u003cspan lang=\"ja\"\u003e翻訳者に、このCommonMarkの仕様を理解していない人も多く、なおかつリアルタイムで本番同様の描画プレビューを提供できず、`\u003cstrong\u003e`タグを許可していない場合\u003c/span\u003e\n    - \u003cspan lang=\"ja\"\u003e翻訳にCrowdin・Transifexなどの翻訳サービスを使っている場合\u003c/span\u003e\n    - \u003cspan lang=\"ja\"\u003e翻訳の品質に責任を負っている人が非エンジニアである、またはCommonMarkのこの挙動を理解していない場合\u003c/span\u003e\n\n\u003cspan lang=\"ja\"\u003eまた、あなたが主に日本人・中国人・韓国人のいずれかまたは全てを対象としたMarkdown関連のソフトウェアやサービスを作成する場合も、この仕様を採用することを強く推奨します。\u003c/span\u003e\n\n\u003cspan lang=\"zh-Hans-CN\"\u003e如果作为工程师的您必须处理无法全面监督的中文、日文和韩文内容，强烈建议采用此规范，而不是普通的CommonMark或GFM。\"无法全面监督\"指的是以下情况：\u003c/span\u003e\n\n1. \u003cspan lang=\"zh-Hans-CN\"\u003e当需要按原样显示用户生成或AI生成的内容时\u003c/span\u003e\n2. \u003cspan lang=\"zh-Hans-CN\"\u003e当许多翻译人员不理解这个CommonMark行为，而且无法提供类似生产环境的实时渲染预览，并且不允许使用`\u003cstrong\u003e`标签时\u003c/span\u003e\n    - \u003cspan lang=\"zh-Hans-CN\"\u003e当使用Crowdin或Transifex等翻译服务时\u003c/span\u003e\n    - \u003cspan lang=\"zh-Hans-CN\"\u003e当负责翻译质量的人不是工程师或不理解这个CommonMark行为时\u003c/span\u003e\n\n\u003cspan lang=\"zh-Hans-CN\"\u003e此外，如果您正在创建主要面向中国人、日本人或韩国人（或全部）的Markdown相关软件或服务，也强烈建议采用此规范。\u003c/span\u003e\n\n\u003cspan lang=\"ko\"\u003e엔지니어로서 완전히 감독할 수 없는 한국어, 일본어, 중국어 콘텐츠를 다뤄야 하는 경우 일반 CommonMark나 GFM 대신 이 사양을 채택할 것을 강력히 권장합니다. '완전히 감독할 수 없는'이란 다음과 같은 상황을 의미합니다.\u003c/span\u003e\n\n1. \u003cspan lang=\"ko\"\u003e사용자 또는 AI가 생성한 콘텐츠를 그대로 표시해야 하는 경우\u003c/span\u003e\n2. \u003cspan lang=\"ko\"\u003e많은 번역자가 CommonMark의 동작을 이해하지 못하고, 실시간으로 실제 환경과 유사한 렌더링 미리보기를 제공할 수 없으며, `\u003cstrong\u003e` 태그가 허용되지 않는 경우\u003c/span\u003e\n    - \u003cspan lang=\"ko\"\u003eCrowdin이나 Transifex 같은 번역 서비스를 사용하는 경우\u003c/span\u003e\n    - \u003cspan lang=\"ko\"\u003e번역 품질에 책임을 지는 사람이 엔지니어가 아니거나 CommonMark의 동작을 이해하지 못하는 경우\u003c/span\u003e\n\n\u003cspan lang=\"ko\"\u003e또한, 주로 한국어, 일본어, 중국어 사용자(또는 모두)를 대상으로 하는 Markdown 관련 소프트웨어나 서비스를 만들고 있다면 이 사양을 채택할 것을 강력히 권장합니다.\u003c/span\u003e\n\n### Example of 1. (Chinese) / \u003cspan lang=\"ja\"\u003e1.の例（中国語）\u003c/span\u003e / \u003cspan lang=\"zh-Hans-CN\"\u003e1.的例子\u003c/span\u003e / \u003cspan lang=\"ko\"\u003e1.의 예시(중국어)\u003c/span\u003e:\n\n❌️Plain CommonMark / \u003cspan lang=\"ja\"\u003e素のCommonMark\u003c/span\u003e / \u003cspan lang=\"zh-Hans-CN\"\u003e原生CommonMark\u003c/span\u003e / \u003cspan lang=\"ko\"\u003e기본 CommonMark\u003c/span\u003e:\n\n![plain CommonMark](https://github.com/user-attachments/assets/80bd3ffd-9416-4080-bc10-a408afef845b)\n\n✅️With this spec / \u003cspan lang=\"ja\"\u003e本規格\u003c/span\u003e / \u003cspan lang=\"zh-Hans-CN\"\u003e这个规范\u003c/span\u003e / \u003cspan lang=\"ko\"\u003e이 사양\u003c/span\u003e:\n\n![with this spec](https://github.com/user-attachments/assets/b2e159c5-3cae-495f-89c6-280ddb2926ce)\n\nImage source: [CherryHQ/cherry-studio#4119](https://github.com/CherryHQ/cherry-studio/pull/4119)\n\n## Compatibility with CommonMark / \u003cspan lang=\"ja\"\u003eCommonMarkとの互換性\u003c/span\u003e / \u003cspan lang=\"zh-Hans-CN\"\u003e与CommonMark的兼容性\u003c/span\u003e / \u003cspan lang=\"ko\"\u003eCommonMark와의 호환성\u003c/span\u003e\n\nThis specification is identical to CommonMark for all input except Chinese, Japanese, Korean, and (some emojis and symbols). The aforementioned plugins/extension packages guarantee that their Markdown implementations output the same HTML for all CommonMark test cases as of CommonMark 0.31.2.\n\n\u003cspan lang=\"ja\"\u003e本仕様は、日本語・中国語・韓国語・ごく一部の絵文字や記号以外の入力に対してはCommonMarkと同一です。上記のプラグイン/拡張パッケージは、CommonMark 0.31.2時点の全てのCommonMarkテストケースでMarkdown実装が同じHTMLを出力することを保証しています。\u003c/span\u003e\n\n\u003cspan lang=\"zh-Hans-CN\"\u003e除中文、日文、韩文和（少数表情符号和符号）之外的所有输入，本规范与CommonMark完全相同。上述插件/扩展包保证其Markdown实现在CommonMark 0.31.2的所有测试用例中输出相同的HTML。\u003c/span\u003e\n\n\u003cspan lang=\"ko\"\u003e본 사양은 한국어, 일본어, 중국어 및 일부 이모티콘과 기호를 제외한 모든 입력에 대해 CommonMark와 동일합니다. 앞서 언급된 플러그인/확장 패키지는 CommonMark 0.31.2 기준의 모든 CommonMark 테스트 케이스에서 동일한 HTML을 출력하는 Markdown 구현을 보장합니다.\u003c/span\u003e\n\n## Compatibility with the other languages / \u003cspan lang=\"ja\"\u003e他言語との互換性\u003c/span\u003e / \u003cspan lang=\"zh-Hans-CN\"\u003e与其他语言的兼容性\u003c/span\u003e / \u003cspan lang=\"ko\"\u003e다른 언어와의 호환성\u003c/span\u003e\n\nThis modification of the specification does not affect the other languages than Chinese, Japanese, and Korean. Even if your application or document has translations or content in other languages, it will not be affected, so please feel free to use the packages.\n\n\u003cspan lang=\"ja\"\u003eこの仕様変更提案は、日本語・中国語・韓国語以外の言語には影響しません。アプリケーションやドキュメントに他言語の翻訳やコンテンツが含まれていても影響はありませんので、安心してパッケージをご利用ください。\u003c/span\u003e\n\n\u003cspan lang=\"zh-Hans-CN\"\u003e除中文、日文和韩文外，建议的规范变更不会影响其他语言。请放心使用该软件包，因为如果您的应用程序或文档包含其他语言的翻译或内容，也不会受到影响。\u003c/span\u003e\n\n\u003cspan lang=\"ko\"\u003e이 사양 변경 제안은 한국어, 일본어, 중국어 이외의 언어에는 영향을 미치지 않습니다. 애플리케이션이나 문서에 다른 언어의 번역이나 콘텐츠가 포함되어 있어도 영향을 받지 않으므로 안심하고 패키지를 사용하시기 바랍니다.\u003c/span\u003e\n\n## Example Configurations / \u003cspan lang=\"ja\"\u003e設定例\u003c/span\u003e / \u003cspan lang=\"zh-Hans-CN\"\u003e示例配置\u003c/span\u003e / \u003cspan lang=\"ko\"\u003e설정 예시\u003c/span\u003e\n\n### MDX (using `remark-cjk-friendly` family)\n\n- [Docusaurus](./demos/docusaurus/docusaurus.config.js)\n- [Astro](./demos/astro/astro.config.mjs)\n- [Rspress](./demos/rspress/rspress.config.ts) (built-in and enabled by default since [v2.0.5](https://github.com/web-infra-dev/rspress/releases/tag/v2.0.5))\n\n### `markdown-it` (using `markdown-it-cjk-friendly`)\n\n- [VitePress (v1.x)](./demos/vitepress/.vitepress/config.mjs) (built-in and enabled by default since v2.0.0-alpha.12)\n\n## Which package(s) should I use? / \u003cspan lang=\"ja\"\u003eどのパッケージを使うべきか\u003c/span\u003e / \u003cspan lang=\"zh-Hans-CN\"\u003e应该使用哪个包\u003c/span\u003e / \u003cspan lang=\"ko\"\u003e어떤 패키지를 사용해야 하는가\u003c/span\u003e\n\nIf you're using `remark`, `markdown-it`, or `micromark` directly, you should use the corresponding packages whose names start with the name of the package you're using.\n\n\u003cspan lang=\"ja\"\u003e`remark`・`markdown-it`・`micromark`を直接使っている場合は、そのパッケージの名前から始まるパッケージを使ってください。\u003c/span\u003e\n\n\u003cspan lang=\"zh-Hans-CN\"\u003e如果您直接使用`remark`、`markdown-it`或`micromark`，则您正在使用的包的名称开头的相应包是正确的。\u003c/span\u003e\n\n\u003cspan lang=\"ko\"\u003e`remark`, `markdown-it`, `micromark`를 직접 사용하는 경우에는 그 패키지의 이름으로 시작하는 패키지를 사용해 주시기 바랍니다.\u003c/span\u003e\n\nIf you don't know which package to use because you're not using `remark`, `markdown-it`, or `micromark` directly, you can follow the flowchart below.\n\n\u003cspan lang=\"ja\"\u003e`remark`・`markdown-it`・`micromark`を直接は使っていないのでどのパッケージを使うべきか不明な場合は、下記のフローチャートを参考にしてください。\u003c/span\u003e\n\n\u003cspan lang=\"zh-Hans-CN\"\u003e如果您因为没有直接使用`remark`、`markdown-it`或`micromark`而不知道该使用哪个包，可以参考下面的流程图。\u003c/span\u003e\n\n\u003cspan lang=\"ko\"\u003e`remark`, `markdown-it`, `micromark`를 직접 사용하지 않아서 어떤 패키지를 사용해야 하는지 모르는 경우에는 아래의 순서도를 참고해 주시기 바랍니다.\u003c/span\u003e\n\n```mermaid\nflowchart TD\n\nisMdx{\"Can the document\nbe MDX?\"}--\"Yes\"--\u003e remarkRoot{\"Is GFM enabled by (an option of) your framework or tool?\"}\nisMdx--\"No\"--\u003e pluginStyle{\"How are custom Markdown plugins configured?\n(search the docs of your framework or tool)\"}\npluginStyle --\"remarkPlugins \u0026 rehypePlugins properties\"--\u003e remarkRoot\npluginStyle --\"pass a function where \u0026lt;parameter\u0026gt;.use(\u0026lt;plugin\u0026gt;) are called\"--\u003e markdownIt([markdown-it-cjk-friendly])\nremarkRoot --\"Yes\"--\u003e remarkBoth([\"remark-cjk-friendly\n\u0026 remark-cjk-friendly-gfm-strikethrough\"])\nremarkRoot --\"No\"--\u003e remarkGfm{\"Is remark-gfm\nalso passed?\"}\nremarkGfm --\"Yes\"--\u003e remarkBoth\nremarkGfm --\"No\"--\u003e remarkBase([remark-cjk-friendly])\n```\n\n## Contributing / \u003cspan lang=\"ja\"\u003e貢献\u003c/span\u003e / \u003cspan lang=\"zh-Hans-CN\"\u003e贡献\u003c/span\u003e / \u003cspan lang=\"ko\"\u003e기여\u003c/span\u003e\n\nPlease see [CONTRIBUTING.md](CONTRIBUTING.md).\n\n\u003cspan lang=\"ja\"\u003e[CONTRIBUTING.md](CONTRIBUTING.md)を参照してください。\u003c/span\u003e\n\n\u003cspan lang=\"zh-Hans-CN\"\u003e请参阅[CONTRIBUTING.md](CONTRIBUTING.md)。\u003c/span\u003e\n\n\u003cspan lang=\"ko\"\u003e[CONTRIBUTING.md](CONTRIBUTING.md)를 참조해 주시기 바랍니다.\u003c/span\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftats-u%2Fmarkdown-cjk-friendly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftats-u%2Fmarkdown-cjk-friendly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftats-u%2Fmarkdown-cjk-friendly/lists"}