如何用不到 30 行代码写一个模板引擎?

如何用不到30行代码写一个模板引擎?模板引擎从内部来看真的很简单

注意:本文以模板库 mote 为基础,其简洁性给了我启发,对于没有了解过模板引擎内部机制的人来说,它是很好的研究材料。

前言:什么是模板?

模板引擎是从模板生成文本(字符串)并且帮助分离表示层和业务逻辑的工具。

除非你已经被遗留软件的代码缠住了(或者没有开发过有 UI 的软件),否则你可能已经用过一个以上的模板引擎了。

但它们究竟是怎么工作的?你怎么创建一个?快速浏览一些主要的模板库,会发现它们的代码没有几千行也有几百行。即使是名副其实的“slim”也不是如此“苗条”。

所以你可能认为模板引擎是个难题,但我想要把问题一步步分解,并且给你展示你也可以通过几行代码来打造自己的模板引擎。

好了,让我们深入下去…

定义特性

在这篇文章中,模板引擎将会有两条规则:

1.以%开头的代码行都认为是ruby代码。

2.在任意一行的{{ … }}符号中插入ruby代码。我们可以将其用于像{{article.title}}这样的语句。

就这样?就这两条规则?没错–记住第一条规则让我们可以使用