feat(config): 提取站点配置到独立的config.js文件

- 将分散在各JS文件中的配置项统一提取到SiteConfig对象中
- 包含stars、animation、background、hitokoto等配置模块
- GitHub相关配置包括用户名、缓存键值和过期时间
- 博客RSS地址及缓存配置迁移至config.js
- 技术栈数据从硬编码移至配置文件管理
- 社交卡片动画参数统一配置化
- Artalk评论系统参数集中管理
- 添加开发环境检测逻辑
- 支持CommonJS和浏览器环境下的配置导出
- 在about.html和index.html中引入config.js脚本
- 更新about.js和main.js以使用SiteConfig配置
- 删除重复的GitHub用户名硬编码
- 调整图片路径读取方式为配置驱动
- 优化星空背景脚本的配置引用方式
- 修复本地开发环境下的一言默认文本显示问题
This commit is contained in:
hehh
2025-11-20 22:02:37 +08:00
parent a2692cae96
commit c6428d1224
7 changed files with 295 additions and 91 deletions

View File

@@ -3,7 +3,7 @@ var stars_count;
var stars;
ini();
makeStars();
var interval=setInterval(function(){drawStars();},50);//<2F><>ʱˢ<CAB1><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
var interval;
function ini(){//初始化
canvas = document.getElementById("bg");
@@ -14,12 +14,16 @@ function ini(){//初始化
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
context = canvas.getContext("2d");
stars = Array();//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>x,y,<2C><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD>ٶȣ<EFBFBD>
stars_count = 300;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
clearInterval(interval);
stars = Array();//ɵݣx,y,Сɫٶȣ
stars_count = SiteConfig.stars.count;//
// 清除可能存在的旧interval
if (interval) {
clearInterval(interval);
}
}
function makeStars(){//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
function makeStars(){//
if (!canvas) return;
for(var i=0;i<stars_count;i++)
{
@@ -28,12 +32,12 @@ function makeStars(){//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
let radius = Math.random()*0.8;
let color="rgba("+Math.random()*255+","+Math.random()*255+","+Math.random()*255+",0.8)";
let speed=Math.random()*0.5;
let arr={'x':x,'y':y,'radius':radius,'color':color,'speed':speed};//<EFBFBD><EFBFBD>x,y,<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><EFBFBD><EFBFBD>ٶȣ<EFBFBD>
stars.push(arr);//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
let arr={'x':x,'y':y,'radius':radius,'color':color,'speed':speed};//x,y,Сɫٶȣ
stars.push(arr);//ɵݴ
}
}
function drawStars(){//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
function drawStars(){//ǻ
if (!canvas || !context) return;
context.fillStyle = "#0e1729";
context.fillRect(0,0,canvas.width,canvas.height);
@@ -50,8 +54,21 @@ function drawStars(){//<2F><><EFBFBD><EFBFBD><EFBFBD>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
}
window.onresize = function(){//<EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>仯ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
window.onresize = function(){//ڴС仯ʱ
ini();
makeStars();
interval=setInterval(function(){drawStars();},50);
}
// 只有当canvas存在时才设置interval
if (canvas && !interval) {
interval=setInterval(function(){drawStars();},SiteConfig.stars.refreshInterval);
}
}
// 页面加载完成后初始化星空效果
document.addEventListener('DOMContentLoaded', function() {
ini();
makeStars();
// 只有当canvas存在时才设置interval
if (canvas) {
interval=setInterval(function(){drawStars();},SiteConfig.stars.refreshInterval);
}
});