2.17.1 • Published 11 months ago

@nlux/markdown v2.17.1

Weekly downloads
-
License
MPL-2.0
Repository
github
Last release
11 months ago

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

Parsing Markdown Stream

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 )
    // waitTimeBeforeStreamCompletion?: number | 'never',           // default: 2000 ( 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();

Parsing Markdown Snapshot

import { parseMdSnapshot } from "@nlux/markdown";
const parsedMarkdown = parseMdSnapshot(snapshot, options);

Interfaces

export type MarkdownStreamParser = {
    next(value: string): void;
    complete(): void;
};
export type MarkdownStreamParserOptions = {
    markdownLinkTarget?: 'blank' | 'self';
    syntaxHighlighter?: HighlighterExtension;
    skipStreamingAnimation?: boolean;
    streamingAnimationSpeed?: number;
    waitTimeBeforeStreamCompletion?: number | 'never';
    showCodeBlockCopyButton?: boolean;
    onComplete?: () => void;
};
export type SnapshotParser = (
    snapshot: string,
    options?: {
        syntaxHighlighter?: HighlighterExtension,
        htmlSanitizer?: SanitizerExtension;
        markdownLinkTarget?: 'blank' | 'self',
        showCodeBlockCopyButton?: boolean;
        skipStreamingAnimation?: boolean;
    },
) => string;
2.8.0-beta.1

1 year ago

2.11.0

1 year ago

2.11.1

1 year ago

2.4.0

1 year ago

2.8.1

1 year ago

2.9.2

1 year ago

2.5.6

1 year ago

2.9.1

1 year ago

2.5.5

1 year ago

2.9.4

1 year ago

2.5.8

1 year ago

2.9.3

1 year ago

2.5.7

1 year ago

2.9.5

1 year ago

2.5.9

1 year ago

2.2.14-beta

1 year ago

2.3.0

1 year ago

2.3.2

1 year ago

2.10.0

1 year ago

2.3.1

1 year ago

2.7.0

1 year ago

2.3.3

1 year ago

2.7.2

1 year ago

2.3.6

1 year ago

2.7.1

1 year ago

2.3.5

1 year ago

2.8.3

1 year ago

2.8.2

1 year ago

2.1.9-beta

1 year ago

2.14.0

1 year ago

2.6.1

1 year ago

2.1.10-beta

1 year ago

2.6.0

1 year ago

2.6.3

1 year ago

2.6.2

1 year ago

2.9.0-beta.2

1 year ago

2.9.0-beta.1

1 year ago

2.2.15-beta

1 year ago

2.3.8

1 year ago

2.7.3

1 year ago

2.3.7

1 year ago

2.17.0

11 months ago

2.7.6

1 year ago

2.17.1

11 months ago

2.7.5

1 year ago

2.3.9

1 year ago

2.13.2

1 year ago

2.7.7

1 year ago

2.13.0

1 year ago

2.13.1

1 year ago

2.5.10

1 year ago

2.5.0-beta.0

1 year ago

2.2.13-beta

1 year ago

2.12.0

1 year ago

2.5.0

1 year ago

2.5.2

1 year ago

2.5.1

1 year ago

2.9.0

1 year ago

2.5.4

1 year ago

2.5.3

1 year ago

2.2.12-beta

1 year ago

2.6.5

1 year ago

2.6.4

1 year ago

2.16.1

11 months ago

2.6.6

1 year ago

2.16.0

11 months ago

2.6.8

1 year ago

2.12.1

1 year ago

2.12.2

1 year ago

2.2.11-beta

1 year ago

2.1.8-beta

1 year ago

2.1.7-beta

1 year ago

2.1.6-beta

1 year ago

2.1.3-beta

1 year ago

2.1.5-beta

1 year ago

2.1.4-beta

1 year ago

2.1.0-beta

1 year ago

2.1.2-beta

1 year ago

2.1.1-beta

1 year ago

2.0.11-alpha

1 year ago

2.0.12-alpha

1 year ago

2.0.10-alpha

1 year ago

2.0.9-alpha

1 year ago

2.0.8-alpha

1 year ago

2.0.7-alpha

1 year ago

2.0.5-alpha

1 year ago

2.0.6-alpha

1 year ago

2.0.4-alpha

1 year ago

2.0.3-alpha

1 year ago

2.0.2-alpha

1 year ago

2.0.1-alpha

1 year ago

1.0.15

1 year ago

1.0.14

1 year ago

1.0.13

1 year ago

1.0.12

1 year ago

1.0.9

1 year ago

2.0.0-alpha.1

1 year ago

1.0.10

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.2

1 year ago

1.0.3

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

0.12.2

1 year ago

0.12.1

1 year ago

0.12.0

1 year ago

0.11.2

1 year ago

0.11.0

1 year ago

0.11.1

1 year ago

0.10.11

1 year ago

0.10.10

1 year ago

0.10.9

1 year ago

0.10.8

1 year ago

0.10.7

1 year ago

0.10.6

1 year ago