更多功能及配置

Gungnir
2021-03-26
8 min

本节中的所有功能(除了阅读时长估计以外)默认都是不启用的,所以需要按照下述配置方式在 .vuepress/config.js 中启用你想要使用的功能。

信息

对于没有启用的功能,与它们相关的代码并不会被打包。

# 评论

评论功能基于 Vssue。Vssue 支持将评论存储在 Github、Gitlab、Bitbucket、Gitee 和 Gitea 平台的 Issue 系统中。

一个简单的基于 Github 的评论配置为:

themeConfig: {
  comment: {
    platform: "github",
    owner: "This-is-an-Apple",  // 用于放评论的仓库的拥有者 ID
    repo: "gitalk-comments",  // 用于放评论的仓库名
    clientId: "your-client-id",  // OAuth App Client ID
    clientSecret: "client-secret"  // OAuth App Client Secret
  }
}

如果不指定 platform 项,主题会把 Github 作为默认平台。如果想要使用 Github 以外的平台,则还需要手动安装对应的 api 包

其他详细说明可以参考 Vssue 文档

# 站点统计

目前支持谷歌统计(基于插件 plugin-google-analytics)和百度统计(基于插件 plugin-baidu-tongji)。

# 谷歌统计

需要去谷歌统计官网上申请一个跟踪代码,然后填入配置:

themeConfig: {
  analytics: {
    ga: "your-tracking-code"
  }
}

# 百度统计

需要去百度统计官网上申请一个跟踪代码,然后填入配置:

themeConfig: {
  analytics: {
    ba: "your-tracking-code"
  }
}

# RSS

通过插件 plugin-rss 来提供 RSS 支持,生成的文件路径为 ./rss.xml。插件配置:

themeConfig: {
  rss: {
    site_url: "https://zxh.io",  // 网站链接 (必须)
    copyright: "Renovamen 2018-2021",  // 版权信息(可选)
    count: 20,  // 需要在 rss 上显示多少篇文章(可选)
    filter: (frontmatter) => { return [true|false] },  // 文章筛选函数(可选)
  }
}

这里是本站的 RSS 文件。

# 阅读时长估计

主题默认在文章头部显示估计出的阅读时长,该功能基于插件 plugin-reading-time

可以传入一些配置项来配置这个插件:

themeConfig: {
  readingTime: {
    excludes: ['/url1', '/url2/.*'],  // 不需要进行统计的页面路径,默认为 ["/tags/.*", "/links"]
    wordsPerMinuteCN: 500,  // 一分钟可以阅读多少个中文字符,默认为 300
    wordsPerMinuteEN: 200,  // 一分钟可以阅读多少个英文字符,默认为 160
    excludeCodeBlock: true,  // 是否排除所有代码块内的字符,默认为 false
    excludeTexBlock: true    // 是否排除所有公式块内的字符,默认为 false
  }
}

也可以在文章的 frontmatter 中强行重写阅读时长:

title: Hello Word
readingTime: { minutes: 3 }

# 一言

themeConfig: {
  hitokoto: true
}

hitokoto 项设置为 true 可以开启首页的一言气泡,将鼠标悬浮在头像上气泡就会显示出来:

hitokoto

如果你想更改一言的请求参数,或想使用其他的接口,可以指定 hitokoto.api 项:

themeConfig: {
  hitokoto: {
    api: "https://v1.hitokoto.cn/?c=i"  // 只返回诗词
  }
}

# 数学公式渲染

通过插件 plugin-katex 来提供公式渲染支持。启用 KaTeX:

themeConfig: {
  katex: true
}

例子:

行内公式:E=mc2E = mc^2

行块公式:

iψt=22m(2x2+2y2+2z2)ψ+Vψ.i\hbar\frac{\partial \psi}{\partial t} = \frac{-\hbar^2}{2m} ( \frac{\partial^2}{\partial x^2} + \frac{\partial^2}{\partial y^2} + \frac{\partial^2}{\partial z^2} ) \psi + V \psi.

代码
行内公式:$E = mc^2$

行块公式:

$$
i\hbar\frac{\partial \psi}{\partial t} = \frac{-\hbar^2}{2m} ( \frac{\partial^2}{\partial x^2} + \frac{\partial^2}{\partial y^2} + \frac{\partial^2}{\partial z^2} ) \psi + V \psi.
$$

# 图表

在 Markdown 中轻松插入一些可交互的图表。

# Chart.js

通过插件 plugin-chart 来在 Markdown 中使用 JavaScript 图表库 Chart.js

themeConfig: {
  chartjs: true
}

代码块的 token info 需要为 chart,例子:

代码
```chart
{
  "type": "doughnut",
  "data": {
    "datasets": [{
      "data": [10, 20, 30],
      "backgroundColor": [
        "rgba(255, 99, 132)",
        "rgba(255, 206, 86)",
        "rgba(54, 162, 235)"
      ]
    }],
    "labels": ["Red", "Yellow", "Blue"]
  }
}
```

警告

key 值一定要加引号,否则会报错。

更详细的用法可以参考 Chart.js 文档

# Mermaid

通过插件 plugin-mermaid 来在 Markdown 中使用 Mermaid,从而在文章中加入流程图、状态图、时序图、甘特图等:

themeConfig: {
  mermaid: true
}

代码块的 token info 需要为 mermaid,例子:

sequenceDiagram Alice->John: Hello John, how are you? loop Every minute John-->Alice: Great! end
代码
```mermaidjs
sequenceDiagram
  Alice->John: Hello John, how are you?
  loop Every minute
    John-->Alice: Great!
  end
```

更详细的用法可以参考 Mermaid 文档

# roughViz.js

通过插件 plugin-roughviz 来在 Markdown 中使用 roughViz.js。与别的画出来的图看上去很标准的图表库不同,roughViz.js 的特性是绘制手绘样式的图表。

themeConfig: {
  roughviz: true
}

roughViz.js 支持以下七种图表类型:

  • Bar (bar)
  • Horizontal Bar (barh)
  • Donut (donut)
  • Line (line)
  • Pie (pie)
  • Scatter (scater)
  • Stacked Bar (stackedbar)

因此代码块的 token info 需要为 roughviz-{ 你想创建的图表类型 }。比如想要创建一个 Donut 图表:

代码
```roughviz-donut
{
  "data": {
    "labels": ["North", "South", "East", "West"],
    "values": [10, 5, 8, 3]
  },
  "title": "Regions",
  "colors": ["red", "orange", "blue", "skyblue"],
  "roughness": 4
}
```

如果希望加载本地 csv 文件中的数据,一种可行的方法是把 csv 文件放在 .vuepress/public/ 文件夹下(假设路径为 .vuepress/public/csv/flavors.csv),然后:

Code
```roughviz-bar
{
  "data": "/csv/flavors.csv",
  "labels": "flavor",
  "values": "price"
}
```

更详细的用法可以参考 roughViz.js 文档

# Markdown 增强样式

通过插件 plugin-md-plus 来在 Markdown 中加入更多语法和功能。目前支持:

  • 脚注
  • 高亮标记

你可以一键启用所有功能:

themeConfig: {
  mdPlus: {
    all: true,  // 全部启用
  }
}

也可以分别启用:

themeConfig: {
  mdPlus: {
    footnote: true,  // 脚注
    mark: true  // 高亮标记
  }
}

# 脚注

给文字加上脚注[1]

语法
给文字加上脚注[^1]

[^1]: 脚注内容

# 高亮标记

高亮标记重要的内容:衬衫的价格是 九磅十五便士

语法
衬衫的价格是 ==九磅十五便士==


  1. 脚注内容 ↩︎