VuePress 生态系统VuePress 生态系统
  • 主题指南
  • 默认主题
  • Hope 主题
  • Plume 主题
  • Reco 主题
  • 功能插件
  • Markdown 插件
  • 搜索插件
  • 博客插件
  • 渐进式应用插件
  • 统计分析插件
  • 搜索引擎优化插件
  • 开发插件
  • 工具插件
  • AI 插件
  • @vuepress/helper
  • English
  • 简体中文
GitHub
  • 主题指南
  • 默认主题
  • Hope 主题
  • Plume 主题
  • Reco 主题
  • 功能插件
  • Markdown 插件
  • 搜索插件
  • 博客插件
  • 渐进式应用插件
  • 统计分析插件
  • 搜索引擎优化插件
  • 开发插件
  • 工具插件
  • AI 插件
  • @vuepress/helper
  • English
  • 简体中文
GitHub
  • back-to-top
  • catalog
  • copy-code
  • copyright
  • icon
  • media
  • medium-zoom
  • notice
  • nprogress
  • photo-swipe
  • watermark

copyright

@vuepress/plugin-copyright

此插件可以在访问者从你的站点复制内容时,自动追加版权信息,也可以禁止站点的复制或者选择。

使用

npm i -D @vuepress/plugin-copyright@next
.vuepress/config.ts
import { copyrightPlugin } from '@vuepress/plugin-copyright'

export default {
  plugins: [
    copyrightPlugin({
      // options
    }),
  ],
}

指南

启用版权信息

此插件默认全局禁用。你可以:

  • 在特定页面的 frontmatter 中设置 copy: true 手动开启。
  • 在插件选项中设置 global: true 让其全局生效,并在页面的 frontmatter 中设置 copy: false 禁用它。

处于不打扰用户的考虑,默认配置下仅当复制长度超过 100 时才会追加版权信息。如果你希望改变这个触发值,你可以插件选项中设置 triggerLength,或在页面 frontmatter 单独设置 copy.triggerLength。

你可以通过插件的 author 和 license 选项设置全局作者和协议信息。

如果文档的不同部分拥有不同的作者和协议,你可以通过 authorGetter 和 licenseGetter 传入一个使用当前页面对象作为参数的函数 (page: Page) => string 并通过它返回相应信息。

插件会默认通过模板从作者、协议和页面链接生成版权信息,并在复制时追加。如果你认为这不够灵活,你可以设置 copyrightGetter 返回一个完全由你自定义的版权信息,或返回 null 以使用默认模板。

禁用复制和选择

如果你希望禁止用户复制较长内容,你可以在插件选项中设置 maxLength 控制这个临界值,或在页面 frontmatter 中设置 copy.maxLength。

  • 如果你不希望用户复制你的整个站点或特定页面文字,你可以在插件选项中设置 disableCopy 或在页面 frontmatter 中设置 copy.disableCopy 来禁用复制。后者具有更高优先级。
  • 如果你不希望用户选择你的整个站点或特定页面文字,你可以在插件选项中设置 disableSelection 或在页面 frontmatter 中设置 copy.disableSelection 来禁用文字选择。后者具有更高优先级。

选项

authorstring

默认作者信息。

licensestring

默认协议信息。

authorGetter(page: Page) => string | null

作者信息获取器。它以当前页面对象作为参数,返回作者信息。

licenseGetter(page: Page) => string | null

协议信息获取器。它以当前页面对象作为参数,返回协议信息。

copyrightGetter(page: Page) => string | null

版权信息获取器。它以当前页面对象作为参数,返回完全由你自定义的版权信息,或返回 null 以使用默认模板。

canonicalstring

首选域名与部署目录,它将作为追加的版权信息中的参考链接。

例子

如果你在 https://myblog.com 和 https://blog.com/username/ 下部署相同的内容,你可能希望选择一个站点作为首选链接。

  • 如果你倾向于使用第一个,你应该将 canonical 设置为 https://myblog.com
  • 如果你倾向于使用第二个,你应该将 canonical 设置为 https://blog.com/username/

这样,在另一个站点触发的版权信息也会指向你的首选站点。

globalboolean

是否全局启用插件。

参考:启用版权信息。

disableCopyboolean

是否禁用复制。

参考:禁用复制和选择。

disableSelectionboolean

是否禁用选择。

参考:禁用复制和选择。

triggerLengthnumber
默认值100

触发附加版权的最小内容长度。

maxLengthnumber
默认值0

允许复制的最大内容长度,0 意味着无限制。

localesCopyrightPluginLocaleConfig

插件的多语言配置。

参考:多语言配置。

locales.<localePath>.authorstring

作者文字,其中的 :author 将会被作者替换。

locales.<localePath>.licensestring

协议文字,其中的 :license 会被当前协议替换。

locales.<localePath>.linkstring

链接文字,其中的 :link 会替换为当前页面链接。

Frontmatter

copyboolean | object

是否为当前页面启用插件,或传入一个对象进行配置。

设置为 true 可在当前页面启用插件;当插件全局启用时,设置为 false 可在当前页面禁用它。

copy.triggerLengthnumber
默认值100

触发附加版权的最小内容长度。它会覆盖全局的 triggerLength 选项。

copy.maxLengthnumber
默认值0

允许复制的最大内容长度,0 意味着无限制。它会覆盖全局的 maxLength 选项。

copy.disableCopyboolean
默认值false

是否禁用复制。它会覆盖全局的 disableCopy 选项。

copy.disableSelectionboolean
默认值false

是否禁用选择。它会覆盖全局的 disableSelection 选项。

在 GitHub 上编辑此页
上次更新: 2026/9/28 04:40
贡献者: Mister-Hope
上一页
copy-code
下一页
icon