【发布时间】:2021-10-14 20:58:24
【问题描述】:
我尝试编写一个视图助手,以原始格式输出流畅的标记(用于开发人员的展示目的)。
我想做这样的事情:
<f:showcase>
<p>
<f:link.page pageUid="1">Link</f:link.page>
</p>
</f:showcase>
应该输出渲染版本和原始输入
所需的 viewhelper 输出:
Raw:
<pre class="showcase">
<p>
<f:link.page pageUid="1">Link</f:link.page>
</p>
</pre>
</pre>
Output:
<p>
<a href="/site">Link</a>
</p>
似乎不可能避免某些节点的子标记被流体渲染。以前有人这样做过还是我只是错过了一些非常明显的选择来实现这一点?
我找到了一些关于“passthrough”/{parsing off} 的资源,但是以纯基于文件的方法解决这个问题并将所有代码示例/sn-ps 移动到单独的部分不是我的选择。
viewhelpers 中是否有一些 API 可以访问传递给它的实际源内容?我找不到任何...
另外,理论上我可以传入非流体标记并在 viewhelper 内生成流体 sn-p,但这将是一个非常肮脏的解决方法......类似于以下内容:
<f:showcase>
<p>
<f::link.page pageUid="1">Link</f::link.page>
</p>
</f:showcase>
更新:由于流体的基于文件的模板处理,这似乎是不可能的。在已编译的模板中没有可用的实际 src 引用,唯一的解决方案是将每个 sn-p 移动到单独的部分并完全禁用该部分的流体解析。
所以我在typo3fluid 项目中打开了一个问题: https://github.com/TYPO3/Fluid/issues/557
我希望它得到一些关注,所以这可能在未来的某个时候成为可能。
【问题讨论】:
-
不确定这是否有帮助,但您是否尝试过
ViewHelper? -
是的,它仍然解析节点内容。不过还是谢谢你