jekyll-feed: Can't convert Hash into String. in feed.xml

I’m getting the following error

$ bundle exec jekyll serve --trace
Configuration file: /home/raniere/Public/rgaiacs.com/_config.yml
            Source: /home/raniere/Public/rgaiacs.com
       Destination: /home/raniere/Public/rgaiacs.com/_site
 Incremental build: disabled. Enable with --incremental
      Generating... 
  Liquid Exception: Can't convert Hash into String. in feed.xml
bundler: failed to load command: jekyll (/home/raniere/.gem/ruby/2.3.0/bin/jekyll)
TypeError: Can't convert Hash into String.
  /usr/lib/ruby/gems/2.4.0/gems/addressable-2.5.1/lib/addressable/uri.rb:103:in `rescue in parse'
  /usr/lib/ruby/gems/2.4.0/gems/addressable-2.5.1/lib/addressable/uri.rb:100:in `parse'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/filters/url_filters.rb:13:in `absolute_url'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/strainer.rb:56:in `invoke'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/context.rb:86:in `invoke'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/variable.rb:78:in `block in render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/variable.rb:76:in `each'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/variable.rb:76:in `inject'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/variable.rb:76:in `render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/tags/assign.rb:24:in `render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/block_body.rb:109:in `render_node'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/block_body.rb:88:in `block in render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/block_body.rb:75:in `each'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/block_body.rb:75:in `render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/tags/unless.rb:14:in `block in render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/context.rb:123:in `stack'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/tags/unless.rb:10:in `render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/block_body.rb:109:in `render_node'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/block_body.rb:88:in `block in render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/block_body.rb:75:in `each'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/block_body.rb:75:in `render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/tags/if.rb:44:in `block (2 levels) in render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/tags/if.rb:42:in `each'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/tags/if.rb:42:in `block in render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/context.rb:123:in `stack'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/tags/if.rb:41:in `render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/block_body.rb:109:in `render_node'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/block_body.rb:88:in `block in render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/block_body.rb:75:in `each'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/block_body.rb:75:in `render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/tags/for.rb:158:in `block (2 levels) in render_segment'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/tags/for.rb:156:in `each'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/tags/for.rb:156:in `each_with_index'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/tags/for.rb:156:in `block in render_segment'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/context.rb:123:in `stack'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/tags/for.rb:148:in `render_segment'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/tags/for.rb:77:in `render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/block_body.rb:109:in `render_node'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/block_body.rb:88:in `block in render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/block_body.rb:75:in `each'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/block_body.rb:75:in `render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/template.rb:208:in `block in render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/template.rb:242:in `with_profiling'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/template.rb:207:in `render'
  /usr/lib/ruby/gems/2.4.0/gems/liquid-4.0.0/lib/liquid/template.rb:220:in `render!'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/liquid_renderer/file.rb:28:in `block (2 levels) in render!'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/liquid_renderer/file.rb:40:in `measure_bytes'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/liquid_renderer/file.rb:27:in `block in render!'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/liquid_renderer/file.rb:47:in `measure_time'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/liquid_renderer/file.rb:26:in `render!'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/renderer.rb:123:in `render_liquid'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/renderer.rb:76:in `render_document'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/renderer.rb:62:in `run'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/site.rb:467:in `block in render_pages'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/site.rb:465:in `each'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/site.rb:465:in `render_pages'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/site.rb:195:in `render'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/site.rb:73:in `process'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/command.rb:26:in `process_site'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/commands/build.rb:63:in `build'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/commands/build.rb:34:in `process'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/commands/serve.rb:40:in `block (3 levels) in init_with_program'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/commands/serve.rb:40:in `each'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/lib/jekyll/commands/serve.rb:40:in `block (2 levels) in init_with_program'
  /home/raniere/.gem/ruby/2.4.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `block in execute'
  /home/raniere/.gem/ruby/2.4.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `each'
  /home/raniere/.gem/ruby/2.4.0/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `execute'
  /home/raniere/.gem/ruby/2.4.0/gems/mercenary-0.3.6/lib/mercenary/program.rb:42:in `go'
  /home/raniere/.gem/ruby/2.4.0/gems/mercenary-0.3.6/lib/mercenary.rb:19:in `program'
  /usr/lib/ruby/gems/2.4.0/gems/jekyll-3.5.0/exe/jekyll:13:in `<top (required)>'
  /home/raniere/.gem/ruby/2.3.0/bin/jekyll:23:in `load'
  /home/raniere/.gem/ruby/2.3.0/bin/jekyll:23:in `<top (required)>'

Let me know if I need to provide more information.

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 25 (9 by maintainers)

Most upvoted comments

It’s definitely possible to do it manually, the Python code is just to do it for a load of files quickly.

In each post’s header, we had something like this:

image:
   teaser: poc.png

I needed to change it to look like this:

image:
   teaser: poc.png
   path: /images/poc.png

@pathawks I resolved my issue, I was using variables that did not exist. ie

...
image:
  feature: image.png
...