转载自我的个人博客:小树

VitePress 本身基于 Vue3,可以通过组件将 Waline 集成到页面中,关于 VitePress 中的组件可以看这篇文章:组件 | VitePress

首先在 .vitepress 中创建一个 theme 文件夹,theme 文件的路径应该是这样的:

.
├── Layout.vue
├── components
│ └── CommentItem.vue
└── index.ts

首先在 components 中写一个评论组件:

<template>
<Waline :serverURL="serverURL" :path="path" />
</template>
<script setup>
import { Waline } from '@waline/client/component';
import { computed } from 'vue';
// 从 'vitepress' 导入 useData
import { useData } from 'vitepress'; import '@waline/client/style'; const serverURL = 'https://waline.example.com';
// 使用 useData 获取页面信息
const { page } = useData();
// 通过 page.relativePath 获取当前路径
const path = computed(() => page.value.relativePath);
</script>

之后在布局组件中,将其引用:

<script setup>
import DefaultTheme from 'vitepress/theme'
import Comment from './components/CommentItem.vue' // 导入你的评论组件
import { useData } from 'vitepress' const { Layout } = DefaultTheme
const { frontmatter } = useData() // 获取 frontmatter 数据
</script> <template>
<Layout>
<template #doc-after>
<!-- 可以根据 frontmatter 控制是否显示评论 -->
<Comment v-if="frontmatter.comment !== false" />
</template>
</Layout>
</template>

最后按照规定,写一个 index.ts 的注册文件:

import DefaultTheme from 'vitepress/theme'
import Layout from './Layout.vue' export default {
extends: DefaultTheme,
Layout: Layout,
enhanceApp({app}) {
}
}

VitePress 集成 Waline的更多相关文章

  1. Vitepress搭建组件库文档(下)—— 组件 Demo

    上文 <Vitepress搭建组件库文档(上)-- 基本配置>已经讨论了 vitepress 搭建组件库文档的基本配置,包括站点 Logo.名称.首页 home 布局.顶部导航.左侧导航等 ...

  2. 如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成

    阅读目录 前言 建模 实现 结语 一.前言 前面几篇已经实现了一个基本的购买+售价计算的过程,这次再让售价丰满一些,增加一个会员价的概念.会员价在现在的主流电商中,是一个不大常见的模式,其带来的问题是 ...

  3. 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)

    通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...

  4. 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)

    前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...

  5. Travis CI用来持续集成你的项目

    这里持续集成基于GitHub搭建的博客为项目 工具: zqz@ubuntu:~$ node --version v4.2.6 zqz@ubuntu:~$ git --version git versi ...

  6. solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件

    昨天已经在Tomcat容器中成功的部署了solr全文检索引擎系统的服务:今天来分享一下solr服务在海量数据的网站中是如何实现数据的检索. 在solr服务中集成IKAnalyzer中文分词器的步骤: ...

  7. 如何一步一步用DDD设计一个电商网站(六)—— 给购物车加点料,集成售价上下文

    阅读目录 前言 如何在一个项目中实现多个上下文的业务 售价上下文与购买上下文的集成 结语 一.前言 前几篇已经实现了一个最简单的购买过程,这次开始往这个过程中增加一些东西.比如促销.会员价等,在我们的 ...

  8. .NetCore中的日志(2)集成第三方日志工具

    .NetCore中的日志(2)集成第三方日志工具 0x00 在.NetCore的Logging组件中集成NLog 上一篇讨论了.NetCore中日志框架的结构,这一篇讨论一下.NetCore的Logg ...

  9. TODO:macOS上ThinkPHP5和Semantic-UI集成

    TODO:macOS上ThinkPHP5和Semantic-UI集成 1. 全局安装 (on OSX via homebrew)Composer 是 homebrew-php 项目的一部分 2. 把X ...

  10. ABP文档 - SignalR 集成

    文档目录 本节内容: 简介 安装 服务端 客户端 连接确立 内置功能 通知 在线客户端 帕斯卡 vs 骆峰式 你的SignalR代码 简介 使用Abp.Web.SignalR nuget包,使基于应用 ...

随机推荐

  1. AI与.NET技术实操系列(七):使用Emgu CV进行计算机视觉操作

    引言 计算机视觉(Computer Vision, CV)是人工智能领域中最为引人注目的分支之一.从自动驾驶汽车到医疗影像分析,从智能安防系统到虚拟现实体验,计算机视觉的应用无处不在,深刻地改变着我们 ...

  2. 唐僧,一名合格的IT项目经理

    唐僧, 家喻户晓的唐三藏是也, 他是参悟佛法的大唐高僧,他还是大话西游的男一号, 可是有谁知道,他曾经是一名杰出的项目经理.他所领导的项目是是当时最庞大的IT项目--西天之行求取真经;他所领导的项目团 ...

  3. K8S 问题排查: cgroup 内存泄露问题

    Posted on 2019年12月6日Leave a comment Contents [hide] 1 前言 2 现象 3 原因 4 解决方案 4.1 方案一 4.2 方案二 4.3 方案三 5 ...

  4. Linux 系统出现异常排查思路

    16 系统出现异常排查思路16.1 查看用户信息16.1.1查看当前的用户# who 04:39:39 up  1:30,  1 user,  load average: 0.01, 0.01, 0. ...

  5. Cursor 老改坏代码?六哥这几招超管用!

    大家好,我是六哥!最近不少小伙伴和我吐槽,在使用Cursor时,AI老是把代码改坏,让人头疼不已.我自己也用了大几十个小时Cursor,今天就来给大家分享一些实用小窍门,教大家如何巧妙规避这类问题. ...

  6. 聊聊AI Agent与AI 数字分身

    提供AI应用咨询+陪跑服务,有需要回复1 Manus爆火后,网上出现了很多AI热门名词,比如Agent.AI分身,并且有一张技术架构实现图: 怎么说呢,也许这张图是对的,但就我这边实际的项目实践情况以 ...

  7. zk源码—1.数据节点与Watcher机制及权限

    大纲 1.ZooKeeper的数据模型.节点类型与应用 (1)数据模型之树形结构 (2)节点类型与特性(持久 + 临时 + 顺序 ) (3)节点的状态结构(各种zxid + 各种version) (4 ...

  8. freertos消息队列的值传递和指针传递

    消息队列的使用方法总结: 1.消息队列初始化(定义一个消息队列的结构体),一般在main.c中完成. 2.消息队列的发送:   a extern 消息队列   b 定义一个结构体的指针指向消息消息队列 ...

  9. C#之集合常用扩展方法与Linq

    一.集合的常用扩展方法(lambda的方式) 1.Where() 根据条件选择数据 2.Select() 根据数据条件转换成新的数据类型,类似于DTO转换类 3.Max() 根据条件选择最大值 4.M ...

  10. Asp .net core JWT验证

    Jwt .wiz-editor-body .wiz-code-container { position: relative; padding: 8px 0; margin: 5px 0; text-i ...