基于語雀編輯器的在線文檔編輯與查看功能
概述
語雀是一個(gè)非常優(yōu)秀的文檔和知識(shí)庫工具,其編輯器更是非常好用,雖無開源版本,但有編譯好的可以使用。本文基于語雀編輯器實(shí)現(xiàn)在線文檔的編輯與文章的預(yù)覽。
實(shí)現(xiàn)效果


實(shí)現(xiàn)
參考語雀編輯器官方文檔,其實(shí)現(xiàn)需要引入以下文件:
<link rel="stylesheet" type="text/css" rel="external nofollow" /> <link rel="stylesheet" type="text/css" rel="external nofollow" /> <script crossorigin src="https://unpkg.com/react@18/umd/react.production.min.js"></script> <script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script> <script src="https://gw.alipayobjects.com/render/p/yuyan_npm/@alipay_lakex-doc/1.1.0-beta.1/umd/doc.umd.js"></script>
1. 文檔編輯
const { createOpenEditor, toolbarItems } = window.Doc;
docEditor = createOpenEditor(this.$refs.editor, {
toolbar: {
agentConfig: {
default: {
items: [
toolbarItems.cardSelect,
'|',
toolbarItems.undo,
toolbarItems.redo,
toolbarItems.formatPainter,
toolbarItems.clearFormat,
'|',
toolbarItems.style,
toolbarItems.fontsize,
toolbarItems.bold,
toolbarItems.italic,
toolbarItems.strikethrough,
toolbarItems.underline,
toolbarItems.mixedTextStyle,
'|',
toolbarItems.color,
toolbarItems.bgColor,
'|',
toolbarItems.alignment,
toolbarItems.unorderedList,
toolbarItems.orderedList,
toolbarItems.indent,
toolbarItems.lineHeight,
'|',
toolbarItems.taskList,
toolbarItems.link,
toolbarItems.quote,
toolbarItems.hr,
]
},
// table選區(qū)工具欄
table: {
items: [
toolbarItems.cardSelect,
'|',
toolbarItems.undo,
toolbarItems.redo,
toolbarItems.formatPainter,
toolbarItems.clearFormat,
'|',
toolbarItems.style,
toolbarItems.fontsize,
toolbarItems.bold,
toolbarItems.italic,
toolbarItems.strikethrough,
toolbarItems.underline,
toolbarItems.mixedTextStyle,
'|',
toolbarItems.color,
toolbarItems.bgColor,
toolbarItems.tableCellBgColor,
toolbarItems.tableBorderVisible,
'|',
toolbarItems.alignment,
toolbarItems.tableVerticalAlign,
toolbarItems.tableMergeCell,
'|',
toolbarItems.unorderedList,
toolbarItems.orderedList,
toolbarItems.indent,
toolbarItems.lineHeight,
'|',
toolbarItems.taskList,
toolbarItems.link,
toolbarItems.quote,
toolbarItems.hr,
],
}
}
},
image: {
isCaptureImageURL:(url) => {
// return false表示需要轉(zhuǎn)存,會(huì)調(diào)用createUploadPromise
return false;
},
// 配置上傳接口,要返回一個(gè)promise對(duì)象
createUploadPromise: (request) => {
const {type, data} = request;
if(type === 'url') {
return Promise.resolve({
url: url,
filename: '上傳圖片'
});
} else if(type === 'file') {
return new Promise(resolve => {
let formData = new FormData();
formData.set("file", data);
//這里使用封裝的上傳文件的接口
upload('file/upload/img', formData)
.then(res => {
if(res.code === 200) {
const {fileName, url} = res.data
resolve({
url: url,
filename: fileName
});
} else {
ElMessage({
message: '圖片上傳失敗!',
type: 'warning',
})
}
})
})
}
},
}
});
window.docEditor = docEditor
// 獲取文檔內(nèi)容
docEditor.getDocument('text/lake')
// 設(shè)置文檔內(nèi)容
docEditor.setDocument('text/lake', docContent);2. 文章預(yù)覽
const { createOpenViewer } = window.Doc;
// 創(chuàng)建閱讀器
const viewer = createOpenViewer(this.$refs.editor, {});
viewer.setDocument('text/lake', docContent);到此這篇關(guān)于基于語雀編輯器的在線文檔編輯與查看的文章就介紹到這了,更多相關(guān)語雀編輯器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解git merge 與 git rebase的區(qū)別
這篇文章主要介紹了詳解git merge 與 git rebase的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
git與svn的區(qū)別及優(yōu)缺點(diǎn)說明
Git和SVN都是版本控制系統(tǒng),用于代碼管理,SVN是集中式的,需要聯(lián)網(wǎng)并且中央服務(wù)器存在單點(diǎn)故障的風(fēng)險(xiǎn),Git是分布式的,每個(gè)終端都是一個(gè)完整的倉(cāng)庫,不依賴中央服務(wù)器,提高了工作的靈活性和安全性,SVN易于管理權(quán)限,但必須聯(lián)網(wǎng)工作且更新提交可能面臨沖突2024-10-10
Websocket直播間聊天室教程 GoEasy快速實(shí)現(xiàn)聊天室
這篇文章主要介紹了Websocket直播間聊天室教程 GoEasy快速實(shí)現(xiàn)聊天室,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
使用Git Hook技術(shù)定義和校驗(yàn)代碼提交模板方式
這篇文章主要介紹了使用Git Hook技術(shù)定義和校驗(yàn)代碼提交模板方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11

