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

2.3.3 • Public • Published

Markdown Stream Parser by NLUX 🌲✨💬

Free And Open Source Docs https://docs.nlkit.com/nlux

A lightweight JS/TS library that can be used to parse markdown streams as they are being read or generated.
It can be useful for LLM-powered applications that need to parse markdown streams in real-time.

This package is part of the NLUX UI toolkit for AI ecosystem.

Usage

import {
    MarkdownStreamParser,
    MarkdownStreamParserOptions,
    createMarkdownStreamParser,
} from "@nlux/markdown";

const options: MarkdownStreamParserOptions = {
    // markdownLinkTarget?: 'blank' | 'self';                       // default: 'blank'
    // syntaxHighlighter: (( Highlighter from @nlux/highlighter )), // default: undefined — for code blocks syntax highlighting
    // showCodeBlockCopyButton?: boolean,                           // default: true — for code blocks
    // skipStreamingAnimation?: boolean,                            // default: false
    // streamingAnimationSpeed?: number,                            // default: 10 ( milliseconds )
    // onComplete: () => console.log("Parsing complete"),           // triggered after the end of the stream
};

const domElement = document.querySelector(".markdown-container");
const mdStreamParser: MarkdownStreamParser = createMarkdownStreamParser(
    domElement!,
    options,
);

// On each chunk of markdown
mdStreamParser.next("## Hello World");

// To call when the markdown stream is complete
// This indicates to the parser that now additional text will be added
mdStreamParser.complete();

Interfaces

export type MarkdownStreamParser = {
    next(value: string): void;
    complete(): void;
};
export type MarkdownStreamParserOptions = {
    markdownLinkTarget?: 'blank' | 'self';
    syntaxHighlighter?: HighlighterExtension;
    skipStreamingAnimation?: boolean;
    streamingAnimationSpeed?: number;
    showCodeBlockCopyButton?: boolean;
    onComplete?: () => void;
};

Package Sidebar

Install

npm i @nlux/markdown

Weekly Downloads

984

Version

2.3.3

License

MPL-2.0

Unpacked Size

73.1 kB

Total Files

7

Last publish

Collaborators

  • shichri