-
Notifications
You must be signed in to change notification settings - Fork 126
/
plan.txt
50 lines (38 loc) · 4.55 KB
/
plan.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
TODO идея по тому что ниже: импортировать иконки из @mdi/js если используется mdiSvg, только тогда. У пользователя должен быть установлен @mdi/js.
TODO не включать не нужные иконки в бандл. Например, позволять пользователю импортировать нужные ему иконки, но не забыть что сторонние плагины должны иметь возможность включать иконки.
Написать гайд как добавлять свои расширения и менять уже существующие.
Важно:
1. Полностью абстрагироваться от конкретной библиотеки через которую происходит рендеринг. Т.е. не быть привязанным к
vuetify. Думаю сделать отдельный пакет (e.g. tiptap-abstract-render-core), который отвичает за логику не связанную с непосредственным отображением.
Пакеты tiptap-vuetify, tiptap-bootstrap и т.д. будут использовать этот отдельный пакет, будут передавать
(через аргумент, например, и нужно передвать много компонентов) свои .vue компоненты которые отвечают за рендеринг.
Отдельные расширения-пакеты, типа загрузки картинок также должны быть абстрагированны от рендеринга. Тут можно сделать как отдельные пакеты.
Но мне кажется можно сразу в одном пакете, просто подключать как отдельный бандл по необходимости, таким образом
не будет лишнего занимать в бандле проектов пользователей.
2. Проверить не входят ли dependencies и pearDependencies в бандл. Если входят, то можно попробовать rollup-plugin-auto-external.
Вроде лишнее (external) не входит.
1. Сделать свое расширение которое добавляет смайлы в радактор, чтобы был список выбора смайлов, был поиск по ним.
2. Сделать загрузку изображений.
- чтобы была возможность выбирать между видами загрузки (драйверами, модулями, не знаю как назвать), по умолчания
чтобы был imgur загрузка, но подумать как сделать чтобы загрузку можно было легко кастомизировать для своего бекенда
и чтобы можно было добавить другой модуль (кроме imgur)
3. Сделать действие кнопки более гибким: после нажатия может открываться модальное окно или появлятся другое bubble меню
(например, как сейчас работает добавление ссылки).
4. Расширения могут отображаться не обязательно в тулбаре, сделать чтобы пользователь мог указывать где должно
указывать каждое расширение. Например, в тулбаре или в bubbleMenu, в будущем могут быть еще варианты.
5. Сделать чтобы дополнительные расширения (e.g. загрузка изображений) шли в отдельном пакете.
6. Возможность переопределять текст в i18n
7. Гибкий способ использования компонента:
<tiptap-vuetify>
<tiptap-vuetify-toolbar />
<tiptap-vuetify-content />
</tiptap-vuetify>
или
<tiptap-vuetify>
<tiptap-vuetify-toolbar v-slot="data">
Опираясь на data пользователь может вывести данные
</tiptap-vuetify-toolbar>
<tiptap-vuetify-content v-slot="data">
Опираясь на data пользователь может вывести данные
</tiptap-vuetify-content>
</tiptap-vuetify>