这是一套为「资源分享 + 技术博客」混合站点设计的 Hexo 主题。和常见主题最大的区别是:
它把文章和网盘资源当成两种一等公民,而不是让资源去硬凑文章的排版。
这套主题解决什么问题
现成的 Hexo 主题大多假设你的内容都是文字。但资源分享站点需要的东西完全不同:
| 需求 | 普通主题 | Echo 主题 |
|---|---|---|
| 版本 / 平台 / 大小 / 语言 | 手动写进正文 | 结构化字段,自动渲染表格 |
| 多个网盘链接 | 一长串裸链接 | 卡片式列表 + 复制提取码 |
| 按类型筛选资源 | 用分类勉强凑 | 独立的资源库与筛选条 |
| 文章与资源混在一起 | 只能混着 | 首页 / 文章 / 资源库三个入口 |
核心设计原则只有一句话:资源就是带有 resource 字段的文章。你不用学第二套写法,
只要在 front-matter 里加一段配置,同一篇文章就会自动进入资源库。
三个内容入口
主题把内容分成三条互不干扰的流:
- 首页
/—— 顶部大图 + 资源分类入口 + 最新发布(文章与资源混排) - 文章
/articles/—— 只收录普通文章,不出现资源帖 - 资源库
/resources/—— 只收录资源帖,可按影视 / 游戏 / MOD / 汉化筛选
判断规则非常简单:
1 | resource.enable === true → 资源帖,进资源库 |
所以你不会遇到「同一篇内容在两个列表里重复出现」的问题。
目录结构
1 | themes/echo/ |
各部分职责
_config.yml 是你唯一需要经常改的文件。配色、宽度、导航菜单、侧栏组件开关
全在这里,每个配置项都带中文注释。
layout/ 决定页面长什么样。_partial/ 放的是被多个页面复用的片段,
比如 post-card.ejs(文章卡片)、pagination.ejs(分页);_rail/ 放的是侧栏小组件,比如 profile.ejs、calendar.ejs。
注意资源详情页和文章详情页共用 post.ejs —— 靠 front-matter 里
有没有 resource.enable 来决定渲染成哪种形态。
scripts/ 是 Hexo 的扩展点。resource.js 负责把带 resource 字段的文章
聚合成 /resources/ 下面的各个页面,同时输出 search.json 供站内搜索使用。helper.js 集中定义所有模板可调用的 echo_* 函数,改它会影响全部模板。
source/ 是纯静态资源,构建时会原样复制到 public/。
内容与主题的边界
一个容易被搞混的点:文章内容放在站点根目录的 source/_posts/,而不是主题里。
1 | F:\Echo\ |
这样做的好处是:主题可以打包分享给别人,内容完全跟着你自己走。
下一篇
下一篇讲安装与启用,以及站点配置 _config.yml 里每一项的含义。
评论