chord-md-parser

v0.0.1
guitar chords parser from markdown files
chord

chord markdown parser

Build Status

MarkDown Extractor

Extracts chords and lirics from markdown python code

import { Extractor } from 'chord-md-parser';
let extractor = new Extractor({
  md: {
    filepath: null,
    content: 'CONTENT'
  }
})

let song = extractor.getSong()
song // -> array with only song lirics and tablatures/chords

ChordParser

Split roots and override roots from a chord string.

import { ChordParser } from 'chord-md-parser';
let parser = new ChordParser()
let chord = parser.parse('Bb7(9)/Cb');

// -----------------------
chord === { root: 'Bb',
            flavors: '7(9)',
            rootOverride: 'Cb' }

ChordPrint

Print chord string from chord object.

import { ChordPrint } from 'chord-md-parser';

let printed = ChordPrint.print({
  root: 'C',
  flavors: 'M7',
  rootOverride: 'G'
})

// -----------------------
printed === 'CM7/G'

ChordTransposer

Change root and

import { ChordTransposer } from 'chord-md-parser';
let transposer = new ChordTransposer()

let new_chord = transposer.transpose({
  root: 'C',
  flavors: 'M7',
  rootOverride: 'G'
}, 1)

// -----------------------
new_chord === { root: 'C#', flavors: 'M7', rootOverride: 'G#', index: 3 }

ChordsConverter

Gets all chords from a string and convert to an array of chord objects.

import { ChordsConverter } from 'chord-md-parser';
let converter = new ChordsConverter()
let all_chords = converter.getChordsList('     A7+    E7/4      B7/9    Dm(7+)');

// -----------------------
all_chords:
[
  {
    chord:{
      root: 'A',
      flavors: '7+',
      rootOverride: null
    },
    loc: { start: 5, size: 3 }
  },
  {
    chord:{
      root: 'E',
      flavors: '7/4',
      rootOverride: null
    },
    loc: { start: 12, size: 4 }
  },
  {
    chord:{
      root: 'B',
      flavors: '7/9',
      rootOverride: null
    },
    loc: { start: 22, size: 4 }
  },
  {
    chord:{
      root: 'D',
      flavors: 'm(7+)',
      rootOverride: null
    },
    loc: { start: 30, size: 6 }
  }
]

Tests:

# start azk [optional]
$ azk shell

# run all tests
$ npm test

# run all tests and watch
$ npm run watch

using:

Metadata

Downloads

Maintainers