728x90
Tiptap
에러
RangeError: Adding different instances of a keyed plugin (plugin$)
기능 만들기
Youtube 넣기
작업 결과
https://tiptap.dev/api/nodes/youtube
컴포넌트 코드
import { Editor, EditorContent } from '@tiptap/vue-2';
import StarterKit from '@tiptap/starter-kit';
import Youtube from '@tiptap/extension-youtube';
export defualt {
name: "TiptapComponent",
mounted() {
this.editor = new Editor({
extensions: [
// ⭐️ 유튜브 추가 설정
Youtube.configure({
controls: false,
width: 480, // defualt: 640
height: 320, // defualt: 480
}),
],
content: '<p>I’m running Tiptap with Vue.js. 🎉</p>',
});
},
methods: {
addVideo() {
const url = prompt('Enter YouTube URL');
this.editor.commands.setYoutubeVideo({
src: url,
width: Math.max(320, parseInt(this.width, 10)) || 640,
height: Math.max(180, parseInt(this.height, 10)) || 480,
});
},
},
}
위의 스크립트와 같은 파일 컴포넌트에 <template>
<template>
<div>
<div class="flex gap-2 mt-4 mb-2 items-center">
<!-- ⭐️ 유튜브 버튼 -->
<button class="hover:bg-[#EAEAEA] rounded p-[10px]" @click="addVideo">
<img src="~/static/fonts/gguge-icon/Interface/solid_youtube.svg" />
</button>
</div>
<!-- 에디터 영역 -->
<client-only>
<editor-content
:editor="editor"
class="rounded border w-full h-full max-h-[700px] hover:border-[#777777] overflow-auto"
/>
</client-only>
</div>
</template>
LINK 붙이기
결과
728x90
'Nuxtjs' 카테고리의 다른 글
[Nuxtjs]Lottie json 적용하기 (0) | 2022.08.09 |
---|---|
[Nuxtjs] @vue/unit-tests 환경 만들기 (1) | 2022.07.13 |
[Nuxtjs] 뒤로가기 기능 구현 방법 (0) | 2022.06.23 |
[Nuxt.js] 무한 스크롤 구현한 사례 (0) | 2022.06.01 |
[nuxtjs] $auth auth._token_expiration.local (0) | 2022.05.18 |
댓글