# markdown-to-json

> Extracts YAML front matter from markdown files to a single JSON string or file.

Latest version **0.5.4** (published 2020-01-03) · MIT license · 0 weekly downloads

## Install

```sh
npm install markdown-to-json
pnpm add markdown-to-json
yarn add markdown-to-json
bun add markdown-to-json
```

Provides the command `m2j`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.5.4 |
| Published | 2020-01-03 |
| First published | 2013-04-05 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | * |
| Dependencies | 4 |
| Unpacked size | 56.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 263 |
| Author | Scott Stanfield |
| Maintainers | scottstanfield |
| Keywords | yaml, markdown, json |

## Links

- npm: https://www.npmjs.com/package/markdown-to-json
- Repository: https://github.com/scottstanfield/markdown-to-json
- Homepage: https://github.com/scottstanfield/markdown-to-json#readme
- Issues: https://github.com/scottstanfield/markdown-to-json/issues
- npm.io page: https://npm.io/package/markdown-to-json

## Dependencies (4)

- [moment](https://npm.io/package/moment.md) ^2.24.0
- [commander](https://npm.io/package/commander.md) ^4.0.1
- [lodash.truncate](https://npm.io/package/lodash.truncate.md) ^4.4.2
- [yaml-front-matter](https://npm.io/package/yaml-front-matter.md) ^4.0.0

## Alternatives

- [@mapbox/jsonlint-lines-primitives](https://npm.io/package/@mapbox/jsonlint-lines-primitives.md) — 5.3M weekly downloads
- [reftools](https://npm.io/package/reftools.md) — 3.5M weekly downloads
- [@hey-api/openapi-ts](https://npm.io/package/@hey-api/openapi-ts.md) — 3.5M weekly downloads
- [@mapbox/geojson-rewind](https://npm.io/package/@mapbox/geojson-rewind.md) — 2.4M weekly downloads
- [turbo-stream](https://npm.io/package/turbo-stream.md) — 1.7M weekly downloads

## Recent versions

- 0.5.4 (latest) — 2020-01-03
- 0.5.1 — 2017-03-22
- 0.5.0 — 2017-03-22
- 0.4.2 — 2013-04-06
- 0.4.1-0 — 2013-04-05
- 0.4.0 — 2013-04-05

## README

# markdown-to-json

[![Build Status](https://travis-ci.org/scottstanfield/markdown-to-json.svg?branch=master)](https://travis-ci.org/scottstanfield/markdown-to-json)

Tool for converting YAML Front Matter in Markdown files to JSON files.

`m2j` is used to read a folder of Markdown files, pulling out the YAML
Front Matter from each, and saving it all as a JSON blob.

This is especially useful if you have a folder full of Markdown files
that you want scanned and processed into a single JSON file, which can
then be consumed by Angular on the client, cached in a Node server, or
saved in a NoSQL database.

In addition to moving the YAML to JSON, a few extra elements are created: 

-  `iso8601` [formatted][1] timestamp from `date` using [Moment.js][2]
-  `preview` is the first 70 or so characters of the actual raw Markdown content, with ellipses at the end
-  `basename` is the filename without the path or extension
-  `content` is created only if the content flag is enabled; raw Markdown content will be unabridged

_Example_

```
% m2j --help

  Usage: m2j [options] <files>

  Options:

    -h, --help               output usage information
    -V, --version            output the version number
    -w --width <int>         max width of preview text [70]. Set to 0 for no preview.
    -p --pretty              format JSON with newlines
    -c --content             include the full content of the file unabridged
    -o --outfile <filename>  filename to save json to [output.json]


% m2j.js lottery.md
```

**lottery.md**

```md
---
title: The Lottery Ticket
author: Anton C.
date: "2013-03-15 15:00"
template: article.jade
tags:
  - Fiction
  - Russian

---

Ivan Dmitritch, a middle-class man who lived with his family on an income of twelve hundred a year and was very well satisfied with his lot, sat down on the sofa after supper and began reading the newspaper. 

```

**output**

```js
{
  "files": [
    {
      "title": "The Lottery Ticket",
      "author": "Anton C.",
      "date": "1893-04-01",
      "template": "article.jade",
      "tags": [
        "Fiction",
        "Russian"
      ],
      "preview": "Ivan Dmitritch, a middle-class man who lived with his family on an …",
      "iso8601Date": "1893-04-01T00:00:00-07:00",
      "basename": "lottery.md"
    }
  ]
}
```


[1]: https://en.wikipedia.org/wiki/ISO_8601
[2]: http://momentjs.com/docs/#/parsing/string/

---
_Source: https://npm.io/package/markdown-to-json · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
