我对 jekyll 还很陌生,但我真的很喜欢你可以用它做的事情,以及部署的速度。
所以,我的网站是使用 siteleaf 进行管理并部署到 github 页面的。现在,我正在努力构建页面来展示我过去的项目,并且我需要能够创建动态内容 - 能够添加具有相同名称的多个元字段,即多个名为 center_image
或 text_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/