FIT2CLOUD
链接工具箱 的图标

链接工具箱

外部
224
0

包含常用的站点链接处理相关功能,如链接跳转页面、链接点击数据分析等

访问

当前应用为外部应用,其销售、安装、更新、维护等均由应用作者负责,与本平台无关。

链接工具箱 (Link Tools)

Halo 2.0+

本插件为收费插件,需要自行购买

📋 购买流程

  1. 注册账号

  2. 进入购买页面

  3. 选择产品

    • 找到 链接工具箱 (Link Tools) 插件
  4. 完成支付

    • 选择购买周期并完成支付

🔐 授权说明

  • 购买后获得 单站点授权
  • 支持 免费更新技术支持
  • 授权信息与购买账号绑定

🎁 优惠提醒

⚠️ 限时优惠:首发期间享受 ¥12.9 特惠价格,优惠结束后(2026年2月5号)恢复原价 ¥19.9

QQ交流群

主题插件交流群

1、📖 简介

链接工具箱是一个功能强大的 Halo CMS 插件,专注于外部链接管理与安全跳转。它能够自动识别文章中的外部链接,提供安全跳转提示、点击统计、白名单管理等功能,有效提升网站安全性和用户体验。

2、✨ 功能特性

2.1、核心功能

  • 🔗 外部链接自动识别:自动扫描文章/页面中的外部链接
  • 🛡️ 安全跳转页面:提醒用户即将离开当前网站,支持自定义模板
  • 📊 链接统计分析:记录链接展示数、点击数,支持按日/周/月统计
  • 📋 白名单管理:可信域名直接跳转,支持通配符匹配
  • 🎯 超链接卡片支持:无需主题适配,自动处理超链接卡片组件
  • 📝 链接来源追踪:记录链接所在的文章/页面信息
  • 🖥️ 控制台小组件:实时展示热门链接数据

2.2、统计维度

维度 说明
展示数 用户悬浮/触摸链接时记录
点击数 用户实际点击跳转时记录
设备类型 区分 PC 端和移动端
时间维度 支持今日/本周/本月/全部

2.3 功能预览

链接点击数据分析 链接数据详情
链接点击数据分析 链接数据详情

设置界面

文章链接扫描设置 配置界面
文章链接扫描设置 配置界面

3、安装

方式二:手动安装

  1. 下载最新版本的 JAR 文件
  2. 进入 Halo 后台 → 插件管理
  3. 点击「安装」上传 JAR 文件
  4. 启用插件

⚙️ 4、公共API说明

当前插件提供了 3 个主要公共的 API 接口,用于前端主题和外部系统调用:

1. 获取提示配置接口

  • 接口路径: /apis/api.common.webjing.com/v1alpha1/tipmsg
  • 请求方法: GET
  • 功能描述: 获取跳转页面的提示消息配置信息
  • 响应格式: JSON
响应示例
{ 
    "normalTip": "正常跳转提示", 
    "downloadTip": "下载链接提示",
    "dangerTip": "危险链接提示", 
    "verificationCode": "验证代码"
}

2. 获取白名单接口

  • 接口路径: /apis/api.common.webjing.com/v1alpha1/whiteList
  • 请求方法: GET
  • 功能描述: 获取外链白名单列表
  • 响应格式:
[
  "localhost",
  "*.webjing.com"
]

3. 获取统计数据接口

  • 接口路径: /apis/api.common.webjing.com/v1alpha1/statistics
  • 请求方法: GET
  • 功能描述: 获取指定链接的访问统计数据
  • 请求参数:
    • 示例:
  • 响应格式:
{ 
    "targetUrl": "https://example.com", 
    "targetDomain": "example.com", 
    "totalViews": 100, 
    "todayViews": 10, 
    "weekViews": 50, 
    "monthViews": 80, 
    "totalClicks": 80,
    "todayClicks": 8, 
    "weekClicks": 40, 
    "monthClicks": 60,
    "pcViews": 60, 
    "pcClicks": 50,
    "mobileViews": 40,
    "mobileClicks": 30, 
    "conversionRate": 80.0,
    "firstViewTime": "2024-01-01T00:00:00Z", 
    "firstClickTime": "2024-01-01T00:00:00Z", 
    "lastViewTime": "2024-01-01T00:00:00Z", 
    "lastClickTime": "2024-01-01T00:00:00Z"
}

🎨 5、主题开发者指南

5.1、自定义跳转页面模板

在主题的 templates 目录下创建以下文件即可覆盖插件内置模板:

templates/
├── jump.html    # 链接跳转页面模板
└── error.html   # 错误页面模板(可选)

5.2、上下文数据

在跳转页面模板中,可通过以下方式获取上下文数据:

<script th:inline="javascript">
    window.__LINK_JUMP_CONTEXT__ = {
        // 目标链接 URL
        targetUrl: /*[[${targetUrl}]]*/ '',
        // 目标域名
        targetDomain: /*[[${targetDomain}]]*/ '',
        // 是否为下载链接
        isDownload: /*[[${isDownload}]]*/ false,
        // 是否为白名单链接
        isWhiteList: /*[[${isWhiteList}]]*/ false,
        // 链接类型: NORMAL / DOWNLOAD / WHITELIST / HYPERLINK_CARD
        linkType: /*[[${linkType}]]*/ 'NORMAL',
        // 倒计时秒数
        countdown: /*[[${countdown}]]*/ 5,
        // 是否需要验证码
        requireVerification: /*[[${requireVerification}]]*/ false,
        // 主题样式
        themeStyle: /*[[${themeStyle}]]*/ '',
        // 提示语配置
        tipMessage: {
            normalTip: /*[[${tipMessage?.normalTip}]]*/ '',
            downloadTip: /*[[${tipMessage?.downloadTip}]]*/ '',
            dangerTip: /*[[${tipMessage?.dangerTip}]]*/ ''
        },
        // 站点信息
        site: {
            title: /*[[${site?.title}]]*/ '',
            logo: /*[[${site?.logo}]]*/ ''
        }
    };
</script>

5.3、引入 LinkJump.js

<script th:src="@{/plugins/PluginLinkTools/assets/static/linkJump.js}"></script>

5.4、LinkJump API 参考

// 获取上下文数据
const ctx = LinkJump.getContext();

// 执行跳转(推荐,会记录统计)
LinkJump.doJump();

// 通过 API 跳转
LinkJump.doJumpViaApi();

// 复制到剪贴板
LinkJump.copyToClipboard('https://example.com');

// 验证下载码
LinkJump.verifyCode(inputCode, (isValid) => {
    if (isValid) {
    LinkJump.doJump();
    } else {
    LinkJump.showToast('验证码错误');
    }
});

// 启动倒计时
LinkJump.startCountdown(5, 
    {
        element: document.getElementById('countdown'),  // 显示倒计时的元素
        onTick: (remaining) => {
        console.log(`剩余 ${remaining} 秒`);
    },
    onComplete: () => {
        LinkJump.doJump();
    }
});

// 停止倒计时
LinkJump.stopCountdown();

// 显示提示消息
LinkJump.showToast('操作成功', 2000);  // 消息内容, 显示时长(ms)

// XSS 安全转义
const safeHtml = LinkJump.escapeHtml(userInput);

// 获取配置数据(带缓存)
LinkJump.fetchConfig().then(config => {
    console.log(config);
});

// 打字机效果
LinkJump.typewriterEffect(element, {
    speed: 50,           // 打字速度(ms)
    cursor: '|',         // 光标字符
    onComplete: () => {} // 完成回调
});

5.5、完整模板示例

<!DOCTYPE html>
<html xmlns:th="https://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>正在跳转...</title>
    <style>
        /* 你的自定义样式 */
    </style>
</head>
<body>
    <div class="container">
        <h1>即将离开 <span th:text="${site?.title}">本站</span></h1>
        <p>您即将访问:<code th:text="${targetUrl}"></code></p>
        <p th:if="${!isWhiteList}" class="warning" th:text="${tipMessage?.normalTip}">
            请注意外部链接安全
        </p>
        <div class="actions">
            <span id="countdown">5</span> 秒后自动跳转
            <button onclick="LinkJump.doJump()">立即跳转</button>
            <button onclick="history.back()">返回</button>
        </div>
    </div>

    <script th:inline="javascript">
        window.__LINK_JUMP_CONTEXT__ = {
            targetUrl: /*[[${targetUrl}]]*/ '',
            isDownload: /*[[${isDownload}]]*/ false,
            isWhiteList: /*[[${isWhiteList}]]*/ false,
            countdown: /*[[${countdown}]]*/ 5
        };
    </script>
    <script th:src="@{/plugins/PluginLinkTools/assets/static/linkJump.js}"></script>
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            const ctx = LinkJump.getContext();
            
            if (ctx.isWhiteList) {
                // 白名单链接直接跳转
                LinkJump.doJump();
            } else {
                // 启动倒计时
                LinkJump.startCountdown(ctx.countdown, {
                    element: document.getElementById('countdown'),
                    onComplete: () => LinkJump.doJump()
                });
            }
        });
    </script>
</body>
</html>

后续计划

短期计划

  • 链接健康检查:定期检测外链可用性,标记失效链接
  • 链接分组管理:按类型/来源对链接进行分组
  • 数据导出:支持导出统计数据为 Excel/CSV
  • 访客画像:记录访客 IP 地区、浏览器等信息
  • 图表增强:添加更多可视化图表(趋势图、饼图等)
  • 短链接服务:生成站内短链接,便于分享和追踪
  • 链接替换规则:自定义链接重写规则(如推广链接自动添加参数)
  • 防盗链功能:检测并阻止恶意引用
  • SEO 优化
    • 自动添加 rel="nofollow" 属性
    • 外链 noopener/noreferrer 处理
  • 链接预检:恶意网站/钓鱼链接检测预警
  • 批量管理:批量编辑/删除链接记录

长期计划

  • 链接归档:自动归档历史链接快照
  • AI 智能分析
    • 链接内容自动分类
    • 异常点击行为检测
    • 智能推荐相关链接
  • 评论链接管理:评论中的外链单独管理
  • WebHook 集成:点击事件触发 WebHook 通知

讨论(0)