Plugins

Attachment

This plugin adds support for attachments.

Installation

npm i @cartamd/plugin-attachment

Setup

Styles

Import the default theme, or create you own:

import '@cartamd/plugin-attachment/default.css';

Extension

<script>
  import { Carta, MarkdownEditor } from 'carta-md';
  import { attachment } from '@cartamd/plugin-attachment';

  const carta = new Carta({
    extensions: [
      attachment({
        upload(file) {
          /* ... */
        }
      })
    ]
  });
</script>

<MarkdownEditor {carta} />

Options

Here are the options you can pass to attachment():

export interface AttachmentExtensionOptions {
  /**
   * Upload a file to the server. Return the url of the uploaded file.
   * If an error occurs, return null. This function does **not** handle errors.
   * @param file The file to upload
   * @returns The uploaded file url, or null if it failed
   */
  upload: (file: File) => Promise<string | null>;
  /**
   * Supported mime types.
   *
   * @default ['image/png', 'image/jpeg', 'image/gif', 'image/svg+xml'].
   */
  supportedMimeTypes?: string[];
  /**
   * Whether to disable the attach icon.
   *
   * @default false
   */
  disableIcon?: boolean;
  /**
   * Custom drop overlay component. Use `false` to disable the overlay.
   */
  dropOverlay?: false | typeof SvelteComponent;
  /**
   * Custom loading overlay component. Use `false` to disable the overlay.
   */
  loadingOverlay?: false | typeof SvelteComponent<{ uploadingFiles: Writable<File[]> }>;
}
Created by BearToCode