vitepress postRender修改markdown内容

vitepress 动态修改markdown内容
vitepress 统一修改markdown内容

编译时修改markdown或html内容

参考:https://vitepress.dev/zh/reference/site-config#postrender

打开 .vitepress/config.ts

import { defineConfig } from 'vitepress'

import { Nav } from './nav'
import { Sidebar } from './sidebar'

// https://vitepress.dev/reference/site-config
export default defineConfig({
  title: "爱反垃圾堆",
  description: "😮‍💨⛵️🌶︎🐔✅",
  titleTemplate: ':title 🌱 fir8.com',
  lang: 'zh-CN',
  lastUpdated: true,

  themeConfig: {
    siteTitle: '爱反垃圾堆',
    outlineTitle: '内容导航',
    returnToTopLabel: '回到顶部',
    sidebarMenuLabel: '章节目录',
    darkModeSwitchLabel: '主题模式',
    lastUpdatedText: '更新时间',
    docFooter: {
      prev: '上一篇',
      next: '下一篇'
    },

    nav: Nav,

    sidebar: Sidebar,
  
  },
  // 参考:https://vitepress.dev/zh/reference/site-config#postrender
  async postRender(context) {
    // 修改markdown内容的, hello world 替换为红色的 你好,世界
    context.content = context.content.replace(/hello world/g, '<span style="color: red;">你好,世界</span>')
    // 查看.vitepress/dist/ 下的html文件,发现已经替换了
  }
})

vitepress 动态修改markdown内容

test.md


<div ref="novel">999999123988888889898</div>

<script setup>
import { ref, watch } from 'vue'

const novel = ref(null)
console.log(novel.value)


watch(novel, () => {toColor(novel)})

const toColor = (novel) => {
  // 匹配98,修改颜色为红色
  const innerHTML = novel.value.innerHTML.replace(/98/g, (match) => {
    return `<span style="color: red">${match}</span>`
  })
  novel.value.innerHTML = innerHTML
}

</script>
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值