在Jekyll
/ Octopress
中,如何将标记的输出放在另一个标记内?
这就是我想要做的事情(使用Octopress的img
标签):
{% img {% PluginThatOutputsAURL %} %}
如果我这样做,我会收到此错误:
Error processing input, expected syntax: {% img [class name(s)] [http[s]:/]/path/to/image [width [height]] [title text | “title text” [“alt text”]] %} %}
有可能这样做吗?这样做的正确语法是什么?
答案 0 :(得分:0)
Jekyll / Octopress使用Liquid Templates来解析这些东西。
据我所知,你不能在这样的标签中调用两个函数。但是,您可以在标记中指定变量名称:
using Liquid variables inside of a liquid tag call
我尝试了谷歌搜索,并没有看到任何弹出来调用一个标签内的两个函数。
IMO,我建议您创建一个自定义标签,以完全按照您的意愿行事。我已经为Octopress创建了几个自定义插件,因为我需要这样的自定义。插件,只是Ruby。非常直接。
所以,复制现有的img_tag.rb并调用它,mycustom_img_tag.rb等等,然后在render()方法中执行你的魔法。
例如,这里是我写的HTML5音频播放器标签,我需要知道音频文件的扩展名(在网址中指定)以指定内容类型:
^ - 注意:它不完整,所有选项都不像我指定的那样工作。你可以在render()部分看到什么有用,我只是手动解析data- *属性(我跑出去的时候只是让它工作)。
我基本上使用了另外两个插件作为模板并创建了这个插件。
您可以访问插件中的整个Octopress方法和变量 - 对整个代码库没有任何限制。