论Alist的美化及搭建(2023/6/5)
前言
我在6月初搭建了我的alist网盘蓝桉双子
可以看到是有看板娘的,而你们的为什么没有呢?
跟我一起来搭建吧!
1.搭建
我的系统是:Ubuntu 20.04LTS
其实很简单:
安装:
sudo curl -fsSL "https://alist.nn.ci/v3.sh" | bash -s install 你想安装到的目录 //(如/cloud)但要确保这个目录存在!
更新:
sudo curl -fsSL "https://alist.nn.ci/v3.sh" | bash -s update 你安装到的目录 //(如/cloud)
卸载:
curl -fsSL "https://alist.nn.ci/v3.sh" | bash -s uninstall 你安装到的目录 //(如/cloud)
好了安装完毕!
下面开始美化与配置!
2.美化
这就比较多了首先是大家最期待的看板娘!
(1)看板娘!
我使用的是 live2d 推荐自己搭建,方便快捷,但确保你有安装 Node.js 和 npm
1.确定端口
我因为80端口不用选择了80端口,用的是apache2
首先登录控制台
切换到/var/www/html目录
cd /var/www/html
clone一下项目代码
git clone https://github.com/stevenjoezhang/live2d-widget.git
再在 alist管理->设置->全局->自定义头部添加代码:
<script src="你的网站ip或域名:80/live2d-widget/autoload.js"></script>
然后 ·······················
完成了!
下面就是配置了,懒得配置的可以不看
2.配置
分别在: live22d-widget目录下的 autoload.js waifu-tips.jaon 下编辑
我的配置:
autoload.js:
// live2d_path 参数建议使用绝对路径
const live2d_path = "https://fastly.jsdelivr.net/gh/stevenjoezhang/live2d-widget@latest/";
//const live2d_path = "/live2d-widget/";
// 封装异步加载资源的方法
function loadExternalResource(url, type) {
return new Promise((resolve, reject) => {
let tag;
if (type === "css") {
tag = document.createElement("link");
tag.rel = "stylesheet";
tag.href = url;
}
else if (type === "js") {
tag = document.createElement("script");
tag.src = url;
}
if (tag) {
tag.onload = () => resolve(url);
tag.onerror = () => reject(url);
document.head.appendChild(tag);
}
});
}
// 加载 waifu.css live2d.min.js waifu-tips.js
if (screen.width >= 768) {
Promise.all([
loadExternalResource(live2d_path + "waifu.css", "css"),
loadExternalResource(live2d_path + "live2d.min.js", "js"),
loadExternalResource(live2d_path + "waifu-tips.js", "js")
]).then(() => {
// 配置选项的具体用法见 README.md
initWidget({
waifuPath: live2d_path + "waifu-tips.json",
//apiPath: "https://live2d.fghrsh.net/api/",
cdnPath: "https://fastly.jsdelivr.net/gh/fghrsh/live2d_api/",
tools: ["hitokoto", "asteroids", "switch-model", "switch-texture", "photo", "info", "quit"]
});
});
}
console.log(`
く__,.ヘヽ. / ,ー、 〉
\ ', !-─‐-i / /´
/`ー' L//`ヽ、
/ /, /| , , ',
イ / /-‐/ i L_ ハ ヽ! i
レ ヘ 7イ`ト レ'ァ-ト、!ハ| |
!,/7 '0' ´0iソ| |
|.从" _ ,,,, / |./ |
レ'| i>.、,,__ _,.イ / .i |
レ'| | / k_7_/レ'ヽ, ハ. |
| |/i 〈|/ i ,.ヘ | i |
.|/ / i: ヘ! \ |
kヽ>、ハ _,.ヘ、 /、!
!'〈//`T´', \ `'7'ーr'
レ'ヽL__|___i,___,ンレ|ノ
ト-,/ |___./
'ー' !_,.:
`);
waifu-tips.json:
{
"mouseover": [{
"selector": "#live2d",
"text": ["干嘛呢你,快把手拿开~~", "鼠…鼠标放错地方了!", "你要干嘛呀?", "喵喵喵?", "怕怕(ノ≧∇≦)ノ", "非礼呀!救命!", "这样的话,只能使用武力了!", "我要生气了哦", "不要动手动脚的!", "真…真的是不知羞耻!", "Hentai!", "你干嘛!"]
}, {
"selector": "#waifu-tool-hitokoto",
"text": ["猜猜我要说些什么?", "我从青蛙王子那里听到了不少人生经验。"]
}, {
"selector": "#waifu-tool-asteroids",
"text": ["要不要来玩飞机大战?", "这个按钮上写着「不要点击」。", "怎么,你想来和我玩个游戏?", "听说这样可以蹦迪!"]
}, {
"selector": "#waifu-tool-switch-model",
"text": ["你是不是不爱人家了呀,呜呜呜~", "要见见我的姐姐嘛?", "想要看我妹妹嘛?", "要切换看板娘吗?"]
}, {
"selector": "#waifu-tool-switch-texture",
"text": ["喜欢换装 PLAY 吗?", "这次要扮演什么呢?", "变装!", "让我们看看接下来会发生什么!"]
}, {
"selector": "#waifu-tool-photo",
"text": ["你要给我拍照呀?一二三~茄子~", "要不,我们来合影吧!", "保持微笑就好了~"]
}, {
"selector": "#waifu-tool-info",
"text": ["想要知道更多关于我的事么?", "这里记录着我搬家的历史呢。", "你想深入了解我什么呢?"]
}, {
"selector": "#waifu-tool-quit",
"text": ["到了要说再见的时候了吗?", "呜呜 QAQ 后会有期……", "不要抛弃我呀……", "我们,还能再见面吗……", "哼,你会后悔的!"]
}, {
"selector": ".menu-item-home a",
"text": ["点击前往首页,想回到上一页可以使用浏览器的后退功能哦。", "点它就可以回到首页啦!", "回首页看看吧。"]
}, {
"selector": ".menu-item-about a",
"text": ["你想知道我家主人是谁吗?", "这里有一些关于我家主人的秘密哦,要不要看看呢?", "发现主人出没地点!"]
}, {
"selector": ".menu-item-tags a",
"text": ["点击就可以看文章的标签啦!", "点击来查看所有标签哦。"]
}, {
"selector": ".menu-item-categories a",
"text": ["文章都分类好啦~", "点击来查看文章分类哦。"]
}, {
"selector": ".menu-item-archives a",
"text": ["翻页比较麻烦吗,那就来看看文章归档吧。", "文章目录都整理在这里啦!"]
}, {
"selector": ".menu-item-friends a",
"text": ["这是我的朋友们哦ヾ(◍°∇°◍)ノ゙", "要去大佬们的家看看吗?", "要去拜访一下我的朋友们吗?"]
}, {
"selector": ".menu-item-search a",
"text": ["找不到想看的内容?搜索看看吧!", "在找什么东西呢,需要帮忙吗?"]
}, {
"selector": ".menu-item a",
"text": ["快看看这里都有什么呢?"]
}, {
"selector": ".site-author",
"text": ["我家主人好看吗?", "这是我家主人(*´∇`*)"]
}, {
"selector": ".site-state",
"text": ["这是文章的统计信息~", "要不要点进去看看?"]
}, {
"selector": ".feed-link a",
"text": ["这里可以使用 RSS 订阅呢!", "利用 feed 订阅器,就能快速知道博客有没有更新了呢。"]
}, {
"selector": ".cc-opacity, .post-copyright-author",
"text": ["要记得规范转载哦。", "所有文章均采用 CC BY-NC-SA 4.0 许可协议~", "转载前要先注意下文章的版权协议呢。"]
}, {
"selector": ".links-of-author",
"text": ["这里是主人的常驻地址哦。", "这里有主人的联系方式!"]
}, {
"selector": ".followme",
"text": ["手机扫一下就能继续看,很方便呢~", "扫一扫,打开新世界的大门!"]
}, {
"selector": ".fancybox img, img.medium-zoom-image",
"text": ["点击图片可以放大呢!"]
}, {
"selector": ".copy-btn",
"text": ["代码可以直接点击复制哟。"]
}, {
"selector": ".highlight .table-container, .gist",
"text": ["GitHub!我是新手!", "PHP 是最好的语言!"]
}, {
"selector": "a[href^='mailto']",
"text": ["邮件我会及时回复的!", "点击就可以发送邮件啦~"]
}, {
"selector": "a[href^='/tags/']",
"text": ["要去看看 <span>{text}</span> 标签么?", "点它可以查看此标签下的所有文章哟!"]
}, {
"selector": "a[href^='/categories/']",
"text": ["要去看看 <span>{text}</span> 分类么?", "点它可以查看此分类下的所有文章哟!"]
}, {
"selector": ".post-title-link",
"text": ["要看看 <span>{text}</span> 这篇文章吗?"]
}, {
"selector": "a[rel='contents']",
"text": ["点击来阅读全文哦。"]
}, {
"selector": "a[itemprop='discussionUrl']",
"text": ["要去看看评论吗?"]
}, {
"selector": ".beian a",
"text": ["我也是有户口的人哦。", "我的主人可是遵纪守法的好主人。"]
}, {
"selector": ".container a[href^='http'], .nav-link .nav-text",
"text": ["要去看看 <span>{text}</span> 么?", "去 <span>{text}</span> 逛逛吧。", "到 <span>{text}</span> 看看吧。"]
}, {
"selector": ".back-to-top",
"text": ["点它就可以回到顶部啦!", "又回到最初的起点~", "要回到开始的地方么?"]
}, {
"selector": ".reward-container",
"text": ["我是不是棒棒哒~快给我点赞吧!", "要打赏我嘛?好期待啊~", "主人最近在吃土呢,很辛苦的样子,给他一些钱钱吧~"]
}, {
"selector": "#wechat",
"text": ["这是我的微信二维码~"]
}, {
"selector": "#alipay",
"text": ["这是我的支付宝哦!"]
}, {
"selector": "#bitcoin",
"text": ["这是我的比特币账号!"]
}, {
"selector": "#needsharebutton-postbottom .btn",
"text": ["好东西要让更多人知道才行哦。", "觉得文章有帮助的话,可以分享给更多需要的朋友呢。"]
}, {
"selector": ".need-share-button_weibo",
"text": ["微博?来分享一波喵!"]
}, {
"selector": ".need-share-button_wechat",
"text": ["分享到微信吧!"]
}, {
"selector": ".need-share-button_douban",
"text": ["分享到豆瓣好像也不错!"]
}, {
"selector": ".need-share-button_qqzone",
"text": ["QQ 空间,一键转发,耶~"]
}, {
"selector": ".need-share-button_twitter",
"text": ["Twitter?好像是不存在的东西?"]
}, {
"selector": ".need-share-button_facebook",
"text": ["emmm…FB 好像也是不存在的东西?"]
}, {
"selector": ".post-nav-item a[rel='next']",
"text": ["来看看下一篇文章吧。", "点它可以看下一篇文章哦!", "要翻到下一篇文章吗?"]
}, {
"selector": ".post-nav-item a[rel='prev']",
"text": ["来看看上一篇文章吧。", "点它可以看上一篇文章哦!", "要翻到上一篇文章吗?"]
}, {
"selector": ".extend.next",
"text": ["去下一页看看吧。", "点它可以前进哦!", "要翻到下一页吗?"]
}, {
"selector": ".extend.prev",
"text": ["去上一页看看吧。", "点它可以后退哦!", "要翻到上一页吗?"]
}, {
"selector": "input.vnick",
"text": ["该怎么称呼你呢?", "留下你的尊姓大名!"]
}, {
"selector": ".vmail",
"text": ["留下你的邮箱,不然就是无头像人士了!", "记得设置好 Gravatar 头像哦!", "为了方便通知你最新消息,一定要留下邮箱!"]
}, {
"selector": ".vlink",
"text": ["快快告诉我你的家在哪里,好让我去参观参观!"]
}, {
"selector": ".veditor",
"text": ["想要去评论些什么吗?", "要说点什么吗?", "觉得博客不错?快来留言和主人交流吧!"]
}, {
"selector": ".vcontrol a",
"text": ["你会不会熟练使用 Markdown 呀?", "使用 Markdown 让评论更美观吧~"]
}, {
"selector": ".vemoji-btn",
"text": ["要插入一个萌萌哒的表情吗?", "要来一发表情吗?"]
}, {
"selector": ".vpreview-btn",
"text": ["要预览一下你的发言吗?", "快看看你的评论有多少负熵!"]
}, {
"selector": ".vsubmit",
"text": ["评论没有审核,要对自己的发言负责哦~", "要提交了吗,请耐心等待回复哦~"]
}, {
"selector": ".vcontent",
"text": ["哇,快看看这个精彩评论!", "如果有疑问,请尽快留言哦~"]
}],
"click": [{
"selector": "#live2d",
"text": ["是…是不小心碰到了吧…", "萝莉控是什么呀?", "你看到我的小熊了吗?", "再摸的话我可要报警了!⌇●﹏●⌇", "110 吗,这里有个变态一直在摸我(ó﹏ò。)", "不要摸我了,我会告诉老婆来打你的!", "干嘛动我呀!小心我咬你!", "别摸我,有什么好摸的!"]
}, {
"selector": ".veditor",
"text": ["要吐槽些什么呢?", "一定要认真填写喵~", "有什么想说的吗?"]
}, {
"selector": ".vsubmit",
"text": ["输入验证码就可以提交评论啦~"]
}],
"seasons": [{
"date": "01/01",
"text": "<span>元旦</span>了呢,新的一年又开始了,今年是{year}年~"
}, {
"date": "02/14",
"text": "又是一年<span>情人节</span>,{year}年找到对象了嘛~"
}, {
"date": "03/08",
"text": "今天是<span>国际妇女节</span>!"
}, {
"date": "03/12",
"text": "今天是<span>植树节</span>,要保护环境呀!"
}, {
"date": "04/01",
"text": "悄悄告诉你一个秘密~<span>今天是愚人节,不要被骗了哦~</span>"
}, {
"date": "05/01",
"text": "今天是<span>五一劳动节</span>,计划好假期去哪里了吗~"
}, {
"date": "06/01",
"text": "<span>儿童节</span>了呢,快活的时光总是短暂,要是永远长不大该多好啊…"
}, {
"date": "09/03",
"text": "<span>中国人民抗日战争胜利纪念日</span>,铭记历史、缅怀先烈、珍爱和平、开创未来。"
}, {
"date": "09/10",
"text": "<span>教师节</span>,在学校要给老师问声好呀~"
}, {
"date": "10/01",
"text": "<span>国庆节</span>到了,为祖国母亲庆生!"
}, {
"date": "11/05-11/12",
"text": "今年的<span>双十一</span>是和谁一起过的呢~"
}, {
"date": "12/20-12/31",
"text": "这几天是<span>圣诞节</span>,主人肯定又去剁手买买买了~"
}],
"time": [{
"hour": "6-7",
"text": "早上好!一日之计在于晨,美好的一天就要开始了~"
}, {
"hour": "8-11",
"text": "上午好!工作顺利嘛,不要久坐,多起来走动走动哦!"
}, {
"hour": "12-13",
"text": "中午了,工作了一个上午,现在是午餐时间!"
}, {
"hour": "14-17",
"text": "午后很容易犯困呢,今天的运动目标完成了吗?"
}, {
"hour": "18-19",
"text": "傍晚了!窗外夕阳的景色很美丽呢,最美不过夕阳红~"
}, {
"hour": "20-21",
"text": "晚上好,今天过得怎么样?"
}, {
"hour": "22-23",
"text": ["已经这么晚了呀,早点休息吧,晚安~", "深夜时要爱护眼睛呀!"]
}, {
"hour": "0-5",
"text": "你是夜猫子呀?这么晚还不睡觉,明天起的来嘛?"
}],
"message": {
"default": ["好久不见,日子过得好快呢……", "大坏蛋!你都多久没理人家了呀,嘤嘤嘤~", "嗨~快来逗我玩吧!", "拿小拳拳锤你胸口!", "记得把小家加入收藏夹哦!"],
"console": "哈哈,你打开了控制台,是想要看看我的小秘密吗?",
"copy": "你都复制了些什么呀,转载要记得加上出处哦!",
"visibilitychange": "哇,你终于回来了~"
}
}
(2)alist配置
主要就是在alist管理->设置->全局->自定义头部、和自定义内容里
我的自定义头部:
<meta charset="utf-8">
<script src="看板娘地址"></script>
<!-- 隐藏登陆头像 -->
<style>
.hope-c-PJLV-ibwASZs-css {
display:none;
}
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome/css/font-awesome.min.css">
<style type="text/css">
div{font-family: 'Source Code Pro','Noto Serif SC';}
span{font-family: 'Source Code Pro','Noto Serif SC';}
a{font-family: 'Source Code Pro','Noto Serif SC';}
</style>
<style>
.hope-stack.hope-c-dhzjXW.hope-c-PJLV.hope-c-PJLV-iiOacaA-css {display: none!important;}
/*白天模式 搜索主体+毛玻璃*/
.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>
<!--鼠标点击出随机颜色的爱心-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- 网页鼠标点击特效(爱心) -->
<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>
<!--开站时间开始-->
<center>
<br />
</span>
<span class="nav-item">
<span id="timeDate">载入天数...</span><span id="times">载入时分秒...</span> <script language="javascript">
var now = new Date();
function createtime(){
var grt= new Date("06/2/2023 12:00:00");/*---这里是网站的启用时间--*/
now.setTime(now.getTime()+250);
days = (now - grt ) / 1000 / 60 / 60 / 24;
dnum = Math.floor(days);
hours = (now - grt ) / 1000 / 60 / 60 - (24 * dnum);
hnum = Math.floor(hours);
if(String(hnum).length ==1 ){hnum = "0" + hnum;}
minutes = (now - grt ) / 1000 /60 - (24 * 60 * dnum) - (60 * hnum);
mnum = Math.floor(minutes);
if(String(mnum).length ==1 ){mnum = "0" + mnum;}
seconds = (now - grt ) / 1000 - (24 * 60 * 60 * dnum) - (60 * 60 * hnum) - (60 * mnum);
snum = Math.round(seconds);
if(String(snum).length ==1 ){snum = "0" + snum;}
document.getElementById("timeDate").innerHTML = "本站已稳定运行"+dnum+"天";
document.getElementById("times").innerHTML = hnum + "小时" + mnum + "分" + snum + "秒";
}
setInterval("createtime()",250);
</script>
<style>
/*隐藏版权*/
.footer span,.footer a:nth-of-type(1){
display:none;
}
<!-- 隐藏登陆头像 -->
<style>
.hope-c-PJLV-ibwASZs-css {
display:none;
}
/*隐藏管理字眼*/
.footer span,.footer a:nth-of-type(2){
display:none;
}
.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;}
.hope-c-PJLV-ijgzmFG-css{background-color: rgba(255, 255, 255, 0.5)!important;}
</style>
<!-- head -->
<link rel="stylesheet" type="text/css" href="https://fonts.loli.net/css?family=Source+Code+Pro">
<link rel="stylesheet" type="text/css" href="https://fonts.loli.net/css?family=Noto+Serif+SC">
<style type="text/css">
div{font-family: 'Source Code Pro','Noto Serif SC';}
span{font-family: 'Source Code Pro','Noto Serif SC';}
a{font-family: 'Source Code Pro','Noto Serif SC';}
</style>
自定义内容:
<!-- head -->
<meta charset="utf-8">
<!-- 增加底部文字 -->
<div style="text-align: center ; ">
<p align="center">
© Powered by <a target="_blank" href="http://43.138.236.72:1060" >蓝桉双子</a>
<span>|</span>
<a target="_blank" href="/@manage" >管理</a>
</p>
</div>
<!-- 隐藏登陆头像 -->
<style>
.hope-c-PJLV-ibwASZs-css {
display:none;
}
<script src="https://fastly.jsdelivr.net/gh/stevenjoezhang/live2d-widget@latest/autoload.js"></script>
<!-- 自定义壁纸&文件列表透明30% -->
<style>
.notify-render .hope-close-button{display: none;}
.hope-ui-dark{
background-image: url("https://img1.imgtp.com/2023/06/02/VXrpHupn.jpg") !important;
background-repeat:no-repeat;background-size:cover;background-attachment:fixed;background-position-x:center;
color: #20B2AA; /* 添加这个使文本变白色 */
}
.hope-ui-light{
background-image: url("https://picdl.sunbangyan.cn/2023/06/02/xpp6au.jpg") !important;
background-repeat:no-repeat;background-size:cover;background-attachment:fixed;background-position-x:center;
color: #191970 /* 添加这个使文本变白色 */
}
<!-- 隐藏登陆头像 -->
<style>
.hope-c-PJLV-ibwASZs-css {
display:none;
}
好了,有什么需要的欢迎在评论区补充!