基于语雀编辑器的在线文档编辑与查看

这篇具有很好参考价值的文章主要介绍了基于语雀编辑器的在线文档编辑与查看。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

语雀是一个非常优秀的文档和知识库工具,其编辑器更是非常好用,虽无开源版本,但有编译好的可以使用。本文基于语雀编辑器实现在线文档的编辑与文章的预览。

实现效果

基于语雀编辑器的在线文档编辑与查看,GIS加油站,编辑器

基于语雀编辑器的在线文档编辑与查看,GIS加油站,编辑器

实现

参考语雀编辑器官方文档,其实现需要引入以下文件:文章来源地址https://www.toymoban.com/news/detail-697970.html

<link rel="stylesheet" type="text/css" href="https://gw.alipayobjects.com/render/p/yuyan_npm/@alipay_lakex-doc/1.1.0-beta.1/umd/doc.css"/>
<link rel="stylesheet" type="text/css" href="https://unpkg.com/antd@4.24.13/dist/antd.css"/>
<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选区工具栏
      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表示需要转存,会调用createUploadPromise
      return false;
    },
    // 配置上传接口,要返回一个promise对象
    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

// 获取文档内容
docEditor.getDocument('text/lake')

// 设置文档内容
docEditor.setDocument('text/lake', docContent);

2. 文章预览

const { createOpenViewer } = window.Doc;
// 创建阅读器
 const viewer = createOpenViewer(this.$refs.editor, {});
viewer.setDocument('text/lake', docContent);

到了这里,关于基于语雀编辑器的在线文档编辑与查看的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python编辑器手机版怎么用,python编辑器手机版在线

    本篇文章给大家谈谈手机软件编辑器中文版python,以及python编辑器手机版下载官方,希望对各位有所帮助,不要忘了收藏本站喔。 文章目录 前言 QPython OH Aid Learning Python入门教程 👉Python学习视频600合集👈 👉实战案例👈 👉100道Python练习题👈 👉面试刷题👈 资料领取 手机

    2024年01月22日
    浏览(46)
  • 整理6个超好用的在线编辑器!

    随着 Web 开发对图像可扩展性、响应性、交互性和可编程性的需求增加,SVG 图形成为最适合 Web 开发的图像格式之一。它因文件小、可压缩性强并且无论如何放大或缩小,图像都不会失真而受到欢迎。然而,为了编辑 SVG 图像,需要使用 SVG 编辑工具 。在本文中,我们搜集并整

    2024年02月06日
    浏览(45)
  • javafx写一个文档编辑器

            文本编辑器是一种用于编辑纯文本文件的工具。它具有基本的文本编辑功能,如插入、删除、复制、粘贴等。文本编辑器通常不具备格式化文本、排版和图形编辑等高级功能,专注于纯文本的编辑。常见的文本编辑器包括记事本(Notepad)、Sublime Text、Visual Studio Cod

    2024年02月04日
    浏览(35)
  • 分享两个Latex在线公式编辑器的网站

    第一个:在线LaTeX公式编辑器-编辑器 (latexlive.com) 第二个:Online LaTeX Equation Editor - create, integrate and download (codecogs.com) 

    2024年02月12日
    浏览(38)
  • 如何将c#在线编辑器嵌入自己项目

    首先我们需要介绍一下这个在线编辑器,当前的在线编辑器支持c#的代码编译运行,并且无需后台服务,基于 WebAssembly 实现的在浏览器端去执行我们的 c# 代码,基于 Roslyn 提供的 Api 封装一套简单的编译,并且封装了 js 的支持,让嵌入的方式更简单。 最简单的嵌入方式是使用

    2024年02月03日
    浏览(38)
  • 在线代码编辑器code-server

    今天是上海浦西全域静态管理的第 32 天。祝大家 5.1 假期 “无疫” 快乐! 周五、周六休息,没做核酸也没做抗原,周日、周一抗原。 周六再次迎来了降级,小区从管控区降为了防范区,不过还是按管控区管理,反正就是不能出小区,也许防范区是给未来的解封准备的吧。

    2024年02月04日
    浏览(60)
  • 六个好用的在线代码编辑器,你选哪个?

    CodeSandbox CodeSandbox 是一个在线代码编辑器,主要用于创建 Web 应用项目,其提供了多种模块: CodeSandbox 为前端开发提供了完整的代码编辑器体验和沙盒环境。其包含了很多实用功能: Npm 支持:可以添加几乎任何 npm 上可用的包; 支持 TypeScript、热更新、GitHub 导出、静态文件

    2024年02月04日
    浏览(52)
  • JAVA在线电子病历编辑器源码 B/S架构

    电子病历在线制作、管理和使用的一体化电子病历解决方案,通过一体化的设计,提供对住院病人的电子病历书写、保存、修改、打印等功能。电子病历系统将临床医护需要的诊疗资料以符合临床思维的方法展示。建立以病人为中心,以临床诊疗信息为主线,集成门急诊、住

    2024年02月07日
    浏览(35)
  • 结合ace编辑器实现MapboxGL热力图样式在线配置

    MapboxGL热力图的配置参数并不多,但是有时候为了或得一个比较好用的热力图配置参数,我们不得不改代码再预览,显得尤为麻烦,为方便配置,实现实时预览,本文使用ace实现了一个热力图样式在线配置页面。 Vue3 + Element Plus ace Editor mapboxGL csv、json、geojson数据上传并解析

    2024年02月11日
    浏览(38)
  • 写毕设投期刊神器——在线LaTeX编辑器Overleaf

    LaTeX 是是科研工作中最常用的文档排版系统,然而我个人觉得很多 LaTeX 编辑器没有做到开箱即用,即使别人告诉我 LaTeX 的文献管理是多么方便。造成很长一段时间,我都处于: LaTeX 真好,但我选Markdown。 而Overleaf让我重新喜欢上使用LaTeX了,Overleaf是开源的在线 LaTeX 编辑器软

    2024年01月19日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包