当前位置: 首页 > news >正文

网站主题旁边的图标怎么做的重庆森林经典台词

网站主题旁边的图标怎么做的,重庆森林经典台词,怎么做网站的三级目录,石家庄网站建设推广电话文章目录 前言开发定位目标调研技术方案前提工作量安排数据库表设计实现步骤1、引入依赖2、实现cherry-markdown的vue组件(修改上传接口路径)3、支持draw.io组件4、支持展示悬浮目录toc前端使用:编辑状态使用cherry-markdown的vue组件前端使用…

文章目录

  • 前言
  • 开发定位
  • 目标
  • 调研
  • 技术方案
    • 前提
    • 工作量安排
    • 数据库表设计
    • 实现步骤
      • 1、引入依赖
      • 2、实现cherry-markdown的vue组件(修改上传接口路径)
      • 3、支持draw.io组件
      • 4、支持展示悬浮目录toc
      • 前端使用:编辑状态使用cherry-markdown的vue组件
      • 前端使用:展示markdown(对外展示)
  • 问题解决
    • 问题1:cherrymarkdown不随对应的markdown加载最新的
    • 问题2:在一个vue文件中使用了两次cherrymarkdown组件,打开一个之后,另一个位置打开时就会出现空情况
    • 问题3:cherry-markdown中支持虚拟目录toc

前言

博主介绍:✌目前全网粉丝3W+,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领域。

涵盖技术内容:Java后端、大数据、算法、分布式微服务、中间件、前端、运维等。

博主所有博客文件目录索引:博客目录索引(持续更新)

视频平台:b站-Coder长路


开发定位

个人开源项目https://gitee.com/changluJava/studio-vue,位于开发分支:feat_1.2.x_fsstudio,提交哈希码:9fff82c76f5a02e0977455fe53d2c560ca4c0ca7


目标

支持cherry markdown语法编辑博文


调研

Quill富文本编辑器

CherryMarkdown (推荐):https://github.com/Tencent/cherry-markdown

  • 推荐

Tinymce富文本编辑器:

可学习案例:ruo-yi-vue-blog:https://gitee.com/Ning310975876/ruo-yi-vue-blog


技术方案

前提

将studio-ui改造为studio-ui-vite为vite版本,引入cherry-markdown没有报错问题。


工作量安排

改造studio_think表

改造studio_race表

改造studio_ccie表


数据库表设计

针对有包含文本内容编辑的都额外支持一个字段:content_markdown

  • 主要包含两个字段存储博文内容:content(博客文章html)、contentMarkdown(博客文章markdown格式内容)

包含有存储内容形式的表如下

studio_ccie:证书表

原字段:ccie_think

studio_race:竞赛表

原字段:race_summarize

studio_think:个人思考表

原字段:content改造后:
content
content_markdown

实现步骤

1、引入依赖

package.json添加依赖:

"cherry-markdown": "0.8.22"

安装依赖:

npm install --force

2、实现cherry-markdown的vue组件(修改上传接口路径)

在components目录下添加cherry-markdown组件:

image-20240907083535373

修改该组件的上传图片地址:

import commonConfig from "@/api/common.js";// 图片上传路径修改为自己连接
request.open('POST', commonConfig.uploadAction) // 上传的图片服务器地址

image-20240921012448257

修改上传资源之后的markdown语法:

if (resp.code === 200) {if (/mp4|avi|rmvb/i.test(resp.fileSuffix)) {imgMdStr = `!video[${resp.data.originName}](${resp.data.visitUrl})`;} else if (/mp3/i.test(resp.fileSuffix)) {imgMdStr = `!audio[${resp.data.originName}](${resp.data.visitUrl})`;} else if (/bmp|gif|jpg|jpeg|png/i.test(resp.fileSuffix)) {imgMdStr = `![${resp.data.originName}](${resp.data.visitUrl})`} else {imgMdStr = `![${resp.data.originName}](${resp.data.visitUrl})`}
}

image-20240921012619487


3、支持draw.io组件

支持引入draw.io:引入该drawio目录

image-20240921012715024

效果展示:

image-20240921012746159

实际打开的时候访问的就是我们对应的public下的目录:

image-20240921012955264


4、支持展示悬浮目录toc

原始:

toc: {/** 默认只渲染一个目录 */allowMultiToc: false
},

修改后:

toc: {updateLocationHash: true, // 要不要更新URL的hashdefaultModel: 'pure', // pure: 精简模式/缩略模式,只有一排小点; full: 完整模式,会展示所有标题
},

前端使用:编辑状态使用cherry-markdown的vue组件

使用方式如下:

<CherryMarkdown ref="CherryMarkdown" :height='400' v-model='blogText.contentMarkdown' ></CherryMarkdown>import CherryMarkdown from '@/components/CherryMarkdown'components: {CherryMarkdown},data() {return {// 博客内容blogText: {contentMarkdown: '',content: ''}}},methods: {submitForm() {this.setFormContent()console.log("submitForm=>", this.blogText)},// 对于markdown的html需要调用对应markdown组件中的getCherryHtml()方法setFormContent(){this.blogText.content = this.$refs.CherryMarkdown.getCherryHtml()},}

最终效果演示:

关注这两个内容即可,分别一个是html内容,另一个是markdown内容:

image-20240921011346778


前端使用:展示markdown(对外展示)

代码如下:这里若是仅仅只需要预览,添加该属性即可:defaultModel="'previewOnly'"

<CherryMarkdown v-if="previewOpen" v-model='curThinkMarkdown' :defaultModel="'previewOnly'"></CherryMarkdown>import CherryMarkdown from '@/components/CherryMarkdown'components: {CherryMarkdown},

效果:

image-20240923093933644


问题解决

问题1:cherrymarkdown不随对应的markdown加载最新的

**场景:**例如编辑打开了一个markdown,此时又编辑打开另一个markdown,此时依旧是原先的markdown内容。

修复方式:

在cherrymarkdown组件中添加watch:

    watch: {// 监控 value 属性value(newValue, oldValue) {// 当 value 发生变化时,这个函数会被调用// console.log(`value changed from ${oldValue} to ${newValue}`);this.setMarkdown(newValue)}},  

问题2:在一个vue文件中使用了两次cherrymarkdown组件,打开一个之后,另一个位置打开时就会出现空情况

**场景:**首先打开预览总结的,然后打开添加或编辑的,此时就会为空

image-20240922225805994

image-20240922225817949

解决方案:

在对应的对框中的组件里分别加上v-if随着预览对话框的是否展示而统一进行变动:

image-20240922230832587

此时即可解决该问题。


问题3:cherry-markdown中支持虚拟目录toc

问题描述:

按照网站的配置参数:https://blog.csdn.net/weixin_73480865/article/details/136604029,发现不生效

问题解决:

首先确认你的cherry版本,我一开始是0.8.22,可以找到node_module中对应cherry-markdown的config.js,在配置文件中看是否支持这个toc,若是有下面的配置项就是支持的:

image-20240923081927465

关于cherry团队在github解决的issue:

  • [docs]自定义语法:https://github.com/Tencent/cherry-markdown/issues/620
  • 添加目录在预览时的右侧[Feature Request]:https://github.com/Tencent/cherry-markdown/issues/658

最终经过验证补充的toc配置方式:

toc: true, // 不展示悬浮目录
toc: {updateLocationHash: false, // 要不要更新URL的hashdefaultModel: 'full', // pure: 精简模式/缩略模式,只有一排小点; full: 完整模式,会展示所有标题showAutoNumber: false, // 是否显示自增序号position: 'fixed', // 悬浮目录的悬浮方式。当滚动条在cherry内部时,用absolute;当滚动条在cherry外部时,用fixedcssText: '', // 自定义样式
},

此时右侧出现了toc悬浮目录:

image-20240923093933644


整理者:长路 时间:2024.9.7-9.21

http://www.yidumall.com/news/96375.html

相关文章:

  • 做设计接单的网站苏州网站建设公司
  • 建设局电话百度seo关键词排名优化软件
  • 自己做网站如何盈利全国培训机构排名前十
  • 怎么做直播网站网络推广服务费
  • 国外做测评的网站有哪些最新新闻热点事件2023
  • 信阳建网站谷歌seo推广培训班
  • 做简单网站用什么软件有哪些广告联盟怎么加入
  • 做婚庆策划的网站网络促销
  • 做模具做什么网站推广平台排名
  • 网站登录验证码不正确百度浏览器极速版
  • 商城网站公司怎样做市场营销策划
  • 旅游投资公司网站建设ppt模板最全的百度网盘搜索引擎
  • 做思维导图的资源网站搜索引擎优化的策略主要有
  • 中英文网站建设的差别seo外链推广
  • 网站标题logo怎么做的百度代理公司
  • 颍上县住房和城乡建设局网站杭州网站制作排名
  • wordpress网站标题自定义长春seo排名
  • 长沙网站运营网络推广可做哪些方面
  • 单页面网站有哪些山东百度推广
  • 福建漳州网站建设哪家便宜百度pc端首页
  • 社交做的最好的网站有哪些什么是交换链接
  • 苏州网站开发公司鹅鹅鹅合肥网站维护公司
  • 西安php网站制作云南疫情最新数据消息中高风险地区
  • 上海做网站去哪里市场调研分析报告范文
  • 中学网上做试卷的网站google下载app
  • 深圳专门做兼职的网站网络营销的目的是什么
  • 固安建设行政主管部门官方网站aso推广方案
  • 五金日杂店做网站苏州搜索引擎排名优化商家
  • 用四字成语做网站域名好吗推广排名seo
  • 做游戏网站要备案吗三只松鼠口碑营销案例