【问题标题】:Jekyll for a portfolio using data, collections, etcJekyll 用于使用数据、集合等的投资组合
【发布时间】:2014-07-02 03:26:27
【问题描述】:

我正在使用 Jekyll 构建一个展示我的设计作品的作品集。我对是否应该使用“数据”文件 (yml) 并循环浏览模板上的内容或使用“集合”感到困惑。

我的内容结构如下:

主页:

  • 特色项目
  • 客户端英雄 1
  • 客户端英雄 2
  • 客户端英雄 3
  • 客户端英雄 4
  • 客户端英雄 5

所有这些链接都指向它们各自的“客户”页面,在该页面中,我将为所有案例研究提供相同格式的 jpg 格式的图像。

我很困惑如何最好地使用数据、集合等来构建我的网站,同时保持尽可能高效的更新。

我当前的解决方案使用 _data/projects.yml 我为 5 个客户定义的地方:

  • 类别:音高
  • 描述:“Lorem Ipsum Dolar Erat”
  • 标题:“客户约翰·史密斯”
  • 简称:“约翰-史密斯”
  • 发布:假
  • 精选:真实

所有这些都循环播放并出现在主页上。现在,我可以自己创建每个帖子并手动添加内容,但我相信有更好的方法。如何使用集合和/或多个单独的项目数据文件来最好地解决这个问题?

我的想法是在 yml 或数据文件中为每个单独的客户定义内容,并有 10 张图像,编号为 1 到 10,自动从 /client name/ 引入到客户端布局中。

【问题讨论】:

标签: jekyll portfolio


【解决方案1】:
  1. collection 是测试版,因此尚未准备好生产。只是不要使用它们,因为它们可能会在没有通知的情况下损坏。
  2. data 不会创建页面,如果您想从页面/帖子中引用数据文件,则必须循环以获取 site.data.client 之间的匹配和 page.client 或 post.client。这是一个选项,但您将在页面/帖子和数据文件中拥有数据。 到处都是。
  3. 使用前端自定义变量创建页面/帖子可确保您在同一位置获取所有数据。而且您可以轻松循环页面/帖子变量以完成工作。

我更喜欢 #3 并且在任何 client/clientName.html 中我个人都会这样做:

---
category: Pitch
description: "Lorem Ipsum Dolar Erat"
title: "Client John Smith"
shortname: "john-smith"
publish: false
featured: true
img:
    - img-02.jpg
    - img-03.jpg
---
{% include _client.html %}

就是这样:都在同一个地方。 在主页上,您可以循环使用:

{% for page in site.pages %}
    {% if page.category == 'Pitch' and page.featured = 'true' %}

并且还循环遍历 page/post.img

我们的想法是让所有人都在同一个地方。但这完全取决于您。

杰基尔快乐!

【讨论】:

  • 好主意。我想太多解决方案了。需要明确的是,您是在为每个具有适当元数据的客户端建议一个单独的 client.html?包含是为了什么?我不会使用 layout:client 吗?
  • 是的,每个客户一页。包括 _includes/_client.html。布局负责整个页面结构。如果生成的内容需要特殊的页面结构,请使用另一种布局。如果没有,请使用包含这避免不必要的代码重复。
  • 我遵循了答案-效果很好。我没有得到的一件事是用于 clientName.html 文件的 YAML。我包括 _client.html 但“布局”不呈现。我是否需要在我的 config.yml 中“包含”“clients”文件夹才能将其呈现为 jekyll 标记?我不确定我错过了什么。
猜你喜欢
  • 1970-01-01
  • 2021-12-18
  • 2021-04-22
  • 2011-11-16
  • 1970-01-01
  • 1970-01-01
  • 2014-09-16
  • 1970-01-01
  • 2022-11-18
相关资源
最近更新 更多