跳转到内容

水印 ​

npm versionnpm monthly downloadsnpm sizenpm license

给站点添加水印的插件,纯客户端实现,无需 Node 侧配置。

安装 ​

sh
pnpm add vitepress-plugin-watermark
sh
npm install vitepress-plugin-watermark
sh
bun add vitepress-plugin-watermark
sh
deno add vitepress-plugin-watermark
sh
yarn add vitepress-plugin-watermark

使用 ​

此插件仅提供客户端 setupWatermark 函数,需要在主题 setup 函数中调用配置水印:

.vitepress/theme/index.ts
ts
import type { Theme } from 'vitepress'
import DefaultTheme from 'vitepress/theme'
import { setupWatermark } from 'vitepress-plugin-watermark'

export default {
  extends: DefaultTheme,
  setup() {
    setupWatermark({ /* 配置水印 */ })
  },
} satisfies Theme

配置 ​

setupWatermark 接受一个可选的配置对象:

ts
setupWatermark({
  enabled: true,
  content: '我的水印',
  fontColor: '#76747f',
  globalAlpha: 0.165,
  width: 200,
  height: 200,
  rotate: -22,
  fontSize: '16px',
  fontFamily: 'sans-serif',
})
选项类型默认值说明
enabledboolean | ((pageData: PageData) => boolean)true是否启用水印,支持函数动态判断
contentstring站点标题水印文本内容
fontColorstring'#76747f'字体颜色
globalAlphanumber0.165(普通模式)/ 0.005(盲水印模式)透明度
mode'default' | 'blind''default'水印模式,'blind' 为盲水印
widthnumber—单个水印区域宽度
heightnumber—单个水印区域高度
rotatenumber—旋转角度
fontSizestring—字体大小
fontFamilystring—字体
fontStylestring—字体样式
fontWeightstring—字体粗细
imagestring—图片水印 URL
layout'default' | 'grid'—布局模式
zIndexnumber—CSS 层级
mutationObserveboolean—启用 DOM 变化监听保护
monitorProtectionboolean—启用监控保护
movableboolean—允许拖拽移动水印
parentElement | string—挂载的父元素

更多配置项请参阅 watermark-js-plus 文档。

单页水印 ​

通过页面的 frontmatter 控制单个页面的水印行为:

启用水印 ​

yaml
---
watermark: true
---

自定义文本 ​

yaml
---
watermark: 机密文件
---

完全自定义 ​

yaml
---
watermark:
  content: 草稿
  fontColor: '#ff0000'
  globalAlpha: 0.3
  rotate: 30
---

禁用特定页面 ​

yaml
---
watermark: false
---

动态启用水印 ​

通过 enabled 函数基于页面路径动态控制:

ts
setupWatermark({
  enabled: (pageData) => {
    // 仅在 guide/ 目录下的页面启用水印
    return pageData.relativePath.startsWith('guide/')
  },
})

基于 MIT 许可发布