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

云南专业网站建设百度西安分公司地址

云南专业网站建设,百度西安分公司地址,常州门户网站建设,网站公司怎么做的好marked在vue项目中改变超链接跳转方式和图片放大预览 这里我是另起一个js文件对marked的配置做了修改,参考如下 import marked from marked let renderer new marked.Renderer() const linkRenderer renderer.link const imgRenderer renderer.image // 超链接…

marked在vue项目中改变超链接跳转方式和图片放大预览

这里我是另起一个js文件对marked的配置做了修改,参考如下

import marked from 'marked'
let renderer = new marked.Renderer()
const linkRenderer = renderer.link
const imgRenderer = renderer.image
// 超链接使用新窗口打开
renderer.link = (href, title, text) => {const html = linkRenderer.call(renderer, href, title, text)return html.replace(/^<a /, '<a target="_blank" ')
}// marked解析过程中解析到图片的回调,为每个img标签绑定点击事件,并传递当前事件以及href图片链接
renderer.image = function (href, title, text) {const img = imgRenderer.call(renderer, href, title, text)// 在图片元素上添加点击事件处理函数return `<img width="800" height="500" οnclick="showMarkedImage('${href}')" src="${href}" alt="${text}" title="${title ? title : ''}">`
}
marked.setOptions({renderer,sanitize: false
})export default marked

然后在vue文件中进行进行该文件的引用

// vue结构
<div class="show-inputText" v-html="markedContent(form.inputText)"></div>
<el-image v-show="imgPreviewUrl" style="display: none" ref="previewImg" :src="imgPreviewUrl" :preview-src-list="imgList">
</el-image>
// script结构
import marked from '上述文件的路径'data() {return {form: {inputText: '',},imgPreviewUrl: '',imgList: []}}},

最后格式化markdown文本

init() {// 获取markdown文本中所有的图片链接this.getImgList(item.inputText)// markdown图片放大预览let _this = thiswindow.showMarkedImage = function (url) {_this.imgPreviewUrl = url_this.$nextTick(() => {_this.$refs.previewImg.showViewer = true// 需要把当前的图片放到最前面,后面排序let copyImgList = [..._this.imgList]let targetUrlIndex = copyImgList.findIndex(item => item == url)copyImgList.splice(targetUrlIndex, 1)let res = [url, ...copyImgList]_this.$refs.previewImg.previewSrcList = res_this.$refs.previewImg.src = url}, 200)},// 获取图片getImgList(inputText) {// 匹配markdown文案中所有的图片,以便后续放大预览const regex = /!\[Image\]\((.*?)\)/gconst matches = inputText.match(regex)let res = []if (matches) {for (const match of matches) {const imageUrl = match.match(/\((.*?)\)/)[1]res.push(imageUrl)}}this.imgList = res},// markdown格式化markedContent(markdownContent) {let mak = marked.marked(markdownContent)if (mak.substr(-1) == '\n') {mak = mak.slice(0, -1)}return mak},
http://www.ds6.com.cn/news/91400.html

相关文章:

  • asp.net怎么生成网站直播:英格兰vs法国
  • 织梦网站有会员系统怎么做企业培训课程表
  • 广药网站建设试卷百度排名服务
  • 潍坊做网站建设的公司青海seo关键词排名优化工具
  • 网站建设seo网络推广安徽网站开发哪家好
  • 湖南建设银行宣传部网站进入百度首页官网
  • 全球十大建筑设计公司seo在中国
  • 常州做半导体的公司seo研究中心qq群
  • 做立体字的网站网站快速收录技术
  • 生鲜网站建设规划书范文病毒式营销案例
  • 利用切片做网站背景图片百度推广后台登陆
  • 做网站关键字点金推广优化公司
  • 阿里云的云服务器做网站用哪种seo超级外链发布
  • 做网站换域名今日新闻10条简短
  • 苏州360推广网站建设百度运营怎么做
  • 学校网站模板 中文版站长工具seo排名
  • 做网站需要写配置文件吗如何找做网站的公司
  • 深圳住建局最新通知如何做seo优化
  • 网站开发流程龙岩四川企业seo
  • 怎么让网站排名靠前淮安百度推广公司
  • 做百度网站哪家公司好网站制作代码
  • wordpress自定义作者湖南网站seo地址
  • 宁波企业建站系统小程序推广方案
  • WordPress搜索功能增强网址seo查询
  • 阿里云学生免费服务器深圳百度seo代理
  • 做网站年入多少高端网站建设公司排名
  • 东莞哪里建设网站好seo大全
  • 深圳网站建设 迈企业网络组建方案
  • 电子商务网站的作用谷歌seo 外贸建站
  • 成都网站制作公司电话台州关键词优化推荐