Skip to content

About

一款仿打印纸 / 复古设备面板风格的 Typecho 主题模板

Resources

Stars

9 stars

Watchers

0 watching

Forks

Repository files navigation

Printer(Typecho 主题)

Printer 是一款仿打印纸 / 复古设备面板风格的 Typecho 主题,复刻自 NOOC 的视觉方向并移植到 Typecho。主题支持黑暗模式、中文网字计划、自定义颜色、自定义背景、第三方统计代码注入、社交链接和移动端适配。

Printer

特性

  • 复古打印纸视觉:网格背景、纸张横线、拟物按钮和设备面板式顶部栏。
  • 日夜模式:前端切换并通过 localStorage 记忆用户偏好。
  • 中文字体支持:可接入中文网字计划等第三方字体 CSS,并按范围应用字体。
  • 首页信息区:展示最新文章、随机阅读入口和分类列表。
  • 文章页体验:分类标签、发布日期、预计阅读时长、阅读进度条、上一篇 / 下一篇导航。
  • 评论区:适配 Typecho 原生评论、分页和登录态。
  • 访问统计:主题内置统计已移除,统一改由第三方统计平台实现(在后台粘贴统计代码即可注入页面底部)。
  • AI 可读内容出口:在首页和文章页输出 Schema.org JSON-LD,并提供 LLM.php Markdown 索引页面模板(部署为 /llms.html);配套插件 Printerllm 还可生成遵循 llmstxt.org 规范的根目录 /llms.txt 静态文件。
  • 社交链接:支持 GitHub、Twitter / X、微博、邮箱和 RSS。
  • 响应式适配:覆盖手机、横屏移动端、平板、触摸设备和减少动画偏好。

部署 / 安装

  1. 将本主题目录上传到 Typecho 站点主题目录。
    • 默认路径:/usr/themes/
    • 示例路径:/usr/themes/Printer/
  2. 登录 Typecho 后台,进入 控制台 → 外观。
  3. 启用主题 Printer。
  4. 进入 设置外观 → Printer,按需填写主题配置。

目录结构

  • index.php:主题信息、首页、归档页、分类页、标签页和搜索结果列表。
  • post.php:文章详情页。
  • page.php:独立页面详情页。
  • archive.php:复用 index.php 输出归档类页面。
  • comments.php:评论列表和评论表单。
  • header.php:公共头部、导航、搜索、日夜模式按钮、自定义字体和背景变量。
  • footer.php:公共页脚、社交链接和前端交互脚本。
  • LLM.php:AI 可读 Markdown 内容出口页面模板(通过新建独立页面渲染 /llms.html)。
  • functions.php:主题入口,加载 inc/ 子系统,定义配置项(themeConfig)和公共工具函数(URL 清洗、文本处理、随机文章等)。
  • inc/llm.php:LLM 可读内容子系统(/llms.html 页面渲染、文章 / 页面 / 分类 URL 构造)。
  • inc/schema.php:Schema.org 结构化数据子系统(首页与文章页 JSON-LD)。
  • 404.php:404 页面。
  • css/style.css:主题样式。
  • screenshot.png:主题预览图。
  • Printerllm/:配套插件源码目录,用于生成根目录静态 llms.txt,详见下方「配套插件 Printerllm」。

主题设置

基础设置

  • Logo 图片:填写图片链接后替换左上角圆形图标。支持常见图片格式,建议尺寸 100 × 100 像素。
  • 网站名称:显示在 Logo 旁边。留空时使用 Typecho 后台站点标题。
  • 网站副标题:显示在网站名称下方。留空时使用 Typecho 后台站点描述。
  • 浏览器标签页图标:填写 favicon 图片链接。
  • 页脚版权文字:显示在页面底部。留空时显示 © 年份 网站名称。

内容设置

  • 随机阅读范围:限制首页“随机阅读”只从指定分类中选取文章。填写分类别名,多个分类用英文逗号分隔,例如 life,tech。留空时从全站已发布文章中随机。
  • 阅读时间估算:控制文章页是否显示预计阅读时长。

AI 可读内容出口

  • 结构化数据 JSON-LD:控制是否在首页和文章页输出 Schema.org JSON-LD。
  • 站点 AI 摘要:用一两句话说明本站主题、内容范围和适合回答的问题。留空时使用 Typecho 站点描述。
  • 发布者名称:用于结构化数据中的 publisher.name。留空时使用网站名称。
  • 发布者 Logo:用于结构化数据中的 publisher.logo。留空时使用 Logo 图片配置。
  • LLM 页面出口:控制 LLM.php 页面模板是否输出机器可读 Markdown 索引(即 /llms.html)。
  • LLM 出口标题:显示在 Markdown 索引顶部的标题。
  • 推荐读取说明:告诉 AI 应该如何读取本站内容。留空时使用主题默认说明。
  • 适合回答的问题:说明本站内容适合支持哪些问题或任务。
  • 不提供内容说明:说明哪些内容不建议 AI 当作知识来源,如评论区、后台页面、动态统计等。
  • 引用说明:说明 AI 或用户引用本站内容时应如何署名和附链接。
  • 最近文章数量:控制 LLM 页面输出的最近文章数量,建议 10-50。
  • 文章输出模式:可选择仅标题链接、标题链接和摘要、包含正文摘录。
  • 包含分类列表 / 独立页面:控制是否在 LLM 页面输出分类和独立页面入口。
  • RSS 地址 / 站点地图地址:输出到 LLM 页面中的机器发现入口。

当前版本会在首页输出 WebSite、Blog 和 SearchAction,在文章页输出 BlogPosting。

主题的 LLM.php 模板用于生成 AI 可读的 Markdown 内容页面(通常部署为 /llms.html):在 Typecho 后台新建一个独立页面,选择 LLM.php 模板,并把页面地址填入主题设置的「LLM 页面地址」即可。

根目录的 /llms.txt(遵循 llmstxt.org 规范的静态文件)由配套插件 Printerllm 生成,见下方「配套插件 Printerllm」。

外观样式

  • 中文字体 CSS 链接:填写中文网字计划或其他字体服务提供的 CSS 链接。主题只接受 http / https 链接。
  • 中文字体名称:填写 CSS 中声明的 font-family。包含空格时可以写成 "LXGW WenKai" 这类形式。
  • 字体应用范围:
    • 仅文章内容(推荐)
    • 纸张区域(含列表页)
    • 全站所有文字
  • 外部链接颜色:文章中指向外部网站的链接颜色,默认 #ff6b35。
  • 文章分类颜色:文章详情页顶部分类标签颜色,默认 #ff6b35。
  • 自定义背景图:填写背景图片链接。主题只接受 http / https 链接。
  • 黑暗模式背景压暗强度:控制黑暗模式下背景图遮罩强度,范围 0 到 1,默认 0.65。

统计与追踪

  • 网站统计代码:粘贴第三方统计平台脚本(如 Google Analytics、百度统计、Umami、Plausible),主题会原样输出在页面底部。

主题不再内置站内访问统计(无建表、无 Session、无 Cookie 打点、不发防缓存头),因此可以放心对全站启用静态缓存和 CDN。

社交链接

  • GitHub:填写 GitHub 主页链接。
  • Twitter / X:填写 Twitter / X 主页链接。
  • 微博:填写微博主页链接。
  • 邮箱:填写联系邮箱地址。
  • RSS 订阅地址:填写 RSS 链接,例如 /feed/ 或完整 RSS URL。
  • LLM 页面地址:填写 LLM.php 模板对应的页面地址(如 /llms.html),支持站内相对地址或完整 URL。填写后会像 RSS 一样在页面 <head> 和页脚图标中输出 text/markdown 发现入口。

对应字段留空时,页脚不会显示该社交图标。

使用说明

  • 顶部搜索按钮首次点击会展开搜索框,再次提交时执行 Typecho 站内搜索。
  • 日夜模式按钮会把偏好保存到浏览器本地。
  • 文章阅读进度条只在文章内容足够长时显示。
  • 返回顶部按钮会在页面向下滚动后出现。
  • 首页“随机阅读”会尽量避开最新文章,避免两个入口指向同一篇。
  • 要生成 AI 可读的 /llms.html 页面:在 Typecho 后台新建独立页面,选择 LLM.php 模板,并把页面地址填入“LLM 页面地址”。要生成根目录 /llms.txt 静态文件,请安装配套插件 Printerllm(见下方)。

配套插件 Printerllm

主题的 LLM.php 模板渲染的是一个动态 Markdown 页面(通常部署为 /llms.html)。而遵循 llmstxt.org 规范的根目录 /llms.txt 静态文件,由配套插件 Printerllm 在发布 / 编辑文章时自动生成。

主题页面 vs 插件静态文件

LLM.php 模板(主题内置) Printerllm 插件
产物 /llms.html 动态页面 /llms.txt 静态文件(可选 /llms-full.txt 全文版)
触发 用户访问页面时实时渲染 发布 / 编辑 / 删除文章时钩子触发,写入静态文件
规范 自定义 Markdown 格式 严格遵循 llmstxt.org
关系 互不冲突,可同时使用 同上

安装

  1. 把主题目录下的 Printerllm/ 文件夹复制到 Typecho 插件目录:/usr/plugins/Printerllm/。
  2. 登录 Typecho 后台,进入 控制台 → 插件。
  3. 启用 Printerllm,进入插件设置配置文章数量等选项。
  4. 启用后会在 Typecho 根目录生成 llms.txt;后续每次发布 / 编辑 / 删除文章会自动更新。

插件依赖主题 functions.php 中的 URL 构造与文本清洗函数(printerPaperLlm* / printerPaperMarkdown*)。即使主题未加载,插件也会自动加载并降级为自包含查询,不影响插件本身运行。详细说明见 Printerllm/README.md。

兼容与注意事项

  • 主题依赖 Typecho 原生模板接口和数据库接口。
  • 自定义字体 CSS 和自定义背景图建议使用稳定的 HTTPS 链接。
  • 主题已移除站内访问统计子系统(不再创建 printer_visit_stats 表、不再启动 Session 或写入统计 Cookie),全站可安全启用 CDN / 页面静态缓存。如需清理历史遗留的统计表与配置,参见下方「站内统计数据清理(可选)」。
  • 若从旧版本升级,后台原有的「访问统计 / 初始总访问量 / 今日初始访问量 / 访问计数增量」配置项将不再显示,已保存的值会作为孤儿数据保留在 Typecho options 表中(不影响运行)。

站内统计数据清理(可选)

主题移除站内统计后,数据库中可能仍残留历史数据。如需彻底清理,请先备份数据库,再执行以下 SQL(将 typecho_ 替换为你的实际表前缀):

-- 删除统计表
DROP TABLE IF EXISTS `typecho_printer_visit_stats`;

-- 删除后台遗留的统计配置项
DELETE FROM `typecho_options` WHERE `name` IN (
  'enableVisitStats',
  'siteVisits',
  'todayVisits',
  'visitIncrement',
  'printerLastBaseTotal',
  'printerLastBaseToday',
  'printerLastBaseDate'
);

执行后建议在 Typecho 后台 控制台 → 数据 → 清理缓存(如有)或刷新主题设置页确认配置项已重置。

致谢

  • NOOC:本主题复刻的视觉起源。
  • 中文网字计划:免费的中文 Web 字体库,支持在线加载及查看字体信息。

About

一款仿打印纸 / 复古设备面板风格的 Typecho 主题模板

Resources

Stars

9 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages