avillafiorita / jekyll-datapage_gen

Generate one page per yaml record in Jekyll sites.
369 stars 80 forks source link

Filter nested values #45

Closed bzmillerboy closed 4 years ago

bzmillerboy commented 6 years ago

I'm attempting to filter based on a category however my category slug is nested under category within my yaml data.

This line does not seem to work: filter_condition: "record['category.slug'] == 'breaking-news'"

avillafiorita commented 5 years ago

Sorry I took ages before I answered your question.

The correct syntax is:

filter_condition: "record['category']['slug'] == 'breaking-news'"

let me know if it works (if still relevant).

kslstn commented 11 months ago

Thanks for showing that example. It works in my setup too, except when a data entry doesn't have that property:

Traceback (most recent call last):
        27: from /Users/koos/.rvm/gems/ruby-2.7.3/bin/ruby_executable_hooks:22:in `<main>'
        26: from /Users/koos/.rvm/gems/ruby-2.7.3/bin/ruby_executable_hooks:22:in `eval'
        25: from /Users/koos/.rvm/gems/ruby-2.7.3/bin/jekyll:23:in `<main>'
        24: from /Users/koos/.rvm/gems/ruby-2.7.3/bin/jekyll:23:in `load'
        23: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/jekyll-4.3.2/exe/jekyll:15:in `<top (required)>'
        22: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
        21: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
        20: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
        19: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
        18: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
        17: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/jekyll-4.3.2/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program'
        16: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/jekyll-4.3.2/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
        15: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/jekyll-4.3.2/lib/jekyll/command.rb:91:in `each'
        14: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/jekyll-4.3.2/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
        13: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/jekyll-4.3.2/lib/jekyll/commands/build.rb:36:in `process'
        12: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/jekyll-4.3.2/lib/jekyll/commands/build.rb:65:in `build'
        11: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/jekyll-4.3.2/lib/jekyll/command.rb:28:in `process_site'
        10: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/jekyll-4.3.2/lib/jekyll/site.rb:79:in `process'
         9: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/jekyll-4.3.2/lib/jekyll/site.rb:191:in `generate'
         8: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/jekyll-4.3.2/lib/jekyll/site.rb:191:in `each'
         7: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/jekyll-4.3.2/lib/jekyll/site.rb:193:in `block in generate'
         6: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/jekyll-datapage-generator-1.4.0/lib/jekyll-datapage-generator.rb:142:in `generate'
         5: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/jekyll-datapage-generator-1.4.0/lib/jekyll-datapage-generator.rb:142:in `each'
         4: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/jekyll-datapage-generator-1.4.0/lib/jekyll-datapage-generator.rb:176:in `block in generate'
         3: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/jekyll-datapage-generator-1.4.0/lib/jekyll-datapage-generator.rb:176:in `select'
         2: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/jekyll-datapage-generator-1.4.0/lib/jekyll-datapage-generator.rb:176:in `block (2 levels) in generate'
         1: from /Users/koos/.rvm/gems/ruby-2.7.3/gems/jekyll-datapage-generator-1.4.0/lib/jekyll-datapage-generator.rb:176:in `eval'
(eval):1:in `block (2 levels) in generate': undefined method `[]' for nil:NilClass (NoMethodError)