|
目录
|
2026年5月 · 最近在干些什么统计、表情、SEO、评论、MD 统计页 & 访客计数器四月底脑子一热,决定给博客做个统计页面。最开始只想画个按小时分布的热力图,后来需求越加越多:按天柱状图、月度趋势、爬虫来源、访客忠诚度…… ASCII 世界地图。用了 DB-IP 的免费城市级 IP数据库(800 万行),通过一次文件扫描批量解析访客 IP的经纬度,然后用密度字符叠加到 map.txt 上。 用 Pillow 生成了一个 88×31 像素的 LED 七段数码管动画计数器。12 帧循环、扫描线滚动、辉光效果、呼吸灯。每次首页访问自动更新计数并重新生成图片。逻辑独立在 scripts/counter.py。加了 psutil 读取 CPU、内存、磁盘、运行时长,没装 psutil 也有 ctypes 回退方案。 SEO 全面优化<html lang="zh/en"><title>、自动生成 <meta description>(正文首段提取)、<meta keywords>(标签提取)<link rel="canonical"> + <link rel="alternate" hreflang="..."> 中英互链<font size="6"> 自动包裹 <h1>、<font size="5"> 包裹 <h2>/.well-known/security.txt(RFC 9116)IE 5.5 兼容性审查五月初用 AI 做了全站兼容性审查,扫出 30+ 处不兼容项: 留言板改进#N,灰色显示在右侧@xxx[#N],构建时自动剥离引用号data/runtime/banned_words.json 定义,自动替换为 <em>*</em><font> 标签污染页面文章评论系统给每篇博文加了评论区,A+B 混合模式:CGI 处理提交 + 构建时注入已有评论。支持楼中楼(无限嵌套)、表情、IP 开关。提交后 302 跳回评论区锚点,后台异步构建。页面底部的 page-* 独立页面也有评论区。 邮件系统优化[em07] 转成 <img> 标签指向服务器上的 GIF。src/components/cgi/mailer-email.html,用 {变量} 占位符。Markdown 博文支持全站 50+ 篇博文和独立页面全部从 HTML 转为 Markdown。创建了 Web 服务器优化Cache-Control: max-age=86400 + Expires: 2030nolog nocount/.well-known/ 支持项目结构整理data/ 分层:runtime/(手工维护)build/(自动生成)comments/ logs/assets/images/backgrounds → assets/images/bgscripts/,.cmd 入口统一changelog.txt → data/logs/changelog.logmirror-external.py),去掉 preconnect 外链counter.py、banned_words.py 等新脚本独立拆分其他pages/blog → blog)max-width:100%;height:auto; 防溢出留言板表情系统留言板加了 20 个像素风表情。点击输入框下方 » 表情折叠面板, 展开选择,也支持手动输入 [em01] 到 [em20]。存储时以代码保存,网页和邮件中都会自动转成图片显示。表情面板默认不加载图片(JS 延迟生成),省了 20 个初始 HTTP 请求。 留言板表单从分散的 label+input 改成了 HTML table 表格布局,Name/Email/内容/显示IP/发送按钮全部在一个 125px 宽的格子里。表情面板通过折叠节省空间,1px CSS 边框替换了原来的 2px 默认边框。 邮件系统优化之前 @回复 发邮件是同步的,用户提交留言后要等邮件发完才能看到页面跳转。现在改成了独立进程后台发送(mailer.py),通过 stdin 传递内容,subprocess.Popen 启动后立即返回。 邮件正文里的 [em07] 现在会转成 <img> 标签指向服务器上的 GIF,收到邮件的人也能看到表情动画了。日志系统重构之前各模块的日志散落在不同位置,现在全部归到 data/logs/ 下:
创建了统一的 logger.py 模块,所有 CGI 脚本通过它写入对应分类日志。 性能优化loading="lazy",不阻塞首屏渲染loading="lazy",首屏请求减少 20 个其他小改进<!DOCTYPE html> 声明,告别 Quirks Mode
|