我想查询SiteMap - 从每个页面获取任务列表 - 不幸的是,这是一个国际化的网站,它有几种语言
因此,下面重复系统中每种语言的任务。
- sitemap.resources.select { | r | r.data.todo.present? }.each do | data |
= data.request_path
基本上我只想获取一个区域设置的Sitemap - 但是不知道这个的语法
任何帮助表示赞赏
答案 0 :(得分:2)
我遇到了https://forum.middlemanapp.com/t/querying-proxy-pages-by-locals/1195。您可以使用以下内容过滤与当前区域设置匹配的页面:
sitemap.resources.select do |r|
r.metadata[:options][:lang] == I18n.locale &&
r.data.todo.present?
end
或者如果您需要遍历所有语言环境,可以使用以下内容:
(langs).each do |locale|
sitemap.resources.select do |r|
r.metadata[:options][:lang] == locale &&
r.data.todo.present?
end
end
答案 1 :(得分:1)
考虑使用middleman-blog来存储,分类和访问您的网页。
这样可以方便地过滤您的网页。未经测试的例子:
- blog.articles.select { | a | a.data.todo.present? && a.lang == I18n.locale }.each do | article |
= article.request_path
midman-blog扩展允许定义多个博客。这允许将其用作临时数据库适配器:博客是数据库表,帖子是数据库项。
考虑这个(config.rb
):
activate :blog do |blog|
blog.name = 'dev_en'
blog.sources = "blogs/development/{year}-{month}-{day}-{title}.html"
blog.permalink = "devblog/{title}.html"
blog.layout = :blog_article
end
activate :blog do |blog|
blog.name = 'dev_ru'
blog.sources = "ru/blogs/development/{year}-{month}-{day}-{title}.html"
blog.permalink = "ru/devblog/{title}.html"
blog.layout = :blog_article
end
我为不同的语言定义了两个博客。我可以像这样访问每个人:
- blog('dev_en').articles.select { | a | a.data.todo.present? }.each do | article |
= article.request_path