# cl-pinyin **Repository Path**: fmcdr/cl-pinyin ## Basic Information - **Project Name**: cl-pinyin - **Description**: 用于 Common Lisp 的汉语拼音库。 - **Primary Language**: Common Lisp - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-17 - **Last Updated**: 2022-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # cl-pinyin 这是一个用于 Common Lisp 的汉语拼音库,用于从汉字生成汉语拼音及汉语拼音简码。 ## 兼容的 Lisp 实现 SBCL, Clozure CL, CLISP, Allegro CL, ECL ## 基本使用 ``` cd ~/quicklisp/local-projects git clone https://gitee.com/fmcdr/cl-pinyin.git ``` ``` CL-USER> (ql:quickload :cl-pinyin) (:CL-PINYIN) CL-USER> (cl-pinyin:get-pinyin "上海") "shàng hǎi" CL-USER> (cl-pinyin:get-pinyin "上海" :tone nil) "shang hai" CL-USER> (cl-pinyin:get-pinyin "上海" :tone :number) "shang4 hai3" CL-USER> (cl-pinyin:get-pinyin "上海" :sep "-") "shàng-hǎi" CL-USER> (cl-pinyin:get-pinyin "上海" :char-case :captialize) "Shàng Hǎi" CL-USER> (cl-pinyin:get-initials "床前明月光") "CQMYG" ``` ## API 汉字转换为汉语拼音: `get-pinyin` *chinese-string &key tone char-case sep* => *chinese-pinyin-string* 参数: - `:tone` 指定声调的标注方式 + `:mark` 标注声调(默认) + `:number` 标注为数字 + `nil` 不标注声调 - `:char-case` 指定大小写 + `:lower` 小写(默认) + `:upper` 大写 + `:captialize` 首字母大写 - `:sep` 指定拼音之间的分隔符,可以传递任意的字符串作为分隔符,默认为空格 当指定的汉字是多音字时,默认只显示第一个读音。在汉字后面紧挨着数字可以选择指定的读音,输入`0`则显示所有读音的列表。 `get-initials` *chinese-string* => *chinese-pinyin-initials-string* ## Demo 包里用 tk 实现了一个 GUI 小工具,需要在系统中事先安装好 tcl/tk。Linux 系统请自行从源里安装。Windows 系统可以[下载捆绑了 TK 8.6 的预编译包](https://gitee.com/fmcdr/cl-pinyin/attach_files/1007723/download/py-tool.zip),解压到任意目录运行。 ``` ;; load (ql:quickload :pinyin-demo) ;; running (pinyin-demo:main) ``` ![demo.png](image/demo.png) 紧跟着0,显示所有读音 ![demo2](image/demo2.png) 删掉刚刚输入的0,再输入2,显示第2个读音 ![demo3](image/demo3.png)