LanternPress报纸复古风
主题/ 2026-09-18/0/ 编辑

LanternPress
LanternPress 是一款经典报纸复古风 Typecho 主题,基于 LanternTown 二次开发。内置文章点赞、阅读量统计、目录树、模态框搜索、跟随系统主题色、归档 / 友链 / 标签云三大独立页面模板,支持瀑布流加载、图片灯箱、代码高亮复制。性能上实现懒加载、内容缓存、数据库优化;安全上配备 CSP、HSTS、XSS 防护与接口速率限制。适配 PHP 8 与 Typecho 1.2.0+,全站响应式布局。
演示
在线预览
下载
功能特性
视觉与主题
- 经典报纸复古风格设计,5 种主题色可选(复古黄 / 纯白色 / 灰白色 / 暗夜黑 / 跟随系统)
- 「跟随系统」模式自动根据浏览器/系统深色偏好切换明暗主题
- 首页图片支持灰白/彩色两种显示模式
- 响应式布局,适配桌面、平板、手机
- 移动端导航菜单样式统一,搜索按钮与菜单项风格一致
文章功能
- 阅读量统计:Cookie 防刷,24 小时内同一文章只计一次
- 点赞功能:AJAX 无刷新,Cookie 防重复(1 年内不可重复点赞),IP 速率限制防刷
- 文章目录树:可按文章单独开启/关闭,移动端(≤767px)不加载目录树模块,避免小屏布局错乱
- 图片灯箱:原生 JS 实现,点击放大查看,支持分组画廊循环、键盘左右切换与缩放,已在链接内的图片不重复包裹
- 代码高亮:Prism.js 实现,支持行号显示、一键复制、语言标签
- 段首缩进:文章正文段首自动缩进 2 个字符
- 图片懒加载:原生
loading="lazy" + IntersectionObserver 双重保障 - 上下篇导航:复合条件排序,避免时间戳相同时漏篇
- 文章页增强:版权声明、作者简介、打赏二维码、社交媒体链接、阅读时长估算、字数统计
- 内容处理缓存:文章内容处理结果数据库缓存,配置变更自动失效,长文章性能提升明显
首页功能
- 推荐文章轮播:原生 JS 实现(自动播放、触摸滑动、循环切换),支持自定义推荐文章 ID
- 最新文章列表:支持缩略图、摘要、阅读量、点赞数
- 两种翻页模式:页码翻页 / 瀑布流加载更多(AJAX 无刷新,15 秒超时保护)
- 自定义导航菜单:支持
名称|URL 格式,留空自动显示独立页面 - 模态框搜索:点击「搜索」居中弹出,输入框与按钮主题色统一
评论功能
- AJAX 无刷新提交:事件委托模式,DOM 替换后无需重新绑定,避免内存泄漏
- 头像镜像代理:支持 Gravatar 及自定义镜像地址,解决国内访问慢的问题
- 嵌套评论:支持多级嵌套回复
- 表单智能填充:autocomplete 属性,浏览器自动填充姓名/邮箱/网址
- XSS 防护:评论内容统一 HTML 转义,防止存储型 XSS
独立页面模板
- 归档页:按年份/月份归档所有文章,带文章数量统计,数据自动缓存
- 友链页:展示友情链接,支持 Markdown 列表格式
- 标签云:展示所有文章标签,按使用频次显示不同大小
性能优化
- 图片懒加载:IntersectionObserver 单例实现,避免重复创建 observer 导致内存泄漏
- 资源预加载:preload / preconnect,加速关键资源加载
- 数据缓存:归档页文件缓存,文章发布时自动清除
- 数据库优化:字段操作请求内静态缓存、单条 SQL upsert、推荐文章批量查询
- 原子递增:阅读量/点赞使用 SQL 原子递增(
INSERT ... ON DUPLICATE KEY UPDATE int_value = int_value + 1),避免高并发竞态条件 - AJAX 片段请求:瀑布流加载更多只请求文章列表片段,减少整页流量
- 图标缓存:SVG 数组静态缓存,避免重复构建
- 请求超时:fetch 请求 15 秒 AbortController 超时控制
- 内容缓存:文章内容处理结果文件缓存(
cache/content/{cid}.php),结构版本化失效,不再占用数据库 fields 表 - 按需加载:Prism 代码高亮仅在正文含代码块/围栏时加载,无代码文章零开销
- 首屏优化:首屏首张卡片缩略图即时渲染、正文首图
fetchpriority="high",改善 LCP
安全加固
- 安全响应头:CSP / X-Frame-Options / X-Content-Type-Options / Referrer-Policy
- HSTS:HTTPS 站点自动启用 Strict-Transport-Security
- 速率限制:点赞接口 IP 速率限制(10 秒内最多 5 次),flock 文件锁避免并发竞态
- XSS 防护:全局 HTML 输出转义
- URL 校验:防止 javascript: / data: 协议注入
- 目录保护:缓存目录
.htaccess 保护,防止直接访问 - 可信代理:IP 获取支持可信代理白名单(
LT_TRUSTED_PROXY_IPS),防止客户端伪造 IP 绕过速率限制
其他特性
- 全站国际化:
_t() / _e() 支持,便于多语言翻译 - 自定义 CSS/JS:后台直接填写,无需修改主题文件
- 统计代码注入:支持百度统计、Google Analytics 等
- 双备案显示:ICP 备案号 + 公安备案号(自动链接至 beian.mps.gov.cn)
- 返回顶部:平滑滚动按钮
- 阅读进度条:文章页顶部显示阅读进度
- 移动端优化:菜单点击链接后自动关闭、目录树浮动按钮、搜索模态框
环境要求
| 项目 | 最低版本 | 推荐版本 |
|---|
| Typecho | 1.2.0 | 1.2.1 / 1.3.0 |
| PHP | 7.4 | 8.0 / 8.1 / 8.2 |
| MySQL | 5.7 | 8.0 |
| 浏览器 | - | Chrome / Edge / Firefox / Safari 最新版 |
本主题已在 PHP 8.2 + Typecho 1.3.0 + MySQL 8 环境下充分测试。
项目地址
https://github.com/muzihome/LanternPress