@fileverse-dev/ddoc 3.0.100 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es.js +13492 -13427
- package/dist/package/extensions/custom-link/index.d.ts +19 -0
- package/dist/package/extensions/default-extension.d.ts +1 -1
- package/dist/package/extensions/mardown-paste-handler/index.d.ts +1 -1
- package/dist/package/utils/heading-link.d.ts +23 -0
- package/dist/style.css +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { LinkOptions } from '@tiptap/extension-link';
|
|
2
|
+
|
|
3
|
+
export interface CustomLinkOptions extends LinkOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Called when the user pastes a heading link URL whose target
|
|
6
|
+
* heading does not exist in the current document — i.e. the link
|
|
7
|
+
* belongs to a different dDoc.
|
|
8
|
+
*/
|
|
9
|
+
onForeignHeadingLink?: (message: string) => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Extends tiptap's Link with a paste-time hook that detects
|
|
13
|
+
* heading links pointing at headings from other dDocs and dispatches
|
|
14
|
+
* a warning. A dedicated ProseMirror `handlePaste` is used (instead
|
|
15
|
+
* of piggybacking on `shouldAutoLink`) because `shouldAutoLink` is
|
|
16
|
+
* also called by the autolink plugin on every transaction — which
|
|
17
|
+
* would re-fire the warning on unrelated keystrokes like Enter.
|
|
18
|
+
*/
|
|
19
|
+
export declare const CustomLink: import('@tiptap/core').Mark<CustomLinkOptions, any>;
|
|
@@ -14,5 +14,5 @@ export declare const defaultExtensions: ({ ipfsImageFetchFn, onError, metadataPr
|
|
|
14
14
|
onCopyHeadingLink?: (link: string) => void;
|
|
15
15
|
fetchV1ImageFn?: (url: string) => Promise<ArrayBuffer | undefined>;
|
|
16
16
|
onTocUpdate?: (data: ToCItemType[], isCreate?: boolean) => void;
|
|
17
|
-
}) => (import('@tiptap/core').AnyExtension | import('@tiptap/core').Node<import('@tiptap/extension-horizontal-rule').HorizontalRuleOptions, any> | import('@tiptap/core').Extension<import('./multi-column').ColumnExtensionOptions, any> | import('@tiptap/core').Node<import('@tiptap/extension-heading').HeadingOptions, any> | import('@tiptap/core').Node<import('./iframe').IframeOptions, any> | import('@tiptap/core').Node<import('./twitter-embed').EmbeddedTweetOptions, any> | import('@tiptap/core').Node<import('./d-block').DBlockOptions, any> | import('@tiptap/core').Extension<import('./trailing-node').TrailingNodeOptions, any> | import('@tiptap/core').Node<import('./action-button').ActionButtonOptions, any> | import('@tiptap/core').Node<import('./resizable-media').MediaOptions, any> | import('@tiptap/core').Extension<import('./link-preview/link-preview').LinkPreviewOptions, any> | import('@tiptap/core').Node<import('@tiptap/extension-code-block-lowlight').CodeBlockLowlightOptions, any> | import('@tiptap/core').Mark<import('@tiptap/extension-text-style').TextStyleOptions, any> | import('@tiptap/core').Mark<import('@tiptap/extension-subscript').SubscriptExtensionOptions, any> | import('@tiptap/core').Extension<import('@tiptap/extension-text-style').FontFamilyOptions, any> | import('@tiptap/core').Extension<import('@tiptap/starter-kit').StarterKitOptions, any> | import('@tiptap/core').Extension<import('@tiptap/extension-table-of-contents').TableOfContentsOptions, import('@tiptap/extension-table-of-contents').TableOfContentsStorage> | import('@tiptap/core').Extension<import('@tiptap/extension-typography').TypographyOptions, any> | import('@tiptap/core').Extension<import('@tiptap/extension-text-align').TextAlignOptions, any> | import('@tiptap/core').Extension<import('@tiptap/extensions').PlaceholderOptions, any> | import('@tiptap/core').Mark<import('@tiptap/extension-highlight').HighlightOptions, any> | import('@tiptap/core').Node<import('@tiptap/extension-list').TaskListOptions, any> | import('@tiptap/core').Node<import('@tiptap/extension-list').TaskItemOptions, any> | import('@tiptap/core').Node<import('@tiptap/extension-list').BulletListOptions, any> | import('@tiptap/core').Node<import('@tiptap/extension-list').ListItemOptions, any> | import('@tiptap/core').Extension<import('@tiptap/extensions').DropcursorOptions, any> | import('@tiptap/core').Extension<import('tiptap-markdown').MarkdownOptions, import('tiptap-markdown').MarkdownStorage> | import('@tiptap/core').Extension<import('@tiptap/extensions').CharacterCountOptions, import('@tiptap/extensions').CharacterCountStorage> | import('@tiptap/core').Extension<import('@aarkue/tiptap-math-extension').MathExtensionOption, any>)[];
|
|
17
|
+
}) => (import('@tiptap/core').AnyExtension | import('@tiptap/core').Node<import('@tiptap/extension-horizontal-rule').HorizontalRuleOptions, any> | import('@tiptap/core').Extension<import('./multi-column').ColumnExtensionOptions, any> | import('@tiptap/core').Node<import('@tiptap/extension-heading').HeadingOptions, any> | import('@tiptap/core').Node<import('./iframe').IframeOptions, any> | import('@tiptap/core').Node<import('./twitter-embed').EmbeddedTweetOptions, any> | import('@tiptap/core').Node<import('./d-block').DBlockOptions, any> | import('@tiptap/core').Extension<import('./trailing-node').TrailingNodeOptions, any> | import('@tiptap/core').Node<import('./action-button').ActionButtonOptions, any> | import('@tiptap/core').Node<import('./resizable-media').MediaOptions, any> | import('@tiptap/core').Extension<import('./link-preview/link-preview').LinkPreviewOptions, any> | import('@tiptap/core').Node<import('@tiptap/extension-code-block-lowlight').CodeBlockLowlightOptions, any> | import('@tiptap/core').Mark<import('./custom-link').CustomLinkOptions, any> | import('@tiptap/core').Mark<import('@tiptap/extension-text-style').TextStyleOptions, any> | import('@tiptap/core').Mark<import('@tiptap/extension-subscript').SubscriptExtensionOptions, any> | import('@tiptap/core').Extension<import('@tiptap/extension-text-style').FontFamilyOptions, any> | import('@tiptap/core').Extension<import('@tiptap/starter-kit').StarterKitOptions, any> | import('@tiptap/core').Extension<import('@tiptap/extension-table-of-contents').TableOfContentsOptions, import('@tiptap/extension-table-of-contents').TableOfContentsStorage> | import('@tiptap/core').Extension<import('@tiptap/extension-typography').TypographyOptions, any> | import('@tiptap/core').Extension<import('@tiptap/extension-text-align').TextAlignOptions, any> | import('@tiptap/core').Extension<import('@tiptap/extensions').PlaceholderOptions, any> | import('@tiptap/core').Mark<import('@tiptap/extension-highlight').HighlightOptions, any> | import('@tiptap/core').Node<import('@tiptap/extension-list').TaskListOptions, any> | import('@tiptap/core').Node<import('@tiptap/extension-list').TaskItemOptions, any> | import('@tiptap/core').Node<import('@tiptap/extension-list').BulletListOptions, any> | import('@tiptap/core').Node<import('@tiptap/extension-list').ListItemOptions, any> | import('@tiptap/core').Extension<import('@tiptap/extensions').DropcursorOptions, any> | import('@tiptap/core').Extension<import('tiptap-markdown').MarkdownOptions, import('tiptap-markdown').MarkdownStorage> | import('@tiptap/core').Extension<import('@tiptap/extensions').CharacterCountOptions, import('@tiptap/extensions').CharacterCountStorage> | import('@tiptap/core').Extension<import('@aarkue/tiptap-math-extension').MathExtensionOption, any>)[];
|
|
18
18
|
export declare const createInputRule: (pattern: RegExp, data: string, type: NodeType) => InputRule;
|
|
@@ -22,7 +22,7 @@ declare module '@tiptap/core' {
|
|
|
22
22
|
declare const MarkdownPasteHandler: (ipfsImageUploadFn?: (file: File) => Promise<IpfsImageUploadResponse>, ipfsImageFetchFn?: (_data: IpfsImageFetchPayload) => Promise<{
|
|
23
23
|
url: string;
|
|
24
24
|
file: File;
|
|
25
|
-
}>, fetchV1ImageFn?: (url: string) => Promise<ArrayBuffer | undefined
|
|
25
|
+
}>, fetchV1ImageFn?: (url: string) => Promise<ArrayBuffer | undefined>) => Extension<any, any>;
|
|
26
26
|
export declare const stripFrontmatter: (markdown: string) => string;
|
|
27
27
|
export declare function handleMarkdownContent(view: any, content: string, ipfsImageUploadFn?: (file: File) => Promise<IpfsImageUploadResponse>): Promise<void>;
|
|
28
28
|
export default MarkdownPasteHandler;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Heading links have the form `<origin>/<path>#heading=<slug>-<uuid8>`.
|
|
3
|
+
* They're created by the copy-heading-link button in the TOC and the
|
|
4
|
+
* block handle menu. Consumers of a dDoc paste these URLs expecting
|
|
5
|
+
* same-page scroll behavior; but the same URL shape is also used for
|
|
6
|
+
* cross-document heading links, which we need to detect and warn about.
|
|
7
|
+
*/
|
|
8
|
+
export interface ParsedHeadingLink {
|
|
9
|
+
/** The raw `heading` hash param value (e.g. `my-heading-a1b2c3d4`). */
|
|
10
|
+
headingParam: string;
|
|
11
|
+
/** The short id suffix used to locate the heading in the DOM. */
|
|
12
|
+
id: string;
|
|
13
|
+
/** The heading element in the current document, if present. */
|
|
14
|
+
headingEl: HTMLHeadingElement | undefined;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Parses a URL and, if it's a heading link pointing at the current origin,
|
|
18
|
+
* returns the heading param, id, and the matching DOM element (if any).
|
|
19
|
+
*
|
|
20
|
+
* Returns `null` when the URL is not parseable, is cross-origin, has no
|
|
21
|
+
* hash, or does not carry a `heading=` param.
|
|
22
|
+
*/
|
|
23
|
+
export declare const parseHeadingLink: (rawUrl: string) => ParsedHeadingLink | null;
|