ruby - 从 Markdown 文件中对前面的内容进行排序

标签 ruby jekyll liquid

我对 jekyll 还很陌生,但我真的很喜欢你可以用它做的事情,以及部署的速度。

所以,我的网站是使用 siteleaf 进行管理并部署到 github 页面的。现在,我正在努力构建页面来展示我过去的项目,并且我需要能够创建动态内容 - 能够添加具有相同名称的多个元字段,即多个名为 center_imagetext_block 我可以根据创建页面的管理面板/markdown 文件中的排序顺序显示它们。这是我到目前为止编写的代码,它当前正确显示内容,但它不允许我 1. 对同一元字段进行多次迭代或 2. 动态对内容进行排序。

{% for photo in page.project_content.full_width_image %}
<div class="fullwidth-image content-block">
  <img src="{{ photo }}">
</div>
{% endfor %}

{% for photo in page.project_content.center_image %}
<div class="center-image content-block">
<img src="{{ photo }}">
</div>
{% endfor %}

{% for photo in page.project_content.split_left_image %}
<div class="split-image-left content-block">
<img src="{{ photo }}">
</div>
{% endfor %}

{% for photo in page.project_content.split_right_image %}
<div class="split-image-right content-block">
<img src="{{ photo }}">
</div>
{% endfor %}

{% for content in page.project_content.text_content %}
<div class="text-block content-block">
  {{ content | markdownify }}
</div>
{% endfor %} 

所以,总而言之,我需要能够对这些内容进行排序,并且还包括相同内容类型的多次迭代。有人有什么想法吗?

谢谢! 杰西

最佳答案

联系支持人员后,我发现了以下内容。

首先,我需要将 YAML 前面的内容从关键字段更改为对象字段。这会创建一个内容数组,如下所示

project_content:
- type: full-width-image
  image: "/uploads/hero.jpg"
- type: text
  body: This is another test content block.
- type: text
  body: text two. 

然后,我的标记就像这样......

{% for block in project.content %}
  {% case block.type %}
  {% when 'full_width_image' %}
    <img src="{{ block.image }}">
  {% when 'text' %}
    {{ block.text | markdownify }}
  {% endcase %}
{% endfor %}

我的输出变成:

<div class="full-width-image content-block">
  <img src="/uploads/hero.jpg">
</div>

<div class="text content-block">
  <p>This is another test content block.</p>
</div>

<div class="text content-block">    
  <p>text two.</p>
</div>

这正是我需要做的,我可以更改我的 siteleaf 管理中项目的排序顺序!

关于ruby - 从 Markdown 文件中对前面的内容进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46825332/

相关文章:

ruby-on-rails - 如何迭代此 Ruby 代码以便我可以在 map 上动态显示标记?

ruby - Jekyll 中每篇博文的两个版本

html - webkit-scrollbar 在 iOS safari 中留下轨迹线

Shopify:我如何查看购物车中的产品是否具有特定标签

liquid - 扩展 Jekyll 和 Liquid 来解析帖子内容

ruby-on-rails - 像这样 a = b = c = d = 5 分配多个变量是否正确?

ruby - 在 ruby​​ 中,self.method 和类 << self 中的方法有什么区别

ruby-on-rails - 保存图表失败!验证 Graphviz 是否已安装并位于您的路径中,或使用 filetype=dot

twitter-bootstrap - 样式表不适用于 Jekyll 主题 Freelancer bootstrap

html - 使用 Jekyll 创建自定义主页