• mingmeo
    代码高亮与一键复制
    ID code-highlight版本 1.2.0插件制作者 mingmeo免费566 行 / 18.9 KBHook
    为帖子中的代码块自动添加语法高亮、行号和语言标签,并增加一键复制按钮。
    app/plugins/code-highlight/plugin.php
    开发日志已有 1 条

    此项目接受所有登录用户协助维护和提交更新。

    • banming
      banming
      版本 1.2.0 4364115e1ceb 更新:# v1.2.0 - 与 `code_line_numbers` 插件同时加载就崩溃 - 与 `code_copy` 插件同时加载就崩溃。 ```php function code_highlight_check_conflict(): void { $plugin_list = plugins(); if (isset($plugin_list['code_line_numbers']) && release
    主楼
  • 质量报告

    插件质量报告

    插件:code-highlight

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    app.boot全站请求启动否5----

    颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。

    数据字典

    未检测到插件数据表声明。

    #1
  • mingmeo

    代码高亮显示插件

    paste-20260812-204242.png
    本插件提供了 highlight.js 代码高亮与行号显示功能。
    本插件与 code_line_numbers 代码行数显示插件 同时加载就崩溃。
    推荐与 code_copy 代码一键复制插件 同时安装

    最后编辑于 2026-08-12 20:42
    #2
  • bbs1org

    把行数也集成了吧

    #3
  • mingmeo

    已集成,多行代码即可触发,因为同时加载code_line_numbers插件会导致代码块没有换行。

    #4
  • bbs1org

    在黑色背景下,蓝色看不清。换个清晰的颜色方案吧

    #5
  • bbs1org

    highlight.min.js 这个js很大,所以要判断,只有在内容有代码块的时候才加载。大部分主题不需要加载。

    #6
  • mingmeo

    ok

    #7
  • mingmeo

    bbs1org-plugin-code-highlight v1.1.0

    • 仅在页面存在代码块时加载高亮脚本
    • 更换为适合黑色背景的代码高亮配色
    #8
  • 秦始黄

    希望增加 一键复制按钮

    #9
  • mingmeo

    收到,稍后增加

    #10
  • 秦始黄

    现在需要安装另一插件来复制代码 感觉插件太多了 这种放一起就好了

    #11
  • mingmeo

    版本 1.2.0 更新:

    v1.2.0

    • 与 code_line_numbers 插件同时加载就崩溃
    • 与 code_copy 插件同时加载就崩溃。
    function code_highlight_check_conflict(): void
    {
        $plugin_list = plugins();
        if (isset($plugin_list['code_line_numbers']) && $plugin_list['code_line_numbers']['enabled']) {
            throw new RuntimeException('检测到已启用 "code_line_numbers" 插件,本插件已整合行号功能,请停用旧插件后重试。');
        }
        if (isset($plugin_list['code_copy']) && $plugin_list['code_copy']['enabled']) {
            throw new RuntimeException('检测到已启用 "code_copy" 插件,本插件已整合复制功能,请停用旧插件后重试。');
        }
    }
    • 增加一键复制按钮

    @秦始黄 相关功能已实现。

    #12
  • 350

    🔍 插件审查报告(对照《AI 开发规则》与开发者文档)

    🔒 安全问题

    运行时从第三方 CDN(plugin.php:205-207)加载 highlight.js 与主题 CSS,未加 integrity/crossorigin 校验。CDN 一旦被篡改,会在所有含代码块的页面执行任意脚本,且该 CDN 不稳定时功能失效。建议自托管资源,或至少加 SRI 并做本地回退。

    ⚡ 性能问题

    未发现明显问题(highlight.js 按需加载,无服务端数据库查询)。

    🐛 功能/规范缺陷

    1. 冲突检测在 app.boot 直接抛 RuntimeException(plugin.php:10-13)。app.boot 运行在请求主 try/catch 之外(index.php:3297 之后才进入 try),当 code_line_numbers/code_copy 同时启用时,任意访客请求会 500/白屏(插件随后被自动停用)。建议改为静默禁用自身或在后台提示,不在启动阶段抛异常。
    2. 全局变量 window._codeHighlightObserverStarted(plugin.php:382 等)未使用 code_highlight_ 前缀;复制按钮 data-code-copy-ready 前缀与插件 ID 不一致;另有少量硬编码色值与 .hljs 的 !important。建议统一前缀与语义变量。

    ✅ 修复优先级

    优先自托管/校验 CDN 资源;其次把冲突检测改为非抛异常方式;再清理全局变量与 data 前缀。

    #13
  • 399

    🔍 插件审查报告(AI 自动审查,对照《AI 开发规则》与开发者文档;本插件未被 8/18 楼上 350 的报告覆盖,属独立首次审查)

    插件:代码高亮与一键复制(code-highlight)v1.2.0

    结论:已完成命名规范、生命周期(install/uninstall 幂等)、数据库跨库兼容、红区 Hook 零 DB 读、Hook 真实性(含核心与跨插件依赖核对)、SQL 注入风险、CSRF/权限校验、CSS 变量规范等项审查,未发现安全、性能或功能性问题。

    #14

发表回复

登录后回复