【发布时间】:2019-02-01 17:37:40
【问题描述】:
我正在使用 Middleman 创建一个静态网站,引用从电子表格解析的产品。
我的表有这些列:
_________________________________
| Product Name | Price | Category |
| Pet Food | $12 | Pets |
| iPhone | $500 | Phone |
| Pet toy | $25 | Pets |
|______________|_______|__________|
我使用名为product_category.html 的模板创建了显示Pets 和Phone 类别中所有产品的页面。它为每个独特的类别创建一个页面,例如。 pets.html 和 phone.html。
问题在于,考虑到我的操作方式,Middleman 为类别中的每个产品构建一个类别页面,然后因为相同而跳过它:
remote: create build/pets.html
remote: identical build/pets.html
remote: create build/iphone.html
这是我的 config.rb 示例:
rows_by_categories = app.data.spreadsheet.sheet1.group_by { |row| row.category }
#Category Landings
app.data.spreadsheet.sheet1.each do |f|
proxy "/#{f.category.to_s.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')}.html", "/product_category.html", locals: {
f: {
categorytitle: f.category,
name: f.name,
all_in_category: rows_by_categories[f.category],
price: f.selling_price,
},
categories: rows_by_categories.keys,
}, ignore: true
end
我了解循环在我的电子表格的每一行上进行迭代,并为相应的类别重新创建一个页面。然而,我给的几次尝试,例如。将app.data.spreadsheet.sheet1.each do |f| 修改为rows_by_categories.each do |f| 不成功。有什么线索吗?
【问题讨论】:
-
似乎您需要按类别对它们进行分组,然后遍历这些组。不熟悉
Middleman或者我会尝试通过代码而不是轶事 cmets 提供帮助 -
这确实是我想要实现的目标。试图用一个简单的数组、一个按类别对数组分组的哈希,然后是一个循环来进行概念验证。它有效,但我无法将相同的逻辑应用于中间人。
标签: ruby middleman middleman-4