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

vue3【实战】 渲染 md 文件(markdown语法 .md后缀的文件)

1. 安装相关插件

npm i unplugin-vue-markdown markdown-it-prism prism @unhead/vue

2. 添加配置

src/main.ts

// 给 md 文件创建头部
import { createHead } from '@unhead/vue'
// md 文件中代码高亮的样式
import 'prismjs/themes/prism.css'
// 自定义 md 文件的样式
import '@/assets/css/md.css'
app.use(createHead())

vite.config.ts

import Markdown from 'unplugin-vue-markdown/vite'
import prism from 'markdown-it-prism'
import { unheadVueComposablesImports } from '@unhead/vue'

Components 添加配置,包含 .md 文件和 .vue 文件

    Components({directoryAsNamespace: true,collapseSamePrefixes: true,include: [/\.vue$/, /\.vue\?vue/, /\.md$/]}),

VueRouter 添加配置,支持 .md 文件和 .vue 文件

    VueRouter({extensions: ['.vue', '.md']}),

AutoImport 添加配置 unheadVueComposablesImports

    AutoImport({// 解析的文件类型include: [/\.[tj]sx?$/, // .ts, .tsx, .js, .jsx/\.vue$/,/\.vue\?vue/, // .vue/\.md$/ // .md],// 需自动导入方法的库imports: ['pinia','vue','@vueuse/core',// '@vueuse/components',// 项目中集成了 unplugin-vue-router 时,此处需用 VueRouterAutoImports 替换掉 'vue-router'VueRouterAutoImports,// 新增为 md 文件创建头部unheadVueComposablesImports]}),

vue 添加配置,包含 .md 文件和 .vue 文件

    vue({include: [/\.vue$/, /\.md$/]}),

plugins 新增 Markdown 配置

Markdown({ headEnabled: true, markdownItUses: [prism] }),

3. 添加 md 文件

比如 src/pages/notes/vue.md

---
title: 编程笔记- vue 实战笔记
meta:- name: vuecontent: vue实战笔记
test: 测试
---<Page># vue 实战笔记## 图片图片放在 public/imgs/ 中> 注意事项:是与 index.html 同级的 public 文件夹```html
<img src="/imgs/朝阳的微信二维码.jpg" alt="" />
```.</Page>

上文中,html 代码末尾的 . 因编辑需要添加,实际使用时,需去掉!

4. 创建 md 文件容器组件

src/components/Page.vue

<template><div style="padding: 20px"><slot></slot></div>
</template>

5. 自定义 md 文件样式

md 文件渲染后,会按 md 语法,渲染成 h1,p,blockquote 等 html 标签,可根据个人喜欢,自定义样式

新建文件 src/assets/css/md.css

h1 {font-weight: bold;font-size: 24px;
}h2 {font-weight: bold;font-size: 20px;line-height: 2
}blockquote {border-left: 3px red solid;padding-left: 6px;margin: 6px 0;font-size: 12px;
}

6. 预览效果

启动项目,访问 http://localhost:5173/notes/vue,效果如下

在这里插入图片描述
可见自动生成了页面路由,修改了网页标题,按自定义样式渲染了 md 文件,vue 组件生效,md 文件中的代码高亮。

相关文章:

vue3【实战】 渲染 md 文件(markdown语法 .md后缀的文件)

1. 安装相关插件 npm i unplugin-vue-markdown markdown-it-prism prism unhead/vue2. 添加配置 src/main.ts // 给 md 文件创建头部 import { createHead } from unhead/vue // md 文件中代码高亮的样式 import prismjs/themes/prism.css // 自定义 md 文件的样式 import /as…...

Sora高端制造业WordPress外贸主题

Sora是一款专为高端制造业设计的WordPress主题&#xff0c;由国内知名wordpress开发团队简站wordpress主题开发&#xff0c;它以红色为主色调&#xff0c;适合外贸企业出海建独立站的模板。这个主题适用于WordPress 6.0及以上版本&#xff0c;并且只服务于真正有需要的用户。主…...

windows安装superset及各种问题解决

1,背景 先说说背景,之前在2月份已经安装过superset3.1.1,当时还没有提示SECRET_KEY异常,能正常运行,且已配置数据库连接. 2,报错信息及解决途径 1,创建admin时,提示Error! User already exists 这个是因为之前已经创建过admin用户,需要删除C:\Users\用户名\.superset下的.…...

JMeter模拟并发请求

PostMan不是严格意义上的并发请求工具&#xff0c;实际是串行的&#xff0c;如果需要测试后台接口并发时程序的准确性&#xff0c;建议采用JMeter工具。 案例&#xff1a;JMeter设置20个并发卖票请求&#xff0c;查看后台是否存在超卖的情况 方式一&#xff1a;一共10张票&…...

【小趴菜前端实习日记5】

实习日记5 一、vue3中如何使用router&#xff08;获取this)二、ts中用object定义类型太宽泛导致Ts无法推断出正确类型三、动态设置日记封面失败vite动态引入静态资源1.方法一vue3父子组件生命周期执行顺序 2.方法二3.方法三 四、打包问题总结1.The import.meta meta-property i…...

如何通过谷歌外推占据搜索引擎首页?

外贸企业在推广过程中&#xff0c;如何在谷歌搜索引擎中占据有利位置&#xff0c;获取更多曝光&#xff0c;GLB谷歌霸屏服务就可以派上用场。它通过高效的品牌外推策略&#xff0c;可以让你的企业信息在谷歌中实现“霸屏”效果&#xff0c;特别是长尾关键词的全面覆盖 很多企业…...

jmeter学习(6)逻辑控制器

1. 简单控制器 简单控制器用来存放组件的&#xff0c;没有提供什么逻辑功能。 2. 循环控制器 用来循环执行请求&#xff0c;可以配置循环次数。注意它与线程组、测试计划中的循环是相互独立的&#xff0c;比如在线程组中设置循环2次&#xff0c;循环控制器设置循环3次&#…...

Android14 和android12 在锁屏界面Keyguard输错5次密码后倒计时30秒时重启手机不显示倒计时

参考如下修改&#xff1a;Android9.0在锁屏界面Keyguard输错5次密码后倒计时30秒时重启手机不显示倒计时_android 锁屏密码输错5次-CSDN博客 android 14 修改如下&#xff1a; androidap/SYSTEM/frameworks/base$ git status Refresh index: 100% (47218/47218), done. HEAD d…...

智能时代摩托车一键启动无钥匙进入感受科技前线

向智能化与高性能迈进,技术创新与绿色转型引领摩托车行业智能化出行。 摩托车一键启动无钥匙进入功能是一种先进的车辆控制系统&#xff0c;它允许驾驶员在不使用传统机械钥匙的情况下&#xff0c;通过智能感应技术自动解锁和启动摩托车。这种系统通常包括一个智能钥匙&#x…...

需要补充的技能

密码管理 文件管理 人际管理 Microsoft365 teams和onedrive,outlook,sharepoint等 被问到自己不懂的问题的时候怎么迅速反应快速回答&#xff1f; 被帅锅的时候怎么解决&#xff1f; 谈判技巧&#xff1f; 说话的语速&#xff1f; 遇到解决不了的问题如何处理&#xff1f; 考…...

15分钟学 Go 第 15 天:映射(Map)

第15天&#xff1a;映射&#xff08;Map&#xff09; 学习目标 在本节中&#xff0c;我们将深入理解Go语言中的字典类型&#xff08;映射&#xff09;&#xff0c;通过例子与图示来帮助你掌握其使用方法。我们将涵盖以下几个方面&#xff1a; 概念定义创建和使用映射访问和更…...

element-plus 官方表格排序问题

element-plus 官方API 默认表格排序存在问题&#xff0c;一个list 被多组排序 修改后&#xff1a; 注意点&#xff1a; 这里一定要使用 sortable"custom"&#xff0c;自定义 sort-change 方法 使用 sortable true 的情况排序会冲突&#xff0c;出现莫名奇妙的问题…...

AI语音模型在家宽业务中的应用

在运营商家宽业务支撑场景中&#xff0c;存在多个APP和系统需要与装维人员交互&#xff0c;传统的功能按钮点击型操作交互界面&#xff0c;越来越难以满足装维人员工作提效的迫切需求。家宽施工调度系统所需的AI语音能力主要包括ASR&#xff08;音转字&#xff09;和TTS&#x…...

零七生活API-文字转语音API使用示例

//官网地址&#xff1a;零七生活API - 提供免费接口调用平台function getAud(){axios({method: get,url: https://api.oick.cn/api/txt?text你好&spd5&apikeyyourApikey,responseType: blob, // 确保 axios 处理为二进制数据}).then((response) > {// 将 Blob 转换…...

rpc的客户端为什么称为stub

1.client为什么是stub Stub 在分布式系统中是一种 代理对象&#xff08;Proxy Object&#xff09;&#xff0c;它本质上是一个在本地系统中扮演远程服务角色的代理。 在早期的 RPC 术语中&#xff0c;客户端端叫做 Stub&#xff0c;而服务器端的处理部分叫做 Skeleton。这种对…...

RHCE--nginx实现多IP访问多网站

方法一&#xff1a;nmtui 1.目录挂载 2.下载nginx 3.关闭防火墙 4.在一个网卡创建多个虚拟地址 1. 2. 3. 方法二&#xff1a;nmcil 1.手动配置 2.如图所示重新连接后创建ip成功 3.创建目录以及写入 结果...

TikTok运营对IP有什么要求?

TikTok在进行直播带货时&#xff0c;网络环境的配置尤为关键&#xff0c;网络质量直接影响到直播效果&#xff0c;因此选择稳定的IP地址很重要。那么&#xff0c;TikTok直播时该选择什么样的IP地址呢&#xff1f;接下来&#xff0c;我们来深入分析一下。 TikTok对IP地址的要求 …...

大白话讲解:多模态大模型综述,通俗易懂!

多模态大型语言模型&#xff08;Multimodal Large Language Models&#xff0c; MLLM&#xff09;的出现是建立在大型语言模型&#xff08;Large Language Models&#xff0c; LLM&#xff09;和大型视觉模型&#xff08;Large Vision Models&#xff0c; LVM&#xff09;领域不…...

大数据-184 Elasticsearch - 原理剖析 - DocValues 机制原理 压缩与禁用

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…...

Java设计模式:工厂模式详解

引言 1. 工厂模式的定义 2. 工厂模式的类型 2.1 简单工厂模式 2.1.1 结构 2.1.2 示例代码 2.2 工厂方法模式 2.2.1 结构 2.2.2 示例代码 2.3 抽象工厂模式 2.3.1 结构 2.3.2 示例代码 3. 工厂模式的优点 4. 工厂模式的缺点 5. 实际应用场景 6. 总结 引言 工厂模…...

GuwenBERT:让AI读懂千年古文,开启古籍智能处理新时代

GuwenBERT&#xff1a;让AI读懂千年古文&#xff0c;开启古籍智能处理新时代 【免费下载链接】guwenbert GuwenBERT: 古文预训练语言模型&#xff08;古文BERT&#xff09; A Pre-trained Language Model for Classical Chinese (Literary Chinese) 项目地址: https://gitcod…...

威联通NAS结合阿里云实现安全远程访问:域名与SSL证书全流程配置

1. 为什么需要为威联通NAS配置域名和SSL证书&#xff1f; 很多朋友买了威联通NAS后都会遇到一个头疼的问题&#xff1a;怎么在外面也能安全地访问家里的NAS&#xff1f;直接暴露IP地址不仅难记&#xff0c;还存在安全隐患。我刚开始用NAS时也踩过不少坑&#xff0c;后来发现用阿…...

如何快速实现 Nativefier 桌面应用时间同步:完整 NTP 服务配置指南

如何快速实现 Nativefier 桌面应用时间同步&#xff1a;完整 NTP 服务配置指南 【免费下载链接】nativefier Make any web page a desktop application 项目地址: https://gitcode.com/gh_mirrors/na/nativefier Nativefier 是一款能将任何网页转换为桌面应用的强大工具…...

5分钟快速部署:docker-elk实时数据处理架构完整指南 [特殊字符]

5分钟快速部署&#xff1a;docker-elk实时数据处理架构完整指南 &#x1f680; 【免费下载链接】docker-elk deviantony/docker-elk: 是一个使用 Docker 部署的 ELK Stack&#xff08;Elasticsearch、Logstash 和 Kibana&#xff09;解决方案&#xff0c;提供了预先构建的 Dock…...

Apple Cursor:重新定义跨平台指针体验的开源解决方案

Apple Cursor&#xff1a;重新定义跨平台指针体验的开源解决方案 【免费下载链接】apple_cursor Free & Open source macOS Cursors. 项目地址: https://gitcode.com/gh_mirrors/ap/apple_cursor 问题溯源&#xff1a;被忽视的交互基石 在数字交互的世界里&#xf…...

OpenClaw浏览器自动化:Qwen3-32B-Chat实现智能爬虫与数据分析

OpenClaw浏览器自动化&#xff1a;Qwen3-32B-Chat实现智能爬虫与数据分析 1. 为什么需要智能化的浏览器自动化&#xff1f; 上个月我需要收集某个垂直领域的行业报告&#xff0c;手动复制粘贴了十几个网页后&#xff0c;突然意识到&#xff1a;这种重复劳动不正是AI该解决的问…...

Pixel Mind Decoder 创意写作助手:分析经典文学中的情绪节奏与模仿生成

Pixel Mind Decoder 创意写作助手&#xff1a;分析经典文学中的情绪节奏与模仿生成 1. 当AI遇见文学创作 写作最难把握的是什么&#xff1f;很多作家会告诉你&#xff1a;是情绪的节奏。就像音乐需要起伏的旋律&#xff0c;一部好作品也需要精心设计的情感曲线。但传统创作中…...

Ansys与Adams刚柔耦合仿真实战:从模态分析到MNF文件生成全流程解析

1. 为什么需要刚柔耦合仿真&#xff1f; 刚接触机械系统仿真的朋友可能会有疑问&#xff1a;为什么不能直接用刚性体模型做动力学分析&#xff1f;这个问题我刚开始做项目时也纠结过。简单来说&#xff0c;现实世界中没有绝对的刚性体&#xff0c;所有物体在受力时都会发生形变…...

绕过 Cloudflare 防护:Puppeteer 与 Node.js 的实战指南

1. 为什么需要绕过Cloudflare防护&#xff1f; 最近几年做自动化项目的开发者应该都深有体会&#xff0c;Cloudflare的安全防护越来越难对付了。我去年帮一个电商公司做价格监控系统时就踩过坑&#xff0c;他们的网站用了Cloudflare Turnstile防护&#xff0c;普通的爬虫根本过…...

BGE-M3快速入门:多语言文本相似度分析从零到一

BGE-M3快速入门&#xff1a;多语言文本相似度分析从零到一 1. 引言&#xff1a;从“关键词匹配”到“语义理解” 你有没有遇到过这样的场景&#xff1f;在搜索引擎里输入“苹果”&#xff0c;结果既出现了水果&#xff0c;也出现了手机公司。或者&#xff0c;你想找“如何学习…...