{"id":13592250,"url":"https://github.com/theajack/cnchar","last_synced_at":"2025-10-04T14:17:03.253Z","repository":{"id":37334953,"uuid":"253296378","full_name":"theajack/cnchar","owner":"theajack","description":"🇨🇳 功能全面的汉字工具库 (拼音 笔画 偏旁 成语 语音 可视化等) (Chinese character util)","archived":false,"fork":false,"pushed_at":"2025-03-06T12:50:11.000Z","size":38132,"stargazers_count":2858,"open_issues_count":48,"forks_count":314,"subscribers_count":29,"default_branch":"master","last_synced_at":"2025-09-04T15:38:09.725Z","etag":null,"topics":["chinese-characters","draw","pinyin","speak","spell-stroke","voice-recognition"],"latest_commit_sha":null,"homepage":"https://theajack.github.io/cnchar","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theajack.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":"cnchar","ko_fi":"theajack","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2020-04-05T17:49:51.000Z","updated_at":"2025-09-02T09:49:18.000Z","dependencies_parsed_at":"2025-03-18T23:40:15.145Z","dependency_job_id":"f27ef5ad-8e49-4e40-9e94-b576c4788fc9","html_url":"https://github.com/theajack/cnchar","commit_stats":{"total_commits":288,"total_committers":9,"mean_commits":32.0,"dds":0.3680555555555556,"last_synced_commit":"66b055c9e59b2608b5daebd3b7d5a13969e0f4c1"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/theajack/cnchar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theajack%2Fcnchar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theajack%2Fcnchar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theajack%2Fcnchar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theajack%2Fcnchar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theajack","download_url":"https://codeload.github.com/theajack/cnchar/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theajack%2Fcnchar/sbom","scorecard":{"id":877703,"data":{"date":"2025-08-11","repo":{"name":"github.com/theajack/cnchar","commit":"d02588ecc61a5ca9d594288e92d1bb6553b415c2"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.5,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/docs.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/theajack/cnchar/docs.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/theajack/cnchar/docs.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/theajack/cnchar/docs.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/docs.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/theajack/cnchar/docs.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/theajack/cnchar/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/theajack/cnchar/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/theajack/cnchar/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:61: update your workflow using https://app.stepsecurity.io/secureworkflow/theajack/cnchar/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:67: update your workflow using https://app.stepsecurity.io/secureworkflow/theajack/cnchar/release.yml/master?enable=pin","Warn: npmCommand not pinned by hash: .github/workflows/docs.yml:32","Warn: npmCommand not pinned by hash: .github/workflows/release.yml:33","Info:   0 out of   6 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 third-party GitHubAction dependencies pinned","Info:   0 out of   2 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'","Warn: branch protection not enabled for branch '3.0.6'","Warn: branch protection not enabled for branch '3.0.5'","Warn: branch protection not enabled for branch '3.0.4'","Warn: branch protection not enabled for branch '2.2.8'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":0,"reason":"77 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-x9w5-v3q2-3rhw","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-ff7x-qrg7-qggm","Warn: Project is vulnerable to: GHSA-434g-2637-qmqr","Warn: Project is vulnerable to: GHSA-49q7-c7j4-3p7m","Warn: Project is vulnerable to: GHSA-977x-g7h5-7qgw","Warn: Project is vulnerable to: GHSA-f7q4-pwc6-w24p","Warn: Project is vulnerable to: GHSA-fc9h-whq2-v747","Warn: Project is vulnerable to: GHSA-vjh7-7g9h-fjfh","Warn: Project is vulnerable to: GHSA-4gmj-3p3h-gm8h","Warn: Project is vulnerable to: GHSA-rv95-896h-c2vc","Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx","Warn: Project is vulnerable to: GHSA-74fj-2j2h-c42q","Warn: Project is vulnerable to: GHSA-pw2r-vq6v-hr8c","Warn: Project is vulnerable to: GHSA-jchw-25xp-jwwc","Warn: Project is vulnerable to: GHSA-cxjh-pqwp-8mfp","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97","Warn: Project is vulnerable to: GHSA-7wwv-vh3v-89cq","Warn: Project is vulnerable to: GHSA-pfq8-rq6v-vf5m","Warn: Project is vulnerable to: GHSA-rc47-6667-2j5j","Warn: Project is vulnerable to: GHSA-c7qv-q95q-8v27","Warn: Project is vulnerable to: GHSA-78xj-cgh5-2h22","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-76p3-8jx3-jpfq","Warn: Project is vulnerable to: GHSA-3rfm-jhwj-7488","Warn: Project is vulnerable to: GHSA-hhq3-ff78-jv3g","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-6vfc-qv3f-vr6c","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-5rrq-pxf6-6jx5","Warn: Project is vulnerable to: GHSA-8fr3-hfg3-gpgp","Warn: Project is vulnerable to: GHSA-gf8q-jrpm-jvxq","Warn: Project is vulnerable to: GHSA-2r2c-g63r-vccr","Warn: Project is vulnerable to: GHSA-cfm4-qjh2-4765","Warn: Project is vulnerable to: GHSA-x4jg-mjrx-434g","Warn: Project is vulnerable to: GHSA-5fw9-fq32-wv5p","Warn: Project is vulnerable to: GHSA-rp65-9cf3-cjxr","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-h7cp-r72f-jxh6","Warn: Project is vulnerable to: GHSA-v62p-rq8g-8h59","Warn: Project is vulnerable to: GHSA-7fh5-64p2-3v2j","Warn: Project is vulnerable to: GHSA-3949-f494-cm99","Warn: Project is vulnerable to: GHSA-x7hr-w5r2-h6wg","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-4wf5-vphf-c2xc","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-7p7h-4mm5-852v","Warn: Project is vulnerable to: GHSA-rqff-837h-mm52","Warn: Project is vulnerable to: GHSA-8v38-pw62-9cw2","Warn: Project is vulnerable to: GHSA-hgjh-723h-mx2j","Warn: Project is vulnerable to: GHSA-jf5r-8hm2-f872","Warn: Project is vulnerable to: GHSA-5j4c-8p2g-v4jx","Warn: Project is vulnerable to: GHSA-g3ch-rx76-35fx","Warn: Project is vulnerable to: GHSA-wr3j-pwj9-hqq6","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h","Warn: Project is vulnerable to: GHSA-j8xg-fqg3-53r7","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q","Warn: Project is vulnerable to: GHSA-p9pc-299p-vxgp"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-24T06:42:16.035Z","repository_id":37334953,"created_at":"2025-08-24T06:42:16.036Z","updated_at":"2025-08-24T06:42:16.036Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278322265,"owners_count":25967893,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chinese-characters","draw","pinyin","speak","spell-stroke","voice-recognition"],"created_at":"2024-08-01T16:01:07.351Z","updated_at":"2025-10-04T14:17:03.229Z","avatar_url":"https://github.com/theajack.png","language":"TypeScript","funding_links":["https://opencollective.com/cnchar","https://ko-fi.com/theajack","https://paypal.me/tackchen"],"categories":["2023-12-11","TypeScript"],"sub_categories":[],"readme":"\n\u003cp align=\"center\"\u003e\n    \u003cimg src='https://shiyix.cn/images/cnchar3.png' width='300px'/\u003e\n\u003c/p\u003e \n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://ko-fi.com/theajack\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Donate-Ko Fi-ff5f5f\" alt=\"test\"\u003e\n    \u003c/a\u003e    \n    \u003ca href=\"https://paypal.me/tackchen\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Donate-PayPal-142c8e\" alt=\"test\"\u003e\n    \u003c/a\u003e    \n    \u003ca href=\"https://shiyix.cn/images/wx-pay.png\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Donate-Wechat Pay-00c250\" alt=\"test\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://www.github.com/theajack/cnchar/stargazers\" target=\"_black\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/stars/theajack/cnchar?logo=github\" alt=\"stars\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.github.com/theajack/cnchar/network/members\" target=\"_black\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/forks/theajack/cnchar?logo=github\" alt=\"forks\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.npmjs.com/package/cnchar\" target=\"_black\"\u003e\n        \u003cimg src=\"https://img.shields.io/npm/v/cnchar?logo=npm\" alt=\"version\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.npmjs.com/package/cnchar\" target=\"_black\"\u003e\n        \u003cimg src=\"https://img.shields.io/npm/dm/cnchar?color=%23ffca28\u0026logo=npm\" alt=\"downloads\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.jsdelivr.com/package/npm/cnchar\" target=\"_black\"\u003e\n        \u003cimg src=\"https://data.jsdelivr.com/v1/package/npm/cnchar/badge\" alt=\"jsdelivr\" /\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/theajack\" target=\"_black\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Author-%20theajack%20-7289da.svg?\u0026logo=github\" alt=\"author\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.github.com/theajack/cnchar/blob/master/LICENSE\" target=\"_black\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/license/theajack/cnchar?color=%232DCE89\u0026logo=github\" alt=\"license\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://fastly.jsdelivr.net/gh/theajack/cnchar/dist/cnchar.latest.min.js\"\u003e\u003cimg src=\"https://img.shields.io/bundlephobia/minzip/cnchar.svg\" alt=\"Size\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/theajack/cnchar/search?l=javascript\"\u003e\u003cimg src=\"https://img.shields.io/github/languages/top/theajack/cnchar.svg\" alt=\"TopLang\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/theajack/cnchar/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues-closed/theajack/cnchar.svg\" alt=\"issue\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://www.github.com/theajack/cnchar\"\u003e\u003cimg src=\"https://img.shields.io/librariesio/dependent-repos/npm/cnchar.svg\" alt=\"Dependent\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch3\u003e🚀 Full-featured, multi-end support for hanyu pinyin strokes js library\u003c/h3\u003e\n\n**[中文](https://github.com/theajack/cnchar) | [Online trial / documentation](https://theajack.github.io/cnchar) | [Update log](https://theajack.github.io/cnchar/guide/version.html) | [Feedback error / missing](https://github.com/theajack/cnchar/issues/new) | [Gitee](https://gitee.com/theajack/cnchar) | QQ Group: 958278438 | [Message Board](https://theajack.github.io/message-board/?app=cnchar)**\n\n### Application example\n\nBefore starting the documentation, let's take a look at some use cases to see what cnchar can do\n\n[Chinese character typing game](https://theajack.github.io/type/) | [Typing and playing the piano](https://theajack.github.io/piano/) | [Idiom Solitaire](https://theajack.github.io/jsbox/?github=theajack.cnchar@master.helper/jsbox/idiom.js) | [Address Book Sort](https://theajack.github.io/jsbox/?github=theajack.cnchar@master.helper/jsbox/sort.js) | [name](https://theajack.github.io/jsbox/?github=theajack.cnchar@master.helper/jsbox/name.js) | [input method](https://theajack.github.io/jsbox/?github=theajack.cnchar@master.helper/jsbox/input.js) | [Xie Houyu](https://theajack.github.io/jsbox/?github=theajack.cnchar@master.helper/jsbox/xhy.js) | [Speech Recognition and Synthesis](https://theajack.github.io/jsbox/?github=theajack.cnchar@master.helper/jsbox/voice.js) | [Simplified and Traditional Conversion](https://theajack.github.io/jsbox/?github=theajack.cnchar@master.helper/jsbox/trad.js)\n\n---\n\n### Foreword\n\nThank you for your support for cnchar. Since the cnchar lexicon comes from the Internet, although it has been modified and expanded by myself, it is still inevitable that there are errors and gaps. I hope you can [feedback](https://github.com/theajack/cnchar/issues/new) the errors and gaps found in use I (or amend and submit it by myself, and it will be merged into cnchar after reviewing without error)\n\n[I want to report errors or omissions](https://github.com/theajack/cnchar/issues/new)\n\n### Quick use\n\nUse npm to install:\n\n```\nnpm i cnchar\n```\n\n```js\nimport cnchar from 'cnchar';\n'汉字'.spell();\n'汉字'.stroke();\n```\n\nUse the script tag to use:\n\n```html\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar/cnchar.min.js\"\u003e\u003c/script\u003e\n\u003cscript\u003e\n    '汉字'.spell();\n    '汉字'.stroke();\n\u003c/script\u003e\n```\n\n### 1. Features\n1. Get **Chinese Pinyin**, support initial letter, capitalization, array division, optional **polyphonic word** and other functions\n2. Support **polyphonic words**, **pinyin tone**\n3. Obtain Chinese characters **stroke number** , **stroke order** , and detailed stroke names\n4. Support visualization **drawing Chinese strokes**, a variety of drawing modes are optional\n5. Support **speech synthesis** and **speech recognition**\n6. Support **Chinese character grouping** and **Chinese character interpretation**\n7. Support **Simplified characters** , **Traditional characters** , **Mars script** mutual conversion\n8. Support **find** all **Chinese characters** of a certain pinyin, traditional characters, polyphonic characters\n9. Support **find** all **Chinese characters** with the specified number of strokes, traditional Chinese characters\n10. Support **Search by stroke order** Chinese characters\n11. Support **search pinyin information**, including initials, finals, tones, tonal positions, etc.\n12. Support **traditional characters** pinyin, number of strokes and all the above functions, to achieve the same functions as simplified characters\n13. Support **idiom** query function, you can query idioms according to Chinese characters, pinyin (tone), and the number of strokes\n14. Support **Xiehouyu** query function, support fuzzy query\n15. Support **Radicals** query function\n16. Support **randomly generated** Pinyin, Chinese characters, words, idioms, Xiehouyu, Chinese names\n17. Support **Chinese character code query**, **Chinese character information query**\n18. Support **Pinyin input method**, **Wubi input method**, support associative input\n19. Support **custom plug-in**, independent and simple access method, fully use all functions of cnchar\n20. Support **custom** pinyin strokes and other data, more flexible to use\n21. For some large dictionaries, support **offline use**, **custom deployment**\n22. Provide Chinese character tools to facilitate developers to operate Pinyin and Chinese characters more conveniently and efficiently.\n23. **Small size**, min version is only 75 kb, zip version is 50 kb (contains a large number of Chinese pinyin dictionaries)\n24. **Multi-terminal available**, can be used for **browser, nodejs, applet/minigame, ReactNative/Weex/Uniapp/Electron, webpack**..., supports all environments where js can run\n25. **typescript**, the main library and all plug-in libraries are developed using typescript\n26. Rich configuration, divided into plug-ins according to functions, available on demand\n27. Support **IE9** and above\n\n### 2. Overview of functions and plugins\n\nTaking into account different needs, the functions of cnchar are split into the following multiple plug-in libraries, which are convenient for developers to use on demand:\n\n| Name | Description | Features | Supported Versions | Node Support | Mini Programs |\n| :------------: | :--------------------------------------------: | :--------------------: | :--------------------------------: | :--------------------: | :--------------------------------: |\n| cnchar | The main js library, the other three libraries depend on this library | Contains functions such as simplified Chinese pinyin, polyphonic characters, pitch, number of strokes, etc. | -- | Yes | Yes |\n| cnchar-poly | Polysyllabic Thesaurus | Contains the function of identifying polysyllabic words | -- | Yes | Yes |\n| cnchar-order | Stroke Order Library | Contains functions to identify stroke order, stroke name, stroke shape, etc. | -- | Yes | Yes |\n| cnchar-trad | Traditional font library | Support traditional, Mars, Simplified conversion, support traditional Pinyin strokes and polyphonic characters full function | -- | Yes | Yes |\n| cnchar-draw | Drawing stroke library | Supports visual drawing of Chinese characters, this library can be used without cnchar, this library is only available in browser environment | 2.1+ | No | Partial |\n| cnchar-idiom | Idiom library | Support idiom query and other functions | 2.2+ | Yes | Yes |\n| cnchar-xhy | Xie Houyu Library | Support Xie Houyu query and other functions | 2.2+ | Yes | Yes |\n| cnchar-radical | Radical Library | Supports querying Chinese radicals | 2.2.5+ | Yes | Yes |\n| cnchar-words | Chinese character group thesaurus | Supports querying phrases based on single or multiple Chinese characters | 3.1.0+ | Yes | Yes |\n| cnchar-explain | Chinese character interpretation library | Support to query the meaning of Chinese characters | 3.1.0+ | Yes | Yes |\n| cnchar-voice | Speech Recognition and Speech Synthesis | Supports Chinese Pronunciation and Synthesis | 3.1.0+ | No | Partial |\n| cnchar-data | Offline dictionary library | To support offline use and custom deployment of some plug-in libraries | 3.1.0+ | Yes | Yes || cnchar-random | Random library | Randomly generate pinyin, Chinese characters, words, idioms, Xiehouyu | 3.2.0+ | Yes | Yes |\n| cnchar-input | Input Method Support | Support Pinyin and Wubi Input Method Results | 3.2.0+ | Yes | Yes |\n| cnchar-code | Chinese character encoding library | Chinese character encoding query | 3.2.0+ | Yes | Yes |\n| cnchar-info | Chinese character information query | Used to query Chinese character information | 3.2.0+ | Yes | Yes |\n| cnchar-name | Chinese name information | Used to generate names randomly | 3.2.0+ | Yes | Yes |\n\n**Detailed API documentation is not maintained in this readme from v3.2.4, go to [Online Documentation](https://theajack.github.io/cnchar/)**\n\n### 3. Installation\n\n#### 3.1 Install with npm\n\nInstall the basic library:\n\n```\nnpm i cnchar\n```\n\nInstall additional function library:\n\n```\nnpm i cnchar-poly cnchar-order cnchar-trad cnchar-draw cnchar-idiom cnchar-xhy cnchar-radical cnchar-words cnchar-explain cnchar-voice cnchar-random cnchar-code cnchar-input cnchar-info cnchar-name\n```\n\nOf course, you can also install several of them on demand, and the plug-in library can also be installed and used independently from cnchar, but some warehouse functions strongly depend on cnchar, such as cnchar-poly cnchar-order cnchar-trad\n\nOr you can use the full functionality by installing `cnchar-all`, this library references all the above plugin libraries\n\n```\nnpm i cnchar-all\n```\n\n#### 3.2 Introduce using cdn\n\n**If jsdelivr is down, you can use unpkg (https://unpkg.com/cnchar/cnchar.min.js)**\n\n```html\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar/cnchar.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar-poly/cnchar.poly.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar-order/cnchar.order.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar-trad/cnchar.trad.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar-draw/cnchar.draw.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar-idiom/cnchar.idiom.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar-xhy/cnchar.xhy.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar-radical/cnchar.radical.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar-words/cnchar.words.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar-explain/cnchar.explain.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar-voice/cnchar.voice.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar-random/cnchar.random.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar-code/cnchar.code.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar-input/cnchar.input.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar-info/cnchar.info.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar-name/cnchar.name.min.js\"\u003e\u003c/script\u003e\n```\n\nOr use the following cdn, which contains the above eleven libraries\n\n```html\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar-all/cnchar.all.min.js\"\u003e\u003c/script\u003e\n```\n\n### 4. Use\n\n#### 4.1 webpack browser environment(with window object)\n\nAfter npm installs several libraries:\n\n```js\n// Please ensure that the cnchar base library is introduced first, and the order of the other libraries does not matter\nimport cnchar from 'cnchar';\nimport 'cnchar-poly';\n// ... For other plugins, please refer to Chapter 2 2. Overview of functions and plugins\n// Please use the plugin as needed\n\nconsole.log('汉字'.spell()); // Called by prototype\nconsole.log(cnchar.spell('汉字')); // cnchar api call\n```\n\nIn the browser environment, a cnchar object will be defined on the window object\n\n#### 4.2 Nodejs and other non-browser environments\n\nIn the non-browser environment, you need to use the `cnchar.use()` method to load the function library:\n\n```js\n// Please ensure that the cnchar base library is introduced first, and the order of the other libraries does not matter\nvar cnchar = require('cnchar');\nvar poly = require('cnchar-poly');\n// ... For other plugins, please refer to Chapter 2 2. Overview of functions and plugins\n// Please use the plugin as needed\n// Note: cnchar-draw, cnchar-voice are not available in non-browser environments\ncnchar.use(poly);\n\nconsole.log('汉字'.spell()); // Called by prototype\nconsole.log(cnchar.spell('汉字')); // cnchar api call\n```\n\nOther usage methods are consistent with the browser environment\n\n#### 4.3 Native browser environment\n\nThe native browser environment requires the use of script tags to import js files:\n\n```html\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar/cnchar.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://fastly.jsdelivr.net/npm/cnchar-poly/cnchar.poly.min.js\"\u003e\u003c/script\u003e\n\u003c!--... For other plugins, please refer to Chapter 2 2. Overview of functions and plugins--\u003e\n\u003cscript\u003e\n    console.log('汉字'.spell()); // Called by prototype\n    console.log(cnchar.spell('汉字')); // cnchar api call\n\u003c/script\u003e\n```\n\n**Acknowledgements**\n\nThe `cnchar-draw` library function is based on [hanzi-writer](https://github.com/chanind/hanzi-writer), thanks very much!\n\n**Contributors**\n\n[![](https://contrib.rocks/image?repo=theajack/cnchar)](https://github.com/theajack/cnchar/graphs/contributors)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheajack%2Fcnchar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheajack%2Fcnchar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheajack%2Fcnchar/lists"}