3.0.1 • Published 4 years ago

down-parse v3.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

down-parse

down-parse is a markdown parser with a wonderful plugin system;

example

render my markdown:

import { render } from "down-parse";

render(`# hello, world`); 
// => <h1>hello, world</h1>

use plugin

in down-parse, you can write your own plugin to process with Token / AST to change the default output.

such as:

import { render, use } from "down-parse";

use({
    // (token: Token) => Token
    parser(token) {
        // Change The ParaAST's Property To Uppercase.
        if (token.type === 'p') {
            const { text } = token; 
            token.text = text.toUpperCase(); 
        }

        // Don't Forget Return It. 
        return token;
    }, 
    
    // (ast: AST, output: string) => string
    render(ast, output) {
        if (ast.type === 'p') {
            return output.replace('WORLD', '😊');
        } else {
            // Keep Default Output For Other AST.
            return output;
        }
    }
});

const res = render(`
# I ❤️ Plugin
Hello, World
`);

console.log(res);
// => '<br /><h1>I ❤️ Plugin</h1><p>HELLO, 😊</p><br />'

more details see "./src/plugin/type.ts"

what about markdown Token / AST ?

you can get your markdown ast by running compile:

import { compile } from "down-parse"; 

compile(`# hello, world`); 
// => [ { type: '#', weight: 1, text: 'hello, world' } ]

AND you can write yourself the render function to render AST to HTML string. the mapper function from a data structure to a string)

get more details please see ./src/token.ts for Token and ./src/compile.ts for AST.

License

MIT

3.0.1

4 years ago

3.0.0

4 years ago

2.4.0

5 years ago

2.3.1

5 years ago

2.3.0

5 years ago

2.2.0

5 years ago

2.1.9

5 years ago

2.1.8

5 years ago

2.1.7

5 years ago

2.1.6

5 years ago

2.1.5

5 years ago

2.0.2

5 years ago

2.0.1

5 years ago

2.0.0

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.1.1

6 years ago

0.1.0

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago