npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

micromark-extension-cjk-friendly-gfm-strikethrough

v1.0.1

Published

micromark extension to make Markdown strikethrough (`~~`) in GFM more friendly with Chinese, Japanese, and Korean (CJK)

Downloads

139

Readme

micromark-extension-cjk-friendly-gfm-strikethrough

Version NPM Downloads NPM Last Update

A micromark extension to make GitHub Flavored Markdown (GFM) strikethrough (~~) compatible with Chinese, Japanese, and Korean (CJK).

GitHub Flavored Markdown(GFM)の取り消し線記号(~~)を日本語・中国語・韓国語にきちんと対応させるためのmicromark拡張

一个 micromark 扩展,用于使 GitHub Flavored Markdown(GFM)的删除线标记(~~)能够正确支持中文、日语和韩语文本。

GitHub Flavored Markdown(GFM)의 취소선 기호(~~)를 한국어, 중국어, 일본어와 호환되도록 만드는 micromark 확장

Problem / 問題 / 问题 / 문제점

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 behavior is also applied to the strikethrough (~~) in GFM.

この挙動は、GFMの取り消し線(~~)にも該当します。

这个行为也适用于 GFM 的删除线(~~)。

이 동작은 GFM의 취소선(~~)에도 해당됩니다.

Runtime Requirements / 実行環境の要件 / 运行环境要求 / 업데이트 전략

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

Installation / インストール / 安装 / 설치

Install micromark-extension-cjk-friendly-gfm-strikethrough via npm:

micromark-extension-cjk-friendly-gfm-strikethroughnpmでインストールしてください。

通过 npm 安装 micromark-extension-cjk-friendly-gfm-strikethrough

micromark-extension-cjk-friendly-gfm-strikethroughnpm으로 설치하세요.

npm install micromark-extension-cjk-friendly-gfm-strikethrough

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 addyarn add)に置き換えてください。

如果使用其他包管理器,请将 npm install 替换为当时包管理器的命令(例如:pnpm addyarn add)。

다른 패키지 매니저를 사용하는 경우 npm install을 해당 패키지 매니저의 명령어(예: pnpm add, yarn add)로 바꾸어 주세요.

Usage / 使い方 / 用法 / 사용법

Import micromark and micromark-extension-cjk-friendly-strikethrough, and use the extension as follows:

micromarkmicromark-extension-cjk-friendly-strikethroughをインポートし、次のように拡張を使用してください。

通过 micromarkmicromark-extension-cjk-friendly-strikethrough 导入,然后使用扩展如下:

micromarkmicromark-extension-cjk-friendly-strikethrough를 임포트하고 다음과 같이 확장을 사용하세요.

import { micromark } from "micromark";
import { gfm, gfmHtml } from "micromark-extension-gfm";
import { cjkFriendlyExtension } from "micromark-extension-cjk-friendly";
import { gfmStrikethroughCjkFriendly } from "micromark-extension-cjk-friendly-gfm-strikethrough";

// e.g. combine with GFM extension
const htmlString = micromark(
  markdownString,
  {
    // gfmStrikethroughCjkFriendly() must be after gfm()
    extensions: [gfm(), cjkFriendlyExtension(), gfmStrikethroughCjkFriendly()],
    htmlExtensions: [gfmHtml()],
  }
)

[!IMPORTANT] gfmStrikethroughCjkFriendly() must be after gfm(), or gfmStrikethroughCjkFriendly() will not work.

gfmStrikethroughCjkFriendly()gfm()の後に入れてください。そうしないとgfmStrikethroughCjkFriendly()は機能しません。

gfmStrikethroughCjkFriendly() 必须在 gfm() 后面,否则 gfmStrikethroughCjkFriendly() 将不起作用。

gfmStrikethroughCjkFriendly()gfm() 후에 입력하면서 작동합니다. 이는 gfmStrikethroughCjkFriendly()는 작동하지 않습니다.

Specification / 規格書 / 规范 / 규정서

The condition for ~~ to be recognized as a strikeout is the same as the condition for ** to be recognized as emphasis in the following CommonMark specification amendment suggestion:

https://github.com/tats-u/markdown-cjk-friendly/blob/main/specification.md (English)

Related packages / 関連パッケージ / 相关包 / 관련 패키지

Contributing / 貢献 / 贡献 / 기여

Setup

Install the dependencies:

pnpm install

Get Started

Build the library:

pnpm build

Build the library in watch mode:

pnpm dev