普通视图

发现新文章,点击刷新页面。
昨天 — 2024年12月26日邓先生工作室

嵌入式博客介绍足迹地图HTML源码

2024年12月26日 10:16

足迹地图可以展示你过去到访过的地方,以及到访地点的介绍与图片记录,图片点击可以放大显示,同时不同地标的半径大小表示了访问该地点的频率高低,如下图所示:

使用DEMO

配置你的足迹数据

其中 /data/config.json 为配置数据,在里面可以配置你的足迹数据,结构如下:

[    {        "latLng": [36.44852263442782, 118.73921200195313],        "name": "青州",        "desc": "我的家乡,山东东方——青州,国家著名旅游城市。\n旅游景点包括云门山、仰天山、驼山、范公亭、青州博物馆、宋城、古街等等。\n著名美食包括弥河银瓜、老槐树煎包、柿饼、马蹄子烧饼等等。",        "photos":[            "https://xxxxxxxxxx.com/1.jpg",            "https://xxxxxxxxxx.com/2.jpg",            "https://xxxxxxxxxx.com/3.jpg",        ],        "freq": 10    },    ...]
  • latLng: 为足迹的经纬度,可以通过 https://jingweidu.bmcx.com查询得到

  • name: 足迹地点的名称

  • desc:足迹地点的描述, \n 为换行符

  • photos:足迹地点的照片链接,为一组图片 url 数据

  • freq:足迹地点的到访次数,范围为 [1, 10]

使用配置

将足迹地图内嵌到你博客中的相应位置,示例代码如下:

<iframe scrolling=no style="min-height:480px !important;" src="http://xxxx/xxxx/index.html" width="100%" height="100%"></iframe>

地图样式调整

  • 默认的地图为中国地图,足迹点的样式及背景样式都是固定的,如果想对足迹地图进行进一步的定制化,可以对 /css/index.css 及 /js/index.js 文件进行修改

  • 其中 /js/jquery-jvectormap-cn-merc-en.js为中国地图,你可以替换为世界地图,具体操作见 https://jvectormap.com

  • 足迹地图依赖的是 JVectorMap,关于基本的样式定义可以参考官网 https://jvectormap.com/documentation/javascript-api/jvm-map

魔改修复版二对应/data/config.json修改示例 :


[
    {
        "latLng": [22.25, 113.56],
        "name": "广东 · 珠海",
        "articleUrl": "https://www.80srz.com/posts/1322.html",
        "desc": "联业织染(联业)有限公司染整废水处理工程- 11/2013",
        "photos":[
            "https://www.shejidaren.com/wp-content/uploads/2024/01/unnamed-file-19.jpg",
            "https://www.shejidaren.com/wp-content/uploads/2024/01/unnamed-file-18.jpg",
            "https://www.shejidaren.com/wp-content/uploads/2024/01/unnamed-file-17.jpg",
            "https://www.shejidaren.com/wp-content/uploads/2024/01/unnamed-file-16.jpg"
        ],
        "freq": 5
    },
    {
        "latLng": [29.10, 117.75],
        "name": "浙江 · 义乌",
        "articleUrl": "https://www.80srz.com/posts/1322.html",        
        "desc": "浙江华川实业集团有限公司废水处理系统改造工程 - 8/2015",
        "photos":[
            "https://www.shejidaren.com/wp-content/uploads/2024/01/unnamed-file-18.jpg",            
            "https://www.shejidaren.com/wp-content/uploads/2024/01/unnamed-file-17.jpg",
            "https://www.shejidaren.com/wp-content/uploads/2024/01/unnamed-file-16.jpg"
        ],        
        "freq": 3
    },
    {
        "latLng": [29.88, 114.30],
        "name": "湖北 · 咸宁",
        "articleUrl": "https://www.80srz.com/posts/1322.html",
        "desc": "武汉汉麻生物科技有限公司废水处理工程 - 4/2016",
        "photos":[
            "https://www.shejidaren.com/wp-content/uploads/2024/01/unnamed-file-17.jpg",            
            "https://www.shejidaren.com/wp-content/uploads/2024/01/unnamed-file-16.jpg"
        ],        
        "freq": 2
    },
    {
        "latLng": [30.33, 112.24],
        "name": "湖北 · 荆州",
        "articleUrl": "https://www.80srz.com/posts/1322.html",
        "desc": "湖北华丽染料工业有限公司污水处理站 - 6/2016",
        "photos":[         
            "https://www.shejidaren.com/wp-content/uploads/2024/01/unnamed-file-16.jpg"
        ],         
        "freq": 1
    },
    {
        "latLng": [30.73, 111.31],
        "name": "湖北 · 宜昌",
        "articleUrl": "https://www.80srz.com/posts/1322.html",
        "desc": "湖北鑫物再生纸业有限公司污水处理站 - 10/2016",
        "freq": 1
    },
    {
        "latLng": [37.52, 122.09],
        "name": "山东 · 威海",
        "desc": "荣成市海盛纸业有限公司污水处理厂 - 6/2017",
        "photos":[          
            "https://www.shejidaren.com/wp-content/uploads/2024/01/unnamed-file-16.jpg"
        ],          
        "freq": 1
    },
    {
        "latLng": [29.20, 119.75],
        "name": "浙江 · 金华",
        "desc": "义乌市义南纸业有限公司新增印染废水好氧处理系统改扩建工程 - 8/2017",         
        "freq": 3
    }]

说明:

  • photos:选填项,可以没有

  • articleUrl:选填项,可以没有

  • 其他设置同原版

下载后,修改 /data/config.json 文件里的信息,上传到空间的某个子文件夹中,然后引用就可以了。



FORK地址


https://github.com/dengqinzhi/map-1

网页 iframe 嵌入极简播放界面的 bilibili 视频

2024年12月25日 15:10

相关代码

值得一提的是,WordPress 站点可以直接复制链接,粘贴到古腾堡编辑器即可,无需代码模式。

默认代码

复制
<iframe src='//player.bilibili.com/player.html?bvid=BV1y6kvYDE3A&cid=27468235458&p=1&share_source=copy_web' scrolling='no' border='0' frameborder='no' framespacing='0' allowfullscreen='true'></iframe>

极简代码

复制
<iframe src="//bilibili.com/blackboard/html5mobileplayer.html?bvid=BV1y6kvYDE3A&cid=27468235458&p=1&share_source=copy_web" width="800" height="450" scrolling='no' border='0' frameborder='no' framespacing='0' allowfullscreen='true'></iframe>

只需要替换地址并增加两个参数,其中:

  • 原地址:player.bilibili.com/player.html

  • 替换为:bilibili.com/blackboard/html5mobileplayer.html

  • 增加参数1:hideCoverInfo=1 表示隐藏播放量等信息

  • 增加参数2:danmaku=0 表示默认关闭弹幕


typecho添加了今日更新文章数

2024年12月25日 10:02

在网上搜了一圈貌似没有这样的功能的,就是要统计今天更新或者新增了多少篇文章。

就是那个今日更新软件 下面是修改代码

在模板你要放的位置加上以下代码

<?php
$today = date('Y-m-d');
$nextDay = date('Y-m-d', strtotime('+1 day'));

$query = $this->db->select()->from('table.contents')
          ->where('created >= ?', strtotime($today))
          ->where('created < ?', strtotime($nextDay))
          ->where('type = ?', 'post')
          ->where('status = ?', 'publish');

$results = $this->db->fetchAll($query);
$postsToday = count($results);

echo "今天更新的文章数:" . $postsToday;
?>

你以为这就完了?

上面只是最基础的版本

下面是进阶版

打开functions.php 在最后加上下面这一段

function getTodayPostCount() {
    $today = date('Y-m-d');
    $nextDay = date('Y-m-d', strtotime('+1 day'));

    $query = Typecho_Db::get()->select()->from('table.contents')
              ->where('created >= ?', strtotime($today))
              ->where('created < ?', strtotime($nextDay))
              ->where('type = ?', 'post')
              ->where('status = ?', 'publish');

    $results = Typecho_Db::get()->fetchAll($query);
    $postsToday = count($results);

    return $postsToday;
}

然后在你要调用的地方加入 以下代码

<?php echo "今天更新的文章数:" . getTodayPostCount(); ?>


到了这里你以为就完了?当然不是 我还有高级版

还是在functions.php 加入以下代码,记得进阶和高级只能选一个。。。别2段代码都复制进去了

function getTodayPostCount() {
    $cacheFilePath = __DIR__ . '/cache/today_post_count.html';
    $cacheExpire = 3 * 60 * 60; // 3小时有效期

    if (file_exists($cacheFilePath) && time() - filemtime($cacheFilePath) < $cacheExpire) {
        return file_get_contents($cacheFilePath);
    } else {
        $todayPostCount = calculateTodayPostCount(); // 调用之前定义的获取当天文章数的函数

        // 将结果写入缓存文件
        file_put_contents($cacheFilePath, $todayPostCount);

        return $todayPostCount;
    }
}

function calculateTodayPostCount() {
    $today = date('Y-m-d');
    $nextDay = date('Y-m-d', strtotime('+1 day'));

    $query = Typecho_Db::get()->select()->from('table.contents')
              ->where('created >= ?', strtotime($today))
              ->where('created < ?', strtotime($nextDay))
              ->where('type = ?', 'post')
              ->where('status = ?', 'publish');

    $results = Typecho_Db::get()->fetchAll($query);
    $postsToday = count($results);

    return $postsToday;
}

 记得在模板所在的文件夹里面建一个cache文件夹。缓存文件就存在这里了

然后在你要调用的地方加入 以下代码

<?php echo "今天更新的文章数:" . getTodayPostCount(); ?>


typecho 调用自定义评论数实现读者墙的效果

2024年12月25日 09:53

效果截图如下

实现代码如下

<style>
.comment-row {
        display: flex;
        flex-wrap: wrap;  
        justify-content: flex-start;  
        margin-bottom: 10px;  /* 添加这行代码实现上下行间隔 10px,您可以根据需求调整数值 */
    }

.recent-comment img:hover {
        opacity: 1;
    }

.recent-comment img {
    opacity: 0.8;
    transition: opacity 0.3s ease;
    margin-right: 8px;
    margin-bottom: 8px;
    border-radius: 0;
    }
</style>

<?php
$this->widget('Widget_Comments_Recent', 'pageSize=518')->to($comments);
echo '<div class="comment-row">';
while ($comments->next()) {
    echo '<div class="recent-comment">';
    $randomNumber = rand(1, 526);
    echo '<a href="'. $comments->permalink. '" target="_blank" title="'. $comments->text. '"><img src="https://www.jian27.com/img/avatar/'. $randomNumber. '.png" width="25" height="25" alt="'. $comments->text. '" /></a>';
    echo '</div>';
}
echo '</div>';
?>

演示地址

https://www.jian27.com/html/guestbook.html

头像图片地址你们要自己修改成自己的地址。否则用不了


昨天以前邓先生工作室

Wordpress插入响应式Bilibili视频代码块

2024年12月17日 12:35

完整代码

<div style="position: relative; width: 100%; height: 0; padding-bottom: 75%;">
    <iframe src="//player.bilibili.com/player.html?aid=206890880&bvid=BV1Ah411z7Po&cid=378344365&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" style="position:absolute; height: 100%; width: 100%;"> </iframe>
</div>


wordpress6.71后在头部加载了一行css影响文章图片加载的解决

2024年12月11日 12:03

wordpress6.71开始在 wp-inlcudes/media.php 中添加了一段代码

function wp_print_auto_sizes_contain_css_fix(){........

导致前端头部自动加载一段css如下,影响了前端文章内页一些用媒体库添加图片到文章的时候,图片变大模糊了;多余的这段代码css如下,也是我们要屏蔽掉他的

//wordpress 6.71 中头部新增的这段代码,影响图片加载需要删除
<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>

解决方案

在主题function.php 添加一段代码屏蔽掉 

function boxemoe_disable_add_auto_sizes( $add_auto_sizes ) {
    return false;
}
add_filter( 'wp_img_tag_add_auto_sizes', 'boxemoe_disable_add_auto_sizes' );



WordPress 前台评论添加“删除”和“标识为垃圾”链接

2024年12月9日 15:39

也就是我在原来的基础上进行了修改调整:

  1. 参数调整edit_comment_link 过滤器的回调函数接受三个参数:$link$comment_id, 和 $status

  2. 全局变量使用:确保使用正确的全局变量 $comment 和 $post

  3. URL 构建:正确构建删除和标识为垃圾的 URL,并使用 esc_url 函数来转义 URL。

  4. 字符串拼接:通过 .= 操作符正确地将新的链接追加到现有链接后面。

  5. 过滤器优先级和参数数量:设置过滤器的优先级为 99,并明确指定接受三个参数。

  6. 权限检查:将 current_user_can('moderate_comments', $post->ID) 改为 current_user_can('administrator'),以确保只有管理员才有权限查看这些链接。

功能代码

将下面的代码添加到当前主题的 functions.php 文件即可:

/**
 * WordPress 前台评论添加“删除”和“标识为垃圾”链接(仅限管理员)
 * https://wpexp.cn/731.html
 */
function comment_manage_link($link, $comment_id, $status) {
    global $comment, $post;
    if (current_user_can('administrator')) { // 检查是否为管理员
        $delete_url = admin_url("comment.php?action=cdc&c=" . $comment_id);
        $spam_url = admin_url("comment.php?action=cdc&dt=spam&c=" . $comment_id);

        $link .= ' | <a href="' . esc_url($delete_url) . '" title="' . __('删除评论') . '">删除</a>';
        $link .= ' | <a href="' . esc_url($spam_url) . '" title="' . __('标识为垃圾') . '">标识为垃圾</a>';
    }
    return $link;
}
add_filter('edit_comment_link', 'comment_manage_link', 99, 3);


Linux主机耗子面板

2024年12月9日 13:58

耗子面板是新一代企业级全能服务器运维管理面板。简单轻量,高效运维。

优势
极低占用: 在 Debian 下部署面板 + LNMP 环境,内存占用不到 500 MB,遥遥领先于使用容器化的其他面板。
低破坏性: 面板的设计理念是尽可能减少对系统的额外修改,在同类面板中,我们对系统的修改最少。
追随时代: 面板所有组件均走在时代前沿,更新快,功能强大,安全性有保障。
高效运维: 面板界面简洁,操作简单,无需繁琐的配置,即可快速部署各类环境、调整应用设置。
离线运行: 面板运行可不依赖任何外部服务,您甚至可以在部署完成后停止面板进程,不会对已部署服务造成任何影响。
久经考验: 我们生产环境自 2022 年即开始使用,已稳定运行 2 年无事故。
开源开放: 面板开源,您可以自由修改、审计面板源码,安全性有保障。
UI 截图

Linux主机耗子面板 图1



运行环境
耗子面板支持 amd64 | arm64 架构下的主流系统,下表中的系统均已测试 LNMP 环境安装。

优先建议使用标注推荐的系统,无特殊情况不建议使用标注不推荐的系统。

不在下表中的其他系统,可自行尝试安装,但不提供技术支持(接受相关 PR 提交)。

系统 版本 备注
AlmaLinux 9 推荐
AlmaLinux 8 不推荐
RockyLinux 9 支持
RockyLinux 8 不推荐
CentOS Stream 9 不推荐
CentOS Stream 8 不推荐
Ubuntu 24 推荐
Ubuntu 22 支持
Debian 12 推荐
Debian 11 支持
OpenCloudOS 9 支持
TencentOS Server 4 支持
TencentOS Server 3.1 不推荐
Alibaba Cloud Linux 3.2 不推荐
Anolis 8 不推荐
openEuler 22 不推荐
随着系统版本的不断更新,我们亦可能会终止部分过于老旧的系统的支持,以保证面板的健壮性。

挂载硬盘
如果您的服务器有未挂载的数据盘,可在安装前以root用户登录服务器运行以下命令自动挂载,面板安装后不支持跨目录迁移。

curl -fsLm 10 -o auto_mount.sh https://dl.cdn.haozi.net/panel/auto_mount.sh && bash auto_mount.sh
安装面板
Warning 安装面板前,您需要了解 LNMP 环境的基本知识,以及如何处理常见的 LNMP 环境问题,我们不建议 0 基础的用户安装和使用耗子面板。

以root用户登录服务器,运行以下命令安装面板:

curl -fsLm 10 -o install.sh https://dl.cdn.haozi.net/panel/install.sh && bash install.sh
卸载面板
优先建议备份数据重装系统,这样可以保证系统纯净。

如果您无法重装系统,请以root用户登录服务器,执行以下命令卸载面板:

curl -fsLm 10 -o uninstall.sh https://dl.cdn.haozi.net/panel/uninstall.sh && bash uninstall.sh
卸载面板前请务必备份好所有数据,提前卸载面板全部应用。卸载后数据将无法恢复!

日常维护
使用panel-cli命令进行日常维护:

panel-cli



地址:

https://github.com/TheTNB/panel

挪车二维码免服务器可微信通知打电话源码

2024年11月13日 12:38


可以部署到cloudflare的wokers,自定义变量phone和wxpusherAppToken、wxpusherUIDs 或者直接在源码修改就行
实现推送到微信
可以绑定一个域名实现cdn加速,把网址转换成二维码,打印即可
也可以把第二个button注释掉,只保留微信通知

使用方法
到这里去申请:https://wxpusher.zjiecode.com/admin
新建一个应用,你会获得一个appToken,再扫码就能获得你的UID,然后把我下面的源码保存为index.html保存到你的网站,再把网站连接制作成二维码,贴你车上就可以了
对了,源码最底下的JS脚本,可以找个在线JS加密的给加下密,这样就可以防小白看到你的appToken了,
最后,如果你的车子有多个人开,可以让他们都扫一下,用小逗号添加在[UID1,UID2]里。



index.htm

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>通知车主挪车</title>
<style>
          * { box-sizing: border-box; margin: 0; padding: 0; }
          body { font-family: Arial, sans-serif; display: flex; align-items: center; justify-content: center; height: 100vh; background: #f0f2f5; color: #333; }
          .container { text-align: center; padding: 20px; width: 100%; max-width: 400px; border-radius: 8px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); background: #fff; }
          h1 { font-size: 24px; margin-bottom: 20px; color: #007bff; }
          p { margin-bottom: 20px; font-size: 16px; color: #555; }
          button { 
            width: 100%; 
            padding: 15px; 
            margin: 10px 0; 
            font-size: 18px; 
            font-weight: bold; 
            color: #fff; 
            border: none; 
            border-radius: 6px; 
            cursor: pointer; 
            transition: background 0.3s; 
          }
          .notify-btn { background: #28a745; }
          .notify-btn:hover { background: #218838; }
          .call-btn { background: #17a2b8; }
          .call-btn:hover { background: #138496; }
        </style>
</head>
<body>
<div>
<h1>通知车主挪车</h1>
<p>如需通知车主,请点击以下按钮</p>
<button onclick="notifyOwner()">通知车主挪车</button>
<button onclick="callOwner()">拨打车主电话</button>
</div>
<script>
function notifyOwner() {
    fetch("https://wxpusher.zjiecode.com/api/send/message", {
        method: "POST",
        headers: {"Content-Type": "application/json"},
        body: JSON.stringify({
            appToken: "AT_uOKPJVyVlxVd************HKaA",
            content: "您好,有人需要您挪车,请及时处理。",
            contentType: 1,
            uids: ["UID_B0GShlS*************Dms","UID_Rh*********B5QK"]
        })
    })
    .then(response => response.json())
    .then(data => {
        if (data.code === 1000) {
            alert("通知已发送!");
        } else {
            alert("通知发送失败,请稍后重试。");
        }
    })
    .catch(error => {
        console.error("Error sending notification:", error);
        alert("通知发送出错,请检查网络连接。");
    });
}

function callOwner() {
    window.location.href = "tel:1318888888";
}
</script>
</body>
</html>


宝塔面板降级版本教程(如9.0.0降版本为8.0.5)

2024年10月29日 09:58

宝塔面板的专业版都到9.2.0了,免费版才到9.0.0。如果遇到宝塔的最新版本有BUG,那么如何降级到低版本呢,这篇笔记就来简单说说。

宝塔服务器面板,一键全能部署及管理 https://www.bt.cn/u/d2y84I

如何降级安装,这里列举从9.0.0版本降级到8.0.5,如果需要其他版本,自己更改版本号即可。脚本如下:

cd /root
mkdir bt
cd bt
# 这里以 8.0.5 版本为例,可以自行更改想降级的版本
wget https://download.bt.cn/install/update/LinuxPanel-8.0.5.zip
unzip LinuxPanel-8.0.5.zip
cd panel/
bash update.sh
之后强制刷新一下面板即可。

小米红米手机刷机玩机工具汇总

2024年10月7日 10:14

一、小米官方BL解锁申请链接(建议到[小米社区]去申请): https://web.vip.miui.com/page/info/mio/mio/testDetails?type=BL_BLOCK&id=-1&fromPathname=mioInternalTest&app_version=dev.220218 

二、小米官方解锁工具下载链接: http://www.miui.com/unlock/download.html 

三、[小米社区]正式版全机型刷机包汇总链接(链接由社区大佬[云墨清风]维护,大佬社区主页: https://web.vip.miui.com/page/info/mio/mio/homePage?uid=1205154814&fromPathname=mioDetail&app_version=dev.20051 )

⒈正式版全机型刷机包汇主链接: https://xiaomishequ.feishu.cn/sheets/shtcnsRTbwSvpUsaei6B04ogI6Z 

⒉正式版全机型刷机包汇总备用链接: https://xiaomishequ.feishu.cn/sheets/shtcnsRTbwSvpUsaei6B04ogI6Z?from=from_copylink 

四、Updader App(GitHub 链接)
软件介绍:下载大部分小米、红米机型的卡刷包(可以下载旧版本)

⒈使用指南链接(简体中文): https://github.com/YuKongA/Updater/blob/main/README_CN.md#%E4%BD%BF%E7%94%A8 

⒉项目链接: https://github.com/YuKongA/Updater-KMP 

⒊下载链接: https://github.com/YuKongA/Updater-KMP/releases 

五、第三方收集小米刷机包网站链接

⒈MIUI官方ROM仓库(简体中文): https://roms.miuier.com/zh-cn 

⒉小米澎湃OS,现已发布(简体中文): https://hyperos.fans/zh 

⒊小米 ROM: https://xiaomirom.com 

⒋……

待补中……

六、Root 管理器

⒈Magisk

⑴官方 Magisk(官方面具,GitHub 链接)
项目链接: https://github.com/topjohnwu/Magisk 

下载链接: https://github.com/topjohnwu/Magisk/releases 

⑵第三方 Magisk alpha(阿尔法面具)App Center下载链接: https://install.appcenter.ms/users/vvb2060/apps/magisk/distribution_groups/public 

⑶第三方 Kitsune Magisk(狐狸面具,GitHub 链接)
项目链接: https://github.com/HuskyDG/magisk-files 

下载链接: https://github.com/HuskyDG/magisk-files/releases 

⒉KernelSU
官网链接(简体中文): https://kernelsu.org/zh_CN 

项目链接(GitHub 链接): https://github.com/tiann/KernelSU 

下载链接(GitHub 链接): https://github.com/tiann/KernelSU/releases 

⒊APatch
官网链接(简体中文): https://apatch.dev/zh_CN 

项目链接(GitHub 链接): https://github.com/bmax121/APatch 

下载链接(GitHub 链接): https://github.com/bmax121/APatch/releases 

4.……

Root 管理器待发现中……

七、柚坛工具箱
(由酷安大佬@暮间雾 开发,相关信息点击此直达链接到大佬帖子查看: https://www.coolapk.com/feed/57736247?shareKey=MmU0OGRlYjhjMjNjNjcwMDVlOWI~&shareUid=27538075&shareFrom=com.coolapk.market_14.5.3 )
官网链接: https://toolbox.uotan.cn 

项目链接(GitHub 链接): https://github.com/Uotan-Dev/UotanToolboxNT 

下载链接(GitHub 链接): https://github.com/Uotan-Dev/UotanToolboxNT/releases 

八、搞机助手
官网链接: https://lsdy.top/gjzs 

下载链接: https://lsdy.top/gjzsdownload 

九、adb SDK 平台工具版

官网链接(简体中文): https://developer.android.google.cn/tools/releases/platform-tools?hl=zh-cn 

下载链接(简体中文): https://developer.android.google.cn/tools/releases/platform-tools?hl=zh-cn#downloads 

十、小米社区官网链接: https://www.xiaomi.cn 


开源的SSL证书管理工具 帮你申请和自动续期SSL证书

2024年9月24日 09:35
2024-09-24  小罗  网络收集  190

开源的SSL证书管理工具_帮你申请和自动续期SSL证书 图1


Certimate是什么

Certimate是一款开源的SSL证书管理工具,可以帮助你申请SSL证书,自动续期SSL证书,通过简单的配置即可轻松申请 SSL 证书,并且在证书即将过期时自动续期,无需人工干预,为用户提供一个安全、简便的 SSL 证书管理解决方案。Certimate支持私有部署,而且部署方法简单,只需下载二进制文件并执行即可完成安装。由于是私有部署,所有数据均存储在本地,不会保存在服务商的服务器上,确保数据的安全性。

Certimate项目部署教程
Certimate 是一个开源的 SSL 证书管理工具,具有以下特点:

支持私有部署:部署方法简单,只需下载二进制文件并执行即可完成安装。
数据安全:由于是私有部署,所有数据均存储在本地,不会保存在服务商的服务器上,确保数据的安全性。
操作方便:通过简单的配置即可轻松申请 SSL 证书,并且在证书即将过期时自动续期,无需人工干预。
一、安装
安装 Certimate 非常简单,你可以选择以下方式之一进行安装:

1. 二进制文件
你可以直接从Releases 页下载预先编译好的二进制文件,解压后执行:

./certimate serve
 
Note

MacOS 在执行二进制文件时会提示:无法打开“certimate”,因为Apple无法检查其是否包含恶意软件。可在系统设置> 隐私与安全性> 安全性 中点击 "仍然允许",然后再次尝试执行二进制文件。

2. Docker 安装
git clone git@github.com:usual2970/certimate.git && cd certimate/docker && docker compose up -d
 
3. 源代码安装
git clone EMAIL:usual2970/certimate.git
cd certimate
go run main.go serve
 
二、使用
执行完上述安装操作后,在浏览器中访问 http://127.0.0.1:8090 即可访问 Certimate 管理页面。

用户名:admin@certimate.fun
密码:1234567890



三、概念
Certimate 的工作流程如下:

用户通过 Certimate 管理页面填写申请证书的信息,包括域名、dns 服务商的授权信息、以及要部署到的服务商的授权信息。
Certimate 向证书场商的 API 发起申请请求,获取 SSL 证书。
Certimate 存储证书信息,包括证书内容、私钥、证书有效期等,并在证书即将过期时自动续期。
Certimate 向服务商的 API 发起部署请求,将证书部署到服务商的服务器上。
这就涉及域名、dns 服务商的授权信息、部署服务商的授权信息等。

1. 域名
就是要申请证书的域名。

2. dns 服务商授权信息
给域名申请证书需要证明域名是你的,所以我们手动申请证书的时候一般需要在域名服务商的控制台解析记录中添加一个 TXT 记录。

Certimate 会自动添加一个 TXT 记录,你只需要在 Certimate 后台中填写你的域名服务商的授权信息即可。

比如你在阿里云购买的域名,授权信息如下:

accessKeyId: xxx
accessKeySecret: TOKEN
 
在腾讯云购买的域名,授权信息如下:

secretId: xxx
secretKey: TOKEN
 
3. 部署服务商授权信息
Certimate 申请证书后,会自动将证书部署到你指定的目标上,比如阿里云 CDN 这时你需要填写阿里云的授权信息。Certimate 会根据你填写的授权信息及域名找到对应的 CDN 服务,并将证书部署到对应的 CDN 服务上。

部署服务商授权信息和 dns 服务商授权信息一致,区别在于 dns 服务商授权信息用于证明域名是你的,部署服务商授权信息用于提供证书部署的授权信息。


网站防扒JS代码合集

2024年9月18日 08:31

禁用右键菜单
1、右键无任何反应

第一种

document.oncontextmenu = new Function("return false;"); 

第二种

 
document.oncontextmenu = function (event){
if(window.event){
event = window.event;
}try{
var the = event.srcElement;
if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){
return false;
}
return true;
}catch (e){
return false;
}
}

2.弹窗提示并变成空白页

document.onmousedown = function mdClick(event) {
    var e = event || window.event || arguments.callee.caller.arguments[0];
    if (e.button == 2 || e.button == 3) {
        alert("呵呵");
        //不建议用以下方法,易错率大
        window.location = 'about: blank';
    }
}

禁止F12审查元素
1、按F12无任何反应

document.onkeydown = function(){
  if(window.event && window.event.keyCode == 123) {    
    event.keyCode=0;
    event.returnValue=false;
  }
  if(window.event && window.event.keyCode == 13) {
    window.event.keyCode = 505;
  }
  if(window.event && window.event.keyCode == 8) {
    alert(str+"\n请使用Del键进行字符的删除操作!");
    window.event.returnValue=false;
  }
}

2、按F12弹窗提示

document.onkeydown = function(){
  if(window.event && window.event.keyCode == 123) {
    alert("F12被禁用");
    event.keyCode=0;
    event.returnValue=false;
  }
  if(window.event && window.event.keyCode == 13) {
    window.event.keyCode = 505;
  }
  if(window.event && window.event.keyCode == 8) {
    alert(str+"\n请使用Del键进行字符的删除操作!");
    window.event.returnValue=false;
  }
}

3、按F12空白页

第一种

function mAlert() {
    var fn = function () {};
    fn.toString = function () {
        window.location = 'about: blank';
        console.log("呵呵");
    }
    console.log("%c", fn);//请不要删除这行
};mAlert();

第二种

document.onkeydown = function(){
  
  if(window.event && window.event.keyCode == 123) {
    window.location="about:blank"; //将当前窗口跳转置空白页
    event.keyCode=0;
    event.returnValue=false;
  }
  if(window.event && window.event.keyCode == 13) {
    window.event.keyCode = 505;
  }
  if(window.event && window.event.keyCode == 8) {
    alert(str+"\n请使用Del键进行字符的删除操作!");
    window.event.returnValue=false;
  }
}

4、按F12关闭当前窗口

document.onkeydown = function(){
  
  if(window.event && window.event.keyCode == 123) {
    window.close(); //关闭当前窗口(防抽)
    event.keyCode=0;
    event.returnValue=false;
  }
  if(window.event && window.event.keyCode == 13) {
    window.event.keyCode = 505;
  }
  if(window.event && window.event.keyCode == 8) {
    alert(str+"\n请使用Del键进行字符的删除操作!");
    window.event.returnValue=false;
  }
}

禁止复制
document.oncopy = function (event){
if(window.event){
event = window.event;
}try{
var the = event.srcElement;
if(!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){
return false;
}
return true;
}catch (e){
return false;
}
}

禁止选中
document.onselectstart = function (event){
if(window.event){
event = window.event;
}try{
var the = event.srcElement;
if (!((the.tagName == "INPUT" && the.type.toLowerCase() == "text") || the.tagName == "TEXTAREA")){
return false;
}
return true;
} catch (e) {
return false;
}
}

禁止Ctrl+S网页另存为
 document.onkeydown = function(){
    //禁止ctrl+s
  if (event.ctrlKey && window.event.keyCode==83){
  return false;
  }
  }

本代码不能100%防止网页被扒 

解决蓝奏网盘分享apk等文件需要会员问题

2024年9月10日 09:25

蓝奏云久前就出了新规则,分享apk文件需要会员用户才能访问下载,手机端需要会员访问,也就是说非蓝奏会员用户分享apk文件,用户在手机端打开无法下载文件。

今天教你一招解决!

相信以后,这种软件学习资料下载问题可以解决!或者得到一点其他思路!

方法一
换个(含电脑模式)浏览器,换成电脑模式下打开,例如: X浏览器,via浏览器,kiwi browser浏览器等等。

方法二
链接中 添加/tp/ 不用切换电脑模式,方便下载。

例如:

http://xiaoluo.lanzou.com/xxxxx 打不开

替换成:

http://xiaoluo.lanzou.com/tp/xxxxx 就可以打开

原理:

直接在链接中添加 /tp/ 让链接处于电脑模式打开方式!

方法三
我们知道路由和云端解析服务器是有可以有其他路径可以解析出来的,因此我们还可以通过云端解析接口,直接提取直链接!

解析接口API直链接:

https://api.suxun.site/api/lanzou?url=

+蓝奏云分享链接网址+(&pwd=密码)&type=down

有密码例如:

https://api.suxun.site/api/lanzou?url=https://lanzoui.com/i1Pah29iv6lc&pwd=1111&type=down

蓝色标识是链接,红色标识是密码

无密码:

https://api.suxun.site/api/lanzou?url=https://lanzoui.com/iUqUl29itr6g&type=down

目前国内可用Docker镜像加速器(2024-08)

2024年8月23日 15:27

国内经常使用Docker的朋友,可能都会涉及到配置镜像源的操作,来加速自己的镜像拉取。然而这段时间陆续发现曾经常用的国内镜像站(各种云商和高校镜像站)现在已经不能用了,搜索一番之后,找到可用镜像站或者镜像加速地址,并测试后汇总如下,使用前请自行斟酌。

Docker 镜像加速列表(截止到20240809)

注意有些镜像站仅包含基础镜像或白名单镜像,如果一个加速地址拉不到需要的镜像,可切换其他地址尝试。
镜像加地址
https://docker.registry.cyou
https://docker-cf.registry.cyou
https://dockerpull.com
https://dockerproxy.cn
https://docker.1panel.live
https://hub.rat.dev
https://docker.anyhub.us.kg
https://docker.chenby.cn
https://dockerhub.icu
https://docker.awsl9527.cn
https://dhub.kubesre.xyz
https://docker.hlyun.org
https://docker.m.daocloud.io

配置方式1:临时使用

直接拿镜像域名拼接上官方镜像名,例如要拉去镜像 yidadaa/chatgpt-next-web,可以用下面写法:

docker pull dockerpull.com/yidadaa/chatgpt-next-web

配置方式2:长久有效

Ubuntu 16.04+、Debian 8+、CentOS 7+

修改文件 /etc/docker/daemon.json(如果不存在则需要创建创建,注意不要写入中文),并重启服务。

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "https://dockerpull.com",
        "https://docker.anyhub.us.kg",
        "https://dockerhub.jobcher.com",
        "https://dockerhub.icu",
        "https://docker.awsl9527.cn"
    ]
}
EOF
sudo systemctl daemon-reload && sudo systemctl restart docker

可直接使用docker pull拉去镜像进行测试,或用以下命令检查是否生效:

docker info

测试

未使用加速地址之前拉镜像:


使用之前


使用之后是这样的:


使用之后


发布于 2024-08-09 18:36・IP 属地浙江


WPS Office 2023 v12.8.2.17838

2024年8月17日 14:14

软件介绍

WPS Office 2023专业版(金山WPS企业版)WPS2023为你打造新一代办公环境,可以轻松快速访问各类办公服务.WPS2023专业版是一款国产免费办公软件,全面涵盖了文字处理,电子表格,演示文稿,PDF文档.提供强大插件平台支持,免费提供海量在线存储空间及文档模板,兼容所有微软Office格式,支持所有平台跨设备云同步.

软件截图

微信截图_20240816235611.jpg

版本特点

WPS2023专业增强版:免激活、去水印、永久授权、完整功能优化增强版

1. 基于官方WPS2023专业版打包,自动调用安装脚本写入终身授权序列号

﹂序列号采用博湖县政府专用版: TJ3GN-9NTGQ-GLF7C-YEN8X-TJWML

2. 集成VBA组件、终身授权序列号、安装完毕即WPS永久激活专业增强版

3. 去广告优化、去我的电脑WPS云盘、保留登陆和云同步

﹂去界面左侧:日历、WPS便签、会议、统计表单 (广告)

﹂去应用中心:分享协作功能网页入口(会议、统计表单)

﹂彻底去升级:无版本更新提示,检查更新永远都是最新版

4. 安装过程自动剔除桌面和我的电脑WPS云盘虚拟盘符入口

5. 安装过程自动删除升级组件并清除检查升级的计划任务项



下载地址:WPS2023

Alist V3 使用中的常见问题

2024年6月18日 15:53

前言

本页面纪录一些Alist中经常看到的一些问题..

常见问题总结

1. 刚搭建好Alist打开进去就这样是怎么回事?



这是刚搭建好还没挂载网盘,你去下面登录然后去后台添加一个账号挂载一个网盘就行

2. 怎么刷新应用?为什么我网盘上传后Alist没更新?

登录管理员账号的前提下,右下角就能刷新了.

如果在首页刷新不行,去你有变动的哪个文件夹里面刷新

3. 怎么打开 Alist 提示 System error: TypeError:n.replaceAll is not a function?



现在安装的应该没了已经默认添加进去了帮你,如果你的还提示这样的那么去后台,自定义头部里面添加如下代码即可

<!--Alist V3建议添加的,已经默认添加了,如果你的没有建议加上-->
<script src="https://polyfill.io/v3/polyfill.min.js?features=String.prototype.replaceAll"></script>

这个 polyfill.min.js 如果觉的加载慢,可以试试这个点击这里查看如何更换

4. 怎么首次打开强制默认白天或者夜间模式

不是很好用现在,不推荐使用,可以尝尝怎么样不建议实装~


把代码放到自定义头部内或者自定义内容里面任意位置都行.



白天    <script>window.onload=function(){localStorage.setItem("hope-ui-color-mode","light")}</script>
夜晚       <script>window.onload=function(){localStorage.setItem("hope-ui-color-mode","dark")}</script>


Alist V3 自定义内容代码

2024年6月18日 15:43

自定义内容内代码

<!--延迟加载-->
<!--如果要写自定义内容建议都加到这个延迟加载的范围内-->
<div id="customize" style="display: none;">
    <div>
		<!--音乐播放器-->
        <meting-js fixed="true" autoplay="false" theme="#409EFF" list-folded="true" auto="QQ音乐或者网易云的链接"></meting-js>
		
		<!--评论模块还有下面的script也是-->
		<center>
			<div class="newValine" id="vcomments"></div>
		</center>
		<script>
			new Valine({
				visitor: true,
				el: '#vcomments',
				avatar: 'wavatar',
				appId: 'Your appId',
				appKey: 'Your appKey',
				placeholder: "有什么问题欢迎评论区留言~么么哒"
			}) 
		</script>

        <br />
        <center class="dibu">
            <div style=" line-height: 20px;font-size: 9pt;font-weight: bold;">
                <span>
                    "
                    <span style="color: rgb(13, 109, 252); font-weight: bold;" id="hitokoto">
                        <a href="#" id="hitokoto_text">
                            "人生最大的遗憾,就是在最无能为力的时候遇到一个想要保护一生的人."
                        </a>
                    </span> "
                </span>
                <p style="margin-left: 10rem;font-size: 8pt;">
                    <small>
                        —— Anwen's Cloud
                    </small>
                </p>
            </div>

            <div style="font-size: 13px; font-weight: bold;">
                <span class="nav-item">
                    <a class="nav-link" href="xxxxxxxxxx"
                        target="_blank">
                        <i class="fab fa-qq" style="color:#409EFF" aria-hidden="true">
                        </i>
                        QQ |
                    </a>
                </span>
                <span class="nav-item">
                    <a class="nav-link" href="mailto:xxxxx@foxmail.com" target="_blank">
                        <i class="fa-duotone fa-envelope-open" style="color:#409EFF" aria-hidden="true">
                        </i>
                        邮箱 |
                    </a>
                </span>
                <span class="nav-item">
                    <a class="nav-link" href="xxxxxx" target="_blank">
                        <i class="fas fa-edit" style="color:#409EFF" aria-hidden="true">
                        </i>
                        博客 |
                    </a>
                </span>
                <span class="nav-item">
                    <a class="nav-link" href="xxxxxxxx" target="_blank">
                        <i class="fas fa-comment-lines" style="color:#409EFF;" aria-hidden="true">
                        </i>
                        留言 |
                    </a>
                </span>
                <span class="nav-item">
                    <a class="nav-link" href="xxxxxxx" target="_blank">
                        <i class="fa fa-cloud-download" style="color:#409EFF;" aria-hidden="true">
                        </i>
                        云盘 |
                    </a>
                </span>
                <!--后台入口-->
                <span class="nav-item">
                    <a class="nav-link" href="/@manage" target="_blank">
                        <i class="fa-solid fa-folder-gear" style="color:#409EFF;" aria-hidden="true">
                        </i>
                        管理 |
                    </a>
                </span>
                <!--版权,请尊重作者-->
                <span class="nav-item">
                    <a class="nav-link" href="https://github.com/Xhofe/alist" target="_blank">
                        <i class="fa-solid fa-copyright" style="color:#409EFF;" aria-hidden="true">
                        </i>
                        Alist
                    </a>
                </span>
				<br />
				<!--添加一个访问量-->
				<span>
                    本"<span style="color: rgb(13, 109, 252); font-weight: bold;"><a href="#">目录</a></span>"访问量 <span id="busuanzi_value_page_pv" style="color: rgb(13, 109, 252); font-weight: bold;"></span> 次 本站总访问量 <span id="busuanzi_value_site_pv" style="color: rgb(13, 109, 252); font-weight: bold;"></span>                次 本站总访客数 <span id="busuanzi_value_site_uv" style="color: rgb(13, 109, 252); font-weight: bold;"></span> 人
                </span>
                <br />
				<!--添加备案信息-->
                <span class="nav-item">
                    <a class="nav-link" href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank">
                        <i class="fa-solid fa-shield-check" style="color:#409EFF;" aria-hidden="true">
                        </i>
                        冀 ICP备2222000777号
                    </a>
                </span>
            </div>
        </center>
        <br />
        <br />
    </div>



    <!--一言API-->
    <script src="https://v1.hitokoto.cn/?encode=js&select=%23hitokoto" defer></script>
<!--延迟加载范围到这里结束-->
</div>
<!--延迟加载配套使用JS-->
<script>
    let interval = setInterval(() => {
        if (document.querySelector(".footer")) {
            document.querySelector("#customize").style.display = "";
            clearInterval(interval);
        }
    }, 200);
</script>

<!-- 渐变背景初始化,如果要使用渐变背景把下面的那一行注释去掉即可-->
<!-- 下面的几行都是渐变的一套,自定义头部内还有一个关联的自定义CSS -->
<!--<canvas id="canvas-basic"></canvas> -->
<script src="https://npm.elemecdn.com/granim@2.0.0/dist/granim.min.js"></script>
<script>
var granimInstance = new Granim({
    element: '#canvas-basic',
    direction: 'left-right',
    isPausedWhenNotInView: true,
    states : {
        "default-state": {
            gradients: [
                ['#a18cd1', '#fbc2eb'],
                 ['#fff1eb', '#ace0f9'],
                 ['#d4fc79', '#96e6a1'],
                 ['#a1c4fd', '#c2e9fb'],
                 ['#a8edea', '#fed6e3'],
                 ['#9890e3', '#b1f4cf'],
                 ['#a1c4fd', '#c2e9fb'],
                 ['#fff1eb', '#ace0f9']
           
            ]
        }
    }
});
</script>



网页点击鼠标特效(两个)

<!-- 网页鼠标点击特效 - 核心价值观关键字 -->
<script>
    (function () {
        var a_idx = 0;
        window.onclick = function (event) {
            var a = new Array("❤富强❤", "❤民主❤", "❤文明❤", "❤和谐❤", "❤自由❤", "❤平等❤", "❤公正❤", "❤法治❤", "❤爱国❤",
                "❤敬业❤", "❤诚信❤", "❤友善❤");
            var heart = document.createElement("b"); //创建b元素
            heart.onselectstart = new Function('event.returnValue=false'); //防止拖动

            document.body.appendChild(heart).innerHTML = a[a_idx]; //将b元素添加到页面上
            a_idx = (a_idx + 1) % a.length;
            heart.style.cssText = "position: fixed;left:-100%;"; //给p元素设置样式

            var f = 13, // 字体大小
                x = event.clientX - f / 2 - 30, // 横坐标
                y = event.clientY - f, // 纵坐标
                c = randomColor(), // 随机颜色
                a = 1, // 透明度
                s = 0.8; // 放大缩小

            var timer = setInterval(function () { //添加定时器
                if (a <= 0) {
                    document.body.removeChild(heart);
                    clearInterval(timer);
                } else {
                    heart.style.cssText = "font-size:16px;cursor: default;position: fixed;color:" +
                        c + ";left:" + x + "px;top:" + y + "px;opacity:" + a + ";transform:scale(" +
                        s + ");";

                    y--;
                    a -= 0.016;
                    s += 0.002;
                }
            }, 15)
        }
        // 随机颜色
        function randomColor() {
            return "rgb(" + (~~(Math.random() * 255)) + "," + (~~(Math.random() * 255)) + "," + (~~(Math
                .random() * 255)) + ")";
        }
    }());
</script>
<!-- 网页鼠标点击特效 - 爱心 -->
<script type="text/javascript">
         ! function (e, t, a) {
            function r() {
                for (var e = 0; e < s.length; e++) s[e].alpha <= 0 ? (t.body.removeChild(s[e].el), s.splice(e, 1)) : (s[
                        e].y--, s[e].scale += .004, s[e].alpha -= .013, s[e].el.style.cssText = "left:" + s[e].x +
                    "px;top:" + s[e].y + "px;opacity:" + s[e].alpha + ";transform:scale(" + s[e].scale + "," + s[e]
                    .scale + ") rotate(45deg);background:" + s[e].color + ";z-index:99999");
                requestAnimationFrame(r)
            }
            function n() {
                var t = "function" == typeof e.onclick && e.onclick;
                e.onclick = function (e) {
                    t && t(), o(e)
                }
            }
 
            function o(e) {
                var a = t.createElement("div");
                a.className = "heart", s.push({
                    el: a,
                    x: e.clientX - 5,
                    y: e.clientY - 5,
                    scale: 1,
                    alpha: 1,
                    color: c()
                }), t.body.appendChild(a)
            }
 
            function i(e) {
                var a = t.createElement("style");
                a.type = "text/css";
                try {
                    a.appendChild(t.createTextNode(e))
                } catch (t) {
                    a.styleSheet.cssText = e
                }
                t.getElementsByTagName("head")[0].appendChild(a)
            }
 
            function c() {
                return "rgb(" + ~~(255 * Math.random()) + "," + ~~(255 * Math.random()) + "," + ~~(255 * Math
                    .random()) + ")"
            }
            var s = [];
            e.requestAnimationFrame = e.requestAnimationFrame || e.webkitRequestAnimationFrame || e
                .mozRequestAnimationFrame || e.oRequestAnimationFrame || e.msRequestAnimationFrame || function (e) {
                    setTimeout(e, 1e3 / 60)
                }, i(
                    ".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: fixed;}.heart:after{top: -5px;}.heart:before{left: -5px;}"
                ), n(), r()
        }(window, document);
    
</script>

音乐播放器添加说明

核心代码(记得引用头部内的喔~)

<meting-js fixed="true" autoplay="false" theme="#409EFF" list-folded="true" auto="https://y.qq.com/n/yqq/playlist/7927599544.html"></meting-js>


腾讯QQ音乐

我使用的是上面这个链接~这个链接怎么获取呢来看图

  1. https://y.qq.com/n/ryqq/profile/create

  2. 点击这个歌单后我们能看到 这个歌单的链接是 :https://y.qq.com/n/ryqq/playlist/7927599544

  3. 然后我们复制最后的那一串数字 7927599544

  4. 然后回到 https://y.qq.com/n/yqq/playlist/7927599544.html 这个链接里面把里面的数字ID替换成你的即可使用。

网易云音乐

音乐播放器要是添加的话需要如下三个参数才行,QQ音乐好像不需要这么多参数哈哈...

<meting-js 
  server="netease" 
  type="playlist" 
  id="60198">
</meting-js>

进入网易云音乐,然后找到你想听的歌单进去,然后看到顶部链接地址栏里面有一串ID,填进代码里面

可以参下除了最下面三个需要加的参数我还添加了跟QQ音乐一样的几个参数


<meting-js 
    fixed="true" 
    autoplay="false" 
    theme="#409EFF" 
    list-folded="true" 
    server="netease" 
    type="playlist" 
    id="2195404116">
  </meting-js>

一键复制拿去用即可.

<meting-js fixed="true" autoplay="false" theme="#409EFF" list-folded="true" server="netease" type="playlist" id="2195404116"></meting-js>

name,artist,这俩是啥不说了自己研究吧

url 肯定是你要添加的音乐链接,cover封面呗~嘿嘿嘿

加上歌词

<meting-js
	name="rainymood"
	artist="rainymood"
	url="https://rainymood.com/audio1110/0.m4a"
	cover="https://rainymood.com/i/badge.jpg"
	fixed="true">
	<pre hidden>
		[00:00.00]This
		[00:04.01]is
		[00:08.02]lyric
	</pre>
</meting-js>

                                                                                                                                                                         


pre hidden里面的格式就是歌词~这样就能看到歌词啦,自己掐好时间点儿就行~

音乐的一些其他参数

option

default

description

id

require

song id / playlist id / album id / search keyword

server

require

music platform: netease, tencent, kugou, xiami, baidu

type

require

song, playlist, album, search, artist

auto

options

music link, support: netease, tencent, xiami

fixed

false

enable fixed mode

mini

false

enable mini mode

autoplay

false

audio autoplay

theme

#2980b9

main color

loop

all

player loop play, values: 'all', 'one', 'none'

order

list

player play order, values: 'list', 'random'

preload

auto

values: 'none', 'metadata', 'auto'

volume

0.7

default volume, notice that player will remember user setting, default volume will not work after user set volume themselves

mutex

true

prevent to play multiple player at the same time, pause other players when this player start play

lrc-type

0

lyric type

list-folded

false

indicate whether list should folded at first

list-max-height

340px

list max height

storage-name

metingjs

localStorage key that store player setting

机翻的(凑合看
选项
默认
描述
ID
要求
歌曲ID/播放列表ID/专辑ID/搜索关键字
服务器
要求
音乐平台:netease,tencent,kugou,xiami,baidu
类型
要求
song,playlist,album,search,artist
汽车
选项
音乐链接,支持netease,,,tencentxiami
固定的
false
启用固定模式
小型的
false
开启迷你模式
自动播放
false
音频自动播放
主题
#2980b9
主色
环形
all
播放器循环播放,值:'all'、'one'、'none'
命令
list
播放器播放顺序,值:'list','random'
预载
auto
值:“无”、“元数据”、“自动”
体积
0.7
默认音量,注意播放器会记住用户设置,用户自己设置音量后默认音量将失效
互斥体
true
防止同时播放多个播放器,当该播放器开始播放时暂停其他播放器
lrc 型
0
抒情类型
列表折叠
false
指示列表是否应首先折叠
列表最大高度
340px
列出最大高度
存储名称
metingjs
存储播放器设置的 localStorage 键

1 人点赞

  • 启程

1



Alist V3 自定义头部代码

2024年6月18日 15:38

代码中每一行的代码都有注释说明,请仔细查看并使用


本文摘自源地址

Alist的使用和编译以及美化教程

自定义头部代码


<!--Alist V3建议添加的,已经默认添加了,如果你的没有建议加上-->
<script src="https://polyfill.io/v3/polyfill.min.js?features=String.prototype.replaceAll"></script>

<!--引入字体,全局字体使用-->
<link rel="stylesheet" href="https://npm.elemecdn.com/lxgw-wenkai-webfont@1.1.0/lxgwwenkai-regular.css" />

<!--评论系统使用的js-->
<script src='https://unpkg.com/valine/dist/Valine.min.js'></script>

<!--不蒜子计数器-->
<script async src="https://busuanzi.icodeq.com/busuanzi.pure.mini.js"></script>

<!-- Font6,自定义底部使用和看板娘使用的图标和字体文件-->
<link type='text/css' rel="stylesheet" href="https://npm.elemecdn.com/font6pro@6.0.1/css/fontawesome.min.css" media='all'>
<link href="https://npm.elemecdn.com/font6pro@6.0.1/css/all.min.css" rel="stylesheet">

<!--音乐播放器所用的文件-->
<!-- require APlayer -->
<link rel="stylesheet" href="https://npm.elemecdn.com/aplayer@1.10.1/dist/APlayer.min.css">
<script src="https://npm.elemecdn.com/aplayer@1.10.1/dist/APlayer.min.js"></script>
<!-- require MetingJS -->
<script src="https://npm.elemecdn.com/meting@2.0.1/dist/Meting.min.js"></script>

<style>
/* 去除通知栏 右上角 X */
.notify-render .hope-close-button {
    display: none;
}
/* 图片API用法点进去都会有食用说明的
  樱花:https://www.dmoe.cc
  夏沫:https://cdn.seovx.com
  搏天:https://api.btstu.cn/doc/sjbz.php
  姬长信:https://github.com/insoxin/API
  小歪:https://api.ixiaowai.cn/
  保罗:https://api.paugram.com
  墨天逸:https://api.mtyqx.cn
  岁月小筑:https://img.xjh.me
  东方Project:https://img.paulzzh.com
  */

/*白天背景图*/
.hope-ui-light {
    background-image: url("https://api.ixiaowai.cn/mcapi/mcapi.php") !important;
    background-repeat:no-repeat;
    background-size:cover;
    background-attachment:fixed;
    background-position-x:center;
}
/*夜间背景图*/
.hope-ui-dark {
    background-image: url(http://pic.rmb.bdstatic.com/bjh/ebe942a9de49856f389c65f25a338335.png) !important;
    background-repeat:no-repeat;
    background-size:cover;
    background-attachment:fixed;
    background-position-x:center;
}
/*主列表白天模式透明*/
.obj-box.hope-stack.hope-c-dhzjXW.hope-c-PJLV.hope-c-PJLV-igScBhH-css {
    background-color: rgba(255, 255, 255, 0.5)!important;
}
/*主列表夜间模式透明*/
 .obj-box.hope-stack.hope-c-dhzjXW.hope-c-PJLV.hope-c-PJLV-iigjoxS-css {
    background-color:rgb(0 0 0 / 50%)!important;
}

/*readme白天模式透明*/
.hope-c-PJLV.hope-c-PJLV-ikSuVsl-css {
    background-color: rgba(255, 255, 255, 0.5)!important;
}
/*readme夜间模式透明*/
.hope-c-PJLV.hope-c-PJLV-iiuDLME-css {
    background-color:rgb(0 0 0 / 50%)!important;
}

/*顶部右上角切换按钮透明*/
.hope-ui-light .hope-c-ivMHWx-hZistB-cv.hope-icon-button {
    background-color: rgba(255, 255, 255, 0.3)!important;
}
.hope-ui-dark .hope-c-ivMHWx-hZistB-cv.hope-icon-button {
    background-color:rgb(0 0 0 / 10%)!important;
	
}

/*右下角侧边栏按钮透明 第一个是白天 第二个是夜间*/
.hope-ui-light .hope-c-PJLV-ijgzmFG-css {
    background-color: rgba(255, 255, 255, 0.5)!important;
}
.hope-ui-dark .hope-c-PJLV-ijgzmFG-css {
    background-color:rgb(0 0 0 / 50%)!important;
}

/*白天模式代码块透明*/
.hope-ui-light pre {
    background-color: rgba(255, 255, 255, 0.1)!important;
}
/*夜间模式代码块透明*/
.hope-ui-dark pre {
    background-color: rgba(255, 255, 255, 0)!important;
}

/*底部CSS,.App .table这三个一起的*/
 dibu {
    border-top: 0px;
    position: absolute;
    bottom: 0;
    width: 100%;
    margin: 0px;
    padding: 0px;
}
.App {
    min-height: 85vh;
}
.table {
    margin: auto;
}

/*去掉底部*/
.footer {
    display: none!important;
}

/*全局字体*/
 * {
    font-family:LXGW WenKai
}
* {
    font-weight:bold
}
body {
    font-family: LXGW WenKai;
}


/*以下为评论系统专用*/
/*适配大小契合度*/
.newValine {
    width: min(96%, 940px);
    flex-direction: column;
    row-gap: var(--hope-space-2);
    border-radius: var(--hope-radii-xl);
    padding: var(--hope-space-2);
    box-shadow: var(--hope-shadows-lg);
}
/*评论区 - 白天模式透明度*/
.hope-ui-light .newValine {
    background-color: rgba(255, 255, 255, 0.8)!important;
}
/*评论区 - 夜间模式透明度*/
.hope-ui-dark .newValine {
    background-color:rgb(0 0 0 / 80%)!important;
}
/*输入栏里面跳舞的小人背景图*/
.vedit {
    background-image:url(https://cdn.jsdelivr.net/gh/anwen-anyi/imgAnwen/images/OuNiJiang.gif);
    background-size:contain;
    background-repeat:no-repeat;
    background-position:right bottom;
    transition:all 0.25s ease-in-out 0s;
}
textarea#comment-textarea:focus {
    background-position-y:120px;
    transition:all 0.25s ease-in-out 0s;
}


/*渐变背景CSS*/
 #canvas-basic {
    position: fixed;
    display: block;
    width: 100%;
    height: 100%;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -999;
}


/*音乐播放器进一步进行隐藏*/
.aplayer.aplayer-fixed.aplayer-narrow .aplayer-body {
    left: -66px!important;
}
.aplayer.aplayer-fixed.aplayer-narrow .aplayer-body:hover {
    left: 0!important;
}
</style>



看板娘代码

<!--看板娘 -自定义大小,隐藏对话框和对话框高度-->
<style type="text/css">
  #waifu #live2d {
    height: 350px!important;
    width: 350px!important;
  }
  #waifu-tips {
    top: -60px;
    /*display:none !important;隐藏对话框*/
  }
</style>

<!--看板娘加载指定模型-->
<script>
  localStorage.setItem('modelId', '7');
  localStorage.setItem('modelTexturesId', '3');
</script>

<!--以下四个两个主用两个备用的,选一条使用即可-->
<!--自己选左右-->
<script src="https://api.itggg.cn/live2dnew/left/index.js"></script>
<script src="https://api.itggg.cn/live2dnew/right/index.js"></script>

<!--备用的,自己选左右-->
<script src="https://luluossfile.lulufind.com/work/teacher_u20221017ce7b5991_1666420843832_19934968_file.js"></script>
<script src="https://luluossfile.lulufind.com/work/teacher_u20221017bb6d7454_1666420849979_19584065_file.js"></script>



搜索栏美化代码

带毛玻璃效果

<style>
/*白天模式 搜索主体+毛玻璃*/
.hope-ui-light .hope-c-PJLV-iiBaxsN-css{
   background-color: rgba(255,255,255,0.2)!important;
   backdrop-filter: blur(10px)!important;
}

/*白天模式 搜索栏输入框+毛玻璃*/
.hope-ui-light .hope-c-kvTTWD-hYRNAb-variant-filled{
   background-color: rgba(255,255,255,0.2)!important;
   backdrop-filter: blur(10px)!important;
}

/*白天模式 搜索按钮+毛玻璃*/
.hope-ui-light .hope-c-PJLV-ikEIIxw-css{
   background-color: rgba(255,255,255,0.2)!important;
   backdrop-filter: blur(10px)!important;
   padding: var(--hope-space-1)!important;
}

/*夜间模式搜索主体+毛玻璃*/
.hope-ui-dark .hope-c-PJLV-iiBaxsN-css{
    background-color: rgb(0 0 0 / 10%)!important;
    backdrop-filter: blur(10px)!important;
}

/*夜间模式搜索栏+毛玻璃*/
.hope-ui-dark .hope-c-kvTTWD-hYRNAb-variant-filled{
    background-color: rgb(0 0 0 / 10%)!important;
    backdrop-filter: blur(10px)!important;
}

/*夜间模式 搜索按钮+毛玻璃*/
.hope-ui-dark .hope-c-PJLV-ikEIIxw-css{
    background-color: rgb(0 0 0 / 10%)!important;
    backdrop-filter: blur(10px)!important;
    padding: var(--hope-space-1)!important;
}
</style>



不带毛玻璃效果

<style>
/*白天模式 搜索主体*/
.hope-ui-light .hope-c-PJLV-iiBaxsN-css{
   background-color: rgba(255,255,255,0.2)!important;
}

/*白天模式 搜索栏输入框*/
.hope-ui-light .hope-c-kvTTWD-hYRNAb-variant-filled{
   background-color: rgba(255,255,255,0.2)!important;
}

/*白天模式 搜索按钮*/
.hope-ui-light .hope-c-PJLV-ikEIIxw-css{
   background-color: rgba(255,255,255,0.2)!important;
   padding: var(--hope-space-1)!important;
}

/*夜间模式搜索主体*/
.hope-ui-dark .hope-c-PJLV-iiBaxsN-css{
    background-color: rgb(0 0 0 / 10%)!important;
}

/*夜间模式搜索栏*/
.hope-ui-dark .hope-c-kvTTWD-hYRNAb-variant-filled{
    background-color: rgb(0 0 0 / 10%)!important;
}

/*夜间模式 搜索按钮*/
.hope-ui-dark .hope-c-PJLV-ikEIIxw-css{
    background-color: rgb(0 0 0 / 10%)!important;
    padding: var(--hope-space-1)!important;
}
</style>



效果预览

左侧为不带毛玻璃效果,右侧为带毛玻璃效果.推荐右侧带毛玻璃效果的

自行替换鼠标样式说明


因为CDN的 HTTPS证书失效了,无法使用暂时

但是着急的话可以一个一个点击然后把哪个文件下载下来,然后自己上传一个换成自己的链接也可以..


把HTTPS 改成HTTPS 貌似还能用 试试看


<!--较为个性化的鼠标指针样式,可结合个人需要自行修改-->
<style>
  body {
    cursor: url(http://luluossfile.lulufind.com/work/teacher_u20221021b3a89013_1666841028833_10660845_file.cur), default;
  }
  select{
    cursor: url(http://luluossfile.lulufind.com/work/teacher_u2021090299b56677_1666842679271_10490748_file.cur), pointer;
  }
  button,a:hover{
    cursor: url(http://luluossfile.lulufind.com/work/teacher_u20221017ac9f1124_1666842626270_11086578_file.cur), pointer;
  }
  input{
    cursor:url(http://luluossfile.lulufind.com/work/teacher_u2021090299b56677_1666842633386_14976764_file.cur), text;	
  }
  textarea,input:focus{
    cursor:url(http://luluossfile.lulufind.com/work/teacher_u202210176ba36766_1666842640146_15845280_file.cur), text;	
  }
  code{
    cursor: url(http://luluossfile.lulufind.com/work/teacher_u20221021b3a89013_1666842646779_15864973_file.cur), default;	
  }
  pre>code{
    cursor: url(http://luluossfile.lulufind.com/work/teacher_u202210176ba36766_1666842653500_10010236_file.cur), default;	
  }
</style>



❌
❌