react实现markdown编辑器

article/2025/11/2 23:05:50

文章目录

      • 思路
      • 体验地址 [https://hongbin.xyz/admin#/md](https://hongbin.xyz/admin#/md)
      • 效果
        • 加粗/斜体等
        • 粘贴图片上传
        • 拖拽图片上传
        • 添加列表/代办/表格
        • 添加 代码片段
        • 同步滚动 + toc目录

功能如下
在这里插入图片描述
上传图片 包括 点击上传 拖拽上传 粘贴图片上传
点击nav button添加语法块 自动在编辑器设置插入点
支持选中文字 点击按钮加入加粗/斜体等样式
@[toc]添加目录
TODO 快捷键监听

思路

使用 Selection 和 Range API 实现获取鼠标选中区域内容以及改变选中区域元素 实现大部分文字操作功能
如 加粗 就是在选中的区域两侧加入 ** **
代码示例

const selObj = window.getSelection();
const range = selObj.getRangeAt(0);
const prev = range.toString(); //获得选中文字
range.deleteContents(); //删除选中的区域
const span = document.createElement("span");//创建span
range.surroundContents(span); //span插入到被删除的区域
span.innerHTML = `${str}${prev}${str}`;//设置 新的内容
```
据此可实现大部分功能 
添加代码前端等添加多行语法则是添加多个div实现
```
range.deleteContents();
const wrap = document.createElement("div");
range.surroundContents(wrap);
for (const str of ["```js", "<br/>", "```"]) {const item = document.createElement("div");wrap.appendChild(item);item.innerHTML = str;
}

代码仓库 https://gitee.com/honbingitee/hongbin_xyz_admin.git
markdown 路径 src/pages/md.tsx

体验地址 https://hongbin.xyz/admin#/md

效果

加粗/斜体等

请添加图片描述

粘贴图片上传

请添加图片描述

拖拽图片上传

请添加图片描述

添加列表/代办/表格

请添加图片描述

添加 代码片段

请添加图片描述

同步滚动 + toc目录

屏幕录制2021-08-19 上午10 (5).gif


http://chatgpt.dhexx.cn/article/dEtCYrOu.shtml

相关文章

Django + markdown 前台使用markdown编辑器深入浅出详解

一、需求来源 近期有一个 django 前台使用 markdown 编辑器的需求&#xff0c;网上查了很多资料很多都是在后台使用 markdown 编辑器&#xff0c;然后在前台展示&#xff0c;可以参考。但是这种的教程对于想在前台页面使用 markdown 编辑器的人来说&#xff0c;属实是很难看懂…

基于Web的Markdown编辑器HedgeDoc

什么是 HedgeDoc &#xff1f; HedgeDoc 是一个开源的、基于 web 的、自托管的、协作的markdown编辑器。您可以使用它轻松地在笔记、图形甚至演示文稿上进行实时协作。用户需要做的就是将你的笔记链接分享给同事&#xff0c;他们就可以开始使用了。 不想自己搭建可以试试官方的…

只需3步把VSCode打造成Markdown编辑器

对于大部分编程人员来说都熟悉VSCode&#xff0c;因为大家经常使用它来编写代码&#xff0c;其实也可以把它当作加强版的记事本来使用&#xff0c;还能这么做&#xff1f; 我就是这么做的&#xff0c;其原因在于以下工作场景&#xff1a;分析或者编写代码时需要做一些笔记&…

本地Markdown编辑器推荐

以前用markdown记东西都是网页编辑器例如作业部落、MarkdownEditor&#xff0c;一直想找一个本地可以离线使用的markdown编辑器。 以下就是我找到并且亲自尝试的一些了&#xff0c;这篇文章是适用于Windows的。 文章目录 MarkTextTyporaTextsHaroopadMarkPadMarkdownPadCaretC…

盘点好用的 Markdown 编辑器

Markdown 是以文本形式保存的&#xff0c;基本上任何一款编辑器都可以完成 Markdown 写作&#xff08;包括 Windows 的记事本、Linux 的 Vim 等等&#xff09;。不过&#xff0c;如果你想更专注于写作&#xff0c;一款支持语法显示和实时渲染的工具能让你事半功倍&#xff01; …

前端:推荐一款开源免费的浏览器端Markdown编辑器Vditor

目前程序员的世界到处都是Markdown &#xff0c;比如CSDN、简书、GitCha、 GitHub、掘金社区等等都支持Markdown文档&#xff0c;另外近几年许多官方技术文档都是使用Markdown来写的。 使用Markdown不仅可以非常方便的写博客、写技术文档&#xff0c;而且可以直接导出对应的网站…

Vue Markdown编辑器

效果展示 因工作中需要使用 是在https://gitee.com/wike2019/wike__md_editor中自己摸索完成 如有侵权请 告知本人 本人立刻删除此文章 简介 一款使用marked和highlight.js开发的一款markdown编辑器&#xff0c;除常见markdown语法外&#xff0c;支持快捷输入、图片粘贴、代…

R语言计量经济学:虚拟变量(哑变量)在线性回归模型中的应用

最近我们被客户要求撰写关于线性回归的研究报告&#xff0c;包括一些图形和统计输出。 为什么需要虚拟变量&#xff1f; 大多数数据都可以用数字来衡量&#xff0c;如身高和体重。然而&#xff0c;诸如性别、季节、地点等变量则不能用数字来衡量。相反&#xff0c;我们使用虚拟…

《计量经济学》学习笔记之虚拟变量及滞后变量模型

导航 上一章&#xff1a;放款基本假定的模型 文章目录 导航经典单方程计量 经济学模型&#xff1a;专门问题5.1虚拟变量模型一、虚拟变量的引入二、虚拟变量的设置原则 5.2滞后变量模型一、滞后变量模型二、分布滞后模型的参数估计三、自回归模型的参数估计四、格兰杰因果检验…

R语言使用虚拟变量(Dummy Variables) 回归分析工资影响因素

最近我们被客户要求撰写关于虚拟变量(Dummy Variables) 回归的研究报告&#xff0c;包括一些图形和统计输出。 简介 本文与以下两个问题有关。你应该如何添加虚拟变量&#xff1f;你应该如何解释结果&#xff1f; 如果使用一个例子&#xff0c;我们可能会更容易理解这些问题。…

虚拟变量在模型中的作用

虚拟变量是什么 实际场景中&#xff0c;有很多现象不能单纯的进行定量描述&#xff0c;只能用例如“出现”“不出现”这样的形式进行描述&#xff0c;这种情况下就需要引入虚拟变量。例如即将到来的女生节&#xff0c;每年的这个时候毛绒玩具的销量都会上升&#xff0c;说明女生…

R 回归 虚拟变量na_互助问答第30期:工具变量、GARCH模型操作和多项选择效信度...

问题1:用截面数据研究var1对y1 与y2 的影响,由于y1是0-1型的变量、y2为连续变量,因此分别用probit与tobit模型做了回归,首先做了基础回归,之后做了工具变量回归,但工具变量回归的结果(系数的绝对值)却远远大于原回归系数的绝对值,|-2.006|>|-0.046|,为何工具变量回归…

多元线性回归及虚拟变量(哑变量)设置

1.多元线性回归SPSS分析 四步搞定SPSS多元线性回归视频教程&#xff08;含详细操作及结果解读&#xff09;_哔哩哔哩_bilibili订阅陈老师B站送福利&#xff01;订阅后加陈老师QQ1622275006送数据分析教程及软件福利哟~关注微信公众号&#xff1a;杏花开医学统计&#xff0c;免…

虚拟变量陷阱原理及算例

文章目录 1.虚拟变量2.虚拟变量陷阱3.虚拟变量陷阱例子及分析4.总结5.参考资料 1.虚拟变量 直接在回归模型中加入定性因素&#xff08;比如类别因素&#xff1a;男或女&#xff09;存在困难&#xff0c;因此可以考虑把定性因素量化&#xff0c;使定性因素与定量因素在回归模型…

机器学习(时间序列):线性回归之虚拟变量 dummy variables

1 前言 当预测变量是分类变量时&#xff0c;我们可以引入虚拟变量&#xff0c;作为回归的虚拟变量虚拟变量也可用于解释数据中的异常值。 虚拟变量不会忽略异常值&#xff0c;而是消除其影响。 在这种情况下&#xff0c;虚拟变量对该观察值取值为 1&#xff0c;而在其他任何正…

虚拟变量的方法介绍及python实现方式

虚拟变量的定义作用 计量经济学中对虚拟变量给出了定义、作用及使用场景&#xff0c;进一步的深入了解可以系统性学习。 定义&#xff1a;虚拟变量 ( Dummy Variables) &#xff0c;用以反映无法定量度量的因素&#xff0c;譬如性别对收入的影响&#xff0c;是量化了的质变量&…

【计量经济学】虚拟变量

虚拟变量–潘登同学的计量经济学笔记 文章目录 虚拟变量--潘登同学的计量经济学笔记 对定性信息的描述只有一个虚拟变量的情形虚拟变量系数的解释虚拟变量的作用效果检验工资性别歧视因变量为对数形式的情况 多个虚拟变量的情形虚拟变量系数的解释使用虚拟变量包含序数信息虚拟…

php读取文件名称,php如何获取文件名

php获取文件名的方法&#xff1a;可以用basename()函数来获取文件名&#xff0c;例如&#xff1a;【basename($full_name)】。还可以使用pathinfo()函数来获取文件名。 PHP中获取文件名的方式 1、直接用basename&#xff1a;<?php $full_name c:\wamp\php\php.ini; $base…

python获取当前系统的日期_python怎么获取当前系统时间

python获取当前系统时间&#xff0c;包括年月日&#xff0c;时分秒&#xff0c;主要通过Python中的datetime模块来实现。 下面我们就通过具体的代码示例&#xff0c;给大家详细介绍Python获取当前时间日期的实现方法。 代码示例如下&#xff1a;import datetime now datetime.…

mysql如何获取当前时间_mysql怎么获取当前时间

mysql获取当前时间的方法&#xff1a;可以通过执行【select now();】语句来获取当前时间。还可以通过执行【select current_timestamp, current_timestamp();】语句来获取。 获得当前日期时间(date time)函数&#xff1a;now()mysql> select now(); --------------------- …