This commit is contained in:
j m 2024-05-07 12:31:42 +08:00
parent 23b10f9849
commit 891d82dcd7
40 changed files with 7352 additions and 68 deletions

View File

@ -88,6 +88,12 @@ spec:
value: true value: true
- label: 隐藏 - label: 隐藏
value: false value: false
- $formkit: text
label: 头像服务镜像地址
help: '用于替换头像服务镜像地址,无须输入结尾的"/"。'
name: providerMirror
value: "https://cravatar.cn"
validation: required
- group: basic_style - group: basic_style
label: '基础样式' label: '基础样式'
formSchema: formSchema:

File diff suppressed because one or more lines are too long

View File

@ -1 +1,41 @@
body{cursor:var(--cursor-default)}.actions>div,.expand-done,.main-content figure>figcaption div,.navbar-above .navbar-nav .item,.navbar-searchicon,.navbar-slideicon,.photos .picture-details,.widget .ad-tag .click-close,a,button{cursor:var(--cursor-pointer)}.aplayer .aplayer-bar-wrap,.aplayer .aplayer-icon,.aplayer .aplayer-music,.aplayer .aplayer-pic{cursor:var(--cursor-pointer)!important}.main-content :not(.jg-entry)>img:not([class]){cursor:var(--cursor-zoom-in)}blockquote,code,h1,h2,h3,h4,h5,h6,hr,input[type=text],li,p,td,textarea,th{cursor:var(--cursor-text)} body {
cursor: var(--cursor-default);
}
a,
button,
.expand-done,
.navbar-above .navbar-nav .item,
.navbar-slideicon,
.navbar-searchicon,
.widget .ad-tag .click-close,
.actions > div,
.main-content figure > figcaption div,
.photos .picture-details {
cursor: var(--cursor-pointer);
}
.aplayer .aplayer-pic,
.aplayer .aplayer-music,
.aplayer .aplayer-bar-wrap,
.aplayer .aplayer-icon {
cursor: var(--cursor-pointer) !important;
}
.main-content :not(.jg-entry) > img:not([class]) {
cursor: var(--cursor-zoom-in);
}
p,
input[type=text],
blockquote,
th,
td,
code,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
li,
textarea {
cursor: var(--cursor-text);
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1,122 @@
@charset "utf-8";html{background-color:var(--bg-f);color:var(--main);font-family:"Dream Font",serif}html #live2d-plugin,html #live2d-toggle,html halo-contact-form-auto-loader{display:none}html body{width:100%;height:100%;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute}@media (max-width:767px){html body .content{max-width:90%!important;min-width:auto!important}html body .content .others-end{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}}html body .content{max-width:500px;min-width:360px;margin-bottom:10%}html body .content-title{padding:24px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}html body .content-title img{height:3rem;min-width:3rem;width:auto}html body .content-title span{font-size:1.5rem;margin-left:10px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}html body .content .others{padding:24px;border-radius:15px;border:var(--theme) solid 1px;background-color:var(--background)}html body .content .others-tip,html body .content-title{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}html body .content .others-tip{padding:20px;background-color:var(--theme);border-radius:10px}html body .content .others-tip img{height:2rem;width:2rem}html body .content .others-tip span{margin-left:10px;color:#fafafa;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}html body .content .others-topic{margin-top:20px;word-break:break-all}html body .content .others-topic span{color:var(--theme)}html body .content .others-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;margin-top:20px;display:-webkit-box;display:-ms-flexbox;display:flex}html body .content .others-end a{border-radius:2rem;width:4rem;padding:5px;text-align:center;color:var(--theme);border:var(--theme) solid 1px;text-decoration:none} @charset "utf-8";
html {
background-color: var(--bg-f);
color: var(--main);
font-family: "Dream Font", serif;
}
html halo-contact-form-auto-loader,
html #live2d-plugin,
html #live2d-toggle {
display: none;
}
html body {
width: 100%;
height: 100%;
overflow: hidden;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
position: absolute;
}
@media (max-width: 767px) {
html body .content {
max-width: 90% !important;
min-width: auto !important;
}
html body .content .others-end {
-webkit-box-pack: center !important;
-ms-flex-pack: center !important;
justify-content: center !important;
}
}
html body .content {
max-width: 500px;
min-width: 360px;
margin-bottom: 10%;
}
html body .content-title {
padding: 24px;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
}
html body .content-title img {
height: 3rem;
min-width: 3rem;
width: auto;
}
html body .content-title span {
font-size: 1.5rem;
margin-left: 10px;
font-weight: bold;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
html body .content .others {
padding: 24px;
border-radius: 15px;
border: var(--theme) solid 1px;
background-color: var(--background);
}
html body .content .others-tip {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
padding: 20px;
background-color: var(--theme);
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
border-radius: 10px;
}
html body .content .others-tip img {
height: 2rem;
width: 2rem;
}
html body .content .others-tip span {
margin-left: 10px;
color: #fafafa;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
}
html body .content .others-topic {
margin-top: 20px;
word-break: break-all;
}
html body .content .others-topic span {
color: var(--theme);
}
html body .content .others-end {
-webkit-box-pack: end;
-ms-flex-pack: end;
justify-content: flex-end;
margin-top: 20px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
html body .content .others-end a {
border-radius: 2rem;
width: 4rem;
padding: 5px;
text-align: center;
color: var(--theme);
border: var(--theme) solid 1px;
text-decoration: none;
}

File diff suppressed because one or more lines are too long

View File

@ -1 +1,136 @@
@charset "utf-8";html{--theme:#50bfff;--main:#505050;--title:#444;--background:rgba(255, 255, 255, 0.94);--background-hover:#fff;--style-a:#fff;--light-a:#ffffff;--light-b:#ebeef5;--light-c:#dcdcdc;--light-d:#c0c4cc;--light-x:#d6d6d6;--light-y:#1f1f1f;--light-z:#ffffff;--dark-a:#4a4a4a;--dark-b:#909399;--dark-c:#333;--dark-d:#9a9a9a;--dark-e:#7a7a7a;--color-a:#409eff;--bg-a:rgba(242, 246, 252, 0.8);--bg-b:#f2f6fc;--bg-c:#f5f5f5;--bg-d:rgba(255, 255, 255, 0.8);--bg-e:var(--theme);--bg-f:#f7f7f7;--bg-g:#e8f3ff;--bg-h:rgba(237, 244, 253, 0.75);--bg-i:#50bfff;--bg-j:rgba(243, 244, 245, 0.25);--bg-k:rgba(250, 250, 250, 0.8);--bg-l:rgba(243, 243, 243, 0.8);--bg-z:rgba(230, 240, 250, 0.75);--radius-wrap:8px;--radius-inner:4px;--radius-img:5px;--box-shadow:0 0px 10px -5px #949494;--cursor-pointer:pointer;--cursor-default:default;--halo-search-widget-base-font-size:1rem!important;--halo-search-widget-base-font-family:"Dream Font"!important;--halo-comment-widget-base-color:var(--light-y)!important;--halo-comment-widget-base-font-size:1rem!important;--halo-comment-widget-base-font-family:"Dream Font"!important;--halo-comment-widget-component-form-input-border-color-focus:var(--theme)!important;--halo-comment-widget-component-form-button-login-border-color:var(--light-c)!important;--halo-comment-widget-component-form-button-submit-bg-color:var(--theme)!important;--halo-comment-widget-component-form-button-submit-border-color:var(--theme)!important;--halo-comment-widget-component-form-button-submit-border-color-hover:var(--theme)!important;--halo-contact-form-font-family:"Dream Font"!important;--halo-contact-form-font-size:1rem!important;--halo-contact-form-width-submit:100%!important;--halo-contact-form-color-primary:var(--theme)!important;--halo-contact-form-color-label:var(--light-y)!important;--halo-contact-form-color-input:var(--light-y)!important;--halo-contact-form-color-danger:#ff5656!important}html.night{--theme:#5d93db;--main:#b0b0b0;--title:#c4c4c4;--background:rgba(40, 44, 52, 0.6);--background-hover:rgba(40, 44, 52, 0.8);--style-a:#080c28;--light-a:#232323;--light-b:#414243;--light-c:#303030;--light-d:#666;--light-x:#6e6e6e;--light-y:#fafafa;--light-z:#c2c2c2;--dark-a:#888;--dark-b:#777;--dark-c:silver;--dark-d:#aaa;--dark-e:#c0c0c0;--color-a:#cbba7d;--bg-a:rgba(65, 66, 67, 0.8);--bg-b:#303030;--bg-c:#373d48;--bg-d:rgba(40, 44, 52, 0.8);--bg-e:#434a56;--bg-f:#080c28;--bg-g:rgba(210, 210, 210, 0.2);--bg-h:rgba(65, 68, 74, 0.6);--bg-i:#276b92;--bg-j:rgba(36, 36, 36, 0.15);--bg-k:rgba(30, 33, 41, 0.8);--bg-l:rgba(63, 65, 75, 0.8);--bg-z:rgba(65, 68, 74, 0.6);--box-shadow:1px 1px 3px 1px #1b1b1b}html.night body::before{-webkit-filter:brightness(.3);filter:brightness(.3)}html.night .logo-img{display:none}html.night .logo-img-dark{display:inline-block}html.night .aplayer-pic,html.night .brightness,html.night .cover-image,html.night .small-image,html.night .thumbnail-image,html.night .waifu,html.night comment-widget,html.night iframe,html.night img,html.night svg,html.night video{-webkit-filter:brightness(.8);filter:brightness(.8)}html.night .canvas_effects.night{display:block}html.night .canvas_effects.day{display:none}html.night .main-content figure{color:var(--main);background:var(--bg-k)}html.night .main-content figure pre code{color:var(--color-a);background:0 0} @charset "utf-8";
/* CSS Document */
html {
--theme: #50bfff;
--main: #505050;
--title: #444;
--background: rgba(255, 255, 255, 0.94);
--background-hover: #fff;
--style-a: #fff;
--light-a: #ffffff;
--light-b: #ebeef5;
--light-c: #dcdcdc;
--light-d: #c0c4cc;
--light-x: #d6d6d6;
--light-y: #1f1f1f;
--light-z: #ffffff;
--dark-a: #4a4a4a;
--dark-b: #909399;
--dark-c: #333;
--dark-d: #9a9a9a;
--dark-e: #7a7a7a;
--color-a: #409eff;
--bg-a: rgba(242, 246, 252, 0.8);
--bg-b: #f2f6fc;
--bg-c: #f5f5f5;
--bg-d: rgba(255, 255, 255, 0.8);
--bg-e: var(--theme);
--bg-f: #f7f7f7;
--bg-g: #e8f3ff;
--bg-h: rgba(237, 244, 253, 0.75);
--bg-i: #50bfff;
--bg-j: rgba(243, 244, 245, 0.25);
--bg-k: rgba(250, 250, 250, 0.8);
--bg-l: rgba(243, 243, 243, 0.8);
--bg-z: rgba(230, 240, 250, 0.75);
--radius-wrap: 8px;
--radius-inner: 4px;
--radius-img: 5px;
--box-shadow: 0 0px 10px -5px #949494;
--cursor-pointer: pointer;
--cursor-default: default;
/*插件配置*/
/*搜索組件*/
--halo-search-widget-base-font-size: 1rem !important;
--halo-search-widget-base-font-family: "Dream Font" !important;
/*评论组件https://github.com/halo-dev/plugin-comment-widget*/
--halo-comment-widget-base-color: var(--light-y) !important;
--halo-comment-widget-base-font-size: 1rem !important;
--halo-comment-widget-base-font-family: "Dream Font" !important;
--halo-comment-widget-component-form-input-border-color-focus: var(--theme) !important;
--halo-comment-widget-component-form-button-login-border-color: var(--light-c) !important;
--halo-comment-widget-component-form-button-submit-bg-color: var(--theme) !important;
--halo-comment-widget-component-form-button-submit-border-color: var(--theme) !important;
--halo-comment-widget-component-form-button-submit-border-color-hover: var(--theme) !important;
/*联系表单https://app-docs.halo.run/docs/plugin-contact-form/development/custom-styles*/
--halo-contact-form-font-family: "Dream Font" !important;
--halo-contact-form-font-size: 1rem !important;
--halo-contact-form-width-submit: 100% !important;
--halo-contact-form-color-primary: var(--theme) !important;
--halo-contact-form-color-label: var(--light-y) !important;
--halo-contact-form-color-input: var(--light-y) !important;
--halo-contact-form-color-danger: #ff5656 !important;
}
html.night {
--theme: #5d93db;
--main: #b0b0b0;
--title: #c4c4c4;
--background: rgba(40, 44, 52, 0.6);
--background-hover: rgba(40, 44, 52, 0.8);
--style-a: #080c28;
--light-a: #232323;
--light-b: #414243;
--light-c: #303030;
--light-d: #666;
--light-x: #6e6e6e;
--light-y: #fafafa;
--light-z: #c2c2c2;
--dark-a: #888;
--dark-b: #777;
--dark-c: silver;
--dark-d: #aaa;
--dark-e: #c0c0c0;
--color-a: #cbba7d;
--bg-a: rgba(65, 66, 67, 0.8);
--bg-b: #303030;
--bg-c: #373d48;
--bg-d: rgba(40, 44, 52, 0.8);
--bg-e: #434a56;
--bg-f: #080c28;
--bg-g: rgba(210, 210, 210, 0.2);
--bg-h: rgba(65, 68, 74, 0.6);
--bg-i: #276b92;
--bg-j: rgba(36, 36, 36, 0.15);
--bg-k: rgba(30, 33, 41, 0.8);
--bg-l: rgba(63, 65, 75, 0.8);
--bg-z: rgba(65, 68, 74, 0.6);
--box-shadow: 1px 1px 3px 1px #1b1b1b;
}
html.night body::before {
-webkit-filter: brightness(0.3);
filter: brightness(0.3);
}
html.night .logo-img {
display: none;
}
html.night .logo-img-dark {
display: inline-block;
}
html.night .waifu,
html.night iframe,
html.night img,
html.night video,
html.night svg,
html.night .thumbnail-image,
html.night .cover-image,
html.night .small-image,
html.night .aplayer-pic,
html.night .brightness,
html.night comment-widget {
-webkit-filter: brightness(0.8);
filter: brightness(0.8);
}
html.night .canvas_effects.night {
display: block;
}
html.night .canvas_effects.day {
display: none;
}
html.night .main-content figure {
color: var(--main);
background: var(--bg-k);
}
html.night .main-content figure pre code {
color: var(--color-a);
background: 0 0;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
(()=>{class e{constructor({origin:t,speed:i,color:e,angle:n,context:s}){this.origin=t,this.position={...this.origin},this.color=e,this.speed=i,this.angle=n,this.context=s,this.renderCount=0}draw(){this.context.fillStyle=this.color,this.context.beginPath(),this.context.arc(this.position.x,this.position.y,2,0,2*Math.PI),this.context.fill()}move(){this.position.x=Math.sin(this.angle)*this.speed+this.position.x,this.position.y=Math.cos(this.angle)*this.speed+this.position.y+.3*this.renderCount,this.renderCount++}}class i{constructor({origin:t,context:i,circleCount:e=10,area:n}){this.origin=t,this.context=i,this.circleCount=e,this.area=n,this.stop=!1,this.circles=[]}randomArray(t){var i=t.length;return t[Math.floor(i*Math.random())]}randomColor(){var t=["8","9","A","B","C","D","E","F"];return"#"+this.randomArray(t)+this.randomArray(t)+this.randomArray(t)+this.randomArray(t)+this.randomArray(t)+this.randomArray(t)}randomRange(t,i){return(i-t)*Math.random()+t}init(){for(let t=0;t<this.circleCount;t++){var i=new e({context:this.context,origin:this.origin,color:this.randomColor(),angle:this.randomRange(Math.PI-1,Math.PI+1),speed:this.randomRange(1,6)});this.circles.push(i)}}move(){this.circles.forEach((t,i)=>{if(t.position.x>this.area.width||t.position.y>this.area.height)return this.circles.splice(i,1);t.move()}),0==this.circles.length&&(this.stop=!0)}draw(){this.circles.forEach(t=>t.draw())}}(new class{constructor(){this.computerCanvas=document.createElement("canvas"),this.renderCanvas=document.createElement("canvas"),this.computerContext=this.computerCanvas.getContext("2d"),this.renderContext=this.renderCanvas.getContext("2d"),this.globalWidth=window.innerWidth,this.globalHeight=window.innerHeight,this.booms=[],this.running=!1}handleMouseDown(t){t=new i({origin:{x:t.clientX,y:t.clientY},context:this.computerContext,area:{width:this.globalWidth,height:this.globalHeight}});t.init(),this.booms.push(t),this.running||this.run()}handlePageHide(){this.booms=[],this.running=!1}init(){var t=this.renderCanvas.style;t.position="fixed",t.top=t.left=0,t.zIndex="999999999999999999999999999999999999999999",t.pointerEvents="none",t.width=this.renderCanvas.width=this.computerCanvas.width=this.globalWidth,t.height=this.renderCanvas.height=this.computerCanvas.height=this.globalHeight,document.body.append(this.renderCanvas),window.addEventListener("mousedown",this.handleMouseDown.bind(this)),window.addEventListener("pagehide",this.handlePageHide.bind(this))}run(){if(this.running=!0,0==this.booms.length)return this.running=!1;requestAnimationFrame(this.run.bind(this)),this.computerContext.clearRect(0,0,this.globalWidth,this.globalHeight),this.renderContext.clearRect(0,0,this.globalWidth,this.globalHeight),this.booms.forEach((t,i)=>{if(t.stop)return this.booms.splice(i,1);t.move(),t.draw()}),this.renderContext.drawImage(this.computerCanvas,0,0,this.globalWidth,this.globalHeight)}}).init()})(); (()=>{var __webpack_modules__={"./src/js/cursor/click/firework.js":()=>{eval("\ufeff/**************** 光标渲染 *******************/\r\n\r\nclass Circle {\r\n constructor({ origin, speed, color, angle, context }) {\r\n this.origin = origin\r\n this.position = { ...this.origin }\r\n this.color = color\r\n this.speed = speed\r\n this.angle = angle\r\n this.context = context\r\n this.renderCount = 0\r\n }\r\n\r\n draw() {\r\n this.context.fillStyle = this.color\r\n this.context.beginPath()\r\n this.context.arc(this.position.x, this.position.y, 2, 0, Math.PI * 2)\r\n this.context.fill()\r\n }\r\n\r\n move() {\r\n this.position.x = (Math.sin(this.angle) * this.speed) + this.position.x\r\n this.position.y = (Math.cos(this.angle) * this.speed) + this.position.y + (this.renderCount * 0.3)\r\n this.renderCount++\r\n }\r\n}\r\n\r\nclass Boom {\r\n constructor({ origin, context, circleCount = 10, area }) {\r\n this.origin = origin\r\n this.context = context\r\n this.circleCount = circleCount\r\n this.area = area\r\n this.stop = false\r\n this.circles = []\r\n }\r\n\r\n randomArray(range) {\r\n const length = range.length\r\n const randomIndex = Math.floor(length * Math.random())\r\n return range[randomIndex]\r\n }\r\n\r\n randomColor() {\r\n const range = ['8', '9', 'A', 'B', 'C', 'D', 'E', 'F']\r\n return '#' + this.randomArray(range) + this.randomArray(range) + this.randomArray(range) + this.randomArray(range) + this.randomArray(range) + this.randomArray(range)\r\n }\r\n\r\n randomRange(start, end) {\r\n return (end - start) * Math.random() + start\r\n }\r\n\r\n init() {\r\n for (let i = 0; i < this.circleCount; i++) {\r\n const circle = new Circle({\r\n context: this.context,\r\n origin: this.origin,\r\n color: this.randomColor(),\r\n angle: this.randomRange(Math.PI - 1, Math.PI + 1),\r\n speed: this.randomRange(1, 6)\r\n })\r\n this.circles.push(circle)\r\n }\r\n }\r\n\r\n move() {\r\n this.circles.forEach((circle, index) => {\r\n if (circle.position.x > this.area.width || circle.position.y > this.area.height) {\r\n return this.circles.splice(index, 1)\r\n }\r\n circle.move()\r\n })\r\n if (this.circles.length == 0) {\r\n this.stop = true\r\n }\r\n }\r\n\r\n draw() {\r\n this.circles.forEach(circle => circle.draw())\r\n }\r\n}\r\n\r\nclass CursorSpecialEffects {\r\n constructor() {\r\n this.computerCanvas = document.createElement('canvas')\r\n this.renderCanvas = document.createElement('canvas')\r\n\r\n this.computerContext = this.computerCanvas.getContext('2d')\r\n this.renderContext = this.renderCanvas.getContext('2d')\r\n\r\n this.globalWidth = window.innerWidth\r\n this.globalHeight = window.innerHeight\r\n\r\n this.booms = []\r\n this.running = false\r\n }\r\n\r\n handleMouseDown(e) {\r\n const boom = new Boom({\r\n origin: { x: e.clientX, y: e.clientY },\r\n context: this.computerContext,\r\n area: {\r\n width: this.globalWidth,\r\n height: this.globalHeight\r\n }\r\n })\r\n boom.init()\r\n this.booms.push(boom)\r\n this.running || this.run()\r\n }\r\n\r\n handlePageHide() {\r\n this.booms = []\r\n this.running = false\r\n }\r\n\r\n init() {\r\n const style = this.renderCanvas.style\r\n style.position = 'fixed'\r\n style.top = style.left = 0\r\n style.zIndex = '999999999999999999999999999999999999999999'\r\n style.pointerEvents = 'none'\r\n\r\n style.width = this.renderCanvas.width = this.computerCanvas.width = this.globalWidth\r\n style.height = this.renderCanvas.height = this.computerCanvas.height = this.globalHeight\r\n\r\n document.body.append(this.renderCanvas)\r\n\r\n window.addEventListener('mousedown', this.handleMouseDown.bind(this))\r\n window.addEventListener('pagehide', this.handlePageHide.bind(this))\r\n }\r\n\r\n run() {\r\n this.running = true\r\n if (this.booms.length == 0) {\r\n return this.running = false\r\n }\r\n\r\n requestAnimationFrame(this.run.bind(this))\r\n\r\n this.computerContext.clearRect(0, 0, this.globalWidth, this.globalHeight)\r\n this.renderContext.clearRect(0, 0, this.globalWidth, this.globalHeight)\r\n\r\n this.booms.forEach((boom, index) => {\r\n if (boom.stop) {\r\n return this.booms.splice(index, 1)\r\n }\r\n boom.move()\r\n boom.draw()\r\n })\r\n this.renderContext.drawImage(this.computerCanvas, 0, 0, this.globalWidth, this.globalHeight)\r\n }\r\n}\r\nconst cursorSpecialEffects = new CursorSpecialEffects()\r\ncursorSpecialEffects.init()\n\n//# sourceURL=webpack://halo-theme-dream2.0-plus/./src/js/cursor/click/firework.js?")}},__webpack_exports__={};__webpack_modules__["./src/js/cursor/click/firework.js"]()})();

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
!function(e,a){var r,o=[],t=(e.requestAnimationFrame=e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(e){setTimeout(e,1e3/60)},".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;}"),i=a.createElement("style");i.type="text/css";try{i.appendChild(a.createTextNode(t))}catch(e){i.styleSheet.cssText=t}a.getElementsByTagName("head")[0].appendChild(i),r="function"==typeof e.onclick&&e.onclick,e.onclick=function(e){var t;r&&r(),e=e,(t=a.createElement("div")).className="heart",o.push({el:t,x:e.clientX-5,y:e.clientY-5,scale:1,alpha:1,color:"rgb("+~~(255*Math.random())+","+~~(255*Math.random())+","+~~(255*Math.random())+")"}),a.body.appendChild(t)},function e(){for(var t=0;t<o.length;t++)o[t].alpha<=0?(a.body.removeChild(o[t].el),o.splice(t,1)):(o[t].y--,o[t].scale+=.004,o[t].alpha-=.013,o[t].el.style.cssText="left:"+o[t].x+"px;top:"+o[t].y+"px;opacity:"+o[t].alpha+";transform:scale("+o[t].scale+","+o[t].scale+") rotate(45deg);background:"+o[t].color+";z-index:99999");requestAnimationFrame(e)}()}(window,document); (()=>{var __webpack_modules__={"./src/js/cursor/click/heart.js":()=>{eval("!function (e, t, a) {\r\n function r() {\r\n for (var e = 0; e < s.length; e++) s[e].alpha <= 0 ? (t.body.removeChild(s[e].el), s.splice(e, 1)) : (s[\r\n e].y--, s[e].scale += .004, s[e].alpha -= .013, s[e].el.style.cssText = 'left:' + s[e].x +\r\n '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')\r\n requestAnimationFrame(r)\r\n }\r\n\r\n function n() {\r\n var t = 'function' == typeof e.onclick && e.onclick\r\n e.onclick = function (e) {\r\n t && t(), o(e)\r\n }\r\n }\r\n\r\n function o(e) {\r\n var a = t.createElement('div')\r\n a.className = 'heart', s.push({\r\n el: a,\r\n x: e.clientX - 5,\r\n y: e.clientY - 5,\r\n scale: 1,\r\n alpha: 1,\r\n color: c()\r\n }), t.body.appendChild(a)\r\n }\r\n\r\n function i(e) {\r\n var a = t.createElement('style')\r\n a.type = 'text/css'\r\n try {\r\n a.appendChild(t.createTextNode(e))\r\n } catch (t) {\r\n a.styleSheet.cssText = e\r\n }\r\n t.getElementsByTagName('head')[0].appendChild(a)\r\n }\r\n\r\n function c() {\r\n return 'rgb(' + ~~(255 * Math.random()) + ',' + ~~(255 * Math.random()) + ',' + ~~(255 * Math\r\n .random()) + ')'\r\n }\r\n\r\n var s = []\r\n e.requestAnimationFrame = e.requestAnimationFrame || e.webkitRequestAnimationFrame || e\r\n .mozRequestAnimationFrame || e.oRequestAnimationFrame || e.msRequestAnimationFrame || function (e) {\r\n setTimeout(e, 1e3 / 60)\r\n }, i(\r\n '.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;}'\r\n ), n(), r()\r\n}(window, document)\r\n\n\n//# sourceURL=webpack://halo-theme-dream2.0-plus/./src/js/cursor/click/heart.js?")}},__webpack_exports__={};__webpack_modules__["./src/js/cursor/click/heart.js"]()})();

View File

@ -1 +1 @@
(()=>{var a=0;jQuery(document).ready(function(n){n("body").click(function(o){var t=["富强","民主","文明","和谐","自由","平等","公正","法治","爱国","敬业","诚信","友善"],e=n("<span/>").text(t[a]),t=(a=(a+1)%t.length,o.pageX),o=o.pageY;o-=window.pageYOffset||document.body.scrollTop||document.documentElement.scrollTop,e.css({"z-index":999,top:o-20,left:t,position:"fixed","font-weight":"bold",color:"rgb("+~~(255*Math.random())+","+~~(255*Math.random())+","+~~(255*Math.random())+")"}),n("body").append(e),e.animate({top:o-180,opacity:0},1500,function(){e.remove()})})})})(); (()=>{var __webpack_modules__={"./src/js/cursor/click/prosperous.js":()=>{eval("var a_idx = 0\r\njQuery(document).ready(function ($) {\r\n $('body').click(function (e) {\r\n var a = ['富强', '民主', '文明', '和谐', '自由', '平等', '公正', '法治', '爱国', '敬业', '诚信', '友善']\r\n var $i = $('<span/>').text(a[a_idx])\r\n a_idx = (a_idx + 1) % a.length\r\n var x = e.pageX, y = e.pageY\r\n let scrolly = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop\r\n y = y - scrolly\r\n $i.css({\r\n 'z-index': 999,\r\n 'top': y - 20,\r\n 'left': x,\r\n 'position': 'fixed',\r\n 'font-weight': 'bold',\r\n 'color': /*\"#ff6651\" 随机颜色写法:*/ 'rgb(' + ~~(255 * Math.random()) + ',' + ~~(255 * Math.random()) + ',' + ~~(255 * Math.random()) + ')'\r\n })\r\n $('body').append($i)\r\n $i.animate({'top': y - 180, 'opacity': 0}, 1500, function () {\r\n $i.remove()\r\n })\r\n })\r\n})\n\n//# sourceURL=webpack://halo-theme-dream2.0-plus/./src/js/cursor/click/prosperous.js?")}},__webpack_exports__={};__webpack_modules__["./src/js/cursor/click/prosperous.js"]()})();

View File

@ -1 +1 @@
!function(){let i,e,t=document.body,n=window.innerWidth,o=window.innerHeight,s={x:n/2,y:n/2},h=[],a=[];function l(i){if(0<i.touches.length)for(let t=0;t<i.touches.length;t++)c(i.touches[t].clientX,i.touches[t].clientY,a[Math.floor(Math.random()*a.length)])}function c(t,i,e){h.push(new d(t,i,e))}function d(t,i,e){var n=Math.floor(60*Math.random()+60);this.initialLifeSpan=n,this.lifeSpan=n,this.velocity={x:(Math.random()<.5?-1:1)*(Math.random()/10),y:-1*Math.random()-.4},this.position={x:t,y:i},this.canv=e,this.baseDimension=4,this.update=function(t){this.position.x+=this.velocity.x,this.position.y+=this.velocity.y,this.velocity.x+=2*(Math.random()<.5?-1:1)/75,this.velocity.y-=Math.random()/600,this.lifeSpan--;var i=.2+(this.initialLifeSpan-this.lifeSpan)/this.initialLifeSpan;t.fillStyle="#e6f1f7",t.strokeStyle="#3a92c5",t.beginPath(),t.arc(this.position.x-this.baseDimension/2*i,this.position.y-this.baseDimension/2,this.baseDimension*i,0,2*Math.PI),t.stroke(),t.fill(),t.closePath()}}i=document.createElement("canvas"),e=i.getContext("2d"),i.style.top="0px",i.style.left="0px",i.style.pointerEvents="none",i.style.position="fixed",document.body.appendChild(i),i.width=n,i.height=o,t.addEventListener("mousemove",function(t){s.x=t.clientX,s.y=t.clientY,c(s.x,s.y)}),t.addEventListener("touchmove",l,{passive:!0}),t.addEventListener("touchstart",l,{passive:!0}),window.addEventListener("resize",function(t){n=window.innerWidth,o=window.innerHeight,i.width=n,i.height=o}),function t(){e.clearRect(0,0,n,o);for(let t=0;t<h.length;t++)h[t].update(e);for(let t=h.length-1;0<=t;t--)h[t].lifeSpan<0&&h.splice(t,1);requestAnimationFrame(t)}()}(); (()=>{var __webpack_modules__={"./src/js/cursor/move/bubbleCursor.js":()=>{eval("function bubbleCursor(options) {\r\n let hasWrapperEl = options && options.element\r\n let element = hasWrapperEl || document.body\r\n\r\n let width = window.innerWidth\r\n let height = window.innerHeight\r\n let cursor = { x: width / 2, y: width / 2 }\r\n let particles = []\r\n let canvas, context\r\n\r\n let canvImages = []\r\n\r\n function init(wrapperEl) {\r\n canvas = document.createElement('canvas')\r\n context = canvas.getContext('2d')\r\n\r\n canvas.style.top = '0px'\r\n canvas.style.left = '0px'\r\n canvas.style.pointerEvents = 'none'\r\n\r\n if (hasWrapperEl) {\r\n canvas.style.position = 'absolute'\r\n element.appendChild(canvas)\r\n canvas.width = element.clientWidth\r\n canvas.height = element.clientHeight\r\n } else {\r\n canvas.style.position = 'fixed'\r\n document.body.appendChild(canvas)\r\n canvas.width = width\r\n canvas.height = height\r\n }\r\n\r\n bindEvents()\r\n loop()\r\n }\r\n\r\n // Bind events that are needed\r\n function bindEvents() {\r\n element.addEventListener('mousemove', onMouseMove)\r\n element.addEventListener('touchmove', onTouchMove, { passive: true })\r\n element.addEventListener('touchstart', onTouchMove, { passive: true })\r\n window.addEventListener('resize', onWindowResize)\r\n }\r\n\r\n function onWindowResize(e) {\r\n width = window.innerWidth\r\n height = window.innerHeight\r\n\r\n if (hasWrapperEl) {\r\n canvas.width = element.clientWidth\r\n canvas.height = element.clientHeight\r\n } else {\r\n canvas.width = width\r\n canvas.height = height\r\n }\r\n }\r\n\r\n function onTouchMove(e) {\r\n if (e.touches.length > 0) {\r\n for (let i = 0; i < e.touches.length; i++) {\r\n addParticle(\r\n e.touches[i].clientX,\r\n e.touches[i].clientY,\r\n canvImages[Math.floor(Math.random() * canvImages.length)]\r\n )\r\n }\r\n }\r\n }\r\n\r\n function onMouseMove(e) {\r\n if (hasWrapperEl) {\r\n const boundingRect = element.getBoundingClientRect()\r\n cursor.x = e.clientX - boundingRect.left\r\n cursor.y = e.clientY - boundingRect.top\r\n } else {\r\n cursor.x = e.clientX\r\n cursor.y = e.clientY\r\n }\r\n\r\n addParticle(cursor.x, cursor.y)\r\n }\r\n\r\n function addParticle(x, y, img) {\r\n particles.push(new Particle(x, y, img))\r\n }\r\n\r\n function updateParticles() {\r\n context.clearRect(0, 0, width, height)\r\n\r\n // Update\r\n for (let i = 0; i < particles.length; i++) {\r\n particles[i].update(context)\r\n }\r\n\r\n // Remove dead particles\r\n for (let i = particles.length - 1; i >= 0; i--) {\r\n if (particles[i].lifeSpan < 0) {\r\n particles.splice(i, 1)\r\n }\r\n }\r\n }\r\n\r\n function loop() {\r\n updateParticles()\r\n requestAnimationFrame(loop)\r\n }\r\n\r\n function Particle(x, y, canvasItem) {\r\n const lifeSpan = Math.floor(Math.random() * 60 + 60)\r\n this.initialLifeSpan = lifeSpan //\r\n this.lifeSpan = lifeSpan //ms\r\n this.velocity = {\r\n x: (Math.random() < 0.5 ? -1 : 1) * (Math.random() / 10),\r\n y: -0.4 + Math.random() * -1,\r\n }\r\n this.position = { x: x, y: y }\r\n this.canv = canvasItem\r\n\r\n this.baseDimension = 4\r\n\r\n this.update = function(context) {\r\n this.position.x += this.velocity.x\r\n this.position.y += this.velocity.y\r\n this.velocity.x += ((Math.random() < 0.5 ? -1 : 1) * 2) / 75\r\n this.velocity.y -= Math.random() / 600\r\n this.lifeSpan--\r\n\r\n const scale =\r\n 0.2 + (this.initialLifeSpan - this.lifeSpan) / this.initialLifeSpan\r\n\r\n context.fillStyle = '#e6f1f7'\r\n context.strokeStyle = '#3a92c5'\r\n context.beginPath()\r\n context.arc(\r\n this.position.x - (this.baseDimension / 2) * scale,\r\n this.position.y - this.baseDimension / 2,\r\n this.baseDimension * scale,\r\n 0,\r\n 2 * Math.PI\r\n )\r\n\r\n context.stroke()\r\n context.fill()\r\n\r\n context.closePath()\r\n }\r\n }\r\n\r\n init()\r\n}\r\nnew bubbleCursor()\n\n//# sourceURL=webpack://halo-theme-dream2.0-plus/./src/js/cursor/move/bubbleCursor.js?")}},__webpack_exports__={};__webpack_modules__["./src/js/cursor/move/bubbleCursor.js"]()})();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
!function(){let t,n,i=document.body,e=window.innerWidth,o=window.innerHeight,s={x:e/2,y:e/2},h=new function(i,t,n,e){this.position={x:i,y:t},this.width=10,this.lag=10,this.moveTowards=function(i,t,n){this.position.x+=(i-this.position.x)/this.lag,this.position.y+=(t-this.position.y)/this.lag,n.fillStyle="rgba(50, 50, 50, 0.65)",n.beginPath(),n.arc(this.position.x,this.position.y,this.width,0,2*Math.PI),n.fill(),n.closePath()}}(e/2,o/2);t=document.createElement("canvas"),n=t.getContext("2d"),t.style.top="0px",t.style.left="0px",t.style.pointerEvents="none",t.style.position="fixed",document.body.appendChild(t),t.width=e,t.height=o,i.addEventListener("mousemove",function(i){s.x=i.clientX,s.y=i.clientY}),window.addEventListener("resize",function(i){e=window.innerWidth,o=window.innerHeight,t.width=e,t.height=o}),function i(){n.clearRect(0,0,e,o),h.moveTowards(s.x,s.y,n),requestAnimationFrame(i)}()}(); (()=>{var __webpack_modules__={"./src/js/cursor/move/followingDotCursor.js":()=>{eval("function followingDotCursor(options) {\r\n let hasWrapperEl = options && options.element\r\n let element = hasWrapperEl || document.body\r\n\r\n let width = window.innerWidth\r\n let height = window.innerHeight\r\n let cursor = { x: width / 2, y: width / 2 }\r\n let dot = new Dot(width / 2, height / 2, 10, 10)\r\n let canvas, context\r\n\r\n function init() {\r\n canvas = document.createElement('canvas')\r\n context = canvas.getContext('2d')\r\n canvas.style.top = '0px'\r\n canvas.style.left = '0px'\r\n canvas.style.pointerEvents = 'none'\r\n\r\n if (hasWrapperEl) {\r\n canvas.style.position = 'absolute'\r\n element.appendChild(canvas)\r\n canvas.width = element.clientWidth\r\n canvas.height = element.clientHeight\r\n } else {\r\n canvas.style.position = 'fixed'\r\n document.body.appendChild(canvas)\r\n canvas.width = width\r\n canvas.height = height\r\n }\r\n\r\n bindEvents()\r\n loop()\r\n }\r\n\r\n // Bind events that are needed\r\n function bindEvents() {\r\n element.addEventListener('mousemove', onMouseMove)\r\n window.addEventListener('resize', onWindowResize)\r\n }\r\n\r\n function onWindowResize(e) {\r\n width = window.innerWidth\r\n height = window.innerHeight\r\n\r\n if (hasWrapperEl) {\r\n canvas.width = element.clientWidth\r\n canvas.height = element.clientHeight\r\n } else {\r\n canvas.width = width\r\n canvas.height = height\r\n }\r\n }\r\n\r\n function onMouseMove(e) {\r\n if (hasWrapperEl) {\r\n const boundingRect = element.getBoundingClientRect()\r\n cursor.x = e.clientX - boundingRect.left\r\n cursor.y = e.clientY - boundingRect.top\r\n } else {\r\n cursor.x = e.clientX\r\n cursor.y = e.clientY\r\n }\r\n }\r\n\r\n function updateDot() {\r\n context.clearRect(0, 0, width, height)\r\n\r\n dot.moveTowards(cursor.x, cursor.y, context)\r\n }\r\n\r\n function loop() {\r\n updateDot()\r\n requestAnimationFrame(loop)\r\n }\r\n\r\n function Dot(x, y, width, lag) {\r\n this.position = { x: x, y: y }\r\n this.width = width\r\n this.lag = lag\r\n\r\n this.moveTowards = function (x, y, context) {\r\n this.position.x += (x - this.position.x) / this.lag\r\n this.position.y += (y - this.position.y) / this.lag\r\n\r\n context.fillStyle = 'rgba(50, 50, 50, 0.65)'\r\n context.beginPath()\r\n context.arc(this.position.x, this.position.y, this.width, 0, 2 * Math.PI)\r\n context.fill()\r\n context.closePath()\r\n }\r\n }\r\n\r\n init()\r\n}\r\nnew followingDotCursor()\n\n//# sourceURL=webpack://halo-theme-dream2.0-plus/./src/js/cursor/move/followingDotCursor.js?")}},__webpack_exports__={};__webpack_modules__["./src/js/cursor/move/followingDotCursor.js"]()})();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
!function(){var n={},s=n.settings={minimum:.08,easing:"linear",speed:400,trickle:!0,trickleSpeed:200,parent:"body",template:'<div class="bar"></div>'};function i(t,e,r){return t<e?e:r<t?r:t}n.configure=function(t){var e,r;for(e in t)void 0!==(r=t[e])&&t.hasOwnProperty(e)&&(s[e]=r);return this},n.status=null,n.start=function(){n.status||n.set(0),$("#dprogress").show();var t=function(){setTimeout(function(){n.status&&1!==n.status&&(n.trickle(),t())},s.trickleSpeed)};return s.trickle&&t(),this},n.trickle=function(){return n.inc()},n.inc=function(t){var e=n.status;return e?1<=e?void 0:(e=i(e+(t="number"!=typeof t?0<=e&&e<.2?.1:.2<=e&&e<.5?.04:.5<=e&&e<.8?.02:.8<=e&&e<.98?.005:0:t),0,.98),n.set(e)):n.start()},n.set=function(t){n.status=i(t,s.minimum,1);var e,r=document.getElementById("dprogress");return r||((r=document.createElement("div")).id="dprogress",r.innerHTML=s.template,(e=$(r.querySelector(".bar"))).css("transition",`all ${s.speed}ms `+s.easing),"center"===DreamConfig.load_progress&&e.css("margin","auto"),$(s.parent).prepend(r)),r.querySelector(".bar").style.width=100*t+"%",this},n.isStarted=function(){return"number"==typeof n.status},n.done=function(){try{return n.inc(.3+.5*Math.random()).set(1),setTimeout(function(){$("#dprogress").hide(),n.status=void 0},s.speed),this}catch(t){return this}},n.isRendered=function(){return!!document.getElementById("dprogress")},window.DProgress=n}(); (()=>{var __webpack_modules__={"./src/js/dprogress.js":()=>{eval("(function() {\r\n var DProgress = {}\r\n\r\n var Settings = DProgress.settings = {\r\n minimum: 0.08, // 最小值\r\n easing: 'linear', // 动画规律\r\n speed: 400, // 动画速度\r\n trickle: true, // 开启自动增量\r\n trickleSpeed: 200, // 缓慢增量\r\n parent: 'body',\r\n template: '<div class=\"bar\"></div>'\r\n }\r\n\r\n /**\r\n * Updates configuration.\r\n *\r\n * DProgress.configure({\r\n * minimum: 0.1\r\n * });\r\n */\r\n DProgress.configure = function(options) {\r\n var key, value\r\n for (key in options) {\r\n value = options[key]\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value\r\n }\r\n\r\n return this\r\n }\r\n\r\n /**\r\n * 进度状态0-1\r\n */\r\n\r\n DProgress.status = null\r\n\r\n function clamp(n, min, max) {\r\n if (n < min) return min\r\n if (n > max) return max\r\n return n\r\n }\r\n\r\n /**\r\n * 开始进度条\r\n *\r\n * DProgress.start();\r\n *\r\n */\r\n DProgress.start = function() {\r\n if (!DProgress.status) DProgress.set(0)\r\n $('#dprogress').show()\r\n\r\n var work = function() {\r\n setTimeout(function() {\r\n if (!DProgress.status ||DProgress.status === 1) return\r\n DProgress.trickle()\r\n work()\r\n }, Settings.trickleSpeed)\r\n }\r\n\r\n if (Settings.trickle) work()\r\n\r\n return this\r\n }\r\n\r\n /**\r\n * 缓慢增量\r\n * @returns {undefined}\r\n */\r\n DProgress.trickle = function() {\r\n return DProgress.inc()\r\n }\r\n\r\n /**\r\n * 增量\r\n */\r\n DProgress.inc = function(amount) {\r\n var n = DProgress.status\r\n\r\n if (!n) {\r\n return DProgress.start()\r\n // eslint-disable-next-line no-empty\r\n } else if(n >= 1) {\r\n\r\n } else {\r\n if (typeof amount !== 'number') {\r\n if (n >= 0 && n < 0.2) { amount = 0.1 }\r\n else if (n >= 0.2 && n < 0.5) { amount = 0.04 }\r\n else if (n >= 0.5 && n < 0.8) { amount = 0.02 }\r\n else if (n >= 0.8 && n < 0.98) { amount = 0.005 }\r\n else { amount = 0 }\r\n }\r\n\r\n n = clamp(n + amount, 0, 0.98)\r\n return DProgress.set(n)\r\n }\r\n }\r\n\r\n /**\r\n * 设置进度状态 `0.0` to `1.0`.\r\n *\r\n * DProgress.set(0.4);\r\n * DProgress.set(1.0);\r\n */\r\n DProgress.set = function(n) {\r\n\r\n DProgress.status = clamp(n, Settings.minimum, 1)\r\n\r\n var progress = document.getElementById('dprogress')\r\n if (!progress) {\r\n progress = document.createElement('div')\r\n progress.id = 'dprogress'\r\n progress.innerHTML = Settings.template\r\n var bar = $(progress.querySelector('.bar'))\r\n bar.css('transition', `all ${Settings.speed}ms ${Settings.easing}`)\r\n if (DreamConfig.load_progress === 'center') {\r\n bar.css('margin', 'auto')\r\n }\r\n $(Settings.parent).prepend(progress)\r\n }\r\n progress.querySelector('.bar').style.width = `${n * 100}%`\r\n\r\n return this\r\n }\r\n\r\n /**\r\n * 进度条是否已经开始\r\n * @returns {boolean}\r\n */\r\n DProgress.isStarted = function() {\r\n return typeof DProgress.status === 'number'\r\n }\r\n\r\n /**\r\n * 完成进度条\r\n * @param force\r\n * @returns {DProgress|*}\r\n */\r\n DProgress.done = function() {\r\n try {\r\n DProgress.inc(0.3 + 0.5 * Math.random()).set(1)\r\n\r\n setTimeout(function() {\r\n $('#dprogress').hide()\r\n DProgress.status = undefined\r\n }, Settings.speed)\r\n return this\r\n } catch (e) {\r\n return this\r\n }\r\n }\r\n\r\n /**\r\n * 检查进度条是否显示\r\n */\r\n\r\n DProgress.isRendered = function() {\r\n return !!document.getElementById('dprogress')\r\n }\r\n\r\n\r\n window.DProgress = DProgress\r\n})()\n\n//# sourceURL=webpack://halo-theme-dream2.0-plus/./src/js/dprogress.js?")}},__webpack_exports__={};__webpack_modules__["./src/js/dprogress.js"]()})();

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
(()=>{var f;(f=jQuery).fn.circleMagic=function(e){let t,n,o,a,r=!0;const i=[],d=f.extend({color:"rgba(255,255,255,.5)",radius:10,density:.3,clearOffset:.2,mode:"all"},e);var c,e=this[0];function s(){const e=document.documentElement.classList.contains("night");if(("all"===d.mode||"day"===d.mode&&!e||"night"===d.mode&&e)&&r){a.clearRect(0,0,t,n);for(const e in i)i[e].draw()}requestAnimationFrame(s)}function l(){var e=this;function o(){e.pos.x=Math.random()*t,e.pos.y=n+100*Math.random(),e.alpha=.1+Math.random()*d.clearOffset,e.scale=.1+.3*Math.random(),e.speed=Math.random(),"random"===d.color?e.color="rgba("+Math.floor(255*Math.random())+", "+Math.floor(255*Math.random())+", "+Math.floor(255*Math.random())+", "+Math.random().toPrecision(2)+")":e.color=d.color}e.pos={},o(),this.draw=function(){e.alpha<=0&&o(),e.pos.y-=e.speed,e.alpha-=5e-4,a.beginPath(),a.arc(e.pos.x,e.pos.y,e.scale*d.radius,0,2*Math.PI,!1),a.fillStyle=e.color,a.fill(),a.closePath()}}t=window.innerWidth,n=window.innerHeight,(o=((c=document.createElement("canvas")).setAttribute("class","canvas_effects "+d.mode),e.prepend(c),c)).width=t,o.height=n,a=o.getContext("2d");for(let e=0;e<t*d.density;e++){var h=new l;i.push(h)}s(),window.addEventListener("scroll",function(){r=!(document.body.scrollTop>n)},!1),window.addEventListener("resize",function(){t=window.innerWidth,n=window.innerHeight,o.width=t,o.height=n},!1)},f("body").circleMagic({radius:35,density:.3,color:"rgba(255,255,255, .4)",clearOffset:.3,mode:DreamConfig.effects_circle_magic_mode})})(); (()=>{var __webpack_modules__={"./src/js/effects/circleMagic.js":()=>{eval("(function ($) {\r\n $.fn.circleMagic = function (options) {\r\n\r\n let width, height, canvas, ctx, animateHeader = true\r\n const circles = []\r\n\r\n const settings = $.extend({\r\n color: 'rgba(255,255,255,.5)',\r\n radius: 10,\r\n density: 0.3,\r\n clearOffset: 0.2,\r\n mode: 'all'\r\n }, options)\r\n\r\n // Main\r\n\r\n var container = this['0']\r\n initContainer()\r\n addListeners()\r\n\r\n function initContainer() {\r\n width = window.innerWidth\r\n height = window.innerHeight\r\n\r\n // create canvas element\r\n\r\n canvas = initCanvas()\r\n canvas.width = width\r\n canvas.height = height\r\n ctx = canvas.getContext('2d')\r\n\r\n // create circles\r\n for (let x = 0; x < width * settings.density; x++) {\r\n const c = new Circle()\r\n circles.push(c)\r\n }\r\n animate()\r\n }\r\n\r\n //Init canvas element\r\n function initCanvas() {\r\n const canvasElement = document.createElement('canvas')\r\n canvasElement.setAttribute('class', `canvas_effects ${settings.mode}`)\r\n container.prepend(canvasElement)\r\n return canvasElement\r\n }\r\n\r\n // Event handling\r\n function addListeners() {\r\n window.addEventListener('scroll', scrollCheck, false)\r\n window.addEventListener('resize', resize, false)\r\n }\r\n\r\n function scrollCheck() {\r\n if (document.body.scrollTop > height) {\r\n animateHeader = false\r\n }\r\n else {\r\n animateHeader = true\r\n }\r\n }\r\n\r\n function resize() {\r\n width = window.innerWidth\r\n height = window.innerHeight\r\n canvas.width = width\r\n canvas.height = height\r\n }\r\n\r\n function animate() {\r\n const isNight = document.documentElement.classList.contains('night')\r\n if (settings.mode === 'all' || (settings.mode === 'day' && !isNight) || (settings.mode === 'night' && isNight)) {\r\n if (animateHeader) {\r\n ctx.clearRect(0, 0, width, height)\r\n for (const i in circles) {\r\n circles[i].draw()\r\n }\r\n }\r\n }\r\n requestAnimationFrame(animate)\r\n }\r\n\r\n function randomColor() {\r\n var r = Math.floor(Math.random() * 255)\r\n var g = Math.floor(Math.random() * 255)\r\n var b = Math.floor(Math.random() * 255)\r\n var alpha = Math.random().toPrecision(2)\r\n return 'rgba(' + r + ', ' + g + ', ' + b + ', ' + alpha + ')'\r\n }\r\n\r\n // Canvas manipulation\r\n\r\n function Circle() {\r\n var that = this;\r\n\r\n // constructor\r\n (function () {\r\n that.pos = {}\r\n init()\r\n })()\r\n\r\n function init() {\r\n that.pos.x = Math.random() * width\r\n that.pos.y = height + Math.random() * 100\r\n that.alpha = 0.1 + Math.random() * settings.clearOffset\r\n that.scale = 0.1 + Math.random() * 0.3\r\n that.speed = Math.random()\r\n if (settings.color === 'random') {\r\n that.color = randomColor()\r\n }\r\n else {\r\n that.color = settings.color\r\n }\r\n }\r\n\r\n this.draw = function () {\r\n if (that.alpha <= 0) {\r\n init()\r\n }\r\n that.pos.y -= that.speed\r\n that.alpha -= 0.0005\r\n ctx.beginPath()\r\n ctx.arc(that.pos.x, that.pos.y, that.scale * settings.radius, 0, 2 * Math.PI, false)\r\n ctx.fillStyle = that.color\r\n ctx.fill()\r\n ctx.closePath()\r\n }\r\n }\r\n }\r\n $('body').circleMagic({\r\n radius: 35,\r\n density: 0.3,\r\n color: 'rgba(255,255,255, .4)',\r\n //color: 'random',\r\n clearOffset: 0.3,\r\n mode: DreamConfig.effects_circle_magic_mode\r\n })\r\n})(jQuery)\n\n//# sourceURL=webpack://halo-theme-dream2.0-plus/./src/js/effects/circleMagic.js?")}},__webpack_exports__={};__webpack_modules__["./src/js/effects/circleMagic.js"]()})();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
(()=>{let e=!1;const i={initEvent(){var n;e||((n=$("body")).on("click",".journal .comment",function(){$(this).parent().parent().siblings(".journal-comment").stop().slideToggle(200)}),n.on("click",".journal-content>.expand-done",function(){Utils.foldBlock($(this).parent())}),n.on("click",".journal-operation-item>.share",function(){var n=$(this).parents(".journal"),e="动态: "+n.find(".journal-date>em").text(),n=n.children(".journal-content").children(".main-content").text();DShare.sharePoster({image:DreamConfig.journals_share_image,title:e,description:220<n.length?n.substring(0,220)+"...":n})}),Utils.initLikeEvent(".journal .like","moments",n=>n.find("em")),e=!0)},initLike(){Utils.initLikeButton(".journal .like","moments")},foldJournals(){$(".journal .journal-content").each(function(){var n=$(this);this.scrollHeight>=DreamConfig.journals_fold_height?n.append('<div class="expand-done"><i class="ri-arrow-up-double-line"></i></div>'):n.removeClass("fold")})}};window.journalPjax=function(e){0!==$(".card.journal").length&&Object.keys(i).forEach(n=>window.pjaxSerialNumber===e&&i[n]())},window.pjaxSerialNumber||i.initEvent(),window.pjaxSerialNumber||i.initLike(),document.addEventListener("DOMContentLoaded",function(){window.pjaxSerialNumber||i.foldJournals()})})(); (()=>{var __webpack_modules__={"./src/js/journals.js":()=>{eval("let journalContextInitial = false\r\nconst journalContext = {\r\n /* 初始化事件 */\r\n initEvent() {\r\n if (journalContextInitial) return\r\n let $body = $('body')\r\n // 展开和关闭评论区事件\r\n $body.on('click', '.journal .comment', function () {\r\n $(this).parent().parent().siblings('.journal-comment').stop().slideToggle(200)\r\n })\r\n // 折叠日志区域\r\n $body.on('click', '.journal-content>.expand-done', function () {\r\n Utils.foldBlock($(this).parent())\r\n })\r\n $body.on('click', '.journal-operation-item>.share', function () {\r\n let $journal = $(this).parents('.journal')\r\n let title = '动态: ' + $journal.find('.journal-date>em').text()\r\n let desc = $journal.children('.journal-content').children('.main-content').text()\r\n DShare.sharePoster({\r\n image: DreamConfig.journals_share_image,\r\n title: title,\r\n description: desc.length > 220 ? desc.substring(0, 220) + '...' :desc\r\n })\r\n })\r\n Utils.initLikeEvent('.journal .like', 'moments', ($elem) => $elem.find('em'))\r\n journalContextInitial = true\r\n },\r\n /* 点赞 */\r\n initLike() {\r\n Utils.initLikeButton('.journal .like', 'moments')\r\n },\r\n /* 折叠日志区域 */\r\n foldJournals() {\r\n const $journals = $('.journal .journal-content')\r\n $journals.each(function () {\r\n const $this = $(this)\r\n if (this.scrollHeight >= DreamConfig.journals_fold_height) {\r\n $this.append('<div class=\"expand-done\"><i class=\"ri-arrow-up-double-line\"></i></div>')\r\n } else {\r\n $this.removeClass('fold')\r\n }\r\n })\r\n },\r\n}\r\nwindow.journalPjax = function (serialNumber) {\r\n if ($('.card.journal').length === 0) return\r\n Object.keys(journalContext).forEach(\r\n (c) => window.pjaxSerialNumber === serialNumber && journalContext[c]()\r\n )\r\n}\r\n!(function () {\r\n !window.pjaxSerialNumber && journalContext.initEvent()\r\n !window.pjaxSerialNumber && journalContext.initLike()\r\n\r\n document.addEventListener('DOMContentLoaded', function () {\r\n !window.pjaxSerialNumber && journalContext.foldJournals()\r\n })\r\n})()\n\n//# sourceURL=webpack://halo-theme-dream2.0-plus/./src/js/journals.js?")}},__webpack_exports__={};__webpack_modules__["./src/js/journals.js"]()})();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
window.sparkInput=function(e,r){var i=r.map(function(r){return r+""}),l=["rgb(110,64,170)","rgb(150,61,179)","rgb(191,60,175)","rgb(228,65,157)","rgb(254,75,131)","rgb(255,94,99)","rgb(255,120,71)","rgb(251,150,51)","rgb(226,183,47)","rgb(198,214,60)","rgb(175,240,91)","rgb(127,246,88)","rgb(82,246,103)","rgb(48,239,130)","rgb(29,223,163)","rgb(26,199,194)","rgb(35,171,216)","rgb(54,140,225)","rgb(76,110,219)","rgb(96,84,200)"],n={text:"",prefixP:-5,skillI:0,skillP:0,direction:"forward",delay:2,step:1};!function r(){var t=i[n.skillI];n.step?n.step--:(n.step=1,n.prefixP<0?(0<=n.prefixP&&(n.text+=""[n.prefixP]),n.prefixP++):"forward"===n.direction?n.skillP<t.length?(n.text+=t[n.skillP],n.skillP++):n.delay?n.delay--:(n.direction="backward",n.delay=2):0<n.skillP?(n.text=n.text.slice(0,-1),n.skillP--):(n.skillI=(n.skillI+1)%i.length,n.direction="forward")),e.textContent=n.text,e.appendChild(function(r){for(var t=document.createDocumentFragment(),e=0;e<r;e++){var i=document.createElement("span");i.textContent=String.fromCharCode(94*Math.random()+33),i.style.color=l[Math.floor(Math.random()*l.length)],t.appendChild(i)}return t}(n.prefixP<0?Math.min(5,5+n.prefixP):Math.min(5,t.length-n.skillP))),setTimeout(r,75)}()}; (()=>{var __webpack_modules__={"./src/js/spark-input.js":()=>{eval("const sparkInput = function(element, list) {\r\n function randomColor() {\r\n return colors[Math.floor(Math.random() * colors.length)]\r\n }\r\n function randomCode() {\r\n return String.fromCharCode(94 * Math.random() + 33)\r\n }\r\n function buildFragment(r) {\r\n for (var fragment = document.createDocumentFragment(), i = 0; r > i; i++) {\r\n var span = document.createElement('span')\r\n span.textContent = randomCode(),\r\n span.style.color = randomColor(),\r\n fragment.appendChild(span)\r\n }\r\n return fragment\r\n }\r\n function start() {\r\n var msg = messages[entry.skillI]\r\n if(entry.step) {\r\n entry.step--\r\n } else {\r\n entry.step = step\r\n if(entry.prefixP < message.length) {\r\n (entry.prefixP >= 0 && (entry.text += message[entry.prefixP]), entry.prefixP++)\r\n } else {\r\n if('forward' === entry.direction) {\r\n if(entry.skillP < msg.length) {\r\n (entry.text += msg[entry.skillP], entry.skillP++)\r\n } else {\r\n if(entry.delay){\r\n entry.delay--\r\n } else {\r\n entry.direction = 'backward'\r\n entry.delay = delay\r\n }\r\n }\r\n }else{\r\n if(entry.skillP > 0) {\r\n entry.text = entry.text.slice(0, -1)\r\n entry.skillP--\r\n } else {\r\n entry.skillI = (entry.skillI + 1) % messages.length\r\n entry.direction = 'forward'\r\n }\r\n }\r\n }\r\n }\r\n element.textContent = entry.text,\r\n element.appendChild(buildFragment(entry.prefixP < message.length ? Math.min(prefixP, prefixP + entry.prefixP) : Math.min(prefixP, msg.length - entry.skillP))),\r\n setTimeout(start, sleep)\r\n }\r\n var message = '',\r\n messages = list.map(function (s) {\r\n return s + ''\r\n }),\r\n delay = 2,\r\n // 彩字显示需要的步骤\r\n step = 1,\r\n // 乱码最大长度\r\n prefixP = 5,\r\n // 时间间隔\r\n sleep = 75,\r\n colors = ['rgb(110,64,170)', 'rgb(150,61,179)', 'rgb(191,60,175)', 'rgb(228,65,157)', 'rgb(254,75,131)', 'rgb(255,94,99)', 'rgb(255,120,71)', 'rgb(251,150,51)', 'rgb(226,183,47)', 'rgb(198,214,60)', 'rgb(175,240,91)', 'rgb(127,246,88)', 'rgb(82,246,103)', 'rgb(48,239,130)', 'rgb(29,223,163)', 'rgb(26,199,194)', 'rgb(35,171,216)', 'rgb(54,140,225)', 'rgb(76,110,219)', 'rgb(96,84,200)'],\r\n entry = {\r\n text: '',\r\n prefixP: -prefixP,\r\n skillI: 0,\r\n skillP: 0,\r\n direction: 'forward',\r\n delay: delay,\r\n step: step\r\n }\r\n start()\r\n}\r\n\r\nwindow.sparkInput = sparkInput\n\n//# sourceURL=webpack://halo-theme-dream2.0-plus/./src/js/spark-input.js?")}},__webpack_exports__={};__webpack_modules__["./src/js/spark-input.js"]()})();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -9,10 +9,14 @@
<div th:unless="${isEmpty}" class="card-content"> <div th:unless="${isEmpty}" class="card-content">
<ul class="widget-comment"> <ul class="widget-comment">
<li class="item" th:each="comment : ${comments}"> <li class="item" th:each="comment : ${comments}">
<div class="user"> <div class="user"
<img width="35" height="35" th:unless="${#strings.isEmpty(comment.owner.avatar)}" class="avatar" th:src="${comment.owner.avatar}" th:with="
emailHash = ${comment.spec.owner.annotations['email-hash']},
userA = ${comment.owner.avatar},
img = ${#strings.isEmpty(userA) && !#strings.isEmpty(emailHash) ? theme.config.basic_info.providerMirror+'/avatar/'+emailHash : userA}">
<img width="35" height="35" th:unless="${#strings.isEmpty(img)}" class="avatar" th:src="${img}"
th:alt="${comment.owner.displayName}"> th:alt="${comment.owner.displayName}">
<div th:if="${#strings.isEmpty(comment.owner.avatar)}" class="no-avatar"> <div th:if="${#strings.isEmpty(img)}" class="no-avatar">
<span class="avatar-info">[[${#strings.substring(comment.owner.displayName, 0, 1)}]]</span> <span class="avatar-info">[[${#strings.substring(comment.owner.displayName, 0, 1)}]]</span>
</div> </div>
<div class="info"> <div class="info">

View File

@ -30,7 +30,7 @@ spec:
settingName: theme-dream2-plus-setting settingName: theme-dream2-plus-setting
configMapName: theme-dream2-plus-configMap configMapName: theme-dream2-plus-configMap
# 版本号 # 版本号
version: 1.2.0.2226 version: 1.2.0.22241
# 最低支持的 Halo 版本 # 最低支持的 Halo 版本
require: ">=2.12.0" require: ">=2.12.0"
# 许可 # 许可