Wood+MtHaml或任何其他类似HAML的HTML速记

时间:2020-08-10 作者:3x5

我使用Timber 对于我所有的项目,我也希望开始使用一种模板语言,如HAML或Pug。我发现了一个HAML的PHP实现,名为MtHaml, 它支持细枝。我想如果我能让它和木材一起工作,这会很好。

不幸的是,虽然它支持许多CMS,但Wordpress不在列表中。有a project 这就把MtHaml带到了wordpress,但这是7年前的事了,我还没有弄清楚它是如何编译的。看来我得跑了/从命令行监视以使其自动编译。

我喜欢木材,因为它只是在飞行中编译。我把我的树枝文件放在主题目录中,它就可以正常工作了。我想做同样的事情,但与火腿+细枝(木材)。有人知道我会怎么做吗?

或者,我会考虑使用细枝+哈巴狗,但我认为这方面的支持更少。基本上,我想摆脱传统的打开和关闭标签的模板系统,转而使用HTML速记

2 个回复
SO网友:Jared

@3x5英寸;有人知道我会怎么做吗"E;

大约7年前,我在一个类似的地方发现了这根小树枝,当时我想;为什么这不在WordPress中"E;我看到有几个心不在焉的项目要移植到WP中——所有这些项目似乎都被搁置了。所以我想,如果我想做,我可能得自己做。

WP有如此多的开发人员/用户,如果你真的支持它,你一定会找到一个用户群。如果没有其他东西,您将学到大量关于开源、测试、支持以及如何正确构建持久工具的知识。

我的小贴士:如果你曾经对自己思考过:“如果你想的话。”;有人真的应该";-那个人就是你。

SO网友:3x5

好吧,我基本上都明白了。此解决方案假定您已使用composer将MtHaml安装到Wordpress主题的根目录中。创建一个名为index的文件。haml,并使用haml的twig语法和所需的所有木材上下文,将haml和twig放在那里。然后,将其放入索引中。php:

require __DIR__ . "/autoload.php";
$haml = new MtHaml\\Environment(\'twig\', array( \'enable_escaper\' => false, , \'enable_dynamic_attrs\' => false));
$template = __DIR__ . \'/index.haml\';
$compiled = $haml->compileString(file_get_contents($template), $template);
Timber::render_string($compiled, Timber::get_context() );
就这样。MtHaml编译。haml文件到细枝,将细枝作为字符串传递给木材,木材使用木材上下文渲染字符串。

这还不是防弹的。我仍然有一些关于字符串插值和奇怪输出的问题。例如,在某些地方,如果我的HAML是这样的:

        #content
          = fn(\'is_category\',\'web\') ? \'<div class=blue>\'
MtHaml将其编译为:

        <div id="content">
          {% line 31 %}{{ fn(\'is_category\',\'web\') ? \'<div class=blue>\' }}
它将`{%行31%}添加到其中。我不知道为什么,也不知道如何解决这个问题。

相关推荐

Updating modified templates

我想调整一些。php模板文件在我的WordPress主题中,我知道正确的过程是将相关文件复制到子主题文件夹中并在那里编辑文件,这样我的修改就不会在将来的主题更新中丢失。但这是否意味着我将无法从主题更新中获益,因为我将文件放在了我的子主题文件夹中?这可能不是一件好事,因为主题更新可能添加了一些有用的特性,甚至修复了我最初需要对代码进行调整的问题!这方面的常见解决方案是什么?有人推荐了一款Diff应用程序——这是人们常用的吗?