5 个不稳定版本

0.3.1 2021年11月9日
0.3.0 2020年12月4日
0.2.0 2020年2月20日
0.1.1 2019年12月31日
0.1.0 2019年12月31日

#1449解析器实现

MIT/Apache

29KB
741

chordpro-rs

Latest Version Documentation Rust codecov

用 Rust 编写的 Chordpro 文件解析器。Chordpro 是一种简单的文本格式,用于和弦歌词的标记。虽然最初是为吉他手设计的,但可以用于所有类型的音乐目的。

该格式的规范可以在官方网站找到:https://www.chordpro.org/

示例

std::str::FromStr 实现了 Song 结构体

# use chordpro::Song;
# use std::str::FromStr;

let song = Song::from_str(r##"
    {title: Song Title}"
    {artist: The Artist}
    
    This is the first verse.
    You can specify chords using brackets.
    This is a [G]chord

    {soc}
    This is the chorus of the song
    [Em]You can also add some chords
    {eoc}
"##).unwrap();

支持指令

  • 元数据
    • 标题(简称:t)
    • 副标题(简称:st)
    • 艺术家
    • 作曲家
    • 作词家
    • 版权
    • 专辑
    • 年份
    • 调性
    • 时间
    • 速度
    • 时长
    • 变调夹
    • 元数据
  • 格式化
    • 注释(简称:c)
    • 斜体注释(简称:ci)
    • 方框注释(简称:cb)
    • 图片
  • 环境
    • 副歌开始(简称:soc)
    • 副歌结束(简称:eoc)
    • 副歌
    • 诗句开始
    • 诗句结束
    • 吉他谱开始(简称:sot)
    • 吉他谱结束(简称:eot)
    • 网格开始
    • 网格结束
  • 自定义扩展(以 x_ 为前缀)

支持和弦

目前,仅支持 A-G 记号进行解析。降音(带有 b),升音(带有 #)和常见后缀(mminmaj,数字)。

将和弦引用包裹在 chordpro::Latin 中,该和弦以拉丁符号格式化(DoReMi)。

依赖项

~4MB
~84K SLoC