chordsheetjs 6.1.0 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +423 -571
  2. package/lib/bundle.js +15353 -0
  3. package/lib/index.js +6253 -216
  4. package/lib/index.js.map +1 -0
  5. package/lib/main.d.ts +1062 -0
  6. package/lib/main.d.ts.map +1 -0
  7. package/package.json +43 -21
  8. package/.husky/pre-commit +0 -5
  9. package/lib/chord.js +0 -496
  10. package/lib/chord_sheet/chord_lyrics_pair.js +0 -80
  11. package/lib/chord_sheet/chord_pro/composite.js +0 -54
  12. package/lib/chord_sheet/chord_pro/evaluation_error.js +0 -58
  13. package/lib/chord_sheet/chord_pro/literal.js +0 -42
  14. package/lib/chord_sheet/chord_pro/ternary.js +0 -126
  15. package/lib/chord_sheet/comment.js +0 -55
  16. package/lib/chord_sheet/line.js +0 -207
  17. package/lib/chord_sheet/metadata.js +0 -216
  18. package/lib/chord_sheet/paragraph.js +0 -88
  19. package/lib/chord_sheet/song.js +0 -531
  20. package/lib/chord_sheet/tag.js +0 -359
  21. package/lib/chord_sheet_serializer.js +0 -278
  22. package/lib/constants.js +0 -54
  23. package/lib/formatter/chord_pro_formatter.js +0 -184
  24. package/lib/formatter/html_div_formatter.js +0 -130
  25. package/lib/formatter/html_formatter.js +0 -44
  26. package/lib/formatter/html_table_formatter.js +0 -154
  27. package/lib/formatter/templates/html_div_formatter.js +0 -544
  28. package/lib/formatter/templates/html_table_formatter.js +0 -731
  29. package/lib/formatter/text_formatter.js +0 -184
  30. package/lib/helpers.js +0 -56
  31. package/lib/key.js +0 -386
  32. package/lib/normalize_mappings/enharmonic-normalize.js +0 -124
  33. package/lib/normalize_mappings/generate-suffix-normalize-mapping.js +0 -36
  34. package/lib/normalize_mappings/suffix-normalize-mapping.js +0 -914
  35. package/lib/note.js +0 -264
  36. package/lib/parser/chord_pro_parser.js +0 -64
  37. package/lib/parser/chord_pro_peg_parser.js +0 -2069
  38. package/lib/parser/chord_sheet_parser.js +0 -175
  39. package/lib/parser/parser_warning.js +0 -62
  40. package/lib/parser/ultimate_guitar_parser.js +0 -154
  41. package/lib/template_helpers.js +0 -98
  42. package/lib/utilities.js +0 -110
package/README.md CHANGED
@@ -29,6 +29,19 @@ or `require()`:
29
29
  var ChordSheetJS = require('chordsheetjs').default;
30
30
  ```
31
31
 
32
+ ### Standalone bundle file
33
+
34
+ If you're not using a build tool, you can download and use the `bundle.js` from the
35
+ [latest release](https://github.com/martijnversluis/ChordSheetJS/releases/latest):
36
+
37
+ ```html
38
+ <script src="bundle.js"></script>
39
+ <script>
40
+ // ChordSheetJS is available in global namespace now
41
+ const parser = new ChordSheetJS.ChordProParser();
42
+ </script>
43
+ ```
44
+
32
45
  ## How to ...?
33
46
 
34
47
  ### Parse chord sheet
@@ -343,174 +356,132 @@ subject to breaking changes between major versions.
343
356
 
344
357
  <dl>
345
358
  <dt><a href="#ChordLyricsPair">ChordLyricsPair</a></dt>
346
- <dd><p>Represents a chord with the corresponding (partial) lyrics</p>
347
- </dd>
359
+ <dd><p>Represents a chord with the corresponding (partial) lyrics</p></dd>
348
360
  <dt><a href="#Comment">Comment</a></dt>
349
- <dd><p>Represents a comment. See <a href="https://www.chordpro.org/chordpro/chordpro-file-format-specification/#overview">https://www.chordpro.org/chordpro/chordpro-file-format-specification/#overview</a></p>
350
- </dd>
351
- <dt><a href="#Line">Line</a></dt>
352
- <dd><p>Represents a line in a chord sheet, consisting of items of type ChordLyricsPair or Tag</p>
353
- </dd>
361
+ <dd><p>Represents a comment. See https://www.chordpro.org/chordpro/chordpro-file-format-specification/#overview</p></dd>
354
362
  <dt><a href="#Metadata">Metadata</a></dt>
355
363
  <dd><p>Stores song metadata. Properties can be accessed using the get() method:</p>
356
- <p>const metadata = new Metadata({ author: &#39;John&#39; });
357
- metadata.get(&#39;author&#39;) // =&gt; &#39;John&#39;</p>
358
- <p>See <a href="#Metadata+get">get</a></p>
359
- </dd>
364
+ <p>const metadata = new Metadata({ author: 'John' });
365
+ metadata.get('author') // =&gt; 'John'</p>
366
+ <p>See [get](#Metadata+get)</p></dd>
360
367
  <dt><a href="#Paragraph">Paragraph</a></dt>
361
- <dd><p>Represents a paragraph of lines in a chord sheet</p>
362
- </dd>
368
+ <dd><p>Represents a paragraph of lines in a chord sheet</p></dd>
363
369
  <dt><a href="#Song">Song</a></dt>
364
- <dd><p>Represents a song in a chord sheet. Currently a chord sheet can only have one song.</p>
365
- </dd>
370
+ <dd><p>Represents a song in a chord sheet. Currently a chord sheet can only have one song.</p></dd>
366
371
  <dt><a href="#Tag">Tag</a></dt>
367
- <dd><p>Represents a tag/directive. See <a href="https://www.chordpro.org/chordpro/chordpro-directives/">https://www.chordpro.org/chordpro/chordpro-directives/</a></p>
368
- </dd>
372
+ <dd><p>Represents a tag/directive. See https://www.chordpro.org/chordpro/chordpro-directives/</p></dd>
369
373
  <dt><a href="#ChordProFormatter">ChordProFormatter</a></dt>
370
- <dd><p>Formats a song into a ChordPro chord sheet</p>
371
- </dd>
374
+ <dd><p>Formats a song into a ChordPro chord sheet</p></dd>
375
+ <dt><a href="#Formatter">Formatter</a></dt>
376
+ <dd><p>Base class for all formatters, taking care of receiving a configuration wrapping that inside a Configuration object</p></dd>
372
377
  <dt><a href="#HtmlDivFormatter">HtmlDivFormatter</a></dt>
373
- <dd><p>Formats a song into HTML. It uses DIVs to align lyrics with chords, which makes it useful for responsive web pages.</p>
374
- </dd>
378
+ <dd><p>Formats a song into HTML. It uses DIVs to align lyrics with chords, which makes it useful for responsive web pages.</p></dd>
375
379
  <dt><a href="#HtmlFormatter">HtmlFormatter</a></dt>
376
- <dd><p>Acts as a base class for HTML formatters, taking care of whitelisting prototype property access.</p>
377
- </dd>
380
+ <dd><p>Acts as a base class for HTML formatters, taking care of whitelisting prototype property access.</p></dd>
378
381
  <dt><a href="#HtmlTableFormatter">HtmlTableFormatter</a></dt>
379
382
  <dd><p>Formats a song into HTML. It uses TABLEs to align lyrics with chords, which makes the HTML for things like
380
- PDF conversion.</p>
381
- </dd>
383
+ PDF conversion.</p></dd>
382
384
  <dt><a href="#TextFormatter">TextFormatter</a></dt>
383
- <dd><p>Formats a song into a plain text chord sheet</p>
384
- </dd>
385
+ <dd><p>Formats a song into a plain text chord sheet</p></dd>
385
386
  <dt><a href="#ChordProParser">ChordProParser</a></dt>
386
- <dd><p>Parses a ChordPro chord sheet</p>
387
- </dd>
387
+ <dd><p>Parses a ChordPro chord sheet</p></dd>
388
388
  <dt><a href="#ChordSheetParser">ChordSheetParser</a></dt>
389
- <dd><p>Parses a normal chord sheet</p>
390
- </dd>
389
+ <dd><p>Parses a normal chord sheet</p></dd>
391
390
  <dt><a href="#ParserWarning">ParserWarning</a></dt>
392
- <dd><p>Represents a parser warning, currently only used by ChordProParser.</p>
393
- </dd>
391
+ <dd><p>Represents a parser warning, currently only used by ChordProParser.</p></dd>
394
392
  <dt><a href="#UltimateGuitarParser">UltimateGuitarParser</a></dt>
395
393
  <dd><p>Parses an Ultimate Guitar chord sheet with metadata
396
- Inherits from <a href="#ChordSheetParser">ChordSheetParser</a></p>
397
- </dd>
394
+ Inherits from [ChordSheetParser](#ChordSheetParser)</p></dd>
398
395
  <dt><a href="#Chord">Chord</a></dt>
399
- <dd><p>Represents a Chord, consisting of a root, suffix (quality) and bass</p>
400
- </dd>
396
+ <dd><p>Represents a Chord, consisting of a root, suffix (quality) and bass</p></dd>
401
397
  <dt><a href="#ChordSheetSerializer">ChordSheetSerializer</a></dt>
402
- <dd><p>Serializes a song into een plain object, and deserializes the serialized object back into a <a href="#Song">Song</a></p>
403
- </dd>
398
+ <dd><p>Serializes a song into een plain object, and deserializes the serialized object back into a [Song](#Song)</p></dd>
404
399
  </dl>
405
400
 
406
- ## Constants
401
+ ## Members
407
402
 
408
403
  <dl>
409
404
  <dt><a href="#ALBUM">ALBUM</a> : <code>string</code></dt>
410
- <dd><p>Album meta directive. See <a href="https://www.chordpro.org/chordpro/directives-album/">https://www.chordpro.org/chordpro/directives-album/</a></p>
411
- </dd>
405
+ <dd><p>Artist meta directive. See https://www.chordpro.org/chordpro/directives-artist/</p></dd>
412
406
  <dt><a href="#ARTIST">ARTIST</a> : <code>string</code></dt>
413
- <dd><p>Artist meta directive. See <a href="https://www.chordpro.org/chordpro/directives-artist/">https://www.chordpro.org/chordpro/directives-artist/</a></p>
414
- </dd>
407
+ <dd><p>Capo meta directive. See https://www.chordpro.org/chordpro/directives-capo/</p></dd>
415
408
  <dt><a href="#CAPO">CAPO</a> : <code>string</code></dt>
416
- <dd><p>Capo meta directive. See <a href="https://www.chordpro.org/chordpro/directives-capo/">https://www.chordpro.org/chordpro/directives-capo/</a></p>
417
- </dd>
409
+ <dd><p>Comment directive. See https://www.chordpro.org/chordpro/directives-comment/</p></dd>
418
410
  <dt><a href="#COMMENT">COMMENT</a> : <code>string</code></dt>
419
- <dd><p>Comment directive. See <a href="https://www.chordpro.org/chordpro/directives-comment/">https://www.chordpro.org/chordpro/directives-comment/</a></p>
420
- </dd>
411
+ <dd><p>Composer meta directive. See https://www.chordpro.org/chordpro/directives-composer/</p></dd>
421
412
  <dt><a href="#COMPOSER">COMPOSER</a> : <code>string</code></dt>
422
- <dd><p>Composer meta directive. See <a href="https://www.chordpro.org/chordpro/directives-composer/">https://www.chordpro.org/chordpro/directives-composer/</a></p>
423
- </dd>
413
+ <dd><p>Copyright meta directive. See https://www.chordpro.org/chordpro/directives-copyright/</p></dd>
424
414
  <dt><a href="#COPYRIGHT">COPYRIGHT</a> : <code>string</code></dt>
425
- <dd><p>Copyright meta directive. See <a href="https://www.chordpro.org/chordpro/directives-copyright/">https://www.chordpro.org/chordpro/directives-copyright/</a></p>
426
- </dd>
415
+ <dd><p>Duration meta directive. See https://www.chordpro.org/chordpro/directives-duration/</p></dd>
427
416
  <dt><a href="#DURATION">DURATION</a> : <code>string</code></dt>
428
- <dd><p>Duration meta directive. See <a href="https://www.chordpro.org/chordpro/directives-duration/">https://www.chordpro.org/chordpro/directives-duration/</a></p>
429
- </dd>
417
+ <dd><p>End of chorus directive. See https://www.chordpro.org/chordpro/directives-env_chorus/</p></dd>
430
418
  <dt><a href="#END_OF_CHORUS">END_OF_CHORUS</a> : <code>string</code></dt>
431
- <dd><p>End of chorus directive. See <a href="https://www.chordpro.org/chordpro/directives-env_chorus/">https://www.chordpro.org/chordpro/directives-env_chorus/</a></p>
432
- </dd>
419
+ <dd><p>End of tab directive. See https://www.chordpro.org/chordpro/directives-env_tab/</p></dd>
433
420
  <dt><a href="#END_OF_TAB">END_OF_TAB</a> : <code>string</code></dt>
434
- <dd><p>End of tab directive. See <a href="https://www.chordpro.org/chordpro/directives-env_tab/">https://www.chordpro.org/chordpro/directives-env_tab/</a></p>
435
- </dd>
421
+ <dd><p>End of verse directive. See https://www.chordpro.org/chordpro/directives-env_verse/</p></dd>
436
422
  <dt><a href="#END_OF_VERSE">END_OF_VERSE</a> : <code>string</code></dt>
437
- <dd><p>End of verse directive. See <a href="https://www.chordpro.org/chordpro/directives-env_verse/">https://www.chordpro.org/chordpro/directives-env_verse/</a></p>
438
- </dd>
423
+ <dd><p>Key meta directive. See https://www.chordpro.org/chordpro/directives-key/</p></dd>
439
424
  <dt><a href="#KEY">KEY</a> : <code>string</code></dt>
440
- <dd><p>Key meta directive. See <a href="https://www.chordpro.org/chordpro/directives-key/">https://www.chordpro.org/chordpro/directives-key/</a></p>
441
- </dd>
425
+ <dd><p>Key meta directive. See https://www.chordpro.org/chordpro/directives-key/</p></dd>
442
426
  <dt><a href="#_KEY">_KEY</a> : <code>string</code></dt>
443
- <dd><p>Key meta directive. See <a href="https://www.chordpro.org/chordpro/directives-key/">https://www.chordpro.org/chordpro/directives-key/</a></p>
444
- </dd>
427
+ <dd><p>Lyricist meta directive. See https://www.chordpro.org/chordpro/directives-lyricist/</p></dd>
445
428
  <dt><a href="#LYRICIST">LYRICIST</a> : <code>string</code></dt>
446
- <dd><p>Lyricist meta directive. See <a href="https://www.chordpro.org/chordpro/directives-lyricist/">https://www.chordpro.org/chordpro/directives-lyricist/</a></p>
447
- </dd>
429
+ <dd><p>Start of chorus directive. See https://www.chordpro.org/chordpro/directives-env_chorus/</p></dd>
448
430
  <dt><a href="#START_OF_CHORUS">START_OF_CHORUS</a> : <code>string</code></dt>
449
- <dd><p>Start of chorus directive. See <a href="https://www.chordpro.org/chordpro/directives-env_chorus/">https://www.chordpro.org/chordpro/directives-env_chorus/</a></p>
450
- </dd>
431
+ <dd><p>Start of tab directive. See https://www.chordpro.org/chordpro/directives-env_tab/</p></dd>
451
432
  <dt><a href="#START_OF_TAB">START_OF_TAB</a> : <code>string</code></dt>
452
- <dd><p>Start of tab directive. See <a href="https://www.chordpro.org/chordpro/directives-env_tab/">https://www.chordpro.org/chordpro/directives-env_tab/</a></p>
453
- </dd>
433
+ <dd><p>Start of verse directive. See https://www.chordpro.org/chordpro/directives-env_verse/</p></dd>
454
434
  <dt><a href="#START_OF_VERSE">START_OF_VERSE</a> : <code>string</code></dt>
455
- <dd><p>Start of verse directive. See <a href="https://www.chordpro.org/chordpro/directives-env_verse/">https://www.chordpro.org/chordpro/directives-env_verse/</a></p>
456
- </dd>
435
+ <dd><p>Subtitle meta directive. See https://www.chordpro.org/chordpro/directives-subtitle/</p></dd>
457
436
  <dt><a href="#SUBTITLE">SUBTITLE</a> : <code>string</code></dt>
458
- <dd><p>Subtitle meta directive. See <a href="https://www.chordpro.org/chordpro/directives-subtitle/">https://www.chordpro.org/chordpro/directives-subtitle/</a></p>
459
- </dd>
437
+ <dd><p>Tempo meta directive. See https://www.chordpro.org/chordpro/directives-tempo/</p></dd>
460
438
  <dt><a href="#TEMPO">TEMPO</a> : <code>string</code></dt>
461
- <dd><p>Tempo meta directive. See <a href="https://www.chordpro.org/chordpro/directives-tempo/">https://www.chordpro.org/chordpro/directives-tempo/</a></p>
462
- </dd>
439
+ <dd><p>Time meta directive. See https://www.chordpro.org/chordpro/directives-time/</p></dd>
463
440
  <dt><a href="#TIME">TIME</a> : <code>string</code></dt>
464
- <dd><p>Time meta directive. See <a href="https://www.chordpro.org/chordpro/directives-time/">https://www.chordpro.org/chordpro/directives-time/</a></p>
465
- </dd>
441
+ <dd><p>Title meta directive. See https://www.chordpro.org/chordpro/directives-title/</p></dd>
466
442
  <dt><a href="#TITLE">TITLE</a> : <code>string</code></dt>
467
- <dd><p>Title meta directive. See <a href="https://www.chordpro.org/chordpro/directives-title/">https://www.chordpro.org/chordpro/directives-title/</a></p>
468
- </dd>
443
+ <dd><p>Transpose meta directive. See: https://www.chordpro.org/chordpro/directives-transpose/</p></dd>
469
444
  <dt><a href="#TRANSPOSE">TRANSPOSE</a> : <code>string</code></dt>
470
- <dd><p>Transpose meta directive. See: <a href="https://www.chordpro.org/chordpro/directives-transpose/">https://www.chordpro.org/chordpro/directives-transpose/</a></p>
471
- </dd>
445
+ <dd><p>New Key meta directive. See: https://github.com/PraiseCharts/ChordChartJS/issues/53</p></dd>
472
446
  <dt><a href="#NEW_KEY">NEW_KEY</a> : <code>string</code></dt>
473
- <dd><p>New Key meta directive. See: <a href="https://github.com/PraiseCharts/ChordChartJS/issues/53">https://github.com/PraiseCharts/ChordChartJS/issues/53</a></p>
474
- </dd>
475
- <dt><a href="#YEAR">YEAR</a> : <code>string</code></dt>
476
- <dd><p>Year meta directive. See <a href="https://www.chordpro.org/chordpro/directives-year/">https://www.chordpro.org/chordpro/directives-year/</a></p>
477
- </dd>
447
+ <dd><p>Year meta directive. See https://www.chordpro.org/chordpro/directives-year/</p></dd>
448
+ <dt><a href="#defaultCss">defaultCss</a> ⇒ <code>string</code></dt>
449
+ <dd><p>Generates basic CSS, scoped within the provided selector, to use with output generated by [HtmlTableFormatter](#HtmlTableFormatter)</p></dd>
450
+ </dl>
451
+
452
+ ## Constants
453
+
454
+ <dl>
478
455
  <dt><a href="#defaultCss">defaultCss</a> : <code>Object.&lt;string, Object.&lt;string, string&gt;&gt;</code></dt>
479
456
  <dd><p>Basic CSS, in object style à la useStyles, to use with output generated by {@link }HtmlTableFormatter}
480
- For a CSS string see <a href="#scopedCss">scopedCss</a></p>
481
- </dd>
457
+ For a CSS string see [scopedCss](scopedCss)</p></dd>
458
+ <dt><a href="#VERSE">VERSE</a> : <code>string</code></dt>
459
+ <dd><p>Used to mark a paragraph as verse</p></dd>
482
460
  <dt><a href="#VERSE">VERSE</a> : <code>string</code></dt>
483
- <dd><p>Used to mark a paragraph as verse</p>
484
- </dd>
461
+ <dd><p>Used to mark a paragraph as chorus</p></dd>
485
462
  <dt><a href="#CHORUS">CHORUS</a> : <code>string</code></dt>
486
- <dd><p>Used to mark a paragraph as chorus</p>
487
- </dd>
463
+ <dd><p>Used to mark a paragraph as not containing a line marked with a type</p></dd>
488
464
  <dt><a href="#NONE">NONE</a> : <code>string</code></dt>
489
- <dd><p>Used to mark a paragraph as not containing a line marked with a type</p>
490
- </dd>
465
+ <dd><p>Used to mark a paragraph as containing lines with both verse and chorus type</p></dd>
491
466
  <dt><a href="#INDETERMINATE">INDETERMINATE</a> : <code>string</code></dt>
492
- <dd><p>Used to mark a paragraph as containing lines with both verse and chorus type</p>
493
- </dd>
494
- <dt><a href="#TAB">TAB</a> : <code>string</code></dt>
495
- <dd><p>Used to mark a paragraph as tab</p>
496
- </dd>
467
+ <dd><p>Used to mark a paragraph as tab</p></dd>
497
468
  </dl>
498
469
 
499
470
  ## Functions
500
471
 
501
472
  <dl>
502
- <dt><a href="#scopedCss">scopedCss(scope)</a> ⇒ <code>string</code></dt>
503
- <dd><p>Generates basic CSS, scoped within the provided selector, to use with output generated by <a href="#HtmlTableFormatter">HtmlTableFormatter</a></p>
504
- </dd>
505
473
  <dt><del><a href="#parseChord">parseChord(chordString)</a> ⇒ <code>null</code> | <code><a href="#Chord">Chord</a></code></del></dt>
506
- <dd><p>Tries to parse a chord string into a chord</p>
507
- </dd>
474
+ <dd><p>Tries to parse a chord string into a chord</p></dd>
475
+ <dt><a href="#getCapos">getCapos(key)</a> ⇒ <code>Object.&lt;string, string&gt;</code></dt>
476
+ <dd><p>Returns applicable capos for the provided key</p></dd>
477
+ <dt><a href="#getKeys">getKeys(key)</a> ⇒ <code>Array.&lt;string&gt;</code></dt>
478
+ <dd><p>Returns applicable keys to transpose to from the provided key</p></dd>
508
479
  </dl>
509
480
 
510
481
  <a name="ChordLyricsPair"></a>
511
482
 
512
483
  ## ChordLyricsPair
513
- Represents a chord with the corresponding (partial) lyrics
484
+ <p>Represents a chord with the corresponding (partial) lyrics</p>
514
485
 
515
486
  **Kind**: global class
516
487
 
@@ -524,42 +495,42 @@ Represents a chord with the corresponding (partial) lyrics
524
495
  <a name="new_ChordLyricsPair_new"></a>
525
496
 
526
497
  ### new ChordLyricsPair(chords, lyrics)
527
- Initialises a ChordLyricsPair
498
+ <p>Initialises a ChordLyricsPair</p>
528
499
 
529
500
 
530
501
  | Param | Type | Description |
531
502
  | --- | --- | --- |
532
- | chords | <code>string</code> | The chords |
533
- | lyrics | <code>string</code> | The lyrics |
503
+ | chords | <code>string</code> | <p>The chords</p> |
504
+ | lyrics | <code>string</code> | <p>The lyrics</p> |
534
505
 
535
506
  <a name="ChordLyricsPair+chords"></a>
536
507
 
537
508
  ### chordLyricsPair.chords : <code>string</code>
538
- The chords
509
+ <p>The chords</p>
539
510
 
540
511
  **Kind**: instance property of [<code>ChordLyricsPair</code>](#ChordLyricsPair)
541
512
  <a name="ChordLyricsPair+lyrics"></a>
542
513
 
543
514
  ### chordLyricsPair.lyrics : <code>string</code>
544
- The lyrics
515
+ <p>The lyrics</p>
545
516
 
546
517
  **Kind**: instance property of [<code>ChordLyricsPair</code>](#ChordLyricsPair)
547
518
  <a name="ChordLyricsPair+isRenderable"></a>
548
519
 
549
520
  ### chordLyricsPair.isRenderable() ⇒ <code>boolean</code>
550
- Indicates whether a ChordLyricsPair should be visible in a formatted chord sheet (except for ChordPro sheets)
521
+ <p>Indicates whether a ChordLyricsPair should be visible in a formatted chord sheet (except for ChordPro sheets)</p>
551
522
 
552
523
  **Kind**: instance method of [<code>ChordLyricsPair</code>](#ChordLyricsPair)
553
524
  <a name="ChordLyricsPair+clone"></a>
554
525
 
555
526
  ### chordLyricsPair.clone() ⇒ [<code>ChordLyricsPair</code>](#ChordLyricsPair)
556
- Returns a deep copy of the ChordLyricsPair, useful when programmatically transforming a song
527
+ <p>Returns a deep copy of the ChordLyricsPair, useful when programmatically transforming a song</p>
557
528
 
558
529
  **Kind**: instance method of [<code>ChordLyricsPair</code>](#ChordLyricsPair)
559
530
  <a name="Comment"></a>
560
531
 
561
532
  ## Comment
562
- Represents a comment. See https://www.chordpro.org/chordpro/chordpro-file-format-specification/#overview
533
+ <p>Represents a comment. See https://www.chordpro.org/chordpro/chordpro-file-format-specification/#overview</p>
563
534
 
564
535
  **Kind**: global class
565
536
 
@@ -570,104 +541,22 @@ Represents a comment. See https://www.chordpro.org/chordpro/chordpro-file-format
570
541
  <a name="Comment+isRenderable"></a>
571
542
 
572
543
  ### comment.isRenderable() ⇒ <code>boolean</code>
573
- Indicates whether a Comment should be visible in a formatted chord sheet (except for ChordPro sheets)
544
+ <p>Indicates whether a Comment should be visible in a formatted chord sheet (except for ChordPro sheets)</p>
574
545
 
575
546
  **Kind**: instance method of [<code>Comment</code>](#Comment)
576
547
  <a name="Comment+clone"></a>
577
548
 
578
549
  ### comment.clone() ⇒ [<code>Comment</code>](#Comment)
579
- Returns a deep copy of the Comment, useful when programmatically transforming a song
550
+ <p>Returns a deep copy of the Comment, useful when programmatically transforming a song</p>
580
551
 
581
552
  **Kind**: instance method of [<code>Comment</code>](#Comment)
582
- <a name="Line"></a>
583
-
584
- ## Line
585
- Represents a line in a chord sheet, consisting of items of type ChordLyricsPair or Tag
586
-
587
- **Kind**: global class
588
-
589
- * [Line](#Line)
590
- * [.items](#Line+items) : <code>Array.&lt;(ChordLyricsPair\|Tag\|Comment)&gt;</code>
591
- * [.type](#Line+type) : <code>string</code>
592
- * [.isEmpty()](#Line+isEmpty) ⇒ <code>boolean</code>
593
- * [.addItem(item)](#Line+addItem)
594
- * [.hasRenderableItems()](#Line+hasRenderableItems) ⇒ <code>boolean</code>
595
- * [.clone()](#Line+clone) ⇒ [<code>Line</code>](#Line)
596
- * [.isVerse()](#Line+isVerse) ⇒ <code>boolean</code>
597
- * [.isChorus()](#Line+isChorus) ⇒ <code>boolean</code>
598
- * ~~[.hasContent()](#Line+hasContent) ⇒ <code>boolean</code>~~
599
-
600
- <a name="Line+items"></a>
601
-
602
- ### line.items : <code>Array.&lt;(ChordLyricsPair\|Tag\|Comment)&gt;</code>
603
- The items ([ChordLyricsPair](#ChordLyricsPair) or [Tag](#Tag) or [Comment](#Comment)) of which the line consists
604
-
605
- **Kind**: instance property of [<code>Line</code>](#Line)
606
- <a name="Line+type"></a>
607
-
608
- ### line.type : <code>string</code>
609
- The line type, This is set by the ChordProParser when it read tags like {start_of_chorus} or {start_of_verse}
610
- Values can be [VERSE](#VERSE), [CHORUS](#CHORUS) or [NONE](#NONE)
611
-
612
- **Kind**: instance property of [<code>Line</code>](#Line)
613
- <a name="Line+isEmpty"></a>
614
-
615
- ### line.isEmpty() ⇒ <code>boolean</code>
616
- Indicates whether the line contains any items
617
-
618
- **Kind**: instance method of [<code>Line</code>](#Line)
619
- <a name="Line+addItem"></a>
620
-
621
- ### line.addItem(item)
622
- Adds an item ([ChordLyricsPair](#ChordLyricsPair) or [Tag](#Tag)) to the line
623
-
624
- **Kind**: instance method of [<code>Line</code>](#Line)
625
-
626
- | Param | Type | Description |
627
- | --- | --- | --- |
628
- | item | [<code>ChordLyricsPair</code>](#ChordLyricsPair) \| [<code>Tag</code>](#Tag) | The item to be added |
629
-
630
- <a name="Line+hasRenderableItems"></a>
631
-
632
- ### line.hasRenderableItems() ⇒ <code>boolean</code>
633
- Indicates whether the line contains items that are renderable
634
-
635
- **Kind**: instance method of [<code>Line</code>](#Line)
636
- <a name="Line+clone"></a>
637
-
638
- ### line.clone() ⇒ [<code>Line</code>](#Line)
639
- Returns a deep copy of the line and all of its items
640
-
641
- **Kind**: instance method of [<code>Line</code>](#Line)
642
- <a name="Line+isVerse"></a>
643
-
644
- ### line.isVerse() ⇒ <code>boolean</code>
645
- Indicates whether the line type is [VERSE](#VERSE)
646
-
647
- **Kind**: instance method of [<code>Line</code>](#Line)
648
- <a name="Line+isChorus"></a>
649
-
650
- ### line.isChorus() ⇒ <code>boolean</code>
651
- Indicates whether the line type is [CHORUS](#CHORUS)
652
-
653
- **Kind**: instance method of [<code>Line</code>](#Line)
654
- <a name="Line+hasContent"></a>
655
-
656
- ### ~~line.hasContent() ⇒ <code>boolean</code>~~
657
- ***Deprecated***
658
-
659
- Indicates whether the line contains items that are renderable. Please use [hasRenderableItems](hasRenderableItems)
660
-
661
- **Kind**: instance method of [<code>Line</code>](#Line)
662
553
  <a name="Metadata"></a>
663
554
 
664
555
  ## Metadata
665
- Stores song metadata. Properties can be accessed using the get() method:
666
-
667
- const metadata = new Metadata({ author: 'John' });
668
- metadata.get('author') // => 'John'
669
-
670
- See [get](#Metadata+get)
556
+ <p>Stores song metadata. Properties can be accessed using the get() method:</p>
557
+ <p>const metadata = new Metadata({ author: 'John' });
558
+ metadata.get('author') // =&gt; 'John'</p>
559
+ <p>See [get](#Metadata+get)</p>
671
560
 
672
561
  **Kind**: global class
673
562
 
@@ -678,84 +567,69 @@ See [get](#Metadata+get)
678
567
  <a name="Metadata+get"></a>
679
568
 
680
569
  ### metadata.get(prop) ⇒ <code>Array.&lt;String&gt;</code> \| <code>String</code>
681
- Reads a metadata value by key. This method supports simple value lookup, as fetching single array values.
682
-
683
- This method deprecates direct property access, eg: metadata['author']
684
-
685
- Examples:
686
-
687
- const metadata = new Metadata({ lyricist: 'Pete', author: ['John', 'Mary'] });
688
- metadata.get('lyricist') // => 'Pete'
689
- metadata.get('author') // => ['John', 'Mary']
690
- metadata.get('author.1') // => 'John'
691
- metadata.get('author.2') // => 'Mary'
692
-
693
- Using a negative index will start counting at the end of the list:
694
-
695
- const metadata = new Metadata({ lyricist: 'Pete', author: ['John', 'Mary'] });
696
- metadata.get('author.-1') // => 'Mary'
697
- metadata.get('author.-2') // => 'John'
570
+ <p>Reads a metadata value by key. This method supports simple value lookup, as fetching single array values.</p>
571
+ <p>This method deprecates direct property access, eg: metadata['author']</p>
572
+ <p>Examples:</p>
573
+ <p>const metadata = new Metadata({ lyricist: 'Pete', author: ['John', 'Mary'] });
574
+ metadata.get('lyricist') // =&gt; 'Pete'
575
+ metadata.get('author') // =&gt; ['John', 'Mary']
576
+ metadata.get('author.1') // =&gt; 'John'
577
+ metadata.get('author.2') // =&gt; 'Mary'</p>
578
+ <p>Using a negative index will start counting at the end of the list:</p>
579
+ <p>const metadata = new Metadata({ lyricist: 'Pete', author: ['John', 'Mary'] });
580
+ metadata.get('author.-1') // =&gt; 'Mary'
581
+ metadata.get('author.-2') // =&gt; 'John'</p>
698
582
 
699
583
  **Kind**: instance method of [<code>Metadata</code>](#Metadata)
700
- **Returns**: <code>Array.&lt;String&gt;</code> \| <code>String</code> - the metadata value(s). If there is only one value, it will return a String,
701
- else it returns an array of strings.
584
+ **Returns**: <code>Array.&lt;String&gt;</code> \| <code>String</code> - <p>the metadata value(s). If there is only one value, it will return a String,
585
+ else it returns an array of strings.</p>
702
586
 
703
587
  | Param | Description |
704
588
  | --- | --- |
705
- | prop | the property name |
589
+ | prop | <p>the property name</p> |
706
590
 
707
591
  <a name="Metadata+clone"></a>
708
592
 
709
593
  ### metadata.clone() ⇒ [<code>Metadata</code>](#Metadata)
710
- Returns a deep clone of this Metadata object
594
+ <p>Returns a deep clone of this Metadata object</p>
711
595
 
712
596
  **Kind**: instance method of [<code>Metadata</code>](#Metadata)
713
- **Returns**: [<code>Metadata</code>](#Metadata) - the cloned Metadata object
597
+ **Returns**: [<code>Metadata</code>](#Metadata) - <p>the cloned Metadata object</p>
714
598
  <a name="Paragraph"></a>
715
599
 
716
600
  ## Paragraph
717
- Represents a paragraph of lines in a chord sheet
601
+ <p>Represents a paragraph of lines in a chord sheet</p>
718
602
 
719
603
  **Kind**: global class
720
604
 
721
605
  * [Paragraph](#Paragraph)
722
- * [.lines](#Paragraph+lines) : [<code>Array.&lt;Line&gt;</code>](#Line)
723
606
  * [.type](#Paragraph+type) ⇒ <code>string</code>
724
607
  * [.hasRenderableItems()](#Paragraph+hasRenderableItems) ⇒ <code>boolean</code>
725
608
 
726
- <a name="Paragraph+lines"></a>
727
-
728
- ### paragraph.lines : [<code>Array.&lt;Line&gt;</code>](#Line)
729
- The [Line](#Line) items of which the paragraph consists
730
-
731
- **Kind**: instance property of [<code>Paragraph</code>](#Paragraph)
732
609
  <a name="Paragraph+type"></a>
733
610
 
734
611
  ### paragraph.type ⇒ <code>string</code>
735
- Tries to determine the common type for all lines. If the types for all lines are equal, it returns that type.
736
- If not, it returns [INDETERMINATE](#INDETERMINATE)
612
+ <p>Tries to determine the common type for all lines. If the types for all lines are equal, it returns that type.
613
+ If not, it returns [INDETERMINATE](#INDETERMINATE)</p>
737
614
 
738
615
  **Kind**: instance property of [<code>Paragraph</code>](#Paragraph)
739
616
  <a name="Paragraph+hasRenderableItems"></a>
740
617
 
741
618
  ### paragraph.hasRenderableItems() ⇒ <code>boolean</code>
742
- Indicates whether the paragraph contains lines with renderable items.
619
+ <p>Indicates whether the paragraph contains lines with renderable items.</p>
743
620
 
744
621
  **Kind**: instance method of [<code>Paragraph</code>](#Paragraph)
745
622
  **See**: [Line.hasRenderableItems](Line.hasRenderableItems)
746
623
  <a name="Song"></a>
747
624
 
748
625
  ## Song
749
- Represents a song in a chord sheet. Currently a chord sheet can only have one song.
626
+ <p>Represents a song in a chord sheet. Currently a chord sheet can only have one song.</p>
750
627
 
751
628
  **Kind**: global class
752
629
 
753
630
  * [Song](#Song)
754
631
  * [new Song(metadata)](#new_Song_new)
755
- * [.lines](#Song+lines) : [<code>Array.&lt;Line&gt;</code>](#Line)
756
- * [.paragraphs](#Song+paragraphs) : [<code>Array.&lt;Paragraph&gt;</code>](#Paragraph)
757
- * [.metadata](#Song+metadata) : [<code>Metadata</code>](#Metadata)
758
- * [.bodyLines](#Song+bodyLines) ⇒ [<code>Array.&lt;Line&gt;</code>](#Line)
632
+ * [.bodyLines](#Song+bodyLines) <code>Array.&lt;Line&gt;</code>
759
633
  * [.bodyParagraphs](#Song+bodyParagraphs) ⇒ [<code>Array.&lt;Paragraph&gt;</code>](#Paragraph)
760
634
  * ~~[.metaData](#Song+metaData) ⇒~~
761
635
  * [.clone()](#Song+clone) ⇒ [<code>Song</code>](#Song)
@@ -765,45 +639,26 @@ Represents a song in a chord sheet. Currently a chord sheet can only have one so
765
639
  <a name="new_Song_new"></a>
766
640
 
767
641
  ### new Song(metadata)
768
- Creates a new {Song} instance
642
+ <p>Creates a new {Song} instance</p>
769
643
 
770
644
 
771
645
  | Param | Type | Description |
772
646
  | --- | --- | --- |
773
- | metadata | <code>Object</code> \| [<code>Metadata</code>](#Metadata) | predefined metadata |
774
-
775
- <a name="Song+lines"></a>
776
-
777
- ### song.lines : [<code>Array.&lt;Line&gt;</code>](#Line)
778
- The [Line](#Line) items of which the song consists
779
-
780
- **Kind**: instance property of [<code>Song</code>](#Song)
781
- <a name="Song+paragraphs"></a>
782
-
783
- ### song.paragraphs : [<code>Array.&lt;Paragraph&gt;</code>](#Paragraph)
784
- The [Paragraph](#Paragraph) items of which the song consists
785
-
786
- **Kind**: instance property of [<code>Song</code>](#Song)
787
- <a name="Song+metadata"></a>
788
-
789
- ### song.metadata : [<code>Metadata</code>](#Metadata)
790
- The song's metadata. When there is only one value for an entry, the value is a string. Else, the value is
791
- an array containing all unique values for the entry.
647
+ | metadata | <code>Object</code> \| [<code>Metadata</code>](#Metadata) | <p>predefined metadata</p> |
792
648
 
793
- **Kind**: instance property of [<code>Song</code>](#Song)
794
649
  <a name="Song+bodyLines"></a>
795
650
 
796
- ### song.bodyLines ⇒ [<code>Array.&lt;Line&gt;</code>](#Line)
797
- Returns the song lines, skipping the leading empty lines (empty as in not rendering any content). This is useful
798
- if you want to skip the "header lines": the lines that only contain meta data.
651
+ ### song.bodyLines ⇒ <code>Array.&lt;Line&gt;</code>
652
+ <p>Returns the song lines, skipping the leading empty lines (empty as in not rendering any content). This is useful
653
+ if you want to skip the &quot;header lines&quot;: the lines that only contain meta data.</p>
799
654
 
800
655
  **Kind**: instance property of [<code>Song</code>](#Song)
801
- **Returns**: [<code>Array.&lt;Line&gt;</code>](#Line) - The song body lines
656
+ **Returns**: <code>Array.&lt;Line&gt;</code> - <p>The song body lines</p>
802
657
  <a name="Song+bodyParagraphs"></a>
803
658
 
804
659
  ### song.bodyParagraphs ⇒ [<code>Array.&lt;Paragraph&gt;</code>](#Paragraph)
805
- Returns the song paragraphs, skipping the paragraphs that only contain empty lines
806
- (empty as in not rendering any content)
660
+ <p>Returns the song paragraphs, skipping the paragraphs that only contain empty lines
661
+ (empty as in not rendering any content)</p>
807
662
 
808
663
  **Kind**: instance property of [<code>Song</code>](#Song)
809
664
  **See**: [bodyLines](bodyLines)
@@ -812,50 +667,54 @@ Returns the song paragraphs, skipping the paragraphs that only contain empty lin
812
667
  ### ~~song.metaData ⇒~~
813
668
  ***Deprecated***
814
669
 
815
- The song's metadata. Please use [metadata](metadata) instead.
670
+ <p>The song's metadata. Please use [metadata](metadata) instead.</p>
816
671
 
817
672
  **Kind**: instance property of [<code>Song</code>](#Song)
818
- **Returns**: [Metadata](#Metadata) The metadata
673
+ **Returns**: <p>[Metadata](#Metadata) The metadata</p>
819
674
  <a name="Song+clone"></a>
820
675
 
821
676
  ### song.clone() ⇒ [<code>Song</code>](#Song)
822
- Returns a deep clone of the song
677
+ <p>Returns a deep clone of the song</p>
823
678
 
824
679
  **Kind**: instance method of [<code>Song</code>](#Song)
825
- **Returns**: [<code>Song</code>](#Song) - The cloned song
680
+ **Returns**: [<code>Song</code>](#Song) - <p>The cloned song</p>
826
681
  <a name="Song+setCapo"></a>
827
682
 
828
683
  ### song.setCapo(capo) ⇒ [<code>Song</code>](#Song)
829
- Returns a copy of the song with the capo value set to the specified capo. It changes:
830
- - the value for `capo` in the `metadata` set
831
- - any existing `capo` directive)
684
+ <p>Returns a copy of the song with the capo value set to the specified capo. It changes:</p>
685
+ <ul>
686
+ <li>the value for <code>capo</code> in the <code>metadata</code> set</li>
687
+ <li>any existing <code>capo</code> directive)</li>
688
+ </ul>
832
689
 
833
690
  **Kind**: instance method of [<code>Song</code>](#Song)
834
- **Returns**: [<code>Song</code>](#Song) - The changed song
691
+ **Returns**: [<code>Song</code>](#Song) - <p>The changed song</p>
835
692
 
836
693
  | Param | Type | Description |
837
694
  | --- | --- | --- |
838
- | capo | <code>number</code> \| <code>null</code> | the capo. Passing `null` will: - remove the current key from `metadata` - remove any `capo` directive |
695
+ | capo | <code>number</code> \| <code>null</code> | <p>the capo. Passing <code>null</code> will:</p> <ul> <li>remove the current key from <code>metadata</code></li> <li>remove any <code>capo</code> directive</li> </ul> |
839
696
 
840
697
  <a name="Song+setKey"></a>
841
698
 
842
699
  ### song.setKey(key) ⇒ [<code>Song</code>](#Song)
843
- Returns a copy of the song with the key set to the specified key. It changes:
844
- - the value for `key` in the `metadata` set
845
- - any existing `key` directive
846
- - all chords, those are transposed according to the distance between the current and the new key
700
+ <p>Returns a copy of the song with the key set to the specified key. It changes:</p>
701
+ <ul>
702
+ <li>the value for <code>key</code> in the <code>metadata</code> set</li>
703
+ <li>any existing <code>key</code> directive</li>
704
+ <li>all chords, those are transposed according to the distance between the current and the new key</li>
705
+ </ul>
847
706
 
848
707
  **Kind**: instance method of [<code>Song</code>](#Song)
849
- **Returns**: [<code>Song</code>](#Song) - The changed song
708
+ **Returns**: [<code>Song</code>](#Song) - <p>The changed song</p>
850
709
 
851
710
  | Param | Type | Description |
852
711
  | --- | --- | --- |
853
- | key | <code>string</code> | The new key. |
712
+ | key | <code>string</code> | <p>The new key.</p> |
854
713
 
855
714
  <a name="Tag"></a>
856
715
 
857
716
  ## Tag
858
- Represents a tag/directive. See https://www.chordpro.org/chordpro/chordpro-directives/
717
+ <p>Represents a tag/directive. See https://www.chordpro.org/chordpro/chordpro-directives/</p>
859
718
 
860
719
  **Kind**: global class
861
720
 
@@ -871,84 +730,87 @@ Represents a tag/directive. See https://www.chordpro.org/chordpro/chordpro-direc
871
730
  <a name="Tag+name"></a>
872
731
 
873
732
  ### tag.name : <code>string</code>
874
- The tag full name. When the original tag used the short name, `name` will return the full name.
733
+ <p>The tag full name. When the original tag used the short name, <code>name</code> will return the full name.</p>
875
734
 
876
735
  **Kind**: instance property of [<code>Tag</code>](#Tag)
877
736
  <a name="Tag+originalName"></a>
878
737
 
879
738
  ### tag.originalName : <code>string</code>
880
- The original tag name that was used to construct the tag.
739
+ <p>The original tag name that was used to construct the tag.</p>
881
740
 
882
741
  **Kind**: instance property of [<code>Tag</code>](#Tag)
883
742
  <a name="Tag+value"></a>
884
743
 
885
744
  ### tag.value : <code>string</code> \| <code>null</code>
886
- The tag value
745
+ <p>The tag value</p>
887
746
 
888
747
  **Kind**: instance property of [<code>Tag</code>](#Tag)
889
748
  <a name="Tag+hasValue"></a>
890
749
 
891
750
  ### tag.hasValue() ⇒ <code>boolean</code>
892
- Checks whether the tag value is a non-empty string.
751
+ <p>Checks whether the tag value is a non-empty string.</p>
893
752
 
894
753
  **Kind**: instance method of [<code>Tag</code>](#Tag)
895
754
  <a name="Tag+isRenderable"></a>
896
755
 
897
756
  ### tag.isRenderable() ⇒ <code>boolean</code>
898
- Checks whether the tag is usually rendered inline. It currently only applies to comment tags.
757
+ <p>Checks whether the tag is usually rendered inline. It currently only applies to comment tags.</p>
899
758
 
900
759
  **Kind**: instance method of [<code>Tag</code>](#Tag)
901
760
  <a name="Tag+isMetaTag"></a>
902
761
 
903
762
  ### tag.isMetaTag() ⇒ <code>boolean</code>
904
- Checks whether the tag is either a standard meta tag or a custom meta directive (`{x_some_name}`)
763
+ <p>Checks whether the tag is either a standard meta tag or a custom meta directive (<code>{x_some_name}</code>)</p>
905
764
 
906
765
  **Kind**: instance method of [<code>Tag</code>](#Tag)
907
766
  <a name="Tag+clone"></a>
908
767
 
909
768
  ### tag.clone() ⇒ [<code>Tag</code>](#Tag)
910
- Returns a clone of the tag.
769
+ <p>Returns a clone of the tag.</p>
911
770
 
912
771
  **Kind**: instance method of [<code>Tag</code>](#Tag)
913
- **Returns**: [<code>Tag</code>](#Tag) - The cloned tag
772
+ **Returns**: [<code>Tag</code>](#Tag) - <p>The cloned tag</p>
914
773
  <a name="ChordProFormatter"></a>
915
774
 
916
775
  ## ChordProFormatter
917
- Formats a song into a ChordPro chord sheet
776
+ <p>Formats a song into a ChordPro chord sheet</p>
918
777
 
919
778
  **Kind**: global class
779
+ <a name="ChordProFormatter+format"></a>
920
780
 
921
- * [ChordProFormatter](#ChordProFormatter)
922
- * [new ChordProFormatter(options)](#new_ChordProFormatter_new)
923
- * [.format(song)](#ChordProFormatter+format) ⇒ <code>string</code>
924
-
925
- <a name="new_ChordProFormatter_new"></a>
926
-
927
- ### new ChordProFormatter(options)
928
- Instantiate
781
+ ### chordProFormatter.format(song) ⇒ <code>string</code>
782
+ <p>Formats a song into a ChordPro chord sheet.</p>
929
783
 
784
+ **Kind**: instance method of [<code>ChordProFormatter</code>](#ChordProFormatter)
785
+ **Returns**: <code>string</code> - <p>The ChordPro string</p>
930
786
 
931
787
  | Param | Type | Description |
932
788
  | --- | --- | --- |
933
- | options | <code>Object</code> | options |
934
- | options.evaluate | <code>boolean</code> | Whether or not to evaluate meta expressions. For more info about meta expression, see: https://bit.ly/2SC9c2u |
789
+ | song | [<code>Song</code>](#Song) | <p>The song to be formatted</p> |
935
790
 
936
- <a name="ChordProFormatter+format"></a>
791
+ <a name="Formatter"></a>
937
792
 
938
- ### chordProFormatter.format(song) ⇒ <code>string</code>
939
- Formats a song into a ChordPro chord sheet.
793
+ ## Formatter
794
+ <p>Base class for all formatters, taking care of receiving a configuration wrapping that inside a Configuration object</p>
940
795
 
941
- **Kind**: instance method of [<code>ChordProFormatter</code>](#ChordProFormatter)
942
- **Returns**: <code>string</code> - The ChordPro string
796
+ **Kind**: global class
797
+ <a name="new_Formatter_new"></a>
943
798
 
944
- | Param | Type | Description |
945
- | --- | --- | --- |
946
- | song | [<code>Song</code>](#Song) | The song to be formatted |
799
+ ### new Formatter([configuration])
800
+ <p>Instantiate</p>
801
+
802
+
803
+ | Param | Type | Default | Description |
804
+ | --- | --- | --- | --- |
805
+ | [configuration] | <code>Object</code> | <code>{}</code> | <p>options</p> |
806
+ | [configuration.evaluate] | <code>boolean</code> | <code>false</code> | <p>Whether or not to evaluate meta expressions. For more info about meta expressions, see: https://bit.ly/2SC9c2u</p> |
807
+ | [configuration.metadata] | <code>object</code> | <code>{}</code> | |
808
+ | [configuration.metadata.separator] | <code>string</code> | <code>&quot;\&quot;, \&quot;&quot;</code> | <p>The separator to be used when rendering a metadata value that has multiple values. See: https://bit.ly/2SC9c2u</p> |
947
809
 
948
810
  <a name="HtmlDivFormatter"></a>
949
811
 
950
812
  ## HtmlDivFormatter
951
- Formats a song into HTML. It uses DIVs to align lyrics with chords, which makes it useful for responsive web pages.
813
+ <p>Formats a song into HTML. It uses DIVs to align lyrics with chords, which makes it useful for responsive web pages.</p>
952
814
 
953
815
  **Kind**: global class
954
816
 
@@ -962,60 +824,57 @@ Formats a song into HTML. It uses DIVs to align lyrics with chords, which makes
962
824
  <a name="HtmlDivFormatter+format"></a>
963
825
 
964
826
  ### htmlDivFormatter.format(song) ⇒ <code>string</code>
965
- Formats a song into HTML.
827
+ <p>Formats a song into HTML.</p>
966
828
 
967
829
  **Kind**: instance method of [<code>HtmlDivFormatter</code>](#HtmlDivFormatter)
968
- **Returns**: <code>string</code> - The HTML string
830
+ **Returns**: <code>string</code> - <p>The HTML string</p>
969
831
 
970
832
  | Param | Type | Description |
971
833
  | --- | --- | --- |
972
- | song | [<code>Song</code>](#Song) | The song to be formatted |
834
+ | song | [<code>Song</code>](#Song) | <p>The song to be formatted</p> |
973
835
 
974
836
  <a name="HtmlDivFormatter.cssString"></a>
975
837
 
976
838
  ### HtmlDivFormatter.cssString(scope) ⇒ <code>string</code>
977
- Generates basic CSS, optionally scoped within the provided selector, to use with output generated by
978
- [HtmlDivFormatter](#HtmlDivFormatter)
979
-
980
- For example, execute cssString('.chordSheetViewer') will result in CSS like:
981
-
982
- .chordSheetViewer .paragraph {
983
- margin-bottom: 1em;
984
- }
839
+ <p>Generates basic CSS, optionally scoped within the provided selector, to use with output generated by
840
+ [HtmlDivFormatter](#HtmlDivFormatter)</p>
841
+ <p>For example, execute cssString('.chordSheetViewer') will result in CSS like:</p>
842
+ <pre><code>.chordSheetViewer .paragraph {
843
+ margin-bottom: 1em;
844
+ }
845
+ </code></pre>
985
846
 
986
847
  **Kind**: static method of [<code>HtmlDivFormatter</code>](#HtmlDivFormatter)
987
- **Returns**: <code>string</code> - the CSS string
848
+ **Returns**: <code>string</code> - <p>the CSS string</p>
988
849
 
989
850
  | Param | Description |
990
851
  | --- | --- |
991
- | scope | the CSS scope to use, for example `.chordSheetViewer` |
852
+ | scope | <p>the CSS scope to use, for example <code>.chordSheetViewer</code></p> |
992
853
 
993
854
  <a name="HtmlDivFormatter.cssObject"></a>
994
855
 
995
856
  ### HtmlDivFormatter.cssObject() ⇒ <code>Object.&lt;string, Object.&lt;string, string&gt;&gt;</code>
996
- Basic CSS, in object style à la useStyles, to use with output generated by [HtmlDivFormatter](#HtmlDivFormatter)
997
-
998
- Example:
999
-
1000
- '.paragraph': {
1001
- marginBottom: '1em'
1002
- }
1003
-
1004
- For a CSS string see [cssString](cssString)
857
+ <p>Basic CSS, in object style à la useStyles, to use with output generated by [HtmlDivFormatter](#HtmlDivFormatter)</p>
858
+ <p>Example:</p>
859
+ <pre><code>'.paragraph': {
860
+ marginBottom: '1em'
861
+ }
862
+ </code></pre>
863
+ <p>For a CSS string see [cssString](cssString)</p>
1005
864
 
1006
865
  **Kind**: static method of [<code>HtmlDivFormatter</code>](#HtmlDivFormatter)
1007
- **Returns**: <code>Object.&lt;string, Object.&lt;string, string&gt;&gt;</code> - the CSS object
866
+ **Returns**: <code>Object.&lt;string, Object.&lt;string, string&gt;&gt;</code> - <p>the CSS object</p>
1008
867
  <a name="HtmlFormatter"></a>
1009
868
 
1010
869
  ## HtmlFormatter
1011
- Acts as a base class for HTML formatters, taking care of whitelisting prototype property access.
870
+ <p>Acts as a base class for HTML formatters, taking care of whitelisting prototype property access.</p>
1012
871
 
1013
872
  **Kind**: global class
1014
873
  <a name="HtmlTableFormatter"></a>
1015
874
 
1016
875
  ## HtmlTableFormatter
1017
- Formats a song into HTML. It uses TABLEs to align lyrics with chords, which makes the HTML for things like
1018
- PDF conversion.
876
+ <p>Formats a song into HTML. It uses TABLEs to align lyrics with chords, which makes the HTML for things like
877
+ PDF conversion.</p>
1019
878
 
1020
879
  **Kind**: global class
1021
880
 
@@ -1029,70 +888,68 @@ PDF conversion.
1029
888
  <a name="HtmlTableFormatter+format"></a>
1030
889
 
1031
890
  ### htmlTableFormatter.format(song) ⇒ <code>string</code>
1032
- Formats a song into HTML.
891
+ <p>Formats a song into HTML.</p>
1033
892
 
1034
893
  **Kind**: instance method of [<code>HtmlTableFormatter</code>](#HtmlTableFormatter)
1035
- **Returns**: <code>string</code> - The HTML string
894
+ **Returns**: <code>string</code> - <p>The HTML string</p>
1036
895
 
1037
896
  | Param | Type | Description |
1038
897
  | --- | --- | --- |
1039
- | song | [<code>Song</code>](#Song) | The song to be formatted |
898
+ | song | [<code>Song</code>](#Song) | <p>The song to be formatted</p> |
1040
899
 
1041
900
  <a name="HtmlTableFormatter.cssString"></a>
1042
901
 
1043
902
  ### HtmlTableFormatter.cssString(scope) ⇒ <code>string</code>
1044
- Generates basic CSS, optionally scoped within the provided selector, to use with output generated by
1045
- [HtmlTableFormatter](#HtmlTableFormatter)
1046
-
1047
- For example, execute cssString('.chordSheetViewer') will result in CSS like:
1048
-
1049
- .chordSheetViewer .paragraph {
1050
- margin-bottom: 1em;
1051
- }
903
+ <p>Generates basic CSS, optionally scoped within the provided selector, to use with output generated by
904
+ [HtmlTableFormatter](#HtmlTableFormatter)</p>
905
+ <p>For example, execute cssString('.chordSheetViewer') will result in CSS like:</p>
906
+ <pre><code>.chordSheetViewer .paragraph {
907
+ margin-bottom: 1em;
908
+ }
909
+ </code></pre>
1052
910
 
1053
911
  **Kind**: static method of [<code>HtmlTableFormatter</code>](#HtmlTableFormatter)
1054
- **Returns**: <code>string</code> - the CSS string
912
+ **Returns**: <code>string</code> - <p>the CSS string</p>
1055
913
 
1056
914
  | Param | Description |
1057
915
  | --- | --- |
1058
- | scope | the CSS scope to use, for example `.chordSheetViewer` |
916
+ | scope | <p>the CSS scope to use, for example <code>.chordSheetViewer</code></p> |
1059
917
 
1060
918
  <a name="HtmlTableFormatter.cssObject"></a>
1061
919
 
1062
920
  ### HtmlTableFormatter.cssObject() ⇒ <code>Object.&lt;string, Object.&lt;string, string&gt;&gt;</code>
1063
- Basic CSS, in object style à la useStyles, to use with output generated by [HtmlTableFormatter](#HtmlTableFormatter)
1064
- For a CSS string see [cssString](cssString)
1065
-
1066
- Example:
1067
-
1068
- '.paragraph': {
1069
- marginBottom: '1em'
1070
- }
921
+ <p>Basic CSS, in object style à la useStyles, to use with output generated by [HtmlTableFormatter](#HtmlTableFormatter)
922
+ For a CSS string see [cssString](cssString)</p>
923
+ <p>Example:</p>
924
+ <pre><code>'.paragraph': {
925
+ marginBottom: '1em'
926
+ }
927
+ </code></pre>
1071
928
 
1072
929
  **Kind**: static method of [<code>HtmlTableFormatter</code>](#HtmlTableFormatter)
1073
- **Returns**: <code>Object.&lt;string, Object.&lt;string, string&gt;&gt;</code> - the CSS object
930
+ **Returns**: <code>Object.&lt;string, Object.&lt;string, string&gt;&gt;</code> - <p>the CSS object</p>
1074
931
  <a name="TextFormatter"></a>
1075
932
 
1076
933
  ## TextFormatter
1077
- Formats a song into a plain text chord sheet
934
+ <p>Formats a song into a plain text chord sheet</p>
1078
935
 
1079
936
  **Kind**: global class
1080
937
  <a name="TextFormatter+format"></a>
1081
938
 
1082
939
  ### textFormatter.format(song) ⇒ <code>string</code>
1083
- Formats a song into a plain text chord sheet
940
+ <p>Formats a song into a plain text chord sheet</p>
1084
941
 
1085
942
  **Kind**: instance method of [<code>TextFormatter</code>](#TextFormatter)
1086
- **Returns**: <code>string</code> - the chord sheet
943
+ **Returns**: <code>string</code> - <p>the chord sheet</p>
1087
944
 
1088
945
  | Param | Type | Description |
1089
946
  | --- | --- | --- |
1090
- | song | [<code>Song</code>](#Song) | The song to be formatted |
947
+ | song | [<code>Song</code>](#Song) | <p>The song to be formatted</p> |
1091
948
 
1092
949
  <a name="ChordProParser"></a>
1093
950
 
1094
951
  ## ChordProParser
1095
- Parses a ChordPro chord sheet
952
+ <p>Parses a ChordPro chord sheet</p>
1096
953
 
1097
954
  **Kind**: global class
1098
955
 
@@ -1103,120 +960,95 @@ Parses a ChordPro chord sheet
1103
960
  <a name="ChordProParser+warnings"></a>
1104
961
 
1105
962
  ### chordProParser.warnings : [<code>Array.&lt;ParserWarning&gt;</code>](#ParserWarning)
1106
- All warnings raised during parsing the ChordPro chord sheet
963
+ <p>All warnings raised during parsing the ChordPro chord sheet</p>
1107
964
 
1108
965
  **Kind**: instance property of [<code>ChordProParser</code>](#ChordProParser)
1109
966
  <a name="ChordProParser+parse"></a>
1110
967
 
1111
968
  ### chordProParser.parse(chordProChordSheet) ⇒ [<code>Song</code>](#Song)
1112
- Parses a ChordPro chord sheet into a song
969
+ <p>Parses a ChordPro chord sheet into a song</p>
1113
970
 
1114
971
  **Kind**: instance method of [<code>ChordProParser</code>](#ChordProParser)
1115
- **Returns**: [<code>Song</code>](#Song) - The parsed song
972
+ **Returns**: [<code>Song</code>](#Song) - <p>The parsed song</p>
1116
973
 
1117
974
  | Param | Type | Description |
1118
975
  | --- | --- | --- |
1119
- | chordProChordSheet | <code>string</code> | the ChordPro chord sheet |
976
+ | chordProChordSheet | <code>string</code> | <p>the ChordPro chord sheet</p> |
1120
977
 
1121
978
  <a name="ChordSheetParser"></a>
1122
979
 
1123
980
  ## ChordSheetParser
1124
- Parses a normal chord sheet
981
+ <p>Parses a normal chord sheet</p>
1125
982
 
1126
983
  **Kind**: global class
1127
984
 
1128
985
  * [ChordSheetParser](#ChordSheetParser)
1129
- * [new ChordSheetParser(options)](#new_ChordSheetParser_new)
1130
- * [.parse(chordSheet, options)](#ChordSheetParser+parse) ⇒ [<code>Song</code>](#Song)
986
+ * [new ChordSheetParser([options])](#new_ChordSheetParser_new)
987
+ * [.parse(chordSheet, [options])](#ChordSheetParser+parse) ⇒ [<code>Song</code>](#Song)
1131
988
 
1132
989
  <a name="new_ChordSheetParser_new"></a>
1133
990
 
1134
- ### new ChordSheetParser(options)
1135
- Instantiate a chord sheet parser
991
+ ### new ChordSheetParser([options])
992
+ <p>Instantiate a chord sheet parser</p>
1136
993
 
1137
994
 
1138
- | Param | Type | Description |
1139
- | --- | --- | --- |
1140
- | options | <code>Object</code> | options |
1141
- | options.preserveWhitespace | <code>boolean</code> | whether to preserve trailing whitespace for chords |
995
+ | Param | Type | Default | Description |
996
+ | --- | --- | --- | --- |
997
+ | [options] | <code>Object</code> | <code>{}</code> | <p>options</p> |
998
+ | [options.preserveWhitespace] | <code>boolean</code> | <code>true</code> | <p>whether to preserve trailing whitespace for chords</p> |
1142
999
 
1143
1000
  <a name="ChordSheetParser+parse"></a>
1144
1001
 
1145
- ### chordSheetParser.parse(chordSheet, options) ⇒ [<code>Song</code>](#Song)
1146
- Parses a chord sheet into a song
1002
+ ### chordSheetParser.parse(chordSheet, [options]) ⇒ [<code>Song</code>](#Song)
1003
+ <p>Parses a chord sheet into a song</p>
1147
1004
 
1148
1005
  **Kind**: instance method of [<code>ChordSheetParser</code>](#ChordSheetParser)
1149
- **Returns**: [<code>Song</code>](#Song) - The parsed song
1006
+ **Returns**: [<code>Song</code>](#Song) - <p>The parsed song</p>
1150
1007
 
1151
- | Param | Type | Description |
1152
- | --- | --- | --- |
1153
- | chordSheet | <code>string</code> | The ChordPro chord sheet |
1154
- | options | <code>Object</code> | Optional parser options |
1155
- | options.song | [<code>Song</code>](#Song) | The [Song](#Song) to store the song data in |
1008
+ | Param | Type | Default | Description |
1009
+ | --- | --- | --- | --- |
1010
+ | chordSheet | <code>string</code> | | <p>The ChordPro chord sheet</p> |
1011
+ | [options] | <code>Object</code> | <code>{}</code> | <p>Optional parser options</p> |
1012
+ | [options.song] | [<code>Song</code>](#Song) | <code></code> | <p>The [Song](#Song) to store the song data in</p> |
1156
1013
 
1157
1014
  <a name="ParserWarning"></a>
1158
1015
 
1159
1016
  ## ParserWarning
1160
- Represents a parser warning, currently only used by ChordProParser.
1017
+ <p>Represents a parser warning, currently only used by ChordProParser.</p>
1161
1018
 
1162
1019
  **Kind**: global class
1163
-
1164
- * [ParserWarning](#ParserWarning)
1165
- * [.message](#ParserWarning+message) : <code>string</code>
1166
- * [.lineNumber](#ParserWarning+lineNumber) : <code>number</code>
1167
- * [.column](#ParserWarning+column) : <code>number</code>
1168
- * [.toString()](#ParserWarning+toString) ⇒ <code>string</code>
1169
-
1170
- <a name="ParserWarning+message"></a>
1171
-
1172
- ### parserWarning.message : <code>string</code>
1173
- The warning message
1174
-
1175
- **Kind**: instance property of [<code>ParserWarning</code>](#ParserWarning)
1176
- <a name="ParserWarning+lineNumber"></a>
1177
-
1178
- ### parserWarning.lineNumber : <code>number</code>
1179
- The chord sheet line number on which the warning occurred
1180
-
1181
- **Kind**: instance property of [<code>ParserWarning</code>](#ParserWarning)
1182
- <a name="ParserWarning+column"></a>
1183
-
1184
- ### parserWarning.column : <code>number</code>
1185
- The chord sheet column on which the warning occurred
1186
-
1187
- **Kind**: instance property of [<code>ParserWarning</code>](#ParserWarning)
1188
1020
  <a name="ParserWarning+toString"></a>
1189
1021
 
1190
1022
  ### parserWarning.toString() ⇒ <code>string</code>
1191
- Returns a stringified version of the warning
1023
+ <p>Returns a stringified version of the warning</p>
1192
1024
 
1193
1025
  **Kind**: instance method of [<code>ParserWarning</code>](#ParserWarning)
1194
- **Returns**: <code>string</code> - The string warning
1026
+ **Returns**: <code>string</code> - <p>The string warning</p>
1195
1027
  <a name="UltimateGuitarParser"></a>
1196
1028
 
1197
1029
  ## UltimateGuitarParser
1198
- Parses an Ultimate Guitar chord sheet with metadata
1199
- Inherits from [ChordSheetParser](#ChordSheetParser)
1030
+ <p>Parses an Ultimate Guitar chord sheet with metadata
1031
+ Inherits from [ChordSheetParser](#ChordSheetParser)</p>
1200
1032
 
1201
1033
  **Kind**: global class
1202
1034
  <a name="Chord"></a>
1203
1035
 
1204
1036
  ## Chord
1205
- Represents a Chord, consisting of a root, suffix (quality) and bass
1037
+ <p>Represents a Chord, consisting of a root, suffix (quality) and bass</p>
1206
1038
 
1207
1039
  **Kind**: global class
1208
1040
 
1209
1041
  * [Chord](#Chord)
1210
1042
  * _instance_
1211
1043
  * [.clone()](#Chord+clone) ⇒ [<code>Chord</code>](#Chord)
1212
- * [.toChordSymbol(key)](#Chord+toChordSymbol) ⇒ [<code>Chord</code>](#Chord)
1213
- * [.toChordSymbolString(key)](#Chord+toChordSymbolString) ⇒ <code>string</code>
1044
+ * [.toChordSymbol([key])](#Chord+toChordSymbol) ⇒ [<code>Chord</code>](#Chord)
1045
+ * [.toChordSymbolString([key])](#Chord+toChordSymbolString) ⇒ <code>string</code>
1214
1046
  * [.isChordSymbol()](#Chord+isChordSymbol) ⇒ <code>boolean</code>
1215
- * [.toNumeric(key)](#Chord+toNumeric) ⇒ [<code>Chord</code>](#Chord)
1047
+ * [.toNumeric([key])](#Chord+toNumeric) ⇒ [<code>Chord</code>](#Chord)
1216
1048
  * [.toNumeral(key)](#Chord+toNumeral) ⇒ [<code>Chord</code>](#Chord)
1217
- * [.toNumeralString(key)](#Chord+toNumeralString) ⇒ <code>string</code>
1049
+ * [.toNumeralString([key])](#Chord+toNumeralString) ⇒ <code>string</code>
1218
1050
  * [.isNumeric()](#Chord+isNumeric) ⇒ <code>boolean</code>
1219
- * [.toNumericString(key)](#Chord+toNumericString) ⇒ <code>string</code>
1051
+ * [.toNumericString([key])](#Chord+toNumericString) ⇒ <code>string</code>
1220
1052
  * [.isNumeral()](#Chord+isNumeral) ⇒ <code>boolean</code>
1221
1053
  * [.toString()](#Chord+toString) ⇒ <code>string</code>
1222
1054
  * [.normalize()](#Chord+normalize) ⇒ [<code>Chord</code>](#Chord)
@@ -1230,188 +1062,189 @@ Represents a Chord, consisting of a root, suffix (quality) and bass
1230
1062
  <a name="Chord+clone"></a>
1231
1063
 
1232
1064
  ### chord.clone() ⇒ [<code>Chord</code>](#Chord)
1233
- Returns a deep copy of the chord
1065
+ <p>Returns a deep copy of the chord</p>
1234
1066
 
1235
1067
  **Kind**: instance method of [<code>Chord</code>](#Chord)
1236
1068
  <a name="Chord+toChordSymbol"></a>
1237
1069
 
1238
- ### chord.toChordSymbol(key) ⇒ [<code>Chord</code>](#Chord)
1239
- Converts the chord to a chord symbol, using the supplied key as a reference.
1240
- For example, a numeric chord `#4` with reference key `E` will return the chord symbol `A#`.
1241
- When the chord is already a chord symbol, it will return a clone of the object.
1070
+ ### chord.toChordSymbol([key]) ⇒ [<code>Chord</code>](#Chord)
1071
+ <p>Converts the chord to a chord symbol, using the supplied key as a reference.
1072
+ For example, a numeric chord <code>#4</code> with reference key <code>E</code> will return the chord symbol <code>A#</code>.
1073
+ When the chord is already a chord symbol, it will return a clone of the object.</p>
1242
1074
 
1243
1075
  **Kind**: instance method of [<code>Chord</code>](#Chord)
1244
- **Returns**: [<code>Chord</code>](#Chord) - the chord symbol
1076
+ **Returns**: [<code>Chord</code>](#Chord) - <p>the chord symbol</p>
1245
1077
 
1246
- | Param | Type | Description |
1247
- | --- | --- | --- |
1248
- | key | <code>Key</code> \| <code>string</code> | the reference key |
1078
+ | Param | Type | Default | Description |
1079
+ | --- | --- | --- | --- |
1080
+ | [key] | <code>Key</code> \| <code>string</code> | <code></code> | <p>the reference key</p> |
1249
1081
 
1250
1082
  <a name="Chord+toChordSymbolString"></a>
1251
1083
 
1252
- ### chord.toChordSymbolString(key) ⇒ <code>string</code>
1253
- Converts the chord to a chord symbol string, using the supplied key as a reference.
1254
- For example, a numeric chord `#4` with reference key `E` will return the chord symbol `A#`.
1255
- When the chord is already a chord symbol, it will return a string version of the chord.
1084
+ ### chord.toChordSymbolString([key]) ⇒ <code>string</code>
1085
+ <p>Converts the chord to a chord symbol string, using the supplied key as a reference.
1086
+ For example, a numeric chord <code>#4</code> with reference key <code>E</code> will return the chord symbol <code>A#</code>.
1087
+ When the chord is already a chord symbol, it will return a string version of the chord.</p>
1256
1088
 
1257
1089
  **Kind**: instance method of [<code>Chord</code>](#Chord)
1258
- **Returns**: <code>string</code> - the chord symbol string
1090
+ **Returns**: <code>string</code> - <p>the chord symbol string</p>
1259
1091
  **See**: {toChordSymbol}
1260
1092
 
1261
- | Param | Type | Description |
1262
- | --- | --- | --- |
1263
- | key | <code>Key</code> \| <code>string</code> | the reference key |
1093
+ | Param | Type | Default | Description |
1094
+ | --- | --- | --- | --- |
1095
+ | [key] | <code>Key</code> \| <code>string</code> | <code></code> | <p>the reference key</p> |
1264
1096
 
1265
1097
  <a name="Chord+isChordSymbol"></a>
1266
1098
 
1267
1099
  ### chord.isChordSymbol() ⇒ <code>boolean</code>
1268
- Determines whether the chord is a chord symbol
1100
+ <p>Determines whether the chord is a chord symbol</p>
1269
1101
 
1270
1102
  **Kind**: instance method of [<code>Chord</code>](#Chord)
1271
1103
  <a name="Chord+toNumeric"></a>
1272
1104
 
1273
- ### chord.toNumeric(key) ⇒ [<code>Chord</code>](#Chord)
1274
- Converts the chord to a numeric chord, using the supplied key as a reference.
1275
- For example, a chord symbol A# with reference key E will return the numeric chord #4.
1105
+ ### chord.toNumeric([key]) ⇒ [<code>Chord</code>](#Chord)
1106
+ <p>Converts the chord to a numeric chord, using the supplied key as a reference.
1107
+ For example, a chord symbol A# with reference key E will return the numeric chord #4.</p>
1276
1108
 
1277
1109
  **Kind**: instance method of [<code>Chord</code>](#Chord)
1278
- **Returns**: [<code>Chord</code>](#Chord) - the numeric chord
1110
+ **Returns**: [<code>Chord</code>](#Chord) - <p>the numeric chord</p>
1279
1111
 
1280
- | Param | Type | Description |
1281
- | --- | --- | --- |
1282
- | key | <code>Key</code> \| <code>string</code> | the reference key |
1112
+ | Param | Type | Default | Description |
1113
+ | --- | --- | --- | --- |
1114
+ | [key] | <code>Key</code> \| <code>string</code> | <code></code> | <p>the reference key</p> |
1283
1115
 
1284
1116
  <a name="Chord+toNumeral"></a>
1285
1117
 
1286
1118
  ### chord.toNumeral(key) ⇒ [<code>Chord</code>](#Chord)
1287
- Converts the chord to a numeral chord, using the supplied key as a reference.
1288
- For example, a chord symbol A# with reference key E will return the numeral chord #IV.
1119
+ <p>Converts the chord to a numeral chord, using the supplied key as a reference.
1120
+ For example, a chord symbol A# with reference key E will return the numeral chord #IV.</p>
1289
1121
 
1290
1122
  **Kind**: instance method of [<code>Chord</code>](#Chord)
1291
- **Returns**: [<code>Chord</code>](#Chord) - the numeral chord
1123
+ **Returns**: [<code>Chord</code>](#Chord) - <p>the numeral chord</p>
1292
1124
 
1293
1125
  | Param | Type | Default | Description |
1294
1126
  | --- | --- | --- | --- |
1295
- | key | <code>Key</code> \| <code>string</code> \| <code>null</code> | <code></code> | the reference key. The key is required when converting a chord symbol |
1127
+ | key | <code>Key</code> \| <code>string</code> \| <code>null</code> | <code></code> | <p>the reference key. The key is required when converting a chord symbol</p> |
1296
1128
 
1297
1129
  <a name="Chord+toNumeralString"></a>
1298
1130
 
1299
- ### chord.toNumeralString(key) ⇒ <code>string</code>
1300
- Converts the chord to a numeral chord string, using the supplied kye as a reference.
1301
- For example, a chord symbol A# with reference key E will return the numeral chord #4.
1131
+ ### chord.toNumeralString([key]) ⇒ <code>string</code>
1132
+ <p>Converts the chord to a numeral chord string, using the supplied kye as a reference.
1133
+ For example, a chord symbol A# with reference key E will return the numeral chord #4.</p>
1302
1134
 
1303
1135
  **Kind**: instance method of [<code>Chord</code>](#Chord)
1304
- **Returns**: <code>string</code> - the numeral chord string
1136
+ **Returns**: <code>string</code> - <p>the numeral chord string</p>
1305
1137
  **See**: {toNumeral}
1306
1138
 
1307
- | Param | Type | Description |
1308
- | --- | --- | --- |
1309
- | key | <code>Key</code> \| <code>string</code> | the reference key |
1139
+ | Param | Type | Default | Description |
1140
+ | --- | --- | --- | --- |
1141
+ | [key] | <code>Key</code> \| <code>string</code> | <code></code> | <p>the reference key</p> |
1310
1142
 
1311
1143
  <a name="Chord+isNumeric"></a>
1312
1144
 
1313
1145
  ### chord.isNumeric() ⇒ <code>boolean</code>
1314
- Determines whether the chord is numeric
1146
+ <p>Determines whether the chord is numeric</p>
1315
1147
 
1316
1148
  **Kind**: instance method of [<code>Chord</code>](#Chord)
1317
1149
  <a name="Chord+toNumericString"></a>
1318
1150
 
1319
- ### chord.toNumericString(key) ⇒ <code>string</code>
1320
- Converts the chord to a numeric chord string, using the supplied kye as a reference.
1321
- For example, a chord symbol A# with reference key E will return the numeric chord #4.
1151
+ ### chord.toNumericString([key]) ⇒ <code>string</code>
1152
+ <p>Converts the chord to a numeric chord string, using the supplied kye as a reference.
1153
+ For example, a chord symbol A# with reference key E will return the numeric chord #4.</p>
1322
1154
 
1323
1155
  **Kind**: instance method of [<code>Chord</code>](#Chord)
1324
- **Returns**: <code>string</code> - the numeric chord string
1156
+ **Returns**: <code>string</code> - <p>the numeric chord string</p>
1325
1157
  **See**: {toNumeric}
1326
1158
 
1327
- | Param | Type | Description |
1328
- | --- | --- | --- |
1329
- | key | <code>Key</code> \| <code>string</code> | the reference key |
1159
+ | Param | Type | Default | Description |
1160
+ | --- | --- | --- | --- |
1161
+ | [key] | <code>Key</code> \| <code>string</code> | <code></code> | <p>the reference key</p> |
1330
1162
 
1331
1163
  <a name="Chord+isNumeral"></a>
1332
1164
 
1333
1165
  ### chord.isNumeral() ⇒ <code>boolean</code>
1334
- Determines whether the chord is a numeral
1166
+ <p>Determines whether the chord is a numeral</p>
1335
1167
 
1336
1168
  **Kind**: instance method of [<code>Chord</code>](#Chord)
1337
1169
  <a name="Chord+toString"></a>
1338
1170
 
1339
1171
  ### chord.toString() ⇒ <code>string</code>
1340
- Converts the chord to a string, eg `Esus4/G#` or `1sus4/#3`
1172
+ <p>Converts the chord to a string, eg <code>Esus4/G#</code> or <code>1sus4/#3</code></p>
1341
1173
 
1342
1174
  **Kind**: instance method of [<code>Chord</code>](#Chord)
1343
- **Returns**: <code>string</code> - the chord string
1175
+ **Returns**: <code>string</code> - <p>the chord string</p>
1344
1176
  <a name="Chord+normalize"></a>
1345
1177
 
1346
1178
  ### chord.normalize() ⇒ [<code>Chord</code>](#Chord)
1347
- Normalizes the chord root and bass notes:
1348
- - Fb becomes E
1349
- - Cb becomes B
1350
- - B# becomes C
1351
- - E# becomes F
1352
- - 4b becomes 3
1353
- - 1b becomes 7
1354
- - 7# becomes 1
1355
- - 3# becomes 4
1356
-
1357
- Besides that it normalizes the suffix. For example, `sus2` becomes `2`, `sus4` becomes `sus`.
1358
- All suffix normalizations can be found in `src/normalize_mappings/suffix-mapping.txt`.
1179
+ <p>Normalizes the chord root and bass notes:</p>
1180
+ <ul>
1181
+ <li>Fb becomes E</li>
1182
+ <li>Cb becomes B</li>
1183
+ <li>B# becomes C</li>
1184
+ <li>E# becomes F</li>
1185
+ <li>4b becomes 3</li>
1186
+ <li>1b becomes 7</li>
1187
+ <li>7# becomes 1</li>
1188
+ <li>3# becomes 4</li>
1189
+ </ul>
1190
+ <p>Besides that it normalizes the suffix. For example, <code>sus2</code> becomes <code>2</code>, <code>sus4</code> becomes <code>sus</code>.
1191
+ All suffix normalizations can be found in <code>src/normalize_mappings/suffix-mapping.txt</code>.</p>
1359
1192
 
1360
1193
  **Kind**: instance method of [<code>Chord</code>](#Chord)
1361
- **Returns**: [<code>Chord</code>](#Chord) - the normalized chord
1194
+ **Returns**: [<code>Chord</code>](#Chord) - <p>the normalized chord</p>
1362
1195
  <a name="Chord+useModifier"></a>
1363
1196
 
1364
1197
  ### chord.useModifier(newModifier) ⇒ [<code>Chord</code>](#Chord)
1365
- Switches to the specified modifier
1198
+ <p>Switches to the specified modifier</p>
1366
1199
 
1367
1200
  **Kind**: instance method of [<code>Chord</code>](#Chord)
1368
- **Returns**: [<code>Chord</code>](#Chord) - the new, changed chord
1201
+ **Returns**: [<code>Chord</code>](#Chord) - <p>the new, changed chord</p>
1369
1202
 
1370
1203
  | Param | Description |
1371
1204
  | --- | --- |
1372
- | newModifier | the modifier to use: `'#'` or `'b'` |
1205
+ | newModifier | <p>the modifier to use: <code>'#'</code> or <code>'b'</code></p> |
1373
1206
 
1374
1207
  <a name="Chord+transposeUp"></a>
1375
1208
 
1376
1209
  ### chord.transposeUp() ⇒ [<code>Chord</code>](#Chord)
1377
- Transposes the chord up by 1 semitone. Eg. A becomes A#, Eb becomes E
1210
+ <p>Transposes the chord up by 1 semitone. Eg. A becomes A#, Eb becomes E</p>
1378
1211
 
1379
1212
  **Kind**: instance method of [<code>Chord</code>](#Chord)
1380
- **Returns**: [<code>Chord</code>](#Chord) - the new, transposed chord
1213
+ **Returns**: [<code>Chord</code>](#Chord) - <p>the new, transposed chord</p>
1381
1214
  <a name="Chord+transposeDown"></a>
1382
1215
 
1383
1216
  ### chord.transposeDown() ⇒ [<code>Chord</code>](#Chord)
1384
- Transposes the chord down by 1 semitone. Eg. A# becomes A, E becomes Eb
1217
+ <p>Transposes the chord down by 1 semitone. Eg. A# becomes A, E becomes Eb</p>
1385
1218
 
1386
1219
  **Kind**: instance method of [<code>Chord</code>](#Chord)
1387
- **Returns**: [<code>Chord</code>](#Chord) - the new, transposed chord
1220
+ **Returns**: [<code>Chord</code>](#Chord) - <p>the new, transposed chord</p>
1388
1221
  <a name="Chord+transpose"></a>
1389
1222
 
1390
1223
  ### chord.transpose(delta) ⇒ [<code>Chord</code>](#Chord)
1391
- Transposes the chord by the specified number of semitones
1224
+ <p>Transposes the chord by the specified number of semitones</p>
1392
1225
 
1393
1226
  **Kind**: instance method of [<code>Chord</code>](#Chord)
1394
- **Returns**: [<code>Chord</code>](#Chord) - the new, transposed chord
1227
+ **Returns**: [<code>Chord</code>](#Chord) - <p>the new, transposed chord</p>
1395
1228
 
1396
1229
  | Param | Description |
1397
1230
  | --- | --- |
1398
- | delta | de number of semitones |
1231
+ | delta | <p>de number of semitones</p> |
1399
1232
 
1400
1233
  <a name="Chord.parse"></a>
1401
1234
 
1402
1235
  ### Chord.parse(chordString) ⇒ <code>null</code> \| [<code>Chord</code>](#Chord)
1403
- Tries to parse a chord string into a chord
1236
+ <p>Tries to parse a chord string into a chord</p>
1404
1237
 
1405
1238
  **Kind**: static method of [<code>Chord</code>](#Chord)
1406
1239
 
1407
1240
  | Param | Description |
1408
1241
  | --- | --- |
1409
- | chordString | the chord string, eg `Esus4/G#` or `1sus4/#3` |
1242
+ | chordString | <p>the chord string, eg <code>Esus4/G#</code> or <code>1sus4/#3</code></p> |
1410
1243
 
1411
1244
  <a name="ChordSheetSerializer"></a>
1412
1245
 
1413
1246
  ## ChordSheetSerializer
1414
- Serializes a song into een plain object, and deserializes the serialized object back into a [Song](#Song)
1247
+ <p>Serializes a song into een plain object, and deserializes the serialized object back into a [Song](#Song)</p>
1415
1248
 
1416
1249
  **Kind**: global class
1417
1250
 
@@ -1422,220 +1255,239 @@ Serializes a song into een plain object, and deserializes the serialized object
1422
1255
  <a name="ChordSheetSerializer+serialize"></a>
1423
1256
 
1424
1257
  ### chordSheetSerializer.serialize() ⇒
1425
- Serializes the chord sheet to a plain object, which can be converted to any format like JSON, XML etc
1426
- Can be deserialized using [deserialize](deserialize)
1258
+ <p>Serializes the chord sheet to a plain object, which can be converted to any format like JSON, XML etc
1259
+ Can be deserialized using [deserialize](deserialize)</p>
1427
1260
 
1428
1261
  **Kind**: instance method of [<code>ChordSheetSerializer</code>](#ChordSheetSerializer)
1429
- **Returns**: object A plain JS object containing all chord sheet data
1262
+ **Returns**: <p>object A plain JS object containing all chord sheet data</p>
1430
1263
  <a name="ChordSheetSerializer+deserialize"></a>
1431
1264
 
1432
1265
  ### chordSheetSerializer.deserialize(serializedSong) ⇒ [<code>Song</code>](#Song)
1433
- Deserializes a song that has been serialized using [serialize](serialize)
1266
+ <p>Deserializes a song that has been serialized using [serialize](serialize)</p>
1434
1267
 
1435
1268
  **Kind**: instance method of [<code>ChordSheetSerializer</code>](#ChordSheetSerializer)
1436
- **Returns**: [<code>Song</code>](#Song) - The deserialized song
1269
+ **Returns**: [<code>Song</code>](#Song) - <p>The deserialized song</p>
1437
1270
 
1438
1271
  | Param | Type | Description |
1439
1272
  | --- | --- | --- |
1440
- | serializedSong | <code>object</code> | The serialized song |
1273
+ | serializedSong | <code>object</code> | <p>The serialized song</p> |
1441
1274
 
1442
1275
  <a name="ALBUM"></a>
1443
1276
 
1444
1277
  ## ALBUM : <code>string</code>
1445
- Album meta directive. See https://www.chordpro.org/chordpro/directives-album/
1278
+ <p>Artist meta directive. See https://www.chordpro.org/chordpro/directives-artist/</p>
1446
1279
 
1447
- **Kind**: global constant
1280
+ **Kind**: global variable
1448
1281
  <a name="ARTIST"></a>
1449
1282
 
1450
1283
  ## ARTIST : <code>string</code>
1451
- Artist meta directive. See https://www.chordpro.org/chordpro/directives-artist/
1284
+ <p>Capo meta directive. See https://www.chordpro.org/chordpro/directives-capo/</p>
1452
1285
 
1453
- **Kind**: global constant
1286
+ **Kind**: global variable
1454
1287
  <a name="CAPO"></a>
1455
1288
 
1456
1289
  ## CAPO : <code>string</code>
1457
- Capo meta directive. See https://www.chordpro.org/chordpro/directives-capo/
1290
+ <p>Comment directive. See https://www.chordpro.org/chordpro/directives-comment/</p>
1458
1291
 
1459
- **Kind**: global constant
1292
+ **Kind**: global variable
1460
1293
  <a name="COMMENT"></a>
1461
1294
 
1462
1295
  ## COMMENT : <code>string</code>
1463
- Comment directive. See https://www.chordpro.org/chordpro/directives-comment/
1296
+ <p>Composer meta directive. See https://www.chordpro.org/chordpro/directives-composer/</p>
1464
1297
 
1465
- **Kind**: global constant
1298
+ **Kind**: global variable
1466
1299
  <a name="COMPOSER"></a>
1467
1300
 
1468
1301
  ## COMPOSER : <code>string</code>
1469
- Composer meta directive. See https://www.chordpro.org/chordpro/directives-composer/
1302
+ <p>Copyright meta directive. See https://www.chordpro.org/chordpro/directives-copyright/</p>
1470
1303
 
1471
- **Kind**: global constant
1304
+ **Kind**: global variable
1472
1305
  <a name="COPYRIGHT"></a>
1473
1306
 
1474
1307
  ## COPYRIGHT : <code>string</code>
1475
- Copyright meta directive. See https://www.chordpro.org/chordpro/directives-copyright/
1308
+ <p>Duration meta directive. See https://www.chordpro.org/chordpro/directives-duration/</p>
1476
1309
 
1477
- **Kind**: global constant
1310
+ **Kind**: global variable
1478
1311
  <a name="DURATION"></a>
1479
1312
 
1480
1313
  ## DURATION : <code>string</code>
1481
- Duration meta directive. See https://www.chordpro.org/chordpro/directives-duration/
1314
+ <p>End of chorus directive. See https://www.chordpro.org/chordpro/directives-env_chorus/</p>
1482
1315
 
1483
- **Kind**: global constant
1316
+ **Kind**: global variable
1484
1317
  <a name="END_OF_CHORUS"></a>
1485
1318
 
1486
1319
  ## END\_OF\_CHORUS : <code>string</code>
1487
- End of chorus directive. See https://www.chordpro.org/chordpro/directives-env_chorus/
1320
+ <p>End of tab directive. See https://www.chordpro.org/chordpro/directives-env_tab/</p>
1488
1321
 
1489
- **Kind**: global constant
1322
+ **Kind**: global variable
1490
1323
  <a name="END_OF_TAB"></a>
1491
1324
 
1492
1325
  ## END\_OF\_TAB : <code>string</code>
1493
- End of tab directive. See https://www.chordpro.org/chordpro/directives-env_tab/
1326
+ <p>End of verse directive. See https://www.chordpro.org/chordpro/directives-env_verse/</p>
1494
1327
 
1495
- **Kind**: global constant
1328
+ **Kind**: global variable
1496
1329
  <a name="END_OF_VERSE"></a>
1497
1330
 
1498
1331
  ## END\_OF\_VERSE : <code>string</code>
1499
- End of verse directive. See https://www.chordpro.org/chordpro/directives-env_verse/
1332
+ <p>Key meta directive. See https://www.chordpro.org/chordpro/directives-key/</p>
1500
1333
 
1501
- **Kind**: global constant
1334
+ **Kind**: global variable
1502
1335
  <a name="KEY"></a>
1503
1336
 
1504
1337
  ## KEY : <code>string</code>
1505
- Key meta directive. See https://www.chordpro.org/chordpro/directives-key/
1338
+ <p>Key meta directive. See https://www.chordpro.org/chordpro/directives-key/</p>
1506
1339
 
1507
- **Kind**: global constant
1340
+ **Kind**: global variable
1508
1341
  <a name="_KEY"></a>
1509
1342
 
1510
1343
  ## \_KEY : <code>string</code>
1511
- Key meta directive. See https://www.chordpro.org/chordpro/directives-key/
1344
+ <p>Lyricist meta directive. See https://www.chordpro.org/chordpro/directives-lyricist/</p>
1512
1345
 
1513
- **Kind**: global constant
1346
+ **Kind**: global variable
1514
1347
  <a name="LYRICIST"></a>
1515
1348
 
1516
1349
  ## LYRICIST : <code>string</code>
1517
- Lyricist meta directive. See https://www.chordpro.org/chordpro/directives-lyricist/
1350
+ <p>Start of chorus directive. See https://www.chordpro.org/chordpro/directives-env_chorus/</p>
1518
1351
 
1519
- **Kind**: global constant
1352
+ **Kind**: global variable
1520
1353
  <a name="START_OF_CHORUS"></a>
1521
1354
 
1522
1355
  ## START\_OF\_CHORUS : <code>string</code>
1523
- Start of chorus directive. See https://www.chordpro.org/chordpro/directives-env_chorus/
1356
+ <p>Start of tab directive. See https://www.chordpro.org/chordpro/directives-env_tab/</p>
1524
1357
 
1525
- **Kind**: global constant
1358
+ **Kind**: global variable
1526
1359
  <a name="START_OF_TAB"></a>
1527
1360
 
1528
1361
  ## START\_OF\_TAB : <code>string</code>
1529
- Start of tab directive. See https://www.chordpro.org/chordpro/directives-env_tab/
1362
+ <p>Start of verse directive. See https://www.chordpro.org/chordpro/directives-env_verse/</p>
1530
1363
 
1531
- **Kind**: global constant
1364
+ **Kind**: global variable
1532
1365
  <a name="START_OF_VERSE"></a>
1533
1366
 
1534
1367
  ## START\_OF\_VERSE : <code>string</code>
1535
- Start of verse directive. See https://www.chordpro.org/chordpro/directives-env_verse/
1368
+ <p>Subtitle meta directive. See https://www.chordpro.org/chordpro/directives-subtitle/</p>
1536
1369
 
1537
- **Kind**: global constant
1370
+ **Kind**: global variable
1538
1371
  <a name="SUBTITLE"></a>
1539
1372
 
1540
1373
  ## SUBTITLE : <code>string</code>
1541
- Subtitle meta directive. See https://www.chordpro.org/chordpro/directives-subtitle/
1374
+ <p>Tempo meta directive. See https://www.chordpro.org/chordpro/directives-tempo/</p>
1542
1375
 
1543
- **Kind**: global constant
1376
+ **Kind**: global variable
1544
1377
  <a name="TEMPO"></a>
1545
1378
 
1546
1379
  ## TEMPO : <code>string</code>
1547
- Tempo meta directive. See https://www.chordpro.org/chordpro/directives-tempo/
1380
+ <p>Time meta directive. See https://www.chordpro.org/chordpro/directives-time/</p>
1548
1381
 
1549
- **Kind**: global constant
1382
+ **Kind**: global variable
1550
1383
  <a name="TIME"></a>
1551
1384
 
1552
1385
  ## TIME : <code>string</code>
1553
- Time meta directive. See https://www.chordpro.org/chordpro/directives-time/
1386
+ <p>Title meta directive. See https://www.chordpro.org/chordpro/directives-title/</p>
1554
1387
 
1555
- **Kind**: global constant
1388
+ **Kind**: global variable
1556
1389
  <a name="TITLE"></a>
1557
1390
 
1558
1391
  ## TITLE : <code>string</code>
1559
- Title meta directive. See https://www.chordpro.org/chordpro/directives-title/
1392
+ <p>Transpose meta directive. See: https://www.chordpro.org/chordpro/directives-transpose/</p>
1560
1393
 
1561
- **Kind**: global constant
1394
+ **Kind**: global variable
1562
1395
  <a name="TRANSPOSE"></a>
1563
1396
 
1564
1397
  ## TRANSPOSE : <code>string</code>
1565
- Transpose meta directive. See: https://www.chordpro.org/chordpro/directives-transpose/
1398
+ <p>New Key meta directive. See: https://github.com/PraiseCharts/ChordChartJS/issues/53</p>
1566
1399
 
1567
- **Kind**: global constant
1400
+ **Kind**: global variable
1568
1401
  <a name="NEW_KEY"></a>
1569
1402
 
1570
1403
  ## NEW\_KEY : <code>string</code>
1571
- New Key meta directive. See: https://github.com/PraiseCharts/ChordChartJS/issues/53
1404
+ <p>Year meta directive. See https://www.chordpro.org/chordpro/directives-year/</p>
1572
1405
 
1573
- **Kind**: global constant
1574
- <a name="YEAR"></a>
1406
+ **Kind**: global variable
1407
+ <a name="defaultCss"></a>
1575
1408
 
1576
- ## YEAR : <code>string</code>
1577
- Year meta directive. See https://www.chordpro.org/chordpro/directives-year/
1409
+ ## defaultCss <code>string</code>
1410
+ <p>Generates basic CSS, scoped within the provided selector, to use with output generated by [HtmlTableFormatter](#HtmlTableFormatter)</p>
1411
+
1412
+ **Kind**: global variable
1413
+ **Returns**: <code>string</code> - <p>the CSS string</p>
1414
+
1415
+ | Param | Description |
1416
+ | --- | --- |
1417
+ | scope | <p>the CSS scope to use, for example <code>.chordSheetViewer</code></p> |
1578
1418
 
1579
- **Kind**: global constant
1580
1419
  <a name="defaultCss"></a>
1581
1420
 
1582
1421
  ## defaultCss : <code>Object.&lt;string, Object.&lt;string, string&gt;&gt;</code>
1583
- Basic CSS, in object style à la useStyles, to use with output generated by {@link }HtmlTableFormatter}
1584
- For a CSS string see [scopedCss](#scopedCss)
1422
+ <p>Basic CSS, in object style à la useStyles, to use with output generated by {@link }HtmlTableFormatter}
1423
+ For a CSS string see [scopedCss](scopedCss)</p>
1585
1424
 
1586
1425
  **Kind**: global constant
1587
1426
  <a name="VERSE"></a>
1588
1427
 
1589
1428
  ## VERSE : <code>string</code>
1590
- Used to mark a paragraph as verse
1429
+ <p>Used to mark a paragraph as verse</p>
1430
+
1431
+ **Kind**: global constant
1432
+ <a name="VERSE"></a>
1433
+
1434
+ ## VERSE : <code>string</code>
1435
+ <p>Used to mark a paragraph as chorus</p>
1591
1436
 
1592
1437
  **Kind**: global constant
1593
1438
  <a name="CHORUS"></a>
1594
1439
 
1595
1440
  ## CHORUS : <code>string</code>
1596
- Used to mark a paragraph as chorus
1441
+ <p>Used to mark a paragraph as not containing a line marked with a type</p>
1597
1442
 
1598
1443
  **Kind**: global constant
1599
1444
  <a name="NONE"></a>
1600
1445
 
1601
1446
  ## NONE : <code>string</code>
1602
- Used to mark a paragraph as not containing a line marked with a type
1447
+ <p>Used to mark a paragraph as containing lines with both verse and chorus type</p>
1603
1448
 
1604
1449
  **Kind**: global constant
1605
1450
  <a name="INDETERMINATE"></a>
1606
1451
 
1607
1452
  ## INDETERMINATE : <code>string</code>
1608
- Used to mark a paragraph as containing lines with both verse and chorus type
1453
+ <p>Used to mark a paragraph as tab</p>
1609
1454
 
1610
1455
  **Kind**: global constant
1611
- <a name="TAB"></a>
1612
-
1613
- ## TAB : <code>string</code>
1614
- Used to mark a paragraph as tab
1456
+ <a name="parseChord"></a>
1615
1457
 
1616
- **Kind**: global constant
1617
- <a name="scopedCss"></a>
1458
+ ## ~~parseChord(chordString) ⇒ <code>null</code> \| [<code>Chord</code>](#Chord)~~
1459
+ ***Deprecated***
1618
1460
 
1619
- ## scopedCss(scope) <code>string</code>
1620
- Generates basic CSS, scoped within the provided selector, to use with output generated by [HtmlTableFormatter](#HtmlTableFormatter)
1461
+ <p>Tries to parse a chord string into a chord</p>
1621
1462
 
1622
1463
  **Kind**: global function
1623
- **Returns**: <code>string</code> - the CSS string
1624
1464
 
1625
1465
  | Param | Description |
1626
1466
  | --- | --- |
1627
- | scope | the CSS scope to use, for example `.chordSheetViewer` |
1467
+ | chordString | <p>the chord string, eg Esus4/G# or 1sus4/#3</p> |
1628
1468
 
1629
- <a name="parseChord"></a>
1469
+ <a name="getCapos"></a>
1630
1470
 
1631
- ## ~~parseChord(chordString) ⇒ <code>null</code> \| [<code>Chord</code>](#Chord)~~
1632
- ***Deprecated***
1471
+ ## getCapos(key) ⇒ <code>Object.&lt;string, string&gt;</code>
1472
+ <p>Returns applicable capos for the provided key</p>
1633
1473
 
1634
- Tries to parse a chord string into a chord
1474
+ **Kind**: global function
1475
+ **Returns**: <code>Object.&lt;string, string&gt;</code> - <p>The available capos, where the keys are capo numbers and the
1476
+ values are the effective key for that capo.</p>
1477
+
1478
+ | Param | Type | Description |
1479
+ | --- | --- | --- |
1480
+ | key | <code>Key</code> \| <code>string</code> | <p>The key to get capos for</p> |
1481
+
1482
+ <a name="getKeys"></a>
1483
+
1484
+ ## getKeys(key) ⇒ <code>Array.&lt;string&gt;</code>
1485
+ <p>Returns applicable keys to transpose to from the provided key</p>
1635
1486
 
1636
1487
  **Kind**: global function
1488
+ **Returns**: <code>Array.&lt;string&gt;</code> - <p>The available keys</p>
1637
1489
 
1638
- | Param | Description |
1639
- | --- | --- |
1640
- | chordString | the chord string, eg Esus4/G# or 1sus4/#3 |
1490
+ | Param | Type | Description |
1491
+ | --- | --- | --- |
1492
+ | key | <code>Key</code> \| <code>string</code> | <p>The key to get keys for</p> |
1641
1493