Waline 选项

配置

serverURL

  • 类型: string
  • 详情:Waline 的服务端地址。

emoji

  • 类型: (WalineEmojiInfo | WalineEmojiPresets)[] | false

    type WalineEmojiPresets = `http://${string}` | `https://${string}`
    
    interface WalineEmojiInfo {
      /**
       * 选项卡上的 Emoji 名称
       */
      name: string
      /**
       * 所在文件夹链接
       */
      folder?: string
      /**
       * Emoji 通用路径前缀
       */
      prefix?: string
      /**
       * Emoji 图片的类型,会作为文件扩展名使用
       */
      type?: string
      /**
       * 选项卡显示的 Emoji 图标
       */
      icon: string
      /**
       * Emoji 图片列表
       */
      items: string[]
    }
    
  • 默认值: ['//unpkg.com/@waline/emojis@1.1.0/weibo']

  • 参考:

  • 详情:表情设置

dark

  • 类型: string | boolean

  • 默认值: false

  • 参考:

  • 详情:

    暗黑模式适配。

    • 设置布尔值会根据其值来设置暗黑模式。
    • 设置 'auto' 会根据设备暗黑模式自适应。
    • 填入 CSS 选择器会在对应选择器生效时启用夜间模式。

commentSorting

  • 类型: WalineCommentSorting

  • 默认值: 'latest'

  • 详情:

    评论列表排序方式。可选值: 'latest', 'oldest', 'hottest'

meta

  • 类型: string[]

  • 默认值: ['nick', 'mail', 'link']

  • 详情:

    评论者相关属性。可选值: 'nick', 'mail', 'link'

requiredMeta

  • 类型: string[]

  • 默认值: []

  • 详情:

    设置必填项,默认匿名,可选值:

    • []
    • ['nick']
    • ['nick', 'mail']

login

  • 类型: string
  • 默认值: 'enable'

登录模式状态,可选值:

  • 'enable': 启用登录 (默认)
  • 'disable': 禁用登录,用户只能填写信息评论
  • 'force': 强制登录,用户必须注册并登录才可发布评论

wordLimit

  • 类型: number | [number, number]

  • 默认值: 0

  • 详情:

    评论字数限制。填入单个数字时为最大字数限制。设置为 0 时无限制。

pageSize

  • 类型: number
  • 默认值: 10
  • 详情:评论列表分页,每页条数。

imageUploader 仅限客户端配置

  • 类型: WalineImageUploader | false

  • 详情:

    type WalineImageUploader = (image: File) => Promise<string>
    
  • 参考:

  • 详情:

    自定义图片上传方法。默认行为是将图片 Base 64 编码嵌入,你可以设置为 false 以禁用图片上传功能。

    函数应该接收图片对象,返回一个提供图片地址的 Promise。

highlighter 仅限客户端配置

  • 类型: WalineHighlighter | false

    type WalineHighlighter = (code: string, lang: string) => string
    
  • 参考:

  • 详情:

    代码高亮,默认使用一个 < 1kb 的简单高亮器。函数传入代码块的原始字符和代码块的语言。你应该直接返回一个字符串。

    你可以传入一个自己的代码高亮器,也可以设置为 false 以禁用代码高亮功能。

texRenderer 仅限客户端配置

  • 类型: WalineTexRenderer | false

    type WalineTexRenderer = (blockMode: boolean, tex: string) => string
    
  • 参考:

  • 详情:

    自定义 TeX 渲染,默认行为是提示预览模式不支持 TeX。函数提供两个参数,第一个参数表示渲染模式是否为块级,第二个参数是 TeX 的字符串,并返回一段 HTML 字符串作为渲染结果。

    你可以自行引入 TeX 渲染器并提供预览渲染,建议使用 Katex 或 MathJax,也可以设置为 false 以禁止渲染 TeX。

  • 类型: WalineSearchOptions | false

    interface WalineSearchImageData extends Record<string, unknown> {
      /**
       * 图片链接
       */
      src: string
    
      /**
       * 图片标题
       *
       * @description 用于图片的 alt 属性
       */
      title?: string
    
      /**
       * 图片缩略图
       *
       * @description 为了更好的加载性能,我们会优先在列表中使用此缩略图
       *
       * @default src
       */
      preview?: string
    }
    
    type WalineSearchResult = WalineSearchImageData[]
    
    interface WalineSearchOptions {
      /**
       * 搜索操作
       */
      search: (word: string) => Promise<WalineSearchResult>
    
      /**
       * 打开列表时展示的默认结果
       *
       * @default () => search('')
       */
      default?: () => Promise<WalineSearchResult>
    
      /**
       * 获取更多的操作
       *
       * @description 会在列表滚动到底部时触发,如果你的搜索服务支持分页功能,你应该设置此项实现无限滚动
       *
       * @default (word) => search(word)
       */
      more?: (word: string, currentCount: number) => Promise<WalineSearchResult>
    }
    
  • 详情:自定义搜索功能,设置 false 可禁用搜索。

recaptchaV3Key

  • 类型: string

  • 详情:

    reCAPTCHA V3 是 Google 提供的验证码服务,配置 reCAPTCHA V3 网站密钥即可开启该功能。

    服务端需要同步配置 RECAPTCHA_V3_SECRET 环境变量。

reaction

  • 类型: boolean | string[]

  • 默认值: false

  • 详情:

    为文章增加表情互动功能,设置为 true 提供默认表情,也可以通过设置表情地址数组来自定义表情图片,最大支持 8 个表情。

metaIcon 仅限插件选项

  • 类型: boolean

  • 默认值: true

  • 详情:

    是否导入 Meta 图标。

locales 仅限插件选项

插件配置

你可以直接在插件选项中配置可序列化的选项:

import { defineUserConfig } from 'vuepress'
import { commentPlugin } from '@vuepress/plugin-comment'

export default defineUserConfig({
  plugins: [
    commentPlugin({
      provider: 'Waline',
      // 其他选项
      // ...
    }),
  ],
})

客户端配置

你可以使用 defineWalineConfig 函数来配置 Waline。

import { defineClientConfig } from 'vuepress/client'
import { defineWalineConfig } from '@vuepress/plugin-comment/client'

defineWalineConfig({
  // Waline 选项
})

export default defineClientConfig({
  // ...
})