npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@fsegurai/marked-extended-bundle

v17.0.0

Published

A bundle of extensions for Marked.js

Readme

An extension library for Marked.js to enhance Markdown rendering.

@fsegurai/marked-extended-bundle A bundle of extensions for Marked.js

🎯 Overview

The marked-extended-bundle combines all Marked.js extension packages into a single, convenient export. It provides a complete toolkit for advanced Markdown parsing and rendering, including accordions, alerts, comments, embeds, footnotes, Kanban boards, enhanced lists, slides, spoilers, tables, tabs, timelines, and typography enhancements.

✨ Key Features

  • 📦 Complete Bundle: All extensions in one package
  • 🎨 Rich Markdown Features: 13+ extensions for enhanced markdown rendering
  • 🔧 Framework Agnostic: Works with React, Vue, Angular, Svelte, and vanilla JS
  • Performance Optimized: Minimal overhead, efficient rendering
  • 🌗 Theme Support: Light and dark mode out of the box
  • 📱 Responsive: Works seamlessly across all device sizes
  • Accessible: Semantic HTML with proper ARIA attributes
  • 🎯 TypeScript Support: Full type definitions for all extensions

🎪 Live Demo

Experience all extensions in action: View Demo


Table of contents

Installation

To add @fsegurai/marked-extended-bundle along with Marked.js to your package.json use the following commands.

bun install @fsegurai/marked-extended-bundle marked@^17 --save

Usage

Basic Usage

Import @fsegurai/marked-extended-bundle and apply it to your Marked instance as shown below.

Quick Start

Installation

Install the bundle along with marked:

# Using Bun (recommended)
bun add @fsegurai/marked-extended-bundle marked@^17

# Using npm
npm install @fsegurai/marked-extended-bundle marked@^17

# Using yarn
yarn add @fsegurai/marked-extended-bundle marked@^17

# Using pnpm
pnpm add @fsegurai/marked-extended-bundle marked@^17

Basic Implementation

import { marked } from 'marked';
import {
  markedExtendedAccordion,
  markedExtendedAlert,
  markedExtendedComments,
  markedExtendedEmbeds,
  markedExtendedFootnote,
  markedExtendedKanban,
  markedExtendedLists,
  markedExtendedSlide,
  markedExtendedSpoiler,
  markedExtendedTables,
  markedExtendedTabs,
  markedExtendedTimeline,
  markedExtendedTypographic,
} from '@fsegurai/marked-extended-bundle';

// Register all extensions
marked.use(
  markedExtendedAccordion(),
  markedExtendedAlert(),
  markedExtendedComments(),
  markedExtendedEmbeds(),
  markedExtendedFootnote(),
  markedExtendedKanban(),
  markedExtendedLists(),
  markedExtendedSlide(),
  markedExtendedSpoiler(),
  markedExtendedTables(),
  markedExtendedTabs(),
  markedExtendedTimeline(),
  markedExtendedTypographic(),
);

// Your markdown content
const markdown = `
# Your markdown with all extensions

> [!NOTE]
> This bundle includes all marked-extended features.

## Accordions, alerts, and more

Use any of the supported syntax for enhanced markdown.
`;

// Parse and render
const html = marked.parse(markdown);
import { marked } from 'marked';
import markedExtendedBundle from '@fsegurai/marked-extended-bundle';

// or UMD script
// <script src="https://cdn.jsdelivr.net/npm/marked/lib/marked.umd.js"></script>
// <script src="https://cdn.jsdelivr.net/npm/@fsegurai/marked-extended-bundle/lib/index.umd.js"></script>

marked.use(markedExtendedBundle());

Styling Your Extensions

Each extension includes optional CSS files. Import them to enable visual styling:

// Import structural styles (required for functionality)
import '@fsegurai/marked-extended-accordion/dist/styles/accordion.css';
import '@fsegurai/marked-extended-alert/dist/styles/alert.css';
import '@fsegurai/marked-extended-comments/dist/styles/comment.css';
import '@fsegurai/marked-extended-embeds/dist/styles/embed.css';
import '@fsegurai/marked-extended-footnote/dist/styles/footnote.css';
import '@fsegurai/marked-extended-kanban/dist/styles/kanban.css';
import '@fsegurai/marked-extended-lists/dist/styles/lists.css';
import '@fsegurai/marked-extended-slide/dist/styles/slide.css';
import '@fsegurai/marked-extended-spoiler/dist/styles/spoiler.css';
import '@fsegurai/marked-extended-tables/dist/styles/table.css';
import '@fsegurai/marked-extended-tabs/dist/styles/tabs.css';
import '@fsegurai/marked-extended-timeline/dist/styles/timeline.css';

// Optional: Import themes for styled appearance
import '@fsegurai/marked-extended-accordion/dist/styles/accordion-theme.css';
import '@fsegurai/marked-extended-alert/dist/styles/alert-theme.css';
// ... other themes

Or via HTML (for non-build tools):

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fsegurai/marked-extended-accordion@latest/dist/styles/accordion.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fsegurai/marked-extended-alert@latest/dist/styles/alert-theme.css">
<!-- ... other stylesheets -->

With Configuration Options

Each extension accepts its own configuration options:

marked.use(
  markedExtendedAccordion({
    className: 'custom-accordion',
    animationDuration: '0.5s'
  }),
  markedExtendedAlert({
    className: 'custom-alert'
  }),
  markedExtendedLists({
    useStartAttribute: true,
    interactiveCheckboxes: true
  }),
  markedExtendedTabs({
    animation: 'fade'
  }),
  // ... other extensions with options
);

See individual extension documentation for all available options.

TypeScript Support

Full TypeScript support with exported types for all extensions:

import type {
  AccordionOptions,
  AccordionToken,
  AlertOptions,
  AlertToken,
  CommentsOptions,
  CommentToken,
  EmbedsOptions,
  EmbedToken,
  FootnoteOptions,
  FootnoteRefToken,
  KanbanOptions,
  KanbanToken,
  ListsOptions,
  ExtendedListToken,
  SlideOptions,
  SlideToken,
  SpoilerOptions,
  SpoilerToken,
  TablesOptions,
  SpanTableToken,
  TabsOptions,
  TabsToken,
  TimelineOptions,
  TimelineToken,
  TypographicOptions,
} from '@fsegurai/marked-extended-bundle';

Framework Integration

React Integration

import { marked } from 'marked';
import { 
  markedExtendedAccordion,
  markedExtendedAlert,
  // ... other extensions
} from '@fsegurai/marked-extended-bundle';
import { useEffect, useState } from 'react';

marked.use(
  markedExtendedAccordion(),
  markedExtendedAlert(),
  // ... register all extensions
);

export function MarkdownViewer({ content }: { content: string }) {
  const [html, setHtml] = useState('');

  useEffect(() => {
    setHtml(marked.parse(content));
  }, [content]);

  return <div dangerouslySetInnerHTML={{ __html: html }} />;
}

Vue 3 Integration

<script setup lang="ts">
import { marked } from 'marked';
import { 
  markedExtendedAccordion,
  markedExtendedAlert,
  // ... other extensions
} from '@fsegurai/marked-extended-bundle';
import { ref, computed } from 'vue';

marked.use(
  markedExtendedAccordion(),
  markedExtendedAlert(),
  // ... register all extensions
);

interface Props {
  content: string;
}

const props = defineProps<Props>();
const html = computed(() => marked.parse(props.content));
</script>

<template>
  <div v-html="html" />
</template>

Angular Integration

import { Component, Input, OnChanges } from '@angular/core';
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
import { marked } from 'marked';
import { 
  markedExtendedAccordion,
  markedExtendedAlert,
  // ... other extensions
} from '@fsegurai/marked-extended-bundle';

marked.use(
  markedExtendedAccordion(),
  markedExtendedAlert(),
  // ... register all extensions
);

@Component({
  selector: 'app-markdown-viewer',
  template: `<div [innerHTML]="parsedContent"></div>`,
})
export class MarkdownViewerComponent implements OnChanges {
  @Input() content: string = '';
  parsedContent: SafeHtml = '';

  constructor(private sanitizer: DomSanitizer) {}

  ngOnChanges(): void {
    const html = marked.parse(this.content);
    this.parsedContent = this.sanitizer.bypassSecurityTrustHtml(html);
  }
}

Svelte Integration

<script lang="ts">
  import { marked } from 'marked';
  import { 
    markedExtendedAccordion,
    markedExtendedAlert,
    // ... other extensions
  } from '@fsegurai/marked-extended-bundle';

  marked.use(
    markedExtendedAccordion(),
    markedExtendedAlert(),
    // ... register all extensions
  );

  export let content: string;

  $: html = marked.parse(content);
</script>

<div>{@html html}</div>

Browser Support

  • Chrome ≥ 111
  • Edge ≥ 111
  • Firefox ≥ 114
  • Safari ≥ 16.4

For older browser support, use @vitejs/plugin-legacy.

Contributing

Found a bug or have a feature request? Please open an issue on GitHub.

Related Resources

Available Extensions

| Extension | Package | Version | Description | |-------------|--------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------|----------------------------------------------------------------------| | All - Bundle | @fsegurai/marked-extended-bundle | npm | Includes all extensions in a single package for easy integration | | Accordion | @fsegurai/marked-extended-accordion | npm | Add collapsible accordion sections to your markdown | | Alert | @fsegurai/marked-extended-alert | npm | Create styled alert boxes for important information | | Comments | @fsegurai/marked-extended-comments | npm | Add comment sections with author and timestamp metadata | | Embeds | @fsegurai/marked-extended-embeds | npm | Easily embed content from various platforms (YouTube, Twitter, etc.) | | Footnote | @fsegurai/marked-extended-footnote | npm | Add footnotes with automatic numbering | | Kanban | @fsegurai/marked-extended-kanban | npm | Create kanban boards with customizable columns and cards | | Lists | @fsegurai/marked-extended-lists | npm | Enhanced list formatting options | | Slide | @fsegurai/marked-extended-slide | npm | Create slide decks directly from markdown content | | Spoiler | @fsegurai/marked-extended-spoiler | npm | Hide content behind spoiler tags | | Tables | @fsegurai/marked-extended-tables | npm | Advanced table formatting with cell spanning | | Tabs | @fsegurai/marked-extended-tabs | npm | Create tabbed content sections | | Timeline | @fsegurai/marked-extended-timeline | npm | Display content in an interactive timeline format | | Typographic | @fsegurai/marked-extended-typographic | npm | Improve typography with smart quotes, dashes, and more |

Demo Application

To see all extensions in action, check out the [DEMO].

To set up the demo locally, follow the next steps:

git clone https://github.com/fsegurai/marked-extensions.git
bun install
bun start

This will serve the application locally at http://[::1]:8000.

License

Licensed under MIT.