Nondeterministic Polynomial Munchies

    @agrarium/plugin-markdown
    TypeScript icon, indicating that this package has built-in type declarations

    2.0.2 • Public • Published

    Agrarium Markdown Plugin

    Agrarium plugin for markdown files resolving.

    Usage

    npm i agrarium

    Or use it standalone:

    npm i @agrarium/plugin-markdown

    In your .agrarium.js file:

    const { PluginMarkdown } = require('agrarium');
    
    module.exports = {
        src: ['./src/components'],
        plugins: [
            new PluginMarkdown({/* options */})
        ]
    }

    Example of result data

    It returns content of markdown files in JSON. More info about PostHTMLTree here.

    console.log(chunk.data)

    {
        markdown: [{
            lang: 'en',
            content: [/* json */],
            file: {
                path: 'test/fixtures/blocks/test-block/test-block.md'
            }
        }, {
            lang: 'en',
            content: [/* json */],
            file: {
                path: 'test/fixtures/blocks/test-block/_mod/test-block_mod.md'
            }
        }]
    }
    

    Options

    json?: boolean, default: true

    Returns content in JSON.

    html?: boolean, default: false

    Returns content in HTML string.

    namespace?: string, default: undefined

    Adds prefix for parsed classes.

    i18n: { langs: string[], default: string }, default: { langs: ['en'], default: 'en' }

    Sets what langs you support in markdown. For example you can have: button.md and button.ru.md.

    You need to set this option in your .agrarium.js file:

    const { PluginMarkdown } = require('agrarium');
    
    module.exports = {
        src: ['./src/components'],
        plugins: [
            new PluginMarkdown({
                i18n: {
                    langs: ['en', 'ru'],
                    default: 'en'
                }
            })
        ]
    };

    hooks

    You can setup some hooks to modify markdown entites. It can be inline sources for example.

    inlineSource?: (options: { lang: string, content: string }) => { src: string }

    Parses inline sources in markdown and replace it with iframe. Example:

    const builder = require('./builder');
    
    agrarium({
        src: ['./src/components'],
        plugins: [
            new PluginMarkdown({
                hooks: {
                    inlineSource({ lang, content } {
                        if (lang === 'js') {
                            builder(content);
                            return {
                                src: '/static/daweasc123da.html'
                            }
                        }
                    }
                }
            })
        ]
    });

    License MIT

    Keywords

    none

    Install

    npm i @agrarium/plugin-markdown

    DownloadsWeekly Downloads

    8

    Version

    2.0.2

    License

    MIT

    Unpacked Size

    10 kB

    Total Files

    5

    Last publish

    Collaborators

    • awinogradov
    • qfox