惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Schneier on Security
有赞技术团队
有赞技术团队
T
The Blog of Author Tim Ferriss
F
Fortinet All Blogs
D
DataBreaches.Net
F
Full Disclosure
腾讯CDC
博客园 - 【当耐特】
MyScale Blog
MyScale Blog
Stack Overflow Blog
Stack Overflow Blog
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
爱范儿
爱范儿
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
SegmentFault 最新的问题
The Register - Security
The Register - Security
WordPress大学
WordPress大学
博客园 - 聂微东
雷峰网
雷峰网
J
Java Code Geeks
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Privacy International News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
A
Arctic Wolf
Scott Helme
Scott Helme
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tor Project blog
博客园 - 三生石上(FineUI控件)
Know Your Adversary
Know Your Adversary
AWS News Blog
AWS News Blog
G
Google Developers Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
C
CERT Recently Published Vulnerability Notes
O
OpenAI News
Project Zero
Project Zero
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Application and Cybersecurity Blog
Application and Cybersecurity Blog
云风的 BLOG
云风的 BLOG
N
News and Events Feed by Topic
MongoDB | Blog
MongoDB | Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Microsoft Security Blog
Microsoft Security Blog
Cisco Talos Blog
Cisco Talos Blog
P
Palo Alto Networks Blog
Schneier on Security
Schneier on Security

清酒Blog

【预售】徐香猕猴桃,酸甜刚刚好。---来自中国猕猴桃之乡 【预售】徐香猕猴桃,酸甜刚刚好。---来自中国猕猴桃之乡 开心Whois查询工具上线。 一款PHP的个人电子礼金薄,记录每一笔人情礼金往来记录。 新年拿下新米,短域名,已备案! 2026,新春快乐!丙午年[马] 拿下新米,并整个logo!同时给本站也更新了一下logo! 【我的小米徕卡】夕阳 【旅游记】重庆 【旅游记】北京 【旅游记】天水 【旅游记】延安-红色之旅
朋友圈主题
清酒 · 2026-06-28 · via 清酒Blog

站长头像

清酒Blog

岁岁平,岁岁安,岁岁平安!

朋友圈主题

作者头像 作者头像

清酒 / 06-28 / 0 阅读 / 编辑

本文阅读 0 分钟

Pyq 主题 — 详细功能总结与技术文档

主题名称: Pyq
作者: 清酒
版本: 1.0.0 (2026-06-28)
适配程序: Typecho 1.3.0
运行环境: PHP 8.2 + MySQL 5.7
站点地址: https://p.qu.pw/

一、主题概述

Pyq 是一款仿朋友圈风格的 Typecho 主题,以说说(短文)为核心,支持图文、音乐、视频、链接等多种内容形式。移动端优先设计,支持深色模式、PJAX 无刷新导航、LRC 歌词滚动等高级功能。

参考主题:搜罗全网十多个同类型朋友圈主题,进行模仿学习,在此基础上进行了大量功能增强和 UI 优化。


二、文件结构

pyq/
├── index.php              # 首页模板(说说列表 + 分页 + AJAX加载更多)
├── post.php               # 文章详情页(单篇说说 + 评论区)
├── page.php               # 通用页面模板
├── page-about.php         # 关于页面(社交账号弹窗)
├── page-links.php         # 友链页面
├── page-archive.php       # 归档页面(按月分组)
├── header.php             # 公共头部(导航栏 + 封面 + 公告 + 音乐播放器)
├── footer.php             # 公共底部(弹窗公告 + 返回顶部 + JS加载)
├── comments.php           # 评论模板
├── functions.php          # 主题函数(自定义字段 + 工具函数)
├── setting.php            # 后台设置页(Tab式界面)
├── ajax.php               # AJAX接口(加载更多 + 评论提交 + 点赞)
├── music-proxy.php        # 音乐代理(本地Meting库 + 流式传输)
├── img-proxy.php          # 图片代理(防盗链处理)
├── assets/
│   ├── css/
│   │   ├── style.css      # 前台主样式(1193行)
│   │   ├── houtai.css     # 后台设置页样式(354行)
│   │   └── admin-fix.css  # 后台全局修复CSS(130行)
│   ├── js/
│   │   ├── app.js         # 前台主逻辑(1250行)
│   │   └── houtai.js      # 后台设置页逻辑(54行)
│   └── img/               # 主题图片资源
├── lib/
│   └── Meting.php         # Metowolf Meting 音乐API库
└── static/
    └── prism/             # Prism.js 代码高亮(22个文件,16种语言)

总代码量: 5266 行


三、功能特性

3.1 内容类型

类型自定义字段说明
图文images(多行文本)多图URL,每行一张,支持懒加载
视频video_url(单行文本)视频链接,支持 mp4/embed
音乐music_url + music_name + music_artist + music_cover + music_lrc音乐卡片,支持封面+歌词
链接link_url + link_title + link_desc + link_thumb外部链接卡片预览
位置location(单行文本)显示位置信息
置顶is_top(单选:是/否)置顶文章

3.2 音乐系统

顶部播放器

  • 导航栏集成迷你播放器(播放/暂停 + 歌名滚动)
  • 支持两种音源:

    • bgm_url:直接 MP3 链接(优先)
    • netease_id:网易云歌曲ID,通过本地 Meting 库代理获取
  • 音乐代理 music-proxy.php:流式传输 + Range 分块请求支持

音乐卡片(说说内嵌)

  • 80px 高度卡片,封面背景 + 歌曲名 + 歌手 + 播放按钮
  • 底部进度条(3px,hover 6px),支持拖动 seek
  • LRC 歌词滚动:

    • 支持标准 LRC 格式([00:12.34]歌词
    • 支持网易云 JSON 格式({"t":0,"c":[{"tx":"歌词"}]}
    • 歌词区在卡片下方展开,背景使用封面模糊图
    • 当前行高亮(白色 15px + 发光阴影)
    • requestAnimationFrame 同步滚动,使用 scrollTo 避免页面抖动
    • 展开/收起按钮,可手动控制

3.3 评论系统

  • AJAX 无刷新提交评论
  • 必填昵称 + 邮箱(邮箱格式校验)
  • 评论 @回复 功能(点击回复按钮自动填充)
  • 评论邮件通知:

    • 直接调用 CommentNotifier 插件的 refinishComment 方法
    • 绕过异步模式(yibu=1),确保邮件即时发送
    • 修复 ownerId 为 0 的问题,从 typecho_contents 查询文章作者
  • 评论树形渲染(pyq_render_comments_tree

3.4 交互功能

  • 点赞: AJAX 点赞/取消,实时更新按钮状态和点赞列表
  • 分享: 8 按钮弹窗(2×4 网格)— 微信/微博/QQ/复制链接/带标题复制/更多
  • 返回顶部: 滚动 300px 后显示,平滑滚动
  • 图片灯箱: FancyBox 集成,点击图片放大查看
  • 懒加载: IntersectionObserver 图片懒加载
  • 加载更多: 滚动到底部自动加载下一页(AJAX)

3.5 PJAX 无刷新导航

  • 全站 PJAX 实现,音乐播放不中断
  • XMLHttpRequest + DOMParser 解析新页面
  • history.pushState / popstate 浏览器前进后退支持
  • 换页后自动重新初始化:FancyBox、Prism.js、懒加载、搜索、加载更多
  • 内容区域目标:#pyq-feed

3.6 深色模式

  • 跟随系统 prefers-color-scheme 自动切换
  • CSS 变量体系(--bg, --card, --text, --text2, --text3, --border 等)
  • 所有组件完整适配深色/浅色

3.7 代码高亮

  • Prism.js 集成(16 种语言)
  • 暗色主题 + 行号 + 一键复制按钮
  • pyq_parse_code() 函数处理代码块

四、后台设置

4.1 设置界面

Tab 式布局(5 个标签页):

标签内容
基础设置头像URL、封面图URL、封面高度、用户名、个性签名、ICP备案、说说分类slug、静态资源URL
音乐设置背景音乐URL、网易云歌曲ID
社交菜单GitHub/微博/微信/QQ 链接 + 菜单项配置
功能设置公告文字、公告背景色(色盘选择)、Gravatar源选择、弹窗公告
高级设置自定义CSS/JS 代码注入

4.2 设置备份

  • 一键备份当前所有设置
  • 列出历史备份,支持一键恢复/删除
  • 备份存储在 typecho_options 表中

4.3 自定义字段

文章编辑页自定义字段支持:

  • textarea 高度优化(36px 起,可拖拽调整)
  • 文字描述改为 placeholder($e->input->setAttribute
  • Radio 按钮置顶选择(is_top)
  • 所有字段支持 JS 拖拽调整宽度(text input)

五、页面模板

5.1 关于页面 (page-about.php)

  • 社交账号展示(QQ/微信/GitHub/微博)
  • 点击弹窗显示账号信息(QQ 弹窗、微信弹窗)
  • 复制账号到剪贴板
  • 弹窗函数在 app.js 中定义(PJAX 兼容)

5.2 友链页面 (page-links.php)

  • 配合links插件使用
  • 友链列表展示
  • 卡片式布局

5.3 归档页面 (page-archive.php)

  • 按年月分组的文章列表
  • 链接格式:/archives/slug.html

六、插件依赖

插件状态用途
CommentNotifier✅ 已激活评论邮件通知
Links✅ 已激活友链管理
ArticlePoster✅ 已激活文章海报生成

七、性能优化

  • 图片懒加载(IntersectionObserver)
  • PJAX 无刷新(减少整页重载)
  • CSS will-change 用于动画元素
  • requestAnimationFrame 用于高频更新(歌词同步、进度条)
  • 音乐代理流式传输(不缓存完整文件)
  • Prism.js 按需加载(仅代码块页面)

文档生成时间:2026-06-28 19:02
主题总代码量:5266 行
备份总数:10 个
概述栏目:共12大项,仅公开展示7项。

147

147

212