jgravois / changelog-parser

Change log parser for node.

Home Page:https://www.npmjs.com/package/changelog-parser

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

changelog-parser

Change log parser for node.

npm travis

Install

npm install changelog-parser

Usage

var parseChangelog = require('changelog-parser')

parseChangelog('path/to/CHANGELOG.md', function (err, result) {
  if (err) throw err

  // changelog object
  console.log(result)
})

Command-line interface

There is also a command-line interface available if you install it with -g.

npm install -g changelog-parser

This installs a program called changelog-parser that you simply pass a CHANGELOG.md file.

changelog-parser path/to/CHANGELOG.md

This will print the JSON object representing the change log to the terminal.

Alternately you can run it without arguments and it will look for a CHANGELOG.md file in the working directory.

Standards

This module assumes your change log is a markdown file structured roughly like so:

# changelog title

A cool description (optional).

## unreleased
* foo

## x.y.z - YYYY-MM-DD
* bar

## [a.b.c]

### Changes

* Update API
* Fix bug #1

## 2.2.3-pre.1 - 2013-02-14
* Update API

## 2.0.0-x.7.z.92 - 2013-02-14
* bark bark
* woof
* arf

## v1.3.0

* make it so

## [1.2.3](link)
* init

[a.b.c]: http://altavista.com

Parsing the above example will return the following object:

{
  title: 'changelog title',
  description: 'A cool description (optional).',
  versions: [
    { version: null,
      title: 'unreleased',
      body: '* foo' },
    { version: 'x.y.z',
      title: 'x.y.z - YYYY-MM-DD',
      body: '* bar' },
    { version: 'a.b.c',
      title: '[a.b.c]',
      body: '### Changes\n\n* Update API\n* Fix bug #1' },
    { version: '2.2.3-pre.1',
      title: '2.2.3-pre.1 - 2013-02-14',
      body: '* Update API' },
    { version: '2.0.0-x.7.z.92',
      title: '2.0.0-x.7.z.92 - 2013-02-14',
      body: '* bark bark\n* woof\n* arf' },
    { version: '1.3.0',
      title: 'v1.3.0',
      body: '* make it so' },
    { version: '1.2.3',
      title: '[1.2.3](link)',
      body: '* init' }
  ]
}

Expects versions to be semver compliant, otherwise sets version to null.

CHANGELOG.md standards are inspired by keepachangelog.com.

Contributing

Contributions welcome! Please read the contributing guidelines first.

License

ISC

About

Change log parser for node.

https://www.npmjs.com/package/changelog-parser

License:ISC License


Languages

Language:JavaScript 100.0%