前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2022-09-25 docsify 站点发布

2022-09-25 docsify 站点发布

作者头像
三流之路
发布2022-09-30 08:57:14
1.2K0
发布2022-09-30 08:57:14
举报
文章被收录于专栏:三流程序员的挣扎

docsify 终于算是弄完了,简单记录下。然后发现一个问题,相比 Hexo,Hugo 这些页面加载很慢,鱼与熊掌不可兼得,运行时生成只能这样了。

还有 navbar 的设置有时在封面无法显示。


主要参考官方文档,一次配置完的,一看就懂的就不需要记录了,记下可能后续需要改动的,花了一点时间才搞明白的。

手动初始化不太懂,想着手写 html 拿它那些命令运行不需要环境之类的吗,被之前的 Hexo,Hugo 误导,还真不要,就一个 html 文件,里面引用的 js,就可以执行了。

文件名后加内容以更好的支持 SEO,比如 [Guide](guide.md "The greatest guide in the world")

需要 <script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script> 配置的不能用,会引起搜索框出错,页面无法滑动。比如文档上的 CDN 插件就是这问题。

subMaxLevel 是文档内部的标题也显示到左侧导航目录上,并控制显示几级。第一个一级标题 # 显示不出来,之前 Hugo 也是,大概是默认将 # 当做文档的标题,也许这是一个约定的标准。

若小标题不需要加到目录(比如 README),在第一个标题后添加 `` 可以忽略文档所有标题,也可以添加标签去忽略指定标题。

index.html 中的 repo 是配置 Github 地址,会在网页右上角显示 Github 图标折角。

首页自定义显示卡片索引链接到具体文集,幸好之前学过前端,虽然不记得,笔记还在,不会用太复杂的,简单的还能写。

封面配置里不要用标题标签,不然点击会自动跳转,直接用 html 的 font 去设置。

封面的按钮,必须放在最下面,如果下面还继续写其它的,按钮默认样式会消失。除非自己用 html 代码写按钮,不然要保持它在最下面。

onlyCover: true 则不能在封面通过上下滑动到文档内容。

logo: '/_media/icon.svg' 侧边栏上面显示 logo,不设置 name 属性显示不出来,另外文档说用 CSS 控制大小,不会,最后只能压缩图片本身尺寸。

formatUpdated: '{YY}-{MM}-{DD} {HH}:{mm}',记录的是文章最后的修改时间,然后在文档里面插入{ docsify-updated }(需要把大括号左右两边空格去掉,这里为了显示加上,因为一去掉就解析成时间值了),会解析成定义格式的日期时间。

搜索配置有一项叫 pathNamespaces: ['/en'],就是如果有多语言,当切换到 en 时,只在 en 目录搜索,不然会搜到中文里的内容。

在做导航栏时,路径必须时当前根目录下的绝对路径才有效,文档内部链接,当前路径的相对路径和根目录下的绝对路径都有效,但图片,用绝对路径就加载不出来,必须用相对路径,真是奇怪极了。

代码高亮要支持一种语言就要加一句 script,比如要支持 java,就要添加 <script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-java.min.js"></script>,支持的语言种类在 Prism (prismjs.com)

用了 PWA 模式,导致本地预览无法自动刷新,即便代码恢复也不行,因为被浏览器缓存了,清除浏览器数据才行。

代码传到 Github 的 private 库,然后 vercel 导入,官方没有 docsify 模版,就用 other 可以,第一次打开很慢还以为失败了呢。vercel 就用 github 登录,用邮箱每次都发邮件验证,超级麻烦。

评论系统 Gitalk,需要 Github,好像还必须填写 Github Pages 的仓库 url,但我是私有的库,没开 Pages 服务,只能放弃。后来用了docsify-waline: A simple comment plugin for docsify。虽然也不会有人评论,但有它功能完整些。结果不挂代理评论不了,所以还是隐藏了。

Awesome docsify列出的插件多属于年久失修系列,很多都不能用,不看也罢。

图片缩放的定制语法

代码语言:javascript
复制
![logo](https://docsify.js.org/_media/icon.svg ':size=WIDTHxHEIGHT') 
![logo](https://docsify.js.org/_media/icon.svg ':size=50x100') 
![logo](https://docsify.js.org/_media/icon.svg ':size=100') 

<!-- 支持按百分比缩放 --> 
![logo](https://docsify.js.org/_media/icon.svg ':size=10%')

Footer 加点东西

代码语言:javascript
复制
plugins: [
    function(hook) {
        var footer = [ // 就是字符串拼接出 html 语句
            '<hr/>',
            '<footer>',
            '<span>&copy;2022.</span>',
            '<span>Powered by ',
            '<a href="https://docsify.js.org/#/" target="_blank">docsify</a> v',
            window.Docsify.version, // 能获取到当前用的版本
            '</span>',
            '</footer>'
            ].join('');
        hook.afterEach(function(html) {
            return html + footer;
        });
    }
]

mermaid 组件的支持,文档有两句被注释掉了,因为它的说明文档不需要引入,但实际上是需要的,css 放到 head 里,script 放到 body 里。然后文档上的

代码语言:javascript
复制
var num = 0; 
mermaid.initialize({ startOnLoad: false });

这两句也极其的莫名其妙,不知道放在那里,后来用Docsify画图建模Mermaid插件支持写的方法可以正常显示,和官方的代码对比,发现官方的配置只要用使用下面的就能正常显示:

代码语言:javascript
复制
markdown: {
    renderer: {
        code: function(code, lang) {
            if (lang === "mermaid") {
                // 最大的问题就是原来 code 这里写的是 
                // mermaid.render('mermaid-svg-' + num++, code)
                // 但这句执行有问题,不懂
                return ('<div class="mermaid">' + code + "</div>");
            }
            return this.origin.code.apply(this, arguments);
        }
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档