parse-pinyin 0.0.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +174 -0
- package/data/pinyin.json +1 -0
- package/dist/generator.d.ts +1 -0
- package/dist/generator.js +272 -0
- package/dist/generator.js.map +1 -0
- package/dist/index.d.mts +60 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.global.js +2 -0
- package/dist/index.global.js.map +1 -0
- package/dist/index.js +186 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -0
- package/dist/pinyin.d.ts +5 -0
- package/dist/pinyin.js +9 -0
- package/dist/pinyin.js.map +1 -0
- package/dist/types.d.ts +132 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/package.json +42 -7
package/README.md
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
根据您提供的信息,您的包名称为 `parse-pinyin`。我已经注意到在 `package.json` 中名称已经正确设置为 `"parse-pinyin"`。
|
|
2
|
+
|
|
3
|
+
让我为您更新 `README.md` 文件以匹配正确的包名:
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# parse-pinyin
|
|
7
|
+
|
|
8
|
+
[](https://npmjs.org/package/parse-pinyin)
|
|
9
|
+
[](https://npmjs.org/package/parse-pinyin)
|
|
10
|
+
[](https://github.com/your-username/parse-pinyin/blob/main/LICENSE)
|
|
11
|
+
|
|
12
|
+
一个高效的汉字拼音查询库,使用极致优化的 JSON 格式存储拼音数据,支持多种输出格式和反向查询功能。
|
|
13
|
+
|
|
14
|
+
## 特性
|
|
15
|
+
|
|
16
|
+
- 🚀 **高性能**: 预处理数据结构,查询速度快
|
|
17
|
+
- 📦 **轻量级**: 无外部依赖,包体积小
|
|
18
|
+
- 🌐 **多格式支持**: 支持声调符号、数字声调、数组格式等多种输出
|
|
19
|
+
- 🔁 **双向查询**: 支持汉字查拼音和拼音查汉字
|
|
20
|
+
- 📱 **跨平台**: 支持 Node.js、浏览器和 Webpack/Vite 等构建工具
|
|
21
|
+
|
|
22
|
+
## 安装
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm install parse-pinyin
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## 快速开始
|
|
29
|
+
|
|
30
|
+
```javascript
|
|
31
|
+
import { toPinyin, toHanzi } from 'parse-pinyin';
|
|
32
|
+
|
|
33
|
+
// 汉字转拼音 (默认格式 - 带声调符号)
|
|
34
|
+
console.log(toPinyin('中'));
|
|
35
|
+
// 输出: ["zhōng", "zhòng"]
|
|
36
|
+
|
|
37
|
+
// 汉字转拼音 (数字声调格式)
|
|
38
|
+
console.log(toPinyin('中', { toneType: 'number' }));
|
|
39
|
+
// 输出: ["zhong1", "zhong4"]
|
|
40
|
+
|
|
41
|
+
// 汉字转拼音 (数组格式)
|
|
42
|
+
console.log(toPinyin('中', { toneType: 'array' }));
|
|
43
|
+
// 输出: [["zhong", 1], ["zhong", 4]]
|
|
44
|
+
|
|
45
|
+
// 汉字转拼音 (无音调格式)
|
|
46
|
+
console.log(toPinyin('中', { tone: false }));
|
|
47
|
+
// 输出: ["zhong", "zhong"]
|
|
48
|
+
|
|
49
|
+
// 拼音反查汉字
|
|
50
|
+
console.log(toHanzi('xíng'));
|
|
51
|
+
// 输出: ["行", "形", "型", ...]
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## API 参考
|
|
55
|
+
|
|
56
|
+
### `toPinyin(char: string, options?: ToneOptions)`
|
|
57
|
+
|
|
58
|
+
将汉字转换为拼音
|
|
59
|
+
|
|
60
|
+
#### 参数
|
|
61
|
+
|
|
62
|
+
- `char`: 要查询的汉字 (单个字符)
|
|
63
|
+
- `options`: 音调选项
|
|
64
|
+
- `tone`: 是否保留音调 (默认: `true`)
|
|
65
|
+
- `toneType`: 音调表示方式
|
|
66
|
+
- `'symbol'`: 声调符号 (默认)
|
|
67
|
+
- `'number'`: 数字声调
|
|
68
|
+
- `'array'`: 数组格式 `[拼音, 声调数字]`
|
|
69
|
+
|
|
70
|
+
#### 返回值
|
|
71
|
+
|
|
72
|
+
- 带音调符号: `string[]`
|
|
73
|
+
- 数字声调: `string[]`
|
|
74
|
+
- 数组格式: `(string | [string, number])[]`
|
|
75
|
+
|
|
76
|
+
### `toHanzi(pinyin: string)`
|
|
77
|
+
|
|
78
|
+
根据拼音查询匹配的汉字
|
|
79
|
+
|
|
80
|
+
#### 参数
|
|
81
|
+
|
|
82
|
+
- `pinyin`: 要查询的拼音
|
|
83
|
+
|
|
84
|
+
#### 返回值
|
|
85
|
+
|
|
86
|
+
- `string[]`: 匹配的汉字数组
|
|
87
|
+
|
|
88
|
+
## 使用示例
|
|
89
|
+
|
|
90
|
+
```javascript
|
|
91
|
+
import { toPinyin, toHanzi } from 'parse-pinyin';
|
|
92
|
+
|
|
93
|
+
// 基本使用
|
|
94
|
+
console.log(toPinyin('你好世界'));
|
|
95
|
+
// 输出: ["nǐ", "hǎo", "shì", "jiè"]
|
|
96
|
+
|
|
97
|
+
// 多音字处理
|
|
98
|
+
console.log(toPinyin('中'));
|
|
99
|
+
// 输出: ["zhōng", "zhòng"]
|
|
100
|
+
|
|
101
|
+
// 不同输出格式
|
|
102
|
+
console.log(toPinyin('中', { toneType: 'number' }));
|
|
103
|
+
// 输出: ["zhong1", "zhong4"]
|
|
104
|
+
|
|
105
|
+
console.log(toPinyin('中', { toneType: 'array' }));
|
|
106
|
+
// 输出: [["zhong", 1], ["zhong", 4]]
|
|
107
|
+
|
|
108
|
+
console.log(toPinyin('中', { tone: false }));
|
|
109
|
+
// 输出: ["zhong", "zhong"]
|
|
110
|
+
|
|
111
|
+
// 拼音反查汉字
|
|
112
|
+
console.log(toHanzi('zhong'));
|
|
113
|
+
// 输出: ["中", "忠", "钟", "终", "种", "踵", "盅", "衷", "冢", "柊", ...]
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## 性能对比
|
|
117
|
+
|
|
118
|
+
在典型的使用场景中,parse-pinyin 相比其他拼音库具有以下优势:
|
|
119
|
+
|
|
120
|
+
| 特性 | parse-pinyin | @napi-rs/pinyin |
|
|
121
|
+
|------|--------------|-----------------|
|
|
122
|
+
| 性能 | 高 | 更高 |
|
|
123
|
+
| 依赖 | 无 | 需要原生模块 |
|
|
124
|
+
| 包体积 | 小 | 大 |
|
|
125
|
+
| 浏览器支持 | 完全支持 | 有限支持 |
|
|
126
|
+
| 输出格式 | 多种格式 | 基本格式 |
|
|
127
|
+
|
|
128
|
+
## 浏览器使用
|
|
129
|
+
|
|
130
|
+
```html
|
|
131
|
+
<script src="https://unpkg.com/parse-pinyin@latest/dist/index.global.js"></script>
|
|
132
|
+
<script>
|
|
133
|
+
console.log(pinyin.toPinyin('中')); // ["zhōng", "zhòng"]
|
|
134
|
+
console.log(pinyin.toHanzi('xíng')); // ["行", "形", "型", ...]
|
|
135
|
+
</script>
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Node.js 使用
|
|
139
|
+
|
|
140
|
+
```javascript
|
|
141
|
+
const { toPinyin, toHanzi } = require('parse-pinyin');
|
|
142
|
+
|
|
143
|
+
console.log(toPinyin('中')); // ["zhōng", "zhòng"]
|
|
144
|
+
console.log(toHanzi('xíng')); // ["行", "形", "型", ...]
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## 构建和开发
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# 安装依赖
|
|
151
|
+
npm install
|
|
152
|
+
|
|
153
|
+
# 构建项目
|
|
154
|
+
npm run build
|
|
155
|
+
|
|
156
|
+
# 运行测试
|
|
157
|
+
npm test
|
|
158
|
+
|
|
159
|
+
# 运行基准测试
|
|
160
|
+
npm run bench
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## 数据来源
|
|
164
|
+
|
|
165
|
+
拼音数据来源于 CC-CEDICT 词典,经过预处理和优化以适应高性能查询需求。
|
|
166
|
+
|
|
167
|
+
## 许可证
|
|
168
|
+
|
|
169
|
+
MIT
|
|
170
|
+
|
|
171
|
+
## 贡献
|
|
172
|
+
|
|
173
|
+
欢迎提交 Issue 和 Pull Request 来改进这个项目!
|
|
174
|
+
```
|