【问题标题】:Jekyll/Octopress: How can I use a tag inside a tagJekyll/Octopress:如何在标签内使用标签
【发布时间】:2014-05-17 20:24:18
【问题描述】:

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”]] %} %}

可以这样做吗?这样做的正确语法是什么?

【问题讨论】:

    标签: ruby jekyll octopress


    【解决方案1】:

    Jekyll/Octopress 使用 Liquid 模板来解析这些东西。

    据我所知,您不能在这样的标签中调用两个函数。但是,您可以在标签中指定变量名称:

    using Liquid variables inside of a liquid tag call

    我用谷歌搜索了一下,并没有看到任何弹出一个标签内调用两个函数的东西。

    IMO,我建议您创建一个自定义标签来完全按照您的意愿行事。我已经为 Octopress 创建了几个自定义插件,因为我需要这样的自定义。插件,就是 Ruby。很简单。

    所以,复制现有的 img_tag.rb 并调用它,mycustom_img_tag.rb 或其他,然后在 render() 方法中执行你的魔法。

    例如,这是我编写的 HTML5 音频播放器标签,我需要知道音频文件的扩展名(在 url 中指定)以指定内容类型:

    https://github.com/eduncan911/eduncan911.github.io/blob/b89f47cd86c37f2cfb5c3093612fe0a049808325/plugins/audio_tag.rb

    ^- 注意:它是不完整的,并且所有选项都不能按我指定的那样工作。你可以在 render() 部分看到什么是有效的,我只是手动解析 data-* 属性(我用完了时间并让它工作)。

    我基本上使用了另外两个插件作为模板并创建了这个。

    您可以访问插件中的整个 Octopress 方法和变量 - 对整个代码库没有任何限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-19
      • 1970-01-01
      • 2023-03-24
      • 2020-02-08
      • 2016-05-04
      相关资源
      最近更新 更多