jekyll-archives icon indicating copy to clipboard operation
jekyll-archives copied to clipboard

String does not have #dig method (TypeError)

Open WCY-dt opened this issue 1 year ago • 2 comments

trace:

                    ------------------------------------------------
      Jekyll 4.3.4   Please append `--trace` to the `serve` command 
                     for any additional information or backtrace. 
                    ------------------------------------------------
C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-archives-2.3.0/lib/jekyll-archives/archive.rb:58:in `dig': String does not have #dig method (TypeError)

          @config.dig("layouts", type) || @config["layout"]
                      ^^^^^^^^^^^^^^^
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-archives-2.3.0/lib/jekyll-archives/archive.rb:58:in `layout'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-archives-2.3.0/lib/jekyll-archives/archive.rb:41:in `initialize'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-archives-2.3.0/lib/jekyll-archives.rb:64:in `new'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-archives-2.3.0/lib/jekyll-archives.rb:64:in `block in read_tags'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-archives-2.3.0/lib/jekyll-archives.rb:63:in `each'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-archives-2.3.0/lib/jekyll-archives.rb:63:in `read_tags'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-archives-2.3.0/lib/jekyll-archives.rb:56:in `read'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-archives-2.3.0/lib/jekyll-archives.rb:48:in `generate'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-4.3.4/lib/jekyll/site.rb:193:in `block in generate'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-4.3.4/lib/jekyll/site.rb:191:in `each'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-4.3.4/lib/jekyll/site.rb:191:in `generate'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-4.3.4/lib/jekyll/site.rb:79:in `process'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-4.3.4/lib/jekyll/command.rb:28:in `process_site'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-4.3.4/lib/jekyll/commands/build.rb:65:in `build'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-4.3.4/lib/jekyll/commands/build.rb:36:in `process'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-4.3.4/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-4.3.4/lib/jekyll/command.rb:91:in `each'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-4.3.4/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-4.3.4/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
        from C:/Users/83442/.local/share/gem/ruby/3.3.0/gems/jekyll-4.3.4/exe/jekyll:15:in `<top (required)>'
        from C:/Users/83442/AppData/Local/Microsoft/WindowsApps/jekyll:25:in `load'
        from C:/Users/83442/AppData/Local/Microsoft/WindowsApps/jekyll:25:in `<main>'

WCY-dt avatar Dec 07 '24 08:12 WCY-dt

Solved. I found that I had mistakenly written layout as layouts in the config file. Strangely, this worked fine in ruby ​​3.2. I upgraded ruby ​​to version 3.3 today and it went wrong.

WCY-dt avatar Dec 07 '24 08:12 WCY-dt

Hello @WCY-dt, I doubt the issue is in Ruby. Basically, the error message means that the top-level jekyll-archives config setting should be a hash of key-value pairs instead of a string. If layouts instead of layout throws that same error, then there is a bug that needs to be fixed. Do let us know if you can reproduce the bug again.

ashmaroli avatar Dec 08 '24 13:12 ashmaroli