Vue-BL-Markdown-Editor
Один из основанных на markdown-it высоко расширяемых компонентов редактора Vue.
Позволяет предоставлять слоты для пользовательских инструментов.
Позволяет динамически регистрировать компоненты и вставлять их в определённые позиции панели инструментов.
Преимущества: можно полностью настроить функции панели инструментов, вызовы markdown-it плагинов и т. д.
$ npm install vue-bl-markdown-editor --save
main.js
:
// Глобальная регистрация
// import with ES6
import Vue from 'vue'
import MarkDownEditor from 'vue-bl-markdown-editor'
import 'vue-bl-markdown-editor/dist/css/main.css'
// use
Vue.use(MarkDownEditor);
new Vue({
'el': '#main',
data() {
return { value: '' }
}
})
<!--Этот компонент использует библиотеку шрифтов font-awesome, пожалуйста, предварительно импортируйте её в index.html-->
<link href="//cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<!--Стиль кода, подробнее см. https://highlightjs.org -->
<link href="//cdn.bootcss.com/highlight.js/9.14.1/styles/atom-one-dark.min.css" rel="stylesheet">
<!--Тема редактора-->
<link href="//cdn.bootcss.com/github-markdown-css/3.0.1/github-markdown.min.css" rel="stylesheet">
Имя | Тип | Значение по умолчанию | Описание |
---|---|---|---|
placeholder | String | Введите контент | Текст подсказки |
height | Number | 500 | Высота редактора |
isShowToolBar | Boolean | true | Отображать ли панель инструментов |
isShowToolBarRight | Boolean | true | Отображать ли правую панель инструментов |
showMode | String | edit | Режим отображения, edit, see режим редактирования/предварительного просмотра, isSplit не действует при истинном значении |
isShowSplit | Boolean | true | Разделять ли экран, только один может отображаться на мобильном телефоне, это состояние недействительно |
toolBars | Array | См. ниже | Панель инструментов, порядок и отображение |
config | Object | См. ниже | Конфигурация панели инструментов |
isSyncScroll | Boolean | true | Синхронно ли прокручивать |
Пример панели инструментов разработчика см. src/dev/toolBar
Имя | Описание |
---|---|
bold | Жирный |
italic | Курсив |
header | Заголовок |
underline | Подчёркивание |
strikethrough | Зачёркивание |
thumb-tack | Пометка |
superscript | Верхний индекс |
subscript | Нижний индекс |
align-left | Выравнивание по левому краю |
align-center | Выравнивание по центру |
align-right | Выравнивание по правому краю |
quote-left | Цитата абзаца |
list-ol | Нумерованный список |
list-ul | Маркированный список |
link | Ссылка |
picture | Изображение |
code | Блок кода |
table | Таблица |
emoji | Эмоджи |
undo | Отменить |
repeat | Повторить |
trash | Очистить |
about | О программе, сохранить |
separator | Разделитель |
config: {
emojis:{
// Настройка нескольких эмодзи
more:[{name:'test',datas:['1','2']}],
// перекрывать ли по умолчанию
isCover: true
},
// Конфигурация загрузки изображений
picture:{
// Необходимо передать путь после загрузки/перетаскивания/загрузки
// from paste/drag/upload вставить/перетащить/загрузить
// Обратный вызов асинхронный, используйте promise для примера, см. src/dev/App.vue
uploadCallback: (file,from)=>{
return new Promise(resolve => {
resolve({name:'',url: ''});
});
},
// Анализировать ли список изображений
resolving: true
}
}
toolBars:[
'bold','italic',...больше
]
let editor = this.$refs.editor;
let toolBar1 = editor.registerToolBarComponent('demo1',require(Example1.vue));
editor.addToolBar(toolBar1/*,0 вставить позицию*/);
Имя | Параметр | Описание |
---|---|---|
registerToolBarComponent | Имя компонента, компонент | Динамически зарегистрировать компонент как панель инструментов, посмотреть, как использовать выше |
addToolBar | Экземпляр компонента registerToolBarComponent, добавить позицию (по умолчанию последняя) | Добавить панель инструментов компонента |
delToolBar | Удалить позицию | Удалить панель инструментов указанной позиции (не включая вставленную через слот) |
insertContent | Префикс, содержимое, суффикс, принудительно ли заменять содержимое, вставлять ли при выборе | Вставить содержимое |
Имя | Параметр | Описание |
---|---|---|
input | Содержимое | Ввести содержимое |
ready | markdownit | Загрузка завершена |
Имя | Описание |
---|---|
tool-bar-left-head | Слот панели инструментов слева |
tool-bar-left-foot | Слот левой панели инструментов в конце |
tool-bar-right-head | Слот правой панели инструментов в начале |
tool-bar-right-foot | Слот правой панели инструментов в конце |
Проблемы совместимости записи звука (тестирование chrom/firefox нормальное, edge не удалось)
Должен работать под https, тестовый запуск нормальный
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )