使用v-md-editor开发sql查看器--实战

v-md-editor

markdown编辑器

文档:https://code-farmer-i.github.io/vue-markdown-editor/zh/

echo 创建一个空目录,使用vscode打开此空目录,进入终端,输入如下命令
npm create vite@latest . -- --template vue
echo 选择 vue 和 typescript.
npm install
npm run dev
echo  vue空项目创建完成.
echo 安装v-md-editor和codemirror@5
yarn add @kangc/v-md-editor@next
yarn add codemirror@5
yarn add @codemirror/lang-markdown
yarn add @codemirror/lang-sql
yarn add vite-plugin-prismjs

main.ts

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'import VueMarkdownEditor from '@kangc/v-md-editor/lib/codemirror-editor';
import '@kangc/v-md-editor/lib/style/codemirror-editor.css';
import vuepressTheme from '@kangc/v-md-editor/lib/theme/vuepress.js';
import '@kangc/v-md-editor/lib/theme/style/vuepress.css';
import '/@/assets/css/ext-v-md-editor-vue-press.css'// // highlightjs
// import hljs from 'highlight.js';
// codemirror 编辑器的相关资源
import Codemirror from 'codemirror';
// mode
import 'codemirror/mode/markdown/markdown';
import 'codemirror/mode/javascript/javascript';
import 'codemirror/mode/css/css';
import 'codemirror/mode/htmlmixed/htmlmixed';
import 'codemirror/mode/vue/vue';
// edit
import 'codemirror/addon/edit/closebrackets';
import 'codemirror/addon/edit/closetag';
import 'codemirror/addon/edit/matchbrackets';
// placeholder
import 'codemirror/addon/display/placeholder';
// active-line
import 'codemirror/addon/selection/active-line';
// scrollbar
import 'codemirror/addon/scroll/simplescrollbars';
import 'codemirror/addon/scroll/simplescrollbars.css';
// style
import 'codemirror/lib/codemirror.css';
import Prism from 'prismjs';import createLineNumbertPlugin from '@kangc/v-md-editor/lib/plugins/line-number/index';
import createHighlightLinesPlugin from '@kangc/v-md-editor/lib/plugins/highlight-lines/index';
import '@kangc/v-md-editor/lib/plugins/highlight-lines/highlight-lines.css';VueMarkdownEditor.use(vuepressTheme,{Prism,
}).use(createLineNumbertPlugin())
.use(createHighlightLinesPlugin())
;
VueMarkdownEditor.Codemirror = Codemirror;
createApp(App).use(VueMarkdownEditor).mount('#app')

vite-config.ts

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path';
import { prismjsPlugin  } from 'vite-plugin-prismjs';function pathResolve(dir: string) {return resolve(process.cwd(), '.', dir);
}// https://vitejs.dev/config/
export default defineConfig({plugins: [vue(),prismjsPlugin({languages: 'all',// 配置行号插件plugins: ['line-numbers'],css: true,}),],resolve: {alias: [// /@/xxxx => src/xxxx{find: /\/@\//,replacement: pathResolve('src') + '/',},],},
})

最终效果图
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云云服务器旗舰新品SA5重磅首发

近日,腾讯云云服务器CVM再升级,极具性价比的云服务器旗舰新机型SA5重磅发布,搭载第四代AMD EPYC处理器(Bergamo), 相比云服务器SA3实例,整机性能最大提升120%以上。 温馨提醒:购买腾…

搭建SRS视频服务器

去官方网站下载FFmpeg6.1 https://ffmpeg.org/download.html拷贝到CentOS7.9中的/opt目录下,解压并重命名 tar -xvf ffmpeg-6.1.tar.xz 解压后编译安装 ./configure make make install从github下载SRS4.0release 解压后 如果ffmpeg的路径不在/usr/local/bin/ffmpe…

【沐风老师】在3dMax中如何把对象随机散布在表面上?

在3dMax中如何把对象随机散布在表面上? 在这个教程中,给大家讲解在3dMax中如何把对象随机散布到另一个对象的表面上。有不少3dMax的初学者在将对象分布在随机表面上时感到手足无措。如果,将每个对象手动放置在表面上并花时间调整每个对象根本…

【Vue】filter的用法

上一篇&#xff1a; vue的指令 https://blog.csdn.net/m0_67930426/article/details/134599378?spm1001.2014.3001.5502 本篇所使用指令 v-for v-on v-html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"&…

【面试HOT200】滑动窗口篇

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招面试的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于【CodeTopHot200】进行的&#xff0c;每个知识点的修正和深入主要参…

喜报|AIRLOOK荣获“创客北京2023”创新创业大赛企业组三等奖

“创客北京2023”创新创业总决赛圆满落幕&#xff0c;埃洛克航空科技&#xff08;北京&#xff09;有限公司&#xff0c;&#xff08;以下统称AIRLOOK&#xff09;首次参赛即从几千家企业中脱颖而出&#xff0c;荣获大赛企业组三等奖。 自2016年开始&#xff0c;“创客北京”大…

python opencv -模板匹配

python opencv -模板匹配 模板匹配就是&#xff0c;我们现有一个模板和一个图片&#xff0c;然后&#xff0c;在这个图片中寻找和模板近似的部分。 在opencv 中主要通过cv2.matchTemplate这个函数去实现。 下面我们先看一下&#xff0c;模板图片和需要匹配的图片&#xff1a…

HTTP协议抓包工具Charles 抓包图文完整教程

Charles是在您自己的计算机上运行的Web代理&#xff08;HTTP代理 / HTTP监视器&#xff09;&#xff0c;您的网络浏览器&#xff08;或任何其他Internet应用程序&#xff09;配置为通过Charles访问Internet&#xff0c;Charles可以为您记录并显示发送和接收的所有数据。 Http抓…

Relabel与Metic Relabel

Prometheus支持多种方式的自动发现目标&#xff08;targets&#xff09;&#xff0c;以下是一些常见的自动发现方式&#xff1a; 静态配置&#xff1a;您可以在Prometheus配置文件中直接列出要监测的目标。这种方式适用于目标相对稳定的情况下&#xff0c;例如固定的服务器或设…

Log4j2.xml不生效:WARN StatusLogger Multiple logging implementations found:

背景 将 -Dlog4j.debug 添加到IDEA的类的启动配置中 运行上图代码&#xff0c;这里log4j2.xml控制的日志级别是info&#xff0c;很明显是没生效。 DEBUG StatusLogger org.slf4j.helpers.Log4jLoggerFactory is not on classpath. Good! DEBUG StatusLogger Using Shutdow…

搜索引擎语法

演示自定的Google hacking语法&#xff0c;解释含意以及在渗透过程中的作用 Google hacking site&#xff1a;限制搜索范围为某一网站&#xff0c;例如&#xff1a;site:baidu.com &#xff0c;可以搜索baidu.com 的一些子域名。 inurl&#xff1a;限制关键字出现在网址的某…

Echarts 大屏注册自定义地图解析文件流报错问题解决

效果图: 1、首先通过后台接口获取到SVG图片的文件流,postman能够正确解析出文件流,前端调用api时需要设置返回的响应格式为image/svg+xml格式,否则解析失败 拿到文件流后是这样的 <?xml version="1.0" encoding="utf-8"?> <!-- Generator: …