Package Exports
- chordproject-parser
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (chordproject-parser) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
ChordProject Parser
A TypeScript library for parsing, transposing and formatting ChordPro songs.
Overview
Parse any ChordPro song by using the ChordProParser. This gives a Song object wich can the be transposed with the Transposer and formatted with the Formatter. The formatter comes with 3 builders:
- TextBuilder: format as text
- HtmlBuilder: format as HTML (cf. style.css)
- ChordProBuilder: format as ChordPro
Part of ChordProject
Usage
Setup
To install run:
$ npm i chordproject-parser
Load with import
:
import { ChordProParser } from "chordproject-parser";
Parser
To use the ChordProParser:
const parser = new ChordProParser();
const song = parser.parse(chordSheet);
Formatter
You can choose between 3 formatters: TextFormatter, HtmlFormatter and ChordProFormatter.
const formatter = new HtmlFormatter();
const songText = formatter.format(song);
The formatters have default settings. You can change pass the settings in the formatter's constructor or change the settings later. Here is an example:
const settings = new FormatterSettings();
settings.showChords = false;
const formatter = new HtmlFormatter(settings);
or simply
const formatter = new HtmlFormatter(settings);
formatter.settings.showChords = false;
ChordPro format: Lyrics and Chords
Essentially, it looks like this:
{title: Praise Adonai}
{artist: Paul Baloche}
{sot}
E|-----2---2-----|-------3-3---
B|---3---3---3---|-----0-------
G|-2-------------|---0---------
D|---------------|---0---------
A|---------------|-2-----------
E|---------------|-------------
{eot}
[Am]Who is like [F]Him,
The Lion and the [C]Lamb
Seated on the [G]throne [E7]
[Am]Mountains bow [F]down
Every ocean [C]roars
To the Lord of [G]hosts
{start_of_chorus}
[F]Praise Ado[Am]nai
From the [G]rising of the sun
'Till the [Dm7]end of every [F]day[G]
[F]Praise Ado[Am]nai
All the [G]nations of the earth
All the [Dm7] Angels and the [F]Saints
[G]Sing [Bbsus2]praise
{end_of_chorus}
With source code
Demo
To start the demo:
$ npm run start
...then click on the http://localhost:8081/ link to open the demo in your browser
Unit test
You can add tests in the tests directory and execute them with
$ npm run test
or for the coverage
$ npm run test:ci