前端:开源免费的浏览器端Markdown编辑器——Vditor上手体验

news2024/12/25 0:21:12

今天给大家聊聊一款开源免费的浏览器端Markdown编辑器——Vditor,非常的好用,分享给大家!

一、编辑器简介

image.png
Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。提供桌面版。支持Windows、Linux、MacOS、浏览器扩展、安卓、IOS版本。

官网:https://b3log.org/vditor/

GitHub:https://github.com/Vanessa219/vditor

桌面版下载:https://b3log.org/siyuan/download.html

二、功能特性

● 支持三种编辑模式:所见即所得(wysiwyg)、即时渲染(ir)、分屏预览(sv)

● 支持大纲、数学公式、脑图、图表、流程图、甘特图、时序图、五线谱、多媒体、语音阅读、标题锚点、代码高亮及复制、graphviz、PlantUML 渲染

● 内置安全过滤、导出、图片懒加载、任务列表、多平台预览、多主题切换、复制到微信公众号/知乎功能

● 实现 CommonMark 和 GFM 规范,可对 Markdown 进行格式化和语法树查看,并支持10+项配置

● 工具栏包含 36+ 项操作,除支持扩展外还可对每一项中的快捷键、提示、提示位置、图标、点击事件、类名、子工具栏进行自定义

● 表情/at/话题等自动补全扩展

● 可使用拖拽、剪切板粘贴上传,显示实时上传进度,支持 CORS 跨域上传

● 实时保存内容,防止意外丢失

● 录音支持,用户可直接发布语音

● 粘贴 HTML 自动转换为 Markdown,如粘贴中包含外链图片可通过指定接口上传到服务器

● 支持主窗口大小拖拽、字符计数

● 多主题支持,内置黑白绿三套主题

● 多语言支持,内置中、英、韩文本地化

● 支持主流浏览器,对移动端友好

三、编辑器模式初始化设定

2.1 所见即所得模式

即所得模式对不熟悉 Markdown 的用户较为友好,熟悉 Markdown 的话也可以无缝使用。

new Vditor('vditor', {
  "height": 360,
  "cache": {
    "enable": false
  },
  "value": "## 所见即所得(WYSIWYG)\n所见即所得模式对不熟悉 Markdown 的用户较为友好,熟悉 Markdown 的话也可以无缝使用。 ",
  "mode": "wysiwyg"
})

2.2 即时渲染模式

对熟悉 Typora 的用户应该不会感到陌生,理论上这是最优雅的 Markdown 编辑方式。

new Vditor('vditor', {
  "height": 360,
  "cache": {
    "enable": false
  },
  "value": "## 即时渲染(IR)\n即时渲染模式对熟悉 Typora 的用户应该不会感到陌生,理论上这是最优雅的 Markdown 编辑方式。",
  "mode": "ir"
})

2.3 分屏预览(SV)

该模式目前没有发现具体的使用场景。

new Vditor('vditor', {
  "height": 360,
  "cache": {
    "enable": false
  },
  "value": "## 分屏预览(SV)\n传统的分屏预览模式适合大屏下的 Markdown 编辑。",
  "mode": "sv",
  "preview": {
    "mode": "editor"
  }
})

在这里插入图片描述

2.4 分屏预览模式

分屏预览(SV)\n传统的分屏预览模式适合大屏下的 Markdown 编辑

new Vditor('vditor', {
  "height": 360,
  "cache": {
    "enable": false
  },
  "value": "## 分屏预览(SV)\n传统的分屏预览模式适合大屏下的 Markdown 编辑。",
  "mode": "sv",
  "preview": {
    "mode": "both"
  }
})

四、案例代码

直接采用最原始的html提供完整的示例代码,直接可以运行。

<html>
    
    <head>
	<title>vditor编辑器</title>
     <link rel="stylesheet" href="https://unpkg.com/vditor/dist/index.css" />
    <script src="https://unpkg.com/vditor/dist/index.min.js"></script>
    </head>    
    <body>
        <input type="button" onclick="getContent()" value="确定" />
        <div id="content">
        </div>
        <script>
            var vditor = null;
            window.onload = function() {
                vditor = new Vditor(document.getElementById('content'), {
                    cache: {
                        enable: false
                    },
                    "mode": "sv",
                    "preview": {
                        "mode": "both"
                    }
                });

            }
			// 测试数据填充
            function getContent() {

                vditor.setValue("## 测试 \n ### 二级标题 ");
            }
        </script>
    </body>

</html>

运行效果

参考资料:https://b3log.org/vditor/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/610345.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:用Python轻松处理奇偶数——Python奇偶数处理教程

用Python轻松处理奇偶数——Python奇偶数处理教程 什么是奇偶数&#xff1f; 在数学中&#xff0c;任何整数都可以被分为两类&#xff1a;奇数和偶数。奇数是指不能被2整除的整数&#xff0c;而偶数是指可以被2整除的整数。例如&#xff0c;1、3、5、7等都是奇数&#xff0c;…

阵列卡缓存 RAID Cache

简介 磁盘阵列(Redundant Arrays of Independent Drives&#xff0c;RAID)&#xff0c;有“独立磁盘构成的具有冗余能力的阵列”之意。 RAID卡电路板上的一块存储芯片&#xff0c;与硬盘盘片相比&#xff0c;具有极快的存取速度&#xff0c;实际上就是相对低速的硬盘盘片与相…

TypeScript 的魔法技能:satisfies

现在&#xff0c;随着 TS 4.9 的发布&#xff0c;在 TypeScript 中有了一种新的、更好的方式来做类型安全校验。它就是 satisfies &#xff1a; type Route { path: string; children?: Routes } type Routes Record<string, Route>const routes {AUTH: {path: &quo…

MySQL-索引详解(上)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a;小刘主页 ♥️每天分享云计算网络运维课堂笔记&#xff0c;努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️树高千尺&#xff0c;落叶归根人生不易&…

零入门kubernetes网络实战-34->将物理网卡eth0挂载到虚拟网桥上使得内部网络能够跨主机ping通外网的方案

《零入门kubernetes网络实战》视频专栏地址 https://www.ixigua.com/7193641905282875942 本篇文章视频地址(稍后上传) 本篇文章模拟一下啊&#xff0c;将宿主机的对外的物理网卡&#xff0c;挂载到虚拟网桥上&#xff0c;测试一下&#xff0c; 网桥管理的内部网络如何跟宿主…

华为OD机试真题 Java 实现【太阳能板最大面积】【2022Q4 100分】,附详细解题思路

一、题目描述 给航天器一侧加装长方形或正方形的太阳能板&#xff08;图中的红色斜线区域&#xff09;&#xff0c;需要先安装两个支柱&#xff08;图中的黑色竖条&#xff09;&#xff0c;再在支柱的中间部分固定太阳能板。 但航天器不同位置的支柱长度不同&#xff0c;太阳…

Linux账号管理与ACL权限设定(二)

使用者身份切换 通常以一般账号登录系统&#xff0c;若有系统维护或软件更新才需要转为root身份来操作。 su 若要完整的切换到新使用者的环境&#xff0c;必须要用 su – username &#xff0c;才会连同环境 PATH/USER/MAIL 等变量都转成新用户的环境。 若仅想执行一次root…

Linux学习[14]默认文本编辑vi/vim介绍常用指令演示指令汇总

文章目录 前言&#xff1a;1. vi介绍2. 指令演示2.1 vi创建文件2.2 添加文本 3. 指令汇总3.1 一般指令模式可用的按钮说明&#xff0c;光标移动、复制贴上、搜寻取代等3.2 进入插入或取代的编辑模式3.3 一般指令模式切换到命令行界面的可用按钮说明 总结 前言&#xff1a; 之前…

pycharm和virtualBox虚拟机的安装(包括本地环境和远程环境配置)

目录 一、安装时需要的软件二、安装virtualBox三、安装pycharm四、创建pycharm本地环境五、创建pycharm远程环境 一、安装时需要的软件 Pycharm&#xff0c;jetbrains-agent-latest破解包&#xff08;破解pycharm&#xff09;;镜像文件ubuntu20&#xff0c;虚拟机virtualBox …

【Android】通过Profiling工具和adb确定app被系统杀死的原因

当您想要确定安卓App被系统杀死的原因时&#xff0c;可以通过以下步骤进行分析&#xff1a; 打开Android Studio中的Profiling工具 在您的项目中&#xff0c;打开Android Studio并进入Profiling工具。点击左上角的“Android Profiler”图标&#xff0c;选择“CPU”或“Memor…

【Linux】Linux编译器 gcc/g++的使用初识动静态链接库

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;Linux &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【Linux】…

chatgpt赋能python:Python处理DICOM文件

Python处理DICOM文件 DICOM (Digital Imaging and Communications in Medicine)是医疗图像和数据的标准&#xff0c;用于存储和交换医学图像和相关信息。在医疗领域中&#xff0c;DICOM文件是医生和医学技师进行诊断和治疗的必要条件。在本文中&#xff0c;我们将介绍如何使用…

Linux下配置Qt6安卓开发环境

安装JDK 选择自己定义JDK安装路径 点击如下图按钮 安装SDK 提示TLS初始化失败 由于HTTPS问题造成无法下载,暂用Android Studio来安装Android SDK 成功安装SDK 安装NDK与命令行工具 正在下载NDK及命令行工具 NDK与工具下载完成 配置QT的Android SDK路径 配置NDK路径 选择ND…

Nginx服务性能和安全优化(念念不忘,必没回响)

一、配置Nginx隐藏版本相关信息 1.隐藏版本号 修改 nginx.conf 文件&#xff0c;在http块中添加字段后&#xff0c;重载服务 获取报文信息并查看&#xff08;浏览器查看或使用命令&#xff09; 2.修改版本号及相关信息 如果做了上一步在nginx.conf 中添加了 server_tokens…

数据结构-二分查找

1.1 什么是算法&#xff1f; 定义 在数学和计算机科学领域&#xff0c;算法是一系列有限的严谨指令&#xff0c;通常用于解决一类特定问题或执行计算 In mathematics and computer science, an algorithm (/ˈlɡərɪəm/) is a finite sequence of rigorous instructions, …

【Spring Cloud Gateway】⑥SpringBoot3.x集成SpringDoc指南

文章目录 背景本地开发环境介绍pom.xml主要依赖application.yml效果预览动态生成swagger文档分组效果预览在线文档 背景 Spring Cloud Gateway使用Netty作为嵌入式服务器&#xff0c;并基于响应式Spring WebFlux。做为微服务网关&#xff0c;多个微服务把API挂在Gateway上&…

轻量实时操作系统学习(二)

306xH系列架构 主系统包含以下部件&#xff1a; maters&#xff1a;RISC-V CPU、DMA、CORESIGHTslaves&#xff1a;嵌入式SYSRAM、嵌入式Flash memory、系统外设 这些模块通过AMBA总线架构互连&#xff0c;如图所示。 TCM_BUS&#xff1a;此总线将RISC-V CPU的TCM接口与存…

STM32学习(十四)

低功耗 降低集成电路的能量消耗。 低功耗特性对用电池供电的产品&#xff1a; 更小电池体积&#xff08;降低了大小和成本&#xff09; 延长电池寿命 电磁干扰更小&#xff0c;提高无线通信质量 电源设计更简单&#xff0c;无需过多考虑散热问题 STM32具有运行、睡眠、停止和…

【SQL Server】数据库开发指南(八)高级数据处理技术 MS-SQL 事务、异常和游标的深入研究

本系列博文还在更新中&#xff0c;收录在专栏&#xff1a;#MS-SQL Server 专栏中。 本系列文章列表如下&#xff1a; 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南&#xff08;一&#xff09;数据库设计 【SQL Se…

Flutter 笔记 | Flutter 核心原理(七)The key is the key!

题外话 本文这个标题其实让我想起了电影《蝙蝠侠大战超人&#xff1a;正义黎明》中的一句话&#xff0c;在该片中&#xff0c;从未来穿越回来的闪电侠对蝙蝠侠发出警告&#xff1a; It’s Lois&#xff01; She’s the key&#xff01; 【布鲁斯&#xff0c;是露易丝&#xff…