---
title: 文章水印
author: pengzhanbo
icon: material-symbols-light:branding-watermark-outline
createTime: 2024/04/10 20:14:57
permalink: /guide/features/watermark/
---

## 概述

文章水印由 [@vuepress/plugin-watermark](https://ecosystem.vuejs.press/zh/plugins/features/watermark.html) 提供支持。

主题支持在文章中添加水印。支持 全屏水印 和 内容水印，同时还支持 图片水印 和 文字水印 。

## 启用水印

主题默认不启用水印功能。你需要在主题配置中开启。

::: code-tabs
@tab .vuepress/config.ts

```ts
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'

export default defineUserConfig({
  theme: plumeTheme({
    plugins: {
      // watermark: true,
      watermark: {
        // enabled: false,  // boolean 类型控制是否全局启用
        enabled: page => true, // function 类型 过滤哪些页面启用水印
        delay: 500, // 添加水印的延时。以毫秒为单位。

        /**
         * 是否全屏水印，默认为 `true`，
         * 设置为 `false` 时，水印仅在 内容区域中显示。
         */
        fullPage: true,

        /** @see https://zhensherlock.github.io/watermark-js-plus/zh/config/ */
        watermarkOptions: {
          content: 'your watermark',
          // ...
        }
      }
    }
  })
})
```

:::

### 全局启用

当 `plugins.watermark` 配置为 `true` 时， 主题全局开启水印。

```ts
export default defineUserConfig({
  theme: plumeTheme({
    plugins: {
      watermark: true,
    }
  })
})
```

### 部分页面启用

主题提供了两种方式控制部分页面启用水印。

#### watermark.enabled

```ts
export default defineUserConfig({
  theme: plumeTheme({
    plugins: {
      watermark: {
        // 返回结果为 true 的将启用水印，否则禁用
        enabled: page => page.path.includes('/article/'),
      }
    }
  })
})
```

#### frontmatter.watermark

在 md 文件中添加 `frontmatter.watermark` 为 `true` ：

```md
---
watermark: true
---
```

还可以个性化配置当前页面的水印：

```md
---
watermark:
  content: My Custom Content
  globalAlpha: 0.2
  rotate: 45
---
```

## 图片水印

主题支持使用 图片 作为水印。

```ts
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'

export default defineUserConfig({
  theme: plumeTheme({
    plugins: {
      watermark: {
        watermarkOptions: {
          contentType: 'image',
          image: '/images/watermark.png',
          width: 200,
          height: 200,
          imageWidth: 100,
          imageHeight: 100,
        }
      }
    }
  })
})
```

也可以在 md 文件中添加配置，为当前页面设置水印：

```md
---
watermark:
  contentType: image
  image: /images/watermark.png
  width: 200
  height: 200
  imageWidth: 100
  imageHeight: 100
---
```

### 示例

[图片水印](/article/i4cuuonn/)

## 文字水印

主题支持使用 文字 作为水印。

```ts
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'

export default defineUserConfig({
  theme: plumeTheme({
    plugins: {
      watermark: {
        watermarkOptions: {
          content: '自定义文字',
          fontColor: '#fff', // 文字颜色
        }
      }
    }
  })
})
```

也可以在 md 文件中添加配置，为当前页面设置水印：

```md
---
watermark:
  content: 自定义文字
  fontColor: #fff
---
```

## Frontmatter

主题支持在 md 文件中添加 `frontmatter.watermark` 为单个页面设置水印。

```md
---
watermark:
  content: My Custom Content
---
```

支持的配置项请参考：[watermark-js-plus](https://zhensherlock.github.io/watermark-js-plus/zh/config/)

同时，还额外支持 `fullPage` 控制是否全屏显示。

```md
---
watermark:
  fullPage: false
---
```

## 示例

- [内容水印](/article/2z59hh8g/)
- [全屏水印](/article/97s6ha1e/)
