主题模板越来越像脚手架,我反而写不动了

· 互联网观察 · 阅读 4
摘要

上周想给一个客户站改个列表页标题样式,结果打开主题目录一看,六个子模板、两层 include、一堆 function 调用。改一行 HTML,得先顺着调用链往上追三层才知道这段到底在哪渲染。 改完我只用了十分钟。找它用了四十分钟。 抽象是为

上周想给一个客户站改个列表页标题样式,结果打开主题目录一看,六个子模板、两层 include、一堆 function 调用。改一行 HTML,得先顺着调用链往上追三层才知道这段到底在哪渲染。

改完我只用了十分钟。找它用了四十分钟。

抽象是为了复用,但大部分主题根本没有复用的机会

我理解模板抽象最初的出发点——把循环、分页、面包屑拆开,改一处全站生效。问题是一个站就一套主题,一个主题就一个视觉语言,你把它拆成十几个可配置组件,最后配置项还是全默认值,等于白拆。

Z-Blog 的主题结构相对简单,模板文件直白,改起来爽。WordPress 那边一些商业主题已经开始往「框架」方向走了,后台选项能排到十几屏。迅睿的模板标签我也用了几年,标签本身挺清晰,但一旦有人在里面叠了自定义函数,后面接手的人就难受。

当然,这话不能说绝对。要真做一份卖给几百人的主题,抽象是必须的。可个人站、企业站、接单的活,八成都用不上。

真正的成本转移到了维护者身上

以前接手一个站,打开 header.html、index.html,半天摸清结构。现在得先读一遍主题文档,再翻一遍 include 目录,最后才敢动手。

这个成本没消失。只是从主题作者身上挪到了维护者身上,中间隔了一年半载,作者自己都记不清那些钩子是干嘛的。我见过一个主题,注释写着「兼容 v2.x 的旧调用」,v2.x 已经是三年前的事。

我不知道这算不算退步。可能只是行业长大了,做主题的人多了,就得靠规范来兜底。但站在模板里只改一个 <h2> 的人的角度,确实有点烦。

我自己的折中办法

接过新站,我第一步永远是去找主题里那层「最浅」的模板——能直接出 HTML 的那一层,不管中间隔了多少抽象,最后总要落到某个文件。找到它,改它,别动框架。

代价是升级主题的时候得小心,改动可能被覆盖。所以我会额外记一个改动清单,放仓库里。麻烦是麻烦,但比每改一行都要读三遍文档强。

这办法不优雅。好用就够了。