26个版本 (5个重大更新)
0.6.2 | 2024年5月22日 |
---|---|
0.6.1 | 2024年3月20日 |
0.5.0 | 2023年12月16日 |
0.4.3 | 2023年12月9日 |
0.1.16 | 2023年11月24日 |
#73 in WebAssembly
123 每月下载次数
255KB
6.5K SLoC
和弦进阶解析器
一个在Rust中构建的将和弦进阶字符串转换为AST的转换器,输出wasm,因此也可以从JavaScript中使用。
注意:此库发布多个包。
示例
您可以在 CodeSandbox 上尝试它
文档
- 英语
- 日语
如何使用
Rust
-
安装
cargo add chord-progression-parser
-
并使用
use chord_progression_parser::parse_chord_progression_string; fn main() { let input: &str = " @section=Intro [key=E]E - C#m(7) - Bm(7) - C#(7) F#m(7) - Am(7) - F#(7) - B @section=Verse E - C#m(7) - Bm(7) - C#(7) F#m(7) - Am(7) - F#(7) - B "; let result = parse_chord_progression_string(input); println!("{:#?}", result); }
JavaScript/TypeScript(使用捆绑包,如Vite,或者如果您使用Next.js)
-
安装(示例,使用Vite)
npm install @lainnao/chord-progression-parser-bundler npm install -D vite-plugin-wasm
-
编辑
vite.config.js
import { defineConfig } from "vite"; import wasm from "vite-plugin-wasm"; export default defineConfig({ plugins: [wasm()], });
-
并使用
import { parseChordProgressionString } from "@lainnao/chord-progression-parser-bundler/chord_progression_parser"; const result = parseChordProgressionString("C"); console.log(result);
JavaScript/TypeScript(服务器如Node.js,Bun)
-
安装
npm install @lainnao/chord-progression-parser-node
-
并使用
import { parseChordProgressionString } from "@lainnao/chord-progression-parser-node/chord_progression_parser"; const result = parseChordProgressionString("C"); console.log(result);
JavaScript(CDN)
-
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <h1>load wasm directly example</h1> <h2>parse C</h2> <pre id="result"></pre> <script type="module"> import * as mod from "https://cdn.jsdelivr.net.cn/npm/@lainnao/[email protected]/chord_progression_parser.js"; (async () => { // initialize wasm await mod.default(); // use const result = mod.parseChordProgressionString("C"); console.log(result); document.querySelector("#result").innerHTML = JSON.stringify( result, null, 2 ); })(); </script> </body> </html>
文章
依赖项
~6–15MB
~168K SLoC