nhoizey / jekyll-postfiles

A Jekyll plugin that copies static files from the _posts to the _site folder
http://nhoizey.github.io/jekyll-postfiles/
MIT License
124 stars 16 forks source link

generating failed with a lowercased pdf extension (.pdf) #29

Open phoenixwu opened 5 years ago

phoenixwu commented 5 years ago

cannot work with a lowercased extension pdf file(.pdf), such as: _posts/2019-06-02-ttt2/xxx.pdf Jekyll Feed: Generating feed for posts Liquid Exception: undefined method to_liquid' for #<Pathname:xxx.pdf> in sitemap.xml Error: undefined methodto_liquid' for # Error: Run jekyll build --trace for more information.

but it works fine if I changed the extension into uppercase PDF(.PDF):

Regenerating: 1 file(s) changed at 2019-06-10 15:41:30 _posts/2019-06-02-ttt2/xxx.PDF Jekyll Feed: Generating feed for posts ...done in 4.171719 seconds.

phoenixwu commented 5 years ago

Today I found some .doc files have the same issue, I must uppercase the extension to .DOC to make jekyll-postfiles to recognize it. Some .doc files works fine but some can't. I think maybe it's because of the filename pattern, Chinese characters or something?

In order to keep things going, I just try to disable the gem 'jekyll-sitemap' in Gemfile, and this weird issue is gone! 😕 I think this is not the root cause, but since I'm using jekyll in my local LAN only, so I don't really need the sitemap.xml in my case.

mohkale commented 4 years ago

I just tried it and I can include pdf files fine. I've also got jekyll-sitemap so if that is the issue, then it's not uniquely for lowecase file extensions. Can you try running and posting with --trace and posting the exception stack?

meganmakela commented 3 years ago

Been a while, but I also encounter this problem (and same 'patch' of using uppercase for the extension resolves it). I ran the build with --trace and got:

meganmakela@Megans-MacBook-Pro meganmakela.github.io % bundle exec jekyll build --trace Configuration file: /Users/meganmakela/Documents/Projects/meganmakela.github.io/_config.yml Source: /Users/meganmakela/Documents/Projects/meganmakela.github.io Destination: /Users/meganmakela/Documents/Projects/meganmakela.github.io/_site Incremental build: disabled. Enable with --incremental Generating... Jekyll Feed: Generating feed for posts Liquid Exception: undefined method to_liquid' for #<Pathname:2019_SVT.pdf> in sitemap.xml bundler: failed to load command: jekyll (/usr/local/lib/ruby/gems/3.0.0/bin/jekyll) /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/variable_lookup.rb:49:inblock in evaluate': undefined method to_liquid' for #<Pathname:2019_SVT.pdf> (NoMethodError) from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/variable_lookup.rb:38:ineach_index' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/variable_lookup.rb:38:in evaluate' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/context.rb:159:inevaluate' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/condition.rb:116:in interpret_condition' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/condition.rb:47:inblock in evaluate' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/condition.rb:46:in loop' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/condition.rb:46:inevaluate' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/filters.rb:220:in block (2 levels) in where_exp' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/filters.rb:218:inselect' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/filters.rb:218:in block in where_exp' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/context.rb:123:instack' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/filters.rb:217:in where_exp' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/strainer.rb:56:ininvoke' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/context.rb:86:in invoke' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/variable.rb:84:inblock in render' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/variable.rb:82:in each' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/variable.rb:82:ininject' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/variable.rb:82:in render' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/tags/assign.rb:26:inrender' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/block_body.rb:103:in render_node_to_output' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/block_body.rb:91:inrender' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/template.rb:208:in block in render' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/template.rb:242:inwith_profiling' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/template.rb:207:in render' from /Users/meganmakela/.gem/ruby/3.0.0/gems/liquid-4.0.3/lib/liquid/template.rb:220:inrender!' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/liquid_renderer/file.rb:39:in block (3 levels) in render!' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/liquid_renderer/file.rb:59:inmeasure_counts' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/liquid_renderer/file.rb:38:in block (2 levels) in render!' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/liquid_renderer/file.rb:63:inmeasure_bytes' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/liquid_renderer/file.rb:37:in block in render!' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/liquid_renderer/file.rb:70:inmeasure_time' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/liquid_renderer/file.rb:36:in render!' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/renderer.rb:127:inrender_liquid' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/renderer.rb:80:in render_document' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/renderer.rb:63:inrun' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/site.rb:532:in render_regenerated' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/site.rb:524:inblock in render_pages' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/site.rb:523:in each' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/site.rb:523:inrender_pages' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/site.rb:208:in render' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/site.rb:80:inprocess' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/command.rb:28:in process_site' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/commands/build.rb:65:inbuild' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/commands/build.rb:36:in process' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/command.rb:91:inblock in process_with_graceful_fail' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/command.rb:91:in each' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/command.rb:91:inprocess_with_graceful_fail' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/lib/jekyll/commands/build.rb:18:in block (2 levels) in init_with_program' from /Users/meganmakela/.gem/ruby/3.0.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:inblock in execute' from /Users/meganmakela/.gem/ruby/3.0.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in each' from /Users/meganmakela/.gem/ruby/3.0.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:inexecute' from /Users/meganmakela/.gem/ruby/3.0.0/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in go' from /Users/meganmakela/.gem/ruby/3.0.0/gems/mercenary-0.4.0/lib/mercenary.rb:21:inprogram' from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.1.1/exe/jekyll:15:in <top (required)>' from /usr/local/lib/ruby/gems/3.0.0/bin/jekyll:23:inload' from /usr/local/lib/ruby/gems/3.0.0/bin/jekyll:23:in <top (required)>' from /Users/meganmakela/.gem/ruby/3.0.0/gems/bundler-2.2.6/lib/bundler/cli/exec.rb:63:inload' from /Users/meganmakela/.gem/ruby/3.0.0/gems/bundler-2.2.6/lib/bundler/cli/exec.rb:63:in kernel_load' from /Users/meganmakela/.gem/ruby/3.0.0/gems/bundler-2.2.6/lib/bundler/cli/exec.rb:28:inrun' from /Users/meganmakela/.gem/ruby/3.0.0/gems/bundler-2.2.6/lib/bundler/cli.rb:494:in exec' from /Users/meganmakela/.gem/ruby/3.0.0/gems/bundler-2.2.6/lib/bundler/vendor/thor/lib/thor/command.rb:27:inrun' from /Users/meganmakela/.gem/ruby/3.0.0/gems/bundler-2.2.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in invoke_command' from /Users/meganmakela/.gem/ruby/3.0.0/gems/bundler-2.2.6/lib/bundler/vendor/thor/lib/thor.rb:392:indispatch' from /Users/meganmakela/.gem/ruby/3.0.0/gems/bundler-2.2.6/lib/bundler/cli.rb:30:in dispatch' from /Users/meganmakela/.gem/ruby/3.0.0/gems/bundler-2.2.6/lib/bundler/vendor/thor/lib/thor/base.rb:485:instart' from /Users/meganmakela/.gem/ruby/3.0.0/gems/bundler-2.2.6/lib/bundler/cli.rb:24:in start' from /Users/meganmakela/.gem/ruby/3.0.0/gems/bundler-2.2.6/exe/bundle:49:inblock in <top (required)>' from /Users/meganmakela/.gem/ruby/3.0.0/gems/bundler-2.2.6/lib/bundler/friendly_errors.rb:130:in with_friendly_errors' from /Users/meganmakela/.gem/ruby/3.0.0/gems/bundler-2.2.6/exe/bundle:37:in<top (required)>' from /Users/meganmakela/.gem/ruby/3.0.0/bin/bundle:23:in load' from /Users/meganmakela/.gem/ruby/3.0.0/bin/bundle:23:in

' meganmakela@Megans-MacBook-Pro meganmakela.github.io %