如何在Jekyll中获取唯一团队属性并程序化分组展示成员?
Jekyll 按团队分组展示成员的实现方案
实现逻辑
无需调整现有文件结构,通过Liquid过滤器先提取唯一团队列表,再按团队筛选成员,新增团队或成员时自动适配,完全程序化。
完整代码示例
替换你原有的代码片段,使用以下Liquid代码即可实现需求:
{% assign unique_teams = site.people | map: 'team' | uniq | sort %} {% for team in unique_teams %} <h5>{{ team }}</h5> {% assign team_members = site.people | where: 'team', team %} {% for person in team_members %} <div class="member-card"> <img src="{{ person.image }}" alt="{{ person.name }}"> <h6>{{ person.name }}</h6> </div> {% endfor %} {% endfor %}
代码解析
site.people | map: 'team': 从所有成员的元数据中提取所有team字段值,生成包含重复团队名的数组| uniq: 去重处理,得到唯一的团队名称列表| sort: 对团队名称进行排序(可选,不需要可直接移除该过滤器)site.people | where: 'team', team: 精准筛选当前团队下的所有成员,比嵌套循环加条件判断更高效简洁
注意事项
- 确保所有成员md文件的
team字段拼写统一(大小写、空格需一致,避免出现"Design Team"和"design team"这种区分大小写的不一致情况) - 若需隐藏特定成员,可在对应md文件中添加
published: false,Jekyll会自动跳过该文件的渲染
内容的提问来源于stack exchange,提问作者Sebastian Southwell
相关产品推荐
相关产品推荐

