1.0.3 • Published 9 years ago

changelog_parser v1.0.3

Weekly downloads
3
License
MIT
Repository
github
Last release
9 years ago

changelog_parser

  • Can compile a changelog into JSON format
  • Can compile a formatted changelog string from JSON
  • Can compile a JSON formatted changelog from a string

Expects the changelog to follow keepachangelog.com guidelines

Install

npm install changelog_parser

Usage

var parser = require('changelog_parser');

// Changelog to JSON
var json_changelog = parser.toJSON(pathToChangelogFile);

// JSON formatted changelog to text
var changelog = parser.toChangelog(json_changelog);

// Changelog string to JSON
var json_changelog = parser.toJSONFromString(changelogString);

Format

This module requires the changelog to be in markdown format.

The title of the changelog is prefixed by one hashtag (#):

# Example changelog

The versions are prefixed by two hashtags (##):

## [2.9.0](http://www.google.fi/)

The change headers should be prefixed with three hashtags (###)

### Added

Individual changes should be prefixed with one hyphen (-)

- Created an amazing feature!

An example CHANGELOG.md file:

# Example changelog

## [x.y.z]

### Added
- A changelog!

### Fixed
- UI had some terrible bugs

### Removed

### Changed

## [2.9.0](http://www.google.fi/)

### Added
- Added a cool new feature
- Files can now be loaded from the Internet

### Changed
- Localization IDs

### Fixed
- This annoying bug
- That annoying bug
- A bug that you had but no one else
- A bug that everyone had but not you

### Removed
- That thing no one used until soon

## [2.8.9](http://www.google.fi/)

### Fixed
- Simple bugfix

## [2.8.8](http://www.google.fi/)

### Fixed
- Critical bug
- Not so critical bug

### Changed
- Name of bug parser

## [2.8.0](http://www.google.fi/)

### Added
- Feature 1
- Feature 2

### Fixed
- Feature X had a bug that caused more bugs
- Java internals
- JavaScript web development

### Removed
- COBOL HTML files

Parsing the example changelog will yield the following JSON:

{
  "title": "# Example changelog",
  "versions": [
    {
      "version_number": "x.y.z",
      "version": "## [x.y.z]",
      "changes": [
        {
          "change": "### Added",
          "items": [
            "- A changelog!"
          ]
        },
        {
          "change": "### Fixed",
          "items": [
            "- UI had some terrible bugs"
          ]
        },
        {
          "change": "### Removed",
          "items": []
        },
        {
          "change": "### Changed",
          "items": []
        }
      ]
    },
    {
      "version_number": "2.9.0",
      "version": "## [2.9.0](http://www.google.fi/)",
      "changes": [
        {
          "change": "### Added",
          "items": [
            "- Added a cool new feature",
            "- Files can now be loaded from the Internet"
          ]
        },
        {
          "change": "### Changed",
          "items": [
            "- Localization IDs"
          ]
        },
        {
          "change": "### Fixed",
          "items": [
            "- This annoying bug",
            "- That annoying bug",
            "- A bug that you had but no one else",
            "- A bug that everyone had but not you"
          ]
        },
        {
          "change": "### Removed",
          "items": [
            "- That thing no one used until soon"
          ]
        }
      ]
    },
    {
      "version_number": "2.8.9",
      "version": "## [2.8.9](http://www.google.fi/)",
      "changes": [
        {
          "change": "### Fixed",
          "items": [
            "- Simple bugfix"
          ]
        }
      ]
    },
    {
      "version_number": "2.8.8",
      "version": "## [2.8.8](http://www.google.fi/)",
      "changes": [
        {
          "change": "### Fixed",
          "items": [
            "- Critical bug",
            "- Not so critical bug"
          ]
        },
        {
          "change": "### Changed",
          "items": [
            "- Name of bug parser"
          ]
        }
      ]
    },
    {
      "version_number": "2.8.0",
      "version": "## [2.8.0](http://www.google.fi/)",
      "changes": [
        {
          "change": "### Added",
          "items": [
            "- Feature 1",
            "- Feature 2"
          ]
        },
        {
          "change": "### Fixed",
          "items": [
            "- Feature X had a bug that caused more bugs",
            "- Java internals",
            "- JavaScript web development"
          ]
        },
        {
          "change": "### Removed",
          "items": [
            "- COBOL HTML files"
          ]
        }
      ]
    }
  ]
}

Parsing the above JSON will result in the CHANGELOG.md file it was created from

Testing

To run all tests use the following command:

npm test

License

MIT

1.0.3

9 years ago

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago