npm package: @3-/md__
Description: [test/main.js](./test/main.js) :
Author: i18n.site@gmail.com
Latest version: 0.1.8

# @3-/md__

[test/main.js](./test/main.js) :

```js
#!/usr/bin/env node

import { strictEqual } from "node:assert/strict"
import md__ from "@3-/md__"
import { micromark } from "micromark"

const 测试 = `

  |+| 标题1
      
      行1-1

      行1-2
    
   其他1

  |+| 标题2
      
      行2-1

      行2-2

   其他2
  
  |-| 标题3[链接](http://example.com)
      行3-1
      行3-2

## 下划线 & 删除线 & 加粗
`

console.log(micromark(md__(测试), { allowDangerousHtml: true }))

const tests = [
	["Hello __world__ test", "Hello <u>world</u> test", "基本下划线测试"],
	[
		"__x__ `__b__` __c__ ```__d__``` __not close",
		"<u>x</u> `__b__` <u>c</u> ```__d__``` __not close",
		"混合代码和下划线测试",
	],
	[
		"__[link](http://example.com)__",
		"<u>[link](http://example.com)</u>",
		"链接包含在下划线中测试",
	],
	["__a\nb__", "__a\nb__", "换行测试"],
	["```\n__code__\n```", "```\n__code__\n```", "代码块测试"],
	["这是~~删除线~~测试", "这是<del>删除线</del>测试", "删除线测试"],
	[
		"同时测试__下划线__和~~删除线~~",
		"同时测试<u>下划线</u>和<del>删除线</del>",
		"混合标记测试",
	],
	["__~~删除的下划线~~__", "<u><del>删除的下划线</del></u>", "嵌套测试"],
	[
		"对__中文__和~~删除线~~更加友好",
		"对<u>中文</u>和<del>删除线</del>更加友好",
		"中文测试",
	],
	[
		"未闭合的~~删除线和__下划线",
		"未闭合的~~删除线和__下划线",
		"未闭合标记测试",
	],
	[
		"```js\n__不会被解析__ ~~也不会被解析~~\n```",
		"```js\n__不会被解析__ ~~也不会被解析~~\n```",
		"代码块中的标记测试",
	],
	["`__不解析__ ~~不解析~~`", "`__不解析__ ~~不解析~~`", "行内代码测试"],
	[
		"Hello__~~w~~o`r`ld__test",
		"Hello<u><del>w</del>o`r`ld</u>test",
		"多格式混杂测试",
	],
]

for (const [input, expected, message] of tests) {
	try {
		strictEqual(md__(input), expected, message)
		console.log(`✓ ${message}`)
	} catch (err) {
		console.log(`✗ ${message}`)
		console.log(`  输入: ${input}`)
		console.log(`  期望: >${expected}<`)
		console.log(`  实际: >${err.actual}<`)
		process.exit(1)
	}
}

console.log("\n所有测试通过！")
```

output :

```
<details><summary>
<p>标题1</p>
</summary>
<p>行1-1</p>
<p>行1-2</p>
</details>
<p>其他1</p>
<details><summary>
<p>标题2</p>
</summary>
<p>行2-1</p>
<p>行2-2</p>
</details>
<p>其他2</p>
<details open><summary>
<p>标题3<a href="http://example.com">链接</a></p>
</summary>
<p>行3-1
行3-2</p>
</details>
<h2>下划线 &amp; 删除线 &amp; 加粗</h2>

✓ 基本下划线测试
✓ 混合代码和下划线测试
✓ 链接包含在下划线中测试
✓ 换行测试
✓ 代码块测试
✓ 删除线测试
✓ 混合标记测试
✓ 嵌套测试
✓ 中文测试
✓ 未闭合标记测试
✓ 代码块中的标记测试
✓ 行内代码测试
✓ 多格式混杂测试

所有测试通过！
```

## About

This project is an open-source component of [i18n.site ⋅ Internationalization Solution](https://i18n.site).

* [i18 : MarkDown Command Line Translation Tool](https://i18n.site/i18)

  The translation perfectly maintains the Markdown format.

  It recognizes file changes and only translates the modified files.

  The translated Markdown content is editable; if you modify the original text and translate it again, manually edited translations will not be overwritten (as long as the original text has not been changed).

* [i18n.site : MarkDown Multi-language Static Site Generator](https://i18n.site/i18n.site)

  Optimized for a better reading experience

## 关于

本项目为 [i18n.site ⋅ 国际化解决方案](https://i18n.site) 的开源组件。

* [i18 :  MarkDown命令行翻译工具](https://i18n.site/i18)

  翻译能够完美保持 Markdown 的格式。能识别文件的修改，仅翻译有变动的文件。

  Markdown 翻译内容可编辑；如果你修改原文并再次机器翻译，手动修改过的翻译不会被覆盖（如果这段原文没有被修改）。

* [i18n.site : MarkDown多语言静态站点生成器](https://i18n.site/i18n.site) 为阅读体验而优化。