全文搜索 - Search

全文搜索插件会根据当前页面上的超链接获取文档内容,在 localStorage 内建立文档索引。

默认过期时间为一天,当然我们可以自己指定需要缓存的文件列表或者配置过期时间。

  [html]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<script> window.$docsify = { search: 'auto', // 默认值 search : [ '/', // => /README.md '/guide', // => /guide.md '/get-started', // => /get-started.md '/zh-cn/', // => /zh-cn/README.md ], // 完整配置参数 search: { maxAge: 86400000, // 过期时间,单位毫秒,默认一天 paths: [], // or 'auto' placeholder: 'Type to search', // 支持本地化 placeholder: { '/zh-cn/': '搜索', '/': 'Type to search' }, noData: 'No Results!', // 支持本地化 noData: { '/zh-cn/': '找不到结果', '/': 'No Results' }, // 搜索标题的最大层级, 1 - 6 depth: 2, hideOtherSidebarContent: false, // 是否隐藏其他侧边栏内容 // 避免搜索索引冲突 // 同一域下的多个网站之间 namespace: 'website-1', // 使用不同的索引作为路径前缀(namespaces) // 注意:仅适用于 paths: 'auto' 模式 // // 初始化索引时,我们从侧边栏查找第一个路径 // 如果它与列表中的前缀匹配,我们将切换到相应的索引 pathNamespaces: ['/zh-cn', '/ru-ru', '/ru-ru/v1'], // 您可以提供一个正则表达式来匹配前缀。在这种情况下, // 匹配到的字符串将被用来识别索引 pathNamespaces: /^(\/(zh-cn|ru-ru))?(\/(v1|v2))?/ } } </script> <script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script> <script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/search.min.js"></script>

当执行全文搜索时,该插件会忽略双音符(例如,”cafe” 也会匹配 “café”)。

像 IE11 这样的旧版浏览器需要使用以下 String.normalize() polyfill 来忽略双音符:

  [js]
1
<script src="//polyfill.io/v3/polyfill.min.js?features=String.prototype.normalize"></script>

谷歌统计 - Google Analytics

需要配置 track id 才能使用。

  [js]
1
2
3
4
5
6
7
<script> window.$docsify = { ga: 'UA-XXXXX-Y' } </script> <script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script> <script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/ga.min.js"></script>

也可以通过 data-ga 配置 id。

  [js]
1
2
<script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js" data-ga="UA-XXXXX-Y"></script> <script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/ga.min.js"></script>

emoji

默认是提供 emoji 解析的,能将类似 :100: 解析成 100。

但是它不是精准的,因为没有处理非 emoji 的字符串。如

果你需要正确解析 emoji 字符串,你可以引入这个插件。

  [js]
1
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/emoji.min.js"></script>

如果你不想解析成表情符号,可以使用 __colon__&#58;

如果你需要在标题中使用,我们建议使用 &#58;

例如,&#58;100:

外链脚本 - External Script

如果文档里的 script 是内联脚本,可以直接执行;而如果是外链脚本(即 js 文件内容由 src 属性引入),则需要使用此插件。

  [js]
1
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/external-script.min.js"></script>

图片缩放 - Zoom image

Medium’s 风格的图片缩放插件. 基于 medium-zoom。

  [js]
1
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/zoom-image.min.js"></script>

忽略某张图片

  [plaintext]
1
![](image.png ":no-zoom")

在 Github 上编辑

在每一页上添加 Edit on github 按钮. 由第三方库提供, 查看 document

代码即时预览和 jsfiddle 集成

通过这个插件,示例代码可以在页面上即时呈现,让读者可以立即看到预览。

当读者展开演示框时,源码和说明就会显示在那里,如果点击Try in Jsfiddle按钮,jsfiddle.net就会打开这个例子的代码,让读者自己修改代码和测试。

docsify同时支持Vue和React版本的插件。

复制到剪贴板

在所有的代码块上添加一个简单的Click to copy按钮来允许用户从你的文档中轻易地复制代码。

由@jperasmus提供。

  [js]
1
<script src="//cdn.jsdelivr.net/npm/docsify-copy-code/dist/docsify-copy-code.min.js"></script>

详情可参考 README.md

Disqus

Disqus评论系统支持。

https://disqus.com/

  [js]
1
2
3
4
5
6
<script> window.$docsify = { disqus: 'shortname' } </script> <script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/disqus.min.js"></script>

Gitalk

Gitalk,一个现代化的,基于Preact和Github Issue的评论系统。

  [js]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/gitalk/dist/gitalk.css"> <script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/gitalk.min.js"></script> <script src="//cdn.jsdelivr.net/npm/gitalk/dist/gitalk.min.js"></script> <script> const gitalk = new Gitalk({ clientID: 'Github Application Client ID', clientSecret: 'Github Application Client Secret', repo: 'Github repo', owner: 'Github repo owner', admin: ['Github repo collaborators, only these guys can initialize github issues'], // facebook-like distraction free mode distractionFreeMode: false }) </script>

Pagination

docsify 的 分页导航插件,由@imyelo提供。

  [js]
1
2
<script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script> <script src="//cdn.jsdelivr.net/npm/docsify-pagination/dist/docsify-pagination.min.js"></script>

字数统计

这是一款为 docsify 提供文字统计的插件. @827652549提供

它提供了统计中文汉字和英文单词的功能,并且排除了一些markdown语法的特殊字符例如*、-等

  • add
  [js]
1
<script src="//unpkg.com/docsify-count/dist/countable.js"></script>
  • setting
  [js]
1
2
3
4
5
6
7
8
window.$docsify = { count:{ countable:true, fontsize:'0.9em', color:'rgb(90,90,90)', language:'chinese' } }

Code Fund

帮你快速接入Code Fund的插件, 由@njleonzhang提供。

Code Fund 以前叫 codesponsor

  [js]
1
2
3
4
5
6
7
<script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script> window.$docsify = { plugins: [ DocsifyCodefund.create('51d43327-eea3-4e27-bd44-e075e67a84fb') // 把这个id改成你的codefund id ] }

Tabs

这个插件用来在 Markdown 中显示选项卡。

文档和示例

参考资料

https://docsify.js.org/#/zh-cn/plugins