markdown-it:将Markdown文本转换为HTML格式,展示在页面,怎么自定义里面的a标签设置为在新标签页打开

news/2024/9/21 22:28:26 标签: html, 前端, javascript
htmledit_views">

由markdown-it将文本生成html然后渲染到页面上,但是现在你点击里面生成好的链接只能在本标签页打开,怎么将其设置为在新标签打开呢?

安装markdown-it

npm install markdown-it

使用markdown-it 

javascript">const mdi = new MarkdownIt({
  html: true,
  linkify: true,
  highlight(code, language) {
    const validLang = !!(language && hljs.getLanguage(language));
    if (validLang) {
      const lang = language ?? '';
      return highlightBlock(hljs.highlight(lang, code, true).value, lang);
    }
    return highlightBlock(hljs.highlightAuto(code).value, '');
  },
});

// 自定义链接渲染--这个才是关键
mdi.renderer.rules.link_open = (tokens, idx) => {
  const href = tokens[idx].attrGet('href');
  return `<a href="${href}" target="_blank" rel="noopener noreferrer">`;
};

// 使用 KaTeX
mdi.use(mdKatex, { blockClass: 'katexmath-block rounded-md p-10', errorColor: '#cc0000' });

const text = computed(() => {
  const value = props.text;
  if (!props.inversion && !props.error) return mdi.render(value);
  return value;
});

其中用到的另外两个辅助包:

javascript">import mdKatex from '@traptitech/markdown-it-katex';
import hljs from 'highlight.js';

 

说明:

使用示例

如果你的 Markdown 文本中包含类似以下内容:

  • mdKatex:这是一个 Markdown-it 插件,用于在 Markdown 文本中渲染 LaTeX 数学公式。它依赖于 KaTeX 来进行实际的渲染。
  • 作用

  • 支持数学公式:允许在 Markdown 文本中嵌入 LaTeX 语法的数学公式。
  • 自动渲染:将 LaTeX 语法转换为 HTML,从而在网页上正确显示数学公式。
  • 配置选项:可以通过配置选项自定义渲染效果,例如设置块级公式的类名、错误颜色等。
  • 这是一个公式:$$E=mc^2$$

    使用 mdKatex 后,$$E=mc^2$$ 将被渲染为相应的数学公式,而不是普通文本。

import hljs from 'highlight.js'; 这行代码的作用是导入 Highlight.js 库,它用于语法高亮显示代码块。具体来说:

作用

语法高亮:自动为多种编程语言的代码提供语法高亮显示,使代码更易读。 多语言支持:支持多种编程语言,可以通过设置来指定代码的语言类型。 定制化:允许自定义高亮主题和样式,以匹配应用的设计。

Highlight.js 将自动将这段代码高亮显示,以便在网页上呈现时更具可读性。

使用示例

在 Markdown 渲染中,你可以将代码块用特定的标记包围,例如:

```javascript const a = 10;

Highlight.js 将自动将这段代码高亮显示,以便在网页上呈现时更具可读性。


http://www.niftyadmin.cn/n/5669554.html

相关文章

在 CentOS 中安装 MySQL(无坑版)

1. 下载安装 MySQL yum 仓库 请按照自己的系统版本选择自己喜欢的 MySQL版本 uname -a 或者 lsb_release -aMySQL yum 仓库地址&#xff1a; https://repo.mysql.com/ CentOS 8 wget https://repo.mysql.com/mysql80-community-release-el8-1.noarch.rpm yum localinstall…

【Qt | QLineEdit】Qt 中使 QLineEdit 响应 鼠标单击、双击事件 的两个方法

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a; 2024-09-14 …

汽车美容服务管理系统的数据库设计与数据操作

设计内容&#xff1a; 考察汽车美容服务公司的实际业务运作&#xff0c;设计汽车美容服务综合业务管理系统的数据库。 1.系统主要功能 &#xff08;1&#xff09;基础数据管理。包括汽车美容服务项目&#xff08;按不同类别&#xff09; 管理&#xff08;增加、更新、删除、多条…

Jmeter进行http接口测试,这一篇就搞定

jmeter-http接口测试脚本 jmeter进行http接口测试的主要步骤&#xff08;1.添加线程组 2.添加http请求 3.在http请求中写入接口的URL&#xff0c;路径&#xff0c;请求方式&#xff0c;参数 4.添加查看结果树 5.调用接口&#xff0c;查看返回值&#xff09; 针对接口添加heade…

oracle dblink的使用并举例

Oracle Database Link&#xff08;DB Link&#xff09;是Oracle提供的一种功能&#xff0c;允许你在一个数据库中直接访问另一个远程或本地数据库的对象&#xff08;如表、视图、序列等&#xff09;。DB Link的设置简化了跨数据库操作&#xff0c;使得数据的集成和同步变得更加…

GIT仓库的简单创建和使用

初步学会了一些简单的git操作。接下来对这一次学习进行一次总结&#xff0c;其中也包括了在这次学习中踩中的坑&#xff0c;希望对你们有所帮助。 第一步&#xff1a;下载 这个东西可以直接到官网下载或者到阿里云去下载&#xff0c;这里不多赘述。 附&#xff1a;阿里云路径…

五分钟通关Nacos部署与应用

前言 本文适合刚接触nacos想上手实践的读者。 Nacos下载安装步骤 本次下载的版本为2.0.1 下载Nacos 方式一&#xff1a;进入官网下载压缩包 官网地址 方式二&#xff1a;使用wget命令下载 两种方式&#xff1a;第一种下载速度较慢 wget https://github.com/alibaba/nac…

小程序构建npm失败

小程序构建npm失败 项目工程结构说明解决方法引入依赖导致的其他问题 今天在初始化后的小程序中引入TDesign组件库&#xff0c;构建npm时报错。 项目工程结构说明 初始化后的项目中&#xff0c;包含miniprogram文件夹和一些项目配置文件&#xff0c;在project.config.json文件中…