diff --git a/composables/content-parse.ts b/composables/content-parse.ts index d5db2fe9..302b674e 100644 --- a/composables/content-parse.ts +++ b/composables/content-parse.ts @@ -460,7 +460,7 @@ function transformMentionLink(node: Node): string | Node | (string | Node)[] | n if (matchUser) { const [, server, username] = matchUser const handle = `${username}@${server.replace(/(.+\.)(.+\..+)/, '$2')}` - // convert to TipTap mention node + // convert to Tiptap mention node return h('span', { 'data-type': 'mention', 'data-id': handle }, handle) } } diff --git a/composables/tiptap.ts b/composables/tiptap.ts index 9b05f66b..64c1d9da 100644 --- a/composables/tiptap.ts +++ b/composables/tiptap.ts @@ -12,10 +12,10 @@ import History from '@tiptap/extension-history' import { Plugin } from 'prosemirror-state' import type { Ref } from 'vue' -import { HashtagSuggestion, MentionSuggestion } from './tiptap/suggestion' -import { CodeBlockShiki } from './tiptap/shiki' -import { CustomEmoji } from './tiptap/custom-emoji' -import { Emoji } from './tiptap/emoji' +import { TiptapEmojiSuggestion, TiptapHashtagSuggestion, TiptapMentionSuggestion } from './tiptap/suggestion' +import { TiptapPluginCodeBlockShiki } from './tiptap/shiki' +import { TiptapPluginCustomEmoji } from './tiptap/custom-emoji' +import { TiptapPluginEmoji } from './tiptap/emoji' export interface UseTiptapOptions { content: Ref @@ -43,30 +43,30 @@ export function useTiptap(options: UseTiptapOptions) { Italic, Code, Text, - Emoji, - CustomEmoji.configure({ + TiptapPluginEmoji, + TiptapPluginCustomEmoji.configure({ inline: true, HTMLAttributes: { class: 'custom-emoji', }, }), Mention.configure({ - suggestion: MentionSuggestion, + suggestion: TiptapMentionSuggestion, }), Mention .extend({ name: 'hashtag' }) .configure({ - suggestion: HashtagSuggestion, + suggestion: TiptapHashtagSuggestion, }), Mention .extend({ name: 'emoji' }) .configure({ - suggestion: EmojiSuggestion, + suggestion: TiptapEmojiSuggestion, }), Placeholder.configure({ placeholder: () => placeholder.value!, }), - CodeBlockShiki, + TiptapPluginCodeBlockShiki, History.configure({ depth: 10, }), diff --git a/composables/tiptap/custom-emoji.ts b/composables/tiptap/custom-emoji.ts index 025a3f38..d8829927 100644 --- a/composables/tiptap/custom-emoji.ts +++ b/composables/tiptap/custom-emoji.ts @@ -25,9 +25,9 @@ declare module '@tiptap/core' { } } -export const inputRegex = /(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/ +const inputRegex = /(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/ -export const CustomEmoji = Node.create({ +export const TiptapPluginCustomEmoji = Node.create({ name: 'custom-emoji', addOptions() { diff --git a/composables/tiptap/emoji.ts b/composables/tiptap/emoji.ts index ad5dbdd9..cdae88aa 100644 --- a/composables/tiptap/emoji.ts +++ b/composables/tiptap/emoji.ts @@ -35,7 +35,7 @@ const createEmojiRule = ] } -export const Emoji = Node.create({ +export const TiptapPluginEmoji = Node.create({ name: 'em-emoji', inline: () => true, diff --git a/composables/tiptap/shiki.ts b/composables/tiptap/shiki.ts index e38124e0..02599f5c 100644 --- a/composables/tiptap/shiki.ts +++ b/composables/tiptap/shiki.ts @@ -12,7 +12,7 @@ export interface CodeBlockShikiOptions extends CodeBlockOptions { defaultLanguage: string | null | undefined } -export const CodeBlockShiki = CodeBlock.extend({ +export const TiptapPluginCodeBlockShiki = CodeBlock.extend({ addOptions() { return { ...this.parent?.(), diff --git a/composables/tiptap/suggestion.ts b/composables/tiptap/suggestion.ts index cd0708dd..f359bfc2 100644 --- a/composables/tiptap/suggestion.ts +++ b/composables/tiptap/suggestion.ts @@ -16,7 +16,7 @@ export { Emoji } export type CustomEmoji = (mastodon.v1.CustomEmoji & { custom: true }) export const isCustomEmoji = (emoji: CustomEmoji | Emoji): emoji is CustomEmoji => !!(emoji as CustomEmoji).custom -export const MentionSuggestion: Partial = { +export const TiptapMentionSuggestion: Partial = { pluginKey: new PluginKey('mention'), char: '@', async items({ query }) { @@ -29,7 +29,7 @@ export const MentionSuggestion: Partial = { render: createSuggestionRenderer(TiptapMentionList), } -export const HashtagSuggestion: Partial = { +export const TiptapHashtagSuggestion: Partial = { pluginKey: new PluginKey('hashtag'), char: '#', async items({ query }) { @@ -48,7 +48,7 @@ export const HashtagSuggestion: Partial = { render: createSuggestionRenderer(TiptapHashtagList), } -export const EmojiSuggestion: Partial = { +export const TiptapEmojiSuggestion: Partial = { pluginKey: new PluginKey('emoji'), char: ':', async items({ query }): Promise<(CustomEmoji | Emoji)[]> {