Search code examples
jekyllliquid

Error running Jekyll with --safe: Liquid Exception: undefined method `map' for "/portfolio":String


I'm currently in the process of migrating a Jekyll blog to a new theme and am now running into issues while pushing my site to GitHub pages and running the Jekyll site with the --safe flag.

Right now, the Jekyll site runs perfectly fine locally but I started hitting issues when pushing up to GitHub pages.

As a debugging measure, I read to ensure the Jekyll site runs without issues with the --safe flag which it does not.

However, I'm not exactly sure what the issue is here. Here's my output running it with bundle exec jekyll serve --safe --trace --verbose:

         Rendering: portfolio/index.md
  Pre-Render Hooks: portfolio/index.md
  Rendering Markup: portfolio/index.md
  Rendering Layout: portfolio/index.md
     Layout source: site
  Liquid Exception: undefined method `map' for "/portfolio":String Did you mean? tap in /_layouts/portfolio.html
/Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/filters.rb:303:in `sort_input': undefined method `map' for "/portfolio":String (NoMethodError)
Did you mean?  tap
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/filters.rb:243:in `sort'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/liquid-4.0.3/lib/liquid/strainer.rb:56:in `invoke'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/liquid-4.0.3/lib/liquid/context.rb:86:in `invoke'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/liquid-4.0.3/lib/liquid/variable.rb:84:in `block in render'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/liquid-4.0.3/lib/liquid/variable.rb:82:in `each'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/liquid-4.0.3/lib/liquid/variable.rb:82:in `inject'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/liquid-4.0.3/lib/liquid/variable.rb:82:in `render'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/liquid-4.0.3/lib/liquid/tags/assign.rb:26:in `render'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/liquid-4.0.3/lib/liquid/block_body.rb:103:in `render_node_to_output'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/liquid-4.0.3/lib/liquid/block_body.rb:91:in `render'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/liquid-4.0.3/lib/liquid/template.rb:208:in `block in render'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/liquid-4.0.3/lib/liquid/template.rb:242:in `with_profiling'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/liquid-4.0.3/lib/liquid/template.rb:207:in `render'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/liquid-4.0.3/lib/liquid/template.rb:220:in `render!'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/liquid_renderer/file.rb:30:in `block (2 levels) in render!'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/liquid_renderer/file.rb:42:in `measure_bytes'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/liquid_renderer/file.rb:29:in `block in render!'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/liquid_renderer/file.rb:49:in `measure_time'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/liquid_renderer/file.rb:28:in `render!'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/renderer.rb:126:in `render_liquid'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/renderer.rb:195:in `render_layout'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/renderer.rb:158:in `place_in_layouts'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/renderer.rb:88:in `render_document'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/renderer.rb:62:in `run'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/site.rb:479:in `render_regenerated'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/site.rb:472:in `block in render_pages'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/site.rb:471:in `each'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/site.rb:471:in `render_pages'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/site.rb:192:in `render'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/site.rb:71:in `process'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/command.rb:28:in `process_site'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/commands/build.rb:65:in `build'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/commands/build.rb:36:in `process'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/commands/serve.rb:93:in `block in start'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/commands/serve.rb:93:in `each'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/commands/serve.rb:93:in `start'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/lib/jekyll/commands/serve.rb:75:in `block (2 levels) in init_with_program'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `block in execute'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `each'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `execute'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/mercenary-0.3.6/lib/mercenary/program.rb:42:in `go'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/mercenary-0.3.6/lib/mercenary.rb:19:in `program'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/gems/jekyll-3.8.7/exe/jekyll:15:in `<top (required)>'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/bin/jekyll:23:in `load'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/bin/jekyll:23:in `<main>'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/bin/ruby_executable_hooks:24:in `eval'
    from /Users/adammorgan/.rvm/gems/ruby-2.4.9/bin/ruby_executable_hooks:24:in `<main>'

Reading that trace, I understand the issue is happening here but I'm not exactly sure how to fix this? (repo link)

Any ideas?


Solution

  • I finally got this working but I took a different approach rather than solving the --safe flag issue.

    Instead, I now have two branches. One is for normal Jekyll development locally and the other is for pushing to GitHub pages (only the _site directory).

    The entire process for that is outlined here.