1.3.0 • Published 3 months ago

marksonjs v1.3.0

Weekly downloads
-
License
MIT
Repository
-
Last release
3 months ago
- NOTE: This library is still under development, so API may change. Please do not use it in production environment.

Markson.js

JavaScript library that reads Markdown files and generates JSON-based blog posts, supporting Yaml Front Matter and GitHub Flavored Markdown.

Installation

npm i marksonjs

Usage

import { markson } from 'marksonjs';

let posts = markson.scan('./posts');        // scan markdown files in dir, returns an array
let post = markson.read('./posts/post.md'); // read single markdown file, returns an object

Options

The default options are as follows. Configure Markson as initialization if needed.

import { Markson } from 'marksonjs';

const markson = new Markson({
        gfm: true,          // enable github-flavored-markdown
        cleanText: false,   // if enabled, exports clean text without html tags and white spaces
        frontmatter: true,  // if enabled, parse front matters in markdown files
        rawMD: false,       // if enabled, exports raw markdown content
        exportHTML: true,   // if enabled, exports parsed html string
        slug: 'filename',   // specify what to use as slug, filename or 'slug' attribute in front matter
});

Methods

Markson.read()

Parameter:

  • filename - path to the source markdown file

Returns: Object formed like this

{
    type: 'file',
    filename: '.../markdown-file.md',
    data: {
        slug: '...',
        title: '...',
        date: 'Date String',
        attributes: {
            // front matter here
        }
        html: '...',
    }
}

Markson.scan()

Parameter:

  • dir - path to the source directory

Returns: Array formed like this

[
    {
        type: 'directory',
        filename: '.../sub-directory/',
        data: [
            {
                type: 'file',
                // ...
            },
            {
                type: 'directory',
                // ...
            }
        ],
    },
    {
        type: 'file',
        filename: '.../file.md',
        data: {
            slug: '...',
            title: '...',
            date: 'Date String',
            attributes: {
                // front matter here
            }
            html: '...',
        }
    }
]

Markson.write()

Parameters:

  • source - similar to filename/dir in read()/scan() method
  • destination - where to write output, default ./output.json
  • type - dir or file, decides to use scan() or read(), default dir

Returns: Boolean that indicates if file is written

1.3.0

3 months ago

1.2.2

3 months ago

1.2.1

3 months ago

1.2.0

3 months ago

1.1.0

3 months ago

1.0.0

3 months ago