octopress-tagcloud icon indicating copy to clipboard operation
octopress-tagcloud copied to clipboard

Liquid error: undefined method `+' for nil:NilClass

Open kvz opened this issue 12 years ago • 7 comments

I followed the instructions but instead of showing a category list with

<section>
  <h1>Categories</h1>
    <ul id="category-list">{% category_list counter:true %}</ul>
</section>

it returns:

Liquid error: undefined method `+' for nil:NilClass

any idea what could be the problem?

kvz avatar Oct 02 '12 01:10 kvz

I had a same error with different situation when I marked up with liquid. Could you try to set categories as an array in YAML front matter like below.

---
layout: post
categories: [Ruby]
---

tokkonopapa avatar Oct 02 '12 15:10 tokkonopapa

Unfortunately, I could not reproduce the error and also find a bug.

tokkonopapa avatar Oct 10 '12 12:10 tokkonopapa

This is caused when you do not have categories in the front matter of a page it seems

JakeGinnivan avatar Jan 05 '14 18:01 JakeGinnivan

@JakeGinnivan Thank you for following up this issue. I will check.

tokkonopapa avatar Jan 07 '14 00:01 tokkonopapa

I am also getting the same error when doing rake generate.

I am using Octopress 2.0 without any modification: uses liquid 2.3.0 and jekyll 0.12

Oh, and I get the same error whether I list the categories in posts as

categories:
- abc
- def

or

categories: [abc, def]

Error log:

Configuration from /home/kmodi/octopress/_config.yml
Building site: source -> public
Liquid Exception: undefined method `+' for nil:NilClass in default
/home/kmodi/octopress/plugins/tag_cloud.rb:64:in `render'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/block.rb:94:in `block in render_all'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/block.rb:92:in `collect'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/block.rb:92:in `render_all'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/block.rb:82:in `render'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/template.rb:124:in `render'
/home/kmodi/gems/gems/jekyll-0.12.0/lib/jekyll/tags/include.rb:26:in `block (2 levels) in render'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/context.rb:91:in `stack'
/home/kmodi/gems/gems/jekyll-0.12.0/lib/jekyll/tags/include.rb:25:in `block in render'
/home/kmodi/gems/gems/jekyll-0.12.0/lib/jekyll/tags/include.rb:20:in `chdir'
/home/kmodi/gems/gems/jekyll-0.12.0/lib/jekyll/tags/include.rb:20:in `render'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/block.rb:94:in `block in render_all'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/block.rb:92:in `collect'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/block.rb:92:in `render_all'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/block.rb:82:in `render'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/template.rb:124:in `render'
/home/kmodi/gems/gems/jekyll-0.12.0/lib/jekyll/tags/include.rb:26:in `block (2 levels) in render'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/context.rb:91:in `stack'
/home/kmodi/gems/gems/jekyll-0.12.0/lib/jekyll/tags/include.rb:25:in `block in render'
/home/kmodi/gems/gems/jekyll-0.12.0/lib/jekyll/tags/include.rb:20:in `chdir'
/home/kmodi/gems/gems/jekyll-0.12.0/lib/jekyll/tags/include.rb:20:in `render'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/block.rb:94:in `block in render_all'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/block.rb:92:in `collect'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/block.rb:92:in `render_all'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/block.rb:82:in `render'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/template.rb:124:in `render'
/home/kmodi/gems/gems/jekyll-0.12.0/lib/jekyll/tags/include.rb:26:in `block (2 levels) in render'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/context.rb:91:in `stack'
/home/kmodi/gems/gems/jekyll-0.12.0/lib/jekyll/tags/include.rb:25:in `block in render'
/home/kmodi/gems/gems/jekyll-0.12.0/lib/jekyll/tags/include.rb:20:in `chdir'
/home/kmodi/gems/gems/jekyll-0.12.0/lib/jekyll/tags/include.rb:20:in `render'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/block.rb:94:in `block in render_all'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/block.rb:92:in `collect'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/block.rb:92:in `render_all'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/block.rb:82:in `render'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/template.rb:124:in `render'
/home/kmodi/gems/gems/liquid-2.3.0/lib/liquid/template.rb:132:in `render!'
/home/kmodi/gems/gems/jekyll-0.12.0/lib/jekyll/convertible.rb:101:in `do_layout'

kaushalmodi avatar Mar 12 '14 18:03 kaushalmodi

Found the fix!! The root: variable in _config.yml was left blank. After making it root: / (note the added forward slash), that error went away.

This line category_dir = config['root'] + config['category_dir'] + '/' in tag_cloud.rb was causing problem as config['root'] was null.

kaushalmodi avatar Mar 12 '14 19:03 kaushalmodi

@kaushalmodi, thank you very very much!! Could you test branch issue4 ?

tokkonopapa avatar Mar 21 '14 17:03 tokkonopapa