Jekyll模板/剪贴画/快捷方式

Jekyll模板/剪贴画/快捷方式,jekyll,liquid,jekyll-extensions,Jekyll,Liquid,Jekyll Extensions,我已经和Jekyll玩了几天了,我有一个工作网站,但在很多页面上,我想使用模板/snippits/shortcuts,以便于重复使用常用类型的内容 在MediaWiki中,我会这么做 This is a test {{ iconSmileFace }} 其中,{{iconSmileFace}}显然翻译成类似于 我已经看到Jekyll有include,所以我可以做{{%include iconSmileFace.html%},但是这个语法看起来有点冗长,可能不是Jekyll的做事方式。还有其他更

我已经和Jekyll玩了几天了,我有一个工作网站,但在很多页面上,我想使用模板/snippits/shortcuts,以便于重复使用常用类型的内容

在MediaWiki中,我会这么做

This is a test {{ iconSmileFace }}
其中,
{{iconSmileFace}}
显然翻译成类似于


我已经看到Jekyll有include,所以我可以做
{{%include iconSmileFace.html%}
,但是这个语法看起来有点冗长,可能不是Jekyll的做事方式。还有其他更好的方法吗?

一个好主意是定义一个

创建
\u plugins
目录和名为
smile.rb
的文件,其中包含以下内容:

module Jekyll
  class RenderSmileTag < Liquid::Tag

    def render(context)
      '<img src = "resources/images/smile.png" />'
    end
  end
end

Liquid::Template.register_tag('smile', Jekyll::RenderSmileTag)
模块杰基尔
类RenderSmileTag

然后每次你想要渲染图像时,只要使用:
{%smile%}
,它就会生成

一个好主意是定义一个

创建
\u plugins
目录和名为
smile.rb
的文件,其中包含以下内容:

module Jekyll
  class RenderSmileTag < Liquid::Tag

    def render(context)
      '<img src = "resources/images/smile.png" />'
    end
  end
end

Liquid::Template.register_tag('smile', Jekyll::RenderSmileTag)
模块杰基尔
类RenderSmileTag

然后,每次您想要渲染图像时,只需使用:
{%smile%}
,它将生成

如果您想使用快捷方式输出图像标记,则GitHub Pages支持的插件还有另一种方法:

(尽管我自己还没有测试过)

从插件
jemoji
,您可以通过指向
\u config.yml
中的自定义源来提供自定义表情:

emoji
  src: "/resources/images"
然后在降价文档中引用表情符号:

It's a beautiful day! :smile:

如果您的目的是使用快捷方式输出图像标记,那么GitHub Pages支持的插件还有另一种方法:

(尽管我自己还没有测试过)

从插件
jemoji
,您可以通过指向
\u config.yml
中的自定义源来提供自定义表情:

emoji
  src: "/resources/images"
然后在降价文档中引用表情符号:

It's a beautiful day! :smile:

我将创建一个代码段来保存我的所有图标,无论它们是图像、SVG还是字体图标:

{% case include.icon %}
{% when 'smiley-face' %}
  Smiley face
{% when 'heart' %}
  Heart
{% when 'close' %}
  X
{% when 'next' %}
  >
{% endcase %}

然后将其包含在您需要的位置
{%include icon.html icon=“smiley face”%}
我将创建一个代码段来保存我的所有图标,无论它们是图像、SVG还是字体图标:

{% case include.icon %}
{% when 'smiley-face' %}
  Smiley face
{% when 'heart' %}
  Heart
{% when 'close' %}
  X
{% when 'next' %}
  >
{% endcase %}

然后在需要的地方包含它
{%include icon.html icon=“smiley face”%}

这是一个优雅的解决方案,但不幸的是,我想做的不仅仅是微笑。这是一个优雅的解决方案,但不幸的是,我想做的不仅仅是微笑。我觉得这个解决方案太过分了——必须为每个实例纠正大量的样板ruby代码对我来说是行不通的。我觉得这个解决方案太过分了——必须为每个实例纠正大量样板ruby代码对我来说是行不通的。这是最接近实际的解决方案我使用的解决方案。我使用了
{%include iconSmile.htm%}
类似的语法,因为每次输入都比较短。我犯了一个小小的错误,因为上下文是jekyll,它应该是
{%case include.icon%}
@xconspirisist我觉得有你的语法很好,不过我并不喜欢每个图标都有一个文件。因为它们会被频繁使用,我认为减少键入量更重要,这就是为什么理想情况下我会喜欢像
{{iconSmileFace}}
这样的东西,这就是我选择上述选项的原因。我考虑过
\u includes/
中有大量的小文件,但由于该站点是静态编译的,因此对浏览该站点的用户没有性能影响,这就是为什么我认为它是可以接受的。这与我使用的解决方案最接近。我使用了
{%include iconSmile.htm%}
类似的语法,因为每次输入都比较短。我犯了一个小小的错误,因为上下文是jekyll,它应该是
{%case include.icon%}
@xconspirisist我觉得有你的语法很好,不过我并不喜欢每个图标都有一个文件。因为它们会被频繁使用,我认为减少键入量更重要,这就是为什么理想情况下我会喜欢像
{{iconSmileFace}}
这样的东西,这就是我选择上述选项的原因。我考虑过
\u includes/
中有大量的小文件,但由于该站点是静态编译的,因此对浏览该站点的用户没有性能影响,这就是为什么我认为它是可以接受的。