diff --git a/sa-token-doc/doc/_sidebar.md b/sa-token-doc/doc/_sidebar.md
index 3b9f3e56..f0419ef7 100644
--- a/sa-token-doc/doc/_sidebar.md
+++ b/sa-token-doc/doc/_sidebar.md
@@ -70,7 +70,7 @@
- **其它**
- [更新日志](/more/update-log)
- - [友情链接](/more/link)
+ - [框架生态](/more/link)
- [推荐公众号](/more/tj-gzh)
- [赞助 Sa-Token](/more/sa-token-donate)
diff --git a/sa-token-doc/doc/index.html b/sa-token-doc/doc/index.html
index bc9105e0..a8c65456 100644
--- a/sa-token-doc/doc/index.html
+++ b/sa-token-doc/doc/index.html
@@ -92,6 +92,8 @@
}, 1);
+
+
diff --git a/sa-token-doc/doc/lib/docsify-plugin.js b/sa-token-doc/doc/lib/docsify-plugin.js
new file mode 100644
index 00000000..a8aaea1c
--- /dev/null
+++ b/sa-token-doc/doc/lib/docsify-plugin.js
@@ -0,0 +1,78 @@
+// 声明 docsify 插件
+var myDocsifyPlugin = function(hook, vm) {
+
+ // 钩子函数:解析之前执行
+ hook.beforeEach(function(content) {
+ try{
+ // 功能 1,替换全局变量
+ content = content.replace(/\$\{sa.top.version\}/g, window.saTokenTopVersion);
+
+ // 添加 [toc] 标记
+ content = content.replace(/\[\[toc\]\]/g, '
');
+
+ }catch(e){
+ //
+ }
+ return content;
+ });
+
+ // 钩子函数:每次路由切换时,解析内容之后执行
+ hook.afterEach(function(html) {
+
+ // 功能 2,文章底部添加仓库地址
+ var url = 'https://gitee.com/dromara/sa-token/tree/dev/sa-token-doc/doc/' + vm.route.file;
+ var url2 = 'https://github.com/dromara/sa-token/tree/dev/sa-token-doc/doc/' + vm.route.file;
+ var footer = [
+ '
',
+ ''
+ ].join('');
+ return html + footer;
+ });
+
+ // 每钩子函数:次路由切换时数据全部加载完成后调用,没有参数。
+ hook.doneEach(function() {
+
+ // 功能3,给代码盒子,添加行数样式
+ $('pre code').each(function(){
+ var lines = $(this).text().split('\n').length;
+ var $numbering = $('').addClass('code-line-box');
+ $(this)
+ .addClass('has-numbering')
+ .parent()
+ .append($numbering);
+ for(i=1;i<=lines;i++){
+ $numbering.append($('').text(i));
+ }
+ });
+
+ // 功能4,添加 toc 目录
+ var dStr = "";
+ $('#main h2, #main h3, #main h4, #main h5, #main h6').each(function() {
+ // dStr += '';
+
+ $('.toc-box').append('' + this.innerHTML + '');
+
+ // $('.toc-box').append(this.outerHTML);
+
+
+ // dStr += '' + $(this).text() + '';
+ // console.log(this);
+ // console.log(dStr);
+
+
+ // dStr += '';
+ });
+ // $('.toc-box').html(dStr);
+
+
+ });
+
+ // 钩子函数:初始化并第一次加载完成数据后调用,没有参数。
+ hook.ready(function() {
+ });
+
+}
\ No newline at end of file
diff --git a/sa-token-doc/doc/lib/index.css b/sa-token-doc/doc/lib/index.css
index 9ca2ddfb..bbc4a10b 100644
--- a/sa-token-doc/doc/lib/index.css
+++ b/sa-token-doc/doc/lib/index.css
@@ -6,6 +6,7 @@ body{font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu
#main {padding-bottom: 100px;}
#main h2 {font-size: 1.6rem;}
#main h3 {font-size: 1.25rem;}
+#main p strong{font-family: -apple-system,BlinkMacSystemFont,Segoe UI;}
.main-box .markdown-section{ padding: 30px 20px; max-width: 70%; margin-left: 12%;}
.main-box .markdown-section h4{font-size: 1rem;}
@@ -152,6 +153,15 @@ body .a-box a{font-size: 16px; display: inline-block;}
.zk-icon{display: inline-block; width: 0px; height: 0px; position: relative;top: 3px; margin-left: 4px;}
.zk-icon{border-style: solid; border-width: 5px; border-color: #aaa transparent transparent transparent; }
+/* toc目录树 */
+.toc-box>li{margin-bottom: 15px;}
+.toc-box .toc-h2{list-style-type: none; font-size: 18px; margin-top: 20px;}
+.toc-box .toc-h3,.toc-box .toc-h4{margin-left: 1em;}
+.toc-box .toc-h5,.toc-box .toc-h6{margin-left: 2em;}
+#main .toc-box .toc-h2 a span{color: #34495e;}
+#main .toc-box a{border-color: rgba(0,0,0,0); transition: 0s;}
+#main .toc-box a span{color: inherit;}
+
/* .a-box a{font-family: "Helvetica Neue", Helvetica, "PingFang SC", Tahoma, Arial, sans-serif;}
.a-box a{color: var(--a-color); }
.a-box a:hover{color: var(--a-hover-color) !important; border-bottom: 1px var(--a-hover-color) solid;} */
diff --git a/sa-token-doc/doc/more/common-questions.md b/sa-token-doc/doc/more/common-questions.md
index 2b606db3..7f9f4043 100644
--- a/sa-token-doc/doc/more/common-questions.md
+++ b/sa-token-doc/doc/more/common-questions.md
@@ -1,6 +1,8 @@
# 常见问题排查
本篇整理大家在群聊里经常提问的一些问题,如有补充,欢迎提交pr
+[[toc]]
+
---
diff --git a/sa-token-doc/doc/more/link.md b/sa-token-doc/doc/more/link.md
index cd342ad4..085bbd8b 100644
--- a/sa-token-doc/doc/more/link.md
+++ b/sa-token-doc/doc/more/link.md
@@ -1,19 +1,31 @@
-# Sa-Token 相关项目
+# 框架生态
+
+> 如果您的开源项目使用了 Sa-Token,欢迎提交:
+>
+> - 项目必须是开源项目,且功能具有一定完备性,而不是一个临时 Demo。
+> - 可以是后台管理、插件、博客等任意类型的项目,无 star 数量要求,即使是刚刚开源的项目,也可以提交。
+> - 项目需要积极维护,积极处理 issue、pr,长时间没有更新代码将可能从本页面取消展示。
+> - 符合要求的项目直接通过项目 [issue](https://gitee.com/dromara/sa-token/issues) 或 [pr](https://gitee.com/dromara/sa-token/blob/dev/sa-token-doc/doc/more/link.md) 提交即可。
+>
+> 经过 Sa-Token 开发组审核通过后:
+> - 将展示在此页面。
+> - 在 Sa-Token 交流群中宣传推广,为项目带来流量。
---
+
### 使用 Sa-Token 的开源项目:
-- **[ sa-plus ]**:[一个基于 SpringBoot 架构的快速开发框架,内置代码生成器](https://gitee.com/click33/sa-plus)
+- **[ Sa-Plus ]**:[一个基于 SpringBoot 架构的快速开发框架,内置代码生成器](https://gitee.com/click33/sa-plus)
- **[ jthink ]**: [一个基于 SpringBoot + Sa-Token + Thymeleaf 的博客系统](https://gitee.com/wtsoftware/jthink)
- **[ dcy-fast ]**:[ 一个基于 SpringBoot + Sa-Token + Mybatis-Plus 的后台管理系统,前端vue-element-admin,并且内置代码生成器](https://gitee.com/dcy421/dcy-fast)
-- **[ helio-starters ]**:[ 基于JDK15 + Spring Boot 2.4 + Sa-Token + Mybatis-Plus的单体Boot版脚手架和微服务Cloud版脚手架,带有配套后台管理前端模板及代码生成器](https://gitee.com/uncarbon97/helio-starters)
+- **[ Helio-Starters ]**:[ 基于JDK15 + Spring Boot 2.4 + Sa-Token + Mybatis-Plus的单体Boot版脚手架和微服务Cloud版脚手架,带有配套后台管理前端模板及代码生成器](https://gitee.com/uncarbon97/helio-starters)
-- **[ sa-token-plugin ]**:[Sa-Token第三方插件实现,基于Sa-Token-Core,提供一些与官方不同实现机制的的插件集合,作为Sa-Token开源生态的补充](https://gitee.com/bootx/sa-token-plugin)
+- **[ Sa-Token-Plugin ]**:[Sa-Token第三方插件实现,基于Sa-Token-Core,提供一些与官方不同实现机制的的插件集合,作为Sa-Token开源生态的补充](https://gitee.com/bootx/sa-token-plugin)
-- **[ easy-admin ]**:[一个基于SpringBoot2 + Sa-Token + Mybatis-Plus + Snakerflow + Layui 的后台管理系统,灵活多变可前后端分离,也可单体,内置代码生成器、权限管理、工作流引擎等](https://gitee.com/lakernote/easy-admin)
+- **[ EasyAdmin ]**:[一个基于SpringBoot2 + Sa-Token + Mybatis-Plus + Snakerflow + Layui 的后台管理系统,灵活多变可前后端分离,也可单体,内置代码生成器、权限管理、工作流引擎等](https://gitee.com/lakernote/easy-admin)
- **[ RuoYi-Vue-Plus ]**:[基于 RuoYi-Vue 集成 SaToken + Lombok + Mybatis-Plus + Undertow + knife4j + Hutool + Feign 重写所有原生业务 定期与 RuoYi-Vue 同步](https://gitee.com/JavaLionLi/RuoYi-Vue-Plus/tree/satoken/)
@@ -21,19 +33,27 @@
- **[ Sa-Token-Study ]**:[以demo示例的方式讲解 Sa-Token 源码涉及到的技术点,连载中……](https://gitee.com/click33/sa-token-study)
+- **[ Sp-Cloud ]**:[Sa-Plus的微服务版本, 基于Spring-Cloud-Alibaba,微服务下使用Sa-Token的样例](https://gitee.com/click33/sp-cloud)
+
+- **[ Ruoyi-Satoken ]**:[为 ruoyi 进行配置 sa-token](https://gitee.com/wangming123456/ruoyi-satoken)
+
+- **[ vue-satoken-admin ]**:[基于Vue2和Sa-Token1.18.0的后台权限系统。](https://gitee.com/niluni/vue-satoken-admin)
+
+- **[ 人事管理系统后端 ]**:[人事管理系统后端,框架:springboot,持久层:mybatis,缓存:redis,权限:sa-token](https://gitee.com/sdones_1512/personnel-management-system-back-end)
+
-如果您的开源项目使用了Sa-Token,欢迎提交...
+---
### 推荐项目:
-- **[ OkHttps ]**:[一个轻量级http通信框架,API设计无比优雅,支持 WebSocket 以及 Stomp 协议](https://gitee.com/ejlchina-zhxu/okhttps)
+- **[ OkHttps ]**:[一个轻量级 http 通信框架,API设计无比优雅,支持 WebSocket 以及 Stomp 协议](https://gitee.com/ejlchina-zhxu/okhttps)
-- **[ hasor ]**:[轻量级ioc/aop框架,采用"微内核+插件"的设计思想](https://gitee.com/zycgit/hasor)
+- **[ Hasor ]**:[轻量级ioc/aop框架,采用"微内核+插件"的设计思想](https://gitee.com/zycgit/hasor)
-- **[ sa-admin ]**:[一个多窗口后台模板,流畅、易上手、提高生产力](https://gitee.com/ejlchina-zhxu/okhttps)
+- **[ Sa-Admin ]**:[一个多窗口后台模板,流畅、易上手、提高生产力](https://gitee.com/ejlchina-zhxu/okhttps)
- **[ vue-next-admin ]**:[一套为开发者快速开发准备的基于 vue2.x 越看越精彩的后台管理系统一站式平台模板](https://gitee.com/lyt-top/vue-next-admin)
diff --git a/sa-token-doc/doc/more/sa-token-donate.md b/sa-token-doc/doc/more/sa-token-donate.md
index 8982165c..43377284 100644
--- a/sa-token-doc/doc/more/sa-token-donate.md
+++ b/sa-token-doc/doc/more/sa-token-donate.md
@@ -19,6 +19,7 @@ Sa-Token 采用 Apache-2.0 开源协议,**承诺框架本身与官网文档永
| 赞助人 | 赞助金额 | 留言 | 时间 |
| :-------- | :-------- | :-------- | :-------- |
+| [网络小渣渣](https://gitee.com/a9777) | ¥ 10 | 感谢您的开源项目! | 2021-12-24 |
| [周周周杨](https://gitee.com/ChaoGeWanJiu) | ¥ 10 | 感谢您的开源项目! | 2021-12-18 |
| [MrXionGe](https://gitee.com/MrXionGe) | ¥ 10 | SA加油~~ | 2021-12-17 |
| [duyiliu](https://gitee.com/duyiliu) | ¥ 10 | 化繁为简,是门艺术。 | 2021-12-16 |