A micromark extension to make Markdown emphasis (**
) in CommonMark compatible with Chinese, Japanese, and Korean (CJK).
CommonMarkの強調記号(**
)を日本語・中国語・韓国語にきちんと対応させるためのmicromark拡張
一个 micromark 扩展,用于使 CommonMark 的强调标记(**
)能够正确支持中文、日语和韩语文本。
CommonMark의 강조 표시(**
) 를 한국어, 중국어, 일본어와 호환되도록 만드는 micromark 확장
[!NOTE] This package does not support the strikethrough syntax (
~~
) in GFM (GitHub Flavored Markdown). If you want to support it, please usemicromark-extension-cjk-friendly-gfm-strikethrough
along with this package.本パッケージはGitHub Flavored Markdown(GFM)の取り消し線(
~~
)に対応しません。対応させたい場合は、micromark-extension-cjk-friendly-gfm-strikethrough
を併用してください。本包不支持 GitHub Flavored Markdown(GFM)的删除线(
~~
)。如果需要支持,请同时使用micromark-extension-cjk-friendly-gfm-strikethrough
。이 패키지는 GitHub Flavored Markdown(GFM)의 취소선(
~~
)을 지원하지 않습니다. 지원하고 싶은 경우에는micromark-extension-cjk-friendly-gfm-strikethrough
를 함께 사용해 주세요.
CommonMark has a problem that the following emphasis marks **
are not recognized as emphasis marks in Japanese, Chinese, and Korean.
CommonMarkには、日本語・中国語・韓国語内の次のような強調記号(**
)が強調記号として認識されない問題があります。
CommonMark存在以下问题:在中文、日语和韩语文本中,强调标记**
不会被识别为强调标记。
CommonMark는 일본어와 중국어에서 다음과 같은 강조 표시 **
가 강조 표시로 인식되지 않는 문제가 있습니다.
**このアスタリスクは強調記号として認識されず、そのまま表示されます。**この文のせいで。
**该星号不会被识别,而是直接显示。**这是因为它没有被识别为强调符号。
**이 별표는 강조 표시로 인식되지 않고 그대로 표시됩니다(이 괄호 때문에)**이 문장 때문에.
This 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.
これが起こった原因は、終了側の**
のすぐ内側が約物(。やカッコ)、かつ外側が約物や空白以外の文字であるためです。
这个问题是因为在**
的结束部分,内侧字符是标点符号(。)或括号,而外侧字符不是空格或标点符号。
이 문제는 **
바로 안쪽의 문자가 (일본어나 중국어) 문장 부호(。) 또는 괄호이고 바깥쪽 문자가 공백이나 문장 부호가 아니기 때문에 발생합니다.
Of course, not only the end side but also the start side has the same issue.
もちろん終了側だけでなく、開始側も同様の問題が存在します。
当然,不仅是结束侧,开始侧也存在同样的问题。
물론 끝나는 부분뿐만 아니라 시작하는 부분에서도 동일한 문제가 있습니다.
CommonMark issue: https://github.com/commonmark/commonmark-spec/issues/650
This package uses the v
flag of the regular expression introduced in ES2024 to determine whether the character is an emoji or not.
本パッケージは文字が絵文字かどうかを判定するために、ES2024で導入された正規表現のv
フラグを使用しています。
本包使用 ES2024 引入的v
标志 来判断字符是否为 emoji。
이 패키지는 ES2024에서 도입된 v
플래그를 사용하여 문자가 이모지인지 여부를 판단합니다.
It makes this package compatible only with relatively recent browsers and Node.js:
このため、本パッケージは、次のような比較的新しいブラウザやNode.jsでしか動作しません。
因此,本包只兼容比较新的浏览器和 Node.js:
따라서, 이 패키지는 비교적 최신 브라우저와 Node.js에서만 작동합니다.
- Chrome / Edge 112 or later
- Firefox 116 or later
- Safari 17 or later
- Node.js 20 or later
Install micromark-extension-cjk-friendly
via npm:
micromark-extension-cjk-friendly
をnpmでインストールしてください。
通过 npm 安装 micromark-extension-cjk-friendly
。
micromark-extension-cjk-friendly
를 npm으로 설치하세요.
npm install micromark-extension-cjk-friendly
If you use another package manager, please replace npm install
with the command of the package manager you use (e.g. pnpm add
or yarn add
).
npm以外のパッケージマネージャを使う場合は、npm install
を当該パッケージマネージャのコマンド(例:pnpm add
・yarn add
)に置き換えてください。
如果使用其他包管理器,请将 npm install
替换为当时包管理器的命令(例如:pnpm add
、yarn add
)。
다른 패키지 매니저를 사용하는 경우 npm install
을 해당 패키지 매니저의 명령어(예: pnpm add
, yarn add
)로 바꾸어 주세요.
Import micromark
and micromark-extension-cjk-friendly
, and use the extension as follows:
micromark
とmicromark-extension-cjk-friendly
をインポートし、次のように拡張を使用してください。
通过 micromark
和 micromark-extension-cjk-friendly
导入,然后使用扩展如下:
micromark
와 micromark-extension-cjk-friendly
를 임포트하고 다음과 같이 확장을 사용하세요.
import { micromark } from "micromark";
import { gfm, gfmHtml } from "micromark-extension-gfm";
import { cjkFriendlyExtension } from "micromark-extension-cjk-friendly";
// e.g. combine with GFM extension
const htmlString = micromark(
markdownString,
{
extensions: [gfm(), cjkFriendlyExtension()], // in no particular order
htmlExtensions: [gfmHtml()],
}
)
This 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 this packages. I assure that even with this package (amendment suggestion), micromark still outputs the same HTML for all CommonMark test cases as of 0.31.2.
この仕様変更提案は、日本語・中国語・韓国語以外の言語には影響しません。アプリケーションやドキュメントに他言語の翻訳やコンテンツが含まれていても影響はありませんので、安心して本パッケージをご利用ください。
除中文、日文和韩文外,建议的规范变更不会影响其他语言。请放心使用此软件包,因为如果您的应用程序或文档包含其他语言的翻译或内容,也不会受到影响。我保证,即使使用此软件包(修正建议),micromark 仍然会为 0.31.2 版本的所有 CommonMark 测试用例输出相同的 HTML。
이번 사양 변경 제안은 한국어, 중국어, 일본어 이외의 언어에는 영향을 미치지 않습니다. 애플리케이션이나 문서에 다른 언어의 번역이나 콘텐츠가 포함되어 있어도 영향을 받지 않으므로 안심하고 본 패키지를 사용하시기 바랍니다. 본 패키지(수정안)를 사용해도 0.31.2 시점의 모든 CommonMark 테스트케이스에서 micromark가 동일한 HTML을 출력하는 것을 보장합니다.
https://github.com/tats-u/markdown-cjk-friendly/blob/main/specification.md (English)
-
remark-cjk-friendly
-
markdown-it-cjk-friendly
-
micromark-extension-cjk-friendly-util
-
micromark-extension-cjk-friendly-gfm-strikethrough
Install the dependencies:
pnpm install
Build the library:
pnpm build
Build the library in watch mode:
pnpm dev