2024-04-14 19:30:41 +08:00

174 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 文章水印
author: pengzhanbo
icon: material-symbols-light:branding-watermark-outline
createTime: 2024/04/10 20:14:57
permalink: /guide/features/watermark/
---
## 概述
主题支持在文章中添加水印。支持 全屏水印 和 内容水印,同时还支持 图片水印 和 文字水印 。
水印 仅在 文章页面 生效。如首页、博客页等其他页面不会注入水印。
## 启用水印
主题默认不启用水印功能。你需要在主题配置中开启。
::: code-tabs
@tab .vuepress/config.ts
```ts
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
export default defineUserConfig({
theme: plumeTheme({
// watermark: true, // 使用默认配置的水印
watermark: {
global: true, // 全局开启水印
image: '/images/watermark.png', // 水印图片
content: 'vuepress plume', // 水印内容, 如果配置了 image, 则优先使用 image
opacity: 0.1, // 透明度
rotate: -22, // 旋转角度
width: 100, // 水印宽度
height: 100, // 水印高度
textColor: '#fff', // 文字颜色
fullPage: true, // 是否全屏, 非全屏时水印仅覆盖文章内容
gapX: 20, // 水印横向间距
gapY: 20, // 水印纵向间距
onlyPrint: true, // 只在打印时生效
matches: ['/article/xxx', '^/note/', 'notes/guide/xx.md'], // 非全局启用时,匹配页面路径或文件路径来启用水印
}
})
})
```
:::
### 全局启用
`watermark` 配置为 `true` 时, 主题全局开启水印。还可以通过 `watermark.global` 配置是否开启全局水印。
### 部分页面启用
`watermark.global``false` 时,主题虽然启用了水印功能,但是需要自行控制哪些页面显示水印。
主题提供了两种方式来控制水印的显示:
#### watermark.matches
```ts
export default defineUserConfig({
theme: plumeTheme({
// watermark: true, // 使用默认配置的水印
watermark: {
global: false,
matches: [
// 可以是 md 文件的相对路径
'notes/guide/xx.md',
// 可以是 文件夹的路径
'/notes/vuepress-theme-plume/',
// 可以是 访问地址的请求路径,对该访问路径下所有文章 都生效
'/vuepress-theme-plume/',
// 可以是 具体的某个页面的请求路径
'/article/f8dnci3/',
// 如果是 `^` 开头,则匹配该正则表达式的页面
'^/(a|b)/',
],
}
})
})
```
#### frontmatter.watermark
在 md 文件中添加 `frontmatter.watermark``true`
```md
---
watermark: true
---
```
还可以个性化配置当前页面的水印:
```md
---
watermark:
content: My Custom Content
opacity: 0.2
rotate: 45
---
```
## 图片水印
主题支持使用 图片 作为水印。
```ts
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
export default defineUserConfig({
theme: plumeTheme({
watermark: {
image: '/images/watermark.png', // 水印图片
width: 100, // 水印宽度
height: 100, // 水印高度
}
})
})
```
也可以在 md 文件中添加配置,为当前页面设置水印:
```md
---
watermark:
image: /images/watermark.png
width: 100
height: 100
---
```
### 示例
[图片水印](/article/i4cuuonn/)
## 文字水印
主题支持使用 图片 作为水印。
```ts
import { defineUserConfig } from 'vuepress'
import { plumeTheme } from 'vuepress-theme-plume'
export default defineUserConfig({
theme: plumeTheme({
watermark: {
content: '自定义文字',
textColor: '#fff', // 文字颜色
}
})
})
```
也可以在 md 文件中添加配置,为当前页面设置水印:
```md
---
watermark:
content: 自定义文字
textColor: #fff
---
```
当同时设置了 `image``content` 时, `image` 优先于 `content`
## 示例
- [内容水印](/article/2z59hh8g/)
- [全屏水印](/article/97s6ha1e/)