Lettle

  • 2024年2月1日
  • 注册于 2023年4月1日
  • 0 次助人
  • 焕然一新

    更多扩展尽在Tool Bench

    Banner

    安装插件

    动指间的功夫,就能享受Tool Bench带来的好处,GitHub Repository Tool Bench

    插件功能

    Tool Bench在迁移了部分Joe2.0的特殊样式的基础上进行了进一步的改进和内容增添,同时适配了绝大部分主题的Markdown文章,相关的功能可以在插件 -> ToolBench -> 基本设置中进行配置。

    • 对接GitHub仓库信息
    • AntV X6图编辑引擎
    • AntV G2可视化语法
    • 文本装饰元素和样式
    • 多媒体元素内嵌
    • ToolBench尺寸自适应表达式
    • 可配置的GraphQL请求
    • 新增目录页模板

    目前插件仍处于开发初阶段,仍有很多功能在计划开发的日程中,在后面的版本迭代中会逐步跟进。

    • 支付宝当面付能力
    • 音频、视频元素内嵌
    • 网易云歌单内嵌
    • 邮件通知模板
    • 功能性内容接口
    • font-awesome等图标支持

    使用指南

    插件提供了较多的自定义元素和标签,这些样式的撰写指南和演示你可以在《ToolBench样式指南》文章中找到。

    开发指南

    目录页

    插件提供了目录页/directory的路由支持,各主题开发者可以参考《Thymeleaf目录页原理》实现该页面的能力。

    重写样式

    插件为自定义元素、标签提供的样式并不能完全满足所有主题的需求(如存在白天、夜间模式切换的主题)。为此有需求的用户可以通过重写样式实现自己的需求,参考resources/css/tool-bench.css的所有class进行重写可以实现自己想要的样式需求。

    插件开发

    在拉取ToolBench插件的仓库后使用GradleJDK 17进行构建,在源码中提供了一些常用的工具类和框架,开发者可以根据自己的需要来使用开发:

    • util
      1. DomBuilder:用于构建插件中的<script><style>标签
      2. InferStream:使用响应式流实现的一套多推断表达式结果存储流
        • 该类以infer()方法开始尾随success()fail()方法并以get()采集型方法结尾
        • 采集型方法返回一个Mono<?>响应式类
      3. ReflectPost:提供反射获取文章内容并重新Markdown化的工具(不安全,请谨慎开发)
    • infra
      1. GraphQLReader:从插件所在目录的tool-bench/graphql/文件夹下读取制定的jsongraphql文件
    • config
      1. ConfigFolderConfiguration:用于构建和初始化插件配置文件夹,通常在插件start()时被调用
    • resources/lib文件夹
      1. FormatterInit:初始化AntV的结构并提供ToolBench表达式的解析
      2. CustomDom.js:负责解析各种自定义的Dom标签
      3. DirectorySort.js:负责对目录页的项目按首字母进行排序
      4. AntVG2Handler.jsAntVX6Handler.js:负责解析AntV结构的构建与渲染

    注意事项

    如果这里没有你的问题的解决方案请在评论区与我取得联系

    1. 在Tool Bench中集成的AntV功能是默认关闭的,以节省页面资源,如果需要使用请在配置中开启它。
    2. GitHub Token必须是启用了“获取仓库”能力的才能有效。
    3. 确保你的服务器能访问到GitHub,否则你的<tool-github>会永远处于无法加载状态。
    4. 目前只测试了Markdown语法环境,如果你正在使用Markdown那么你换行的文本需要多进行一次换行!
    5. 这些自定义的元素、标签并不是在所有主题中都显得好看,如需要修改请查看“重写样式”
    6. 因为是重新Markdown了所以会导致你的TOC文章目录失效,我会尽快修复这个问题。

    参与贡献

    如果你想提供帮助并一同完善Tool Bench插件,请:

    • star
    • issue
    • bugs
    • pr

    鸣谢表

    在此感谢以下项目提供的支持: