Filters {{ page.date | timeago }} become invalid date
diazsepta opened this issue ยท comments
Plugin is worked, but jekyll get an invalid date when use filter like this:
<time datetime="{{ post.date | date_to_xmlschema }}">
{{ page.date | timeago }}
</time>
or other use like post.date. but is work when used standard filter {{ site.time | timeago }}
so i think that wrong format my date Front Matter, but it was not. the output page.date is 2019-07-27 19:05:49 +0700
my jekyll version is 3.8.6 and this my _config.yml
timezone: Asia/Jakarta
plugins:
- jekyll-timeago
jekyll_timeago:
depth: 4
translations_path: '/path_to_your_translations/*.yaml'
default_locale: 'en'
fallbacks: true
available_locales:
- 'en'
- 'es'
- 'fr'
this is --trace output:
Liquid Exception: Liquid error (line 8): invalid date in /_layouts/home.html
bundler: failed to load command: jekyll (/home/diaz/gems/bin/jekyll)
Liquid::ArgumentError: Liquid error (line 8): invalid date
/home/diaz/gems/gems/jekyll-timeago-0.13.1/lib/jekyll-timeago/core.rb:36:in `parse'
/home/diaz/gems/gems/jekyll-timeago-0.13.1/lib/jekyll-timeago/core.rb:36:in `validate_date'
/home/diaz/gems/gems/jekyll-timeago-0.13.1/lib/jekyll-timeago/core.rb:25:in `timeago'
/home/diaz/gems/gems/jekyll-timeago-0.13.1/lib/jekyll-timeago/jekyll_integration.rb:37:in `timeago'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/strainer.rb:56:in `invoke'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/context.rb:86:in `invoke'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/variable.rb:84:in `block in render'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/variable.rb:82:in `each'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/variable.rb:82:in `inject'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/variable.rb:82:in `render'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/block_body.rb:103:in `render_node_to_output'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/block_body.rb:80:in `render'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/tags/for.rb:160:in `block (2 levels) in render_segment'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/tags/for.rb:158:in `each'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/tags/for.rb:158:in `block in render_segment'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/context.rb:123:in `stack'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/tags/for.rb:150:in `render_segment'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/tags/for.rb:79:in `render'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/block_body.rb:103:in `render_node_to_output'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/block_body.rb:82:in `render'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/template.rb:208:in `block in render'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/template.rb:242:in `with_profiling'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/template.rb:207:in `render'
/home/diaz/gems/gems/liquid-4.0.3/lib/liquid/template.rb:220:in `render!'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/liquid_renderer/file.rb:30:in `block (2 levels) in render!'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/liquid_renderer/file.rb:42:in `measure_bytes'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/liquid_renderer/file.rb:29:in `block in render!'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/liquid_renderer/file.rb:49:in `measure_time'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/liquid_renderer/file.rb:28:in `render!'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/renderer.rb:126:in `render_liquid'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/renderer.rb:195:in `render_layout'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/renderer.rb:158:in `place_in_layouts'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/renderer.rb:88:in `render_document'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/renderer.rb:62:in `run'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/site.rb:479:in `render_regenerated'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/site.rb:472:in `block in render_pages'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/site.rb:471:in `each'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/site.rb:471:in `render_pages'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/site.rb:192:in `render'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/site.rb:71:in `process'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/command.rb:28:in `process_site'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/commands/build.rb:65:in `build'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/commands/build.rb:36:in `process'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/commands/serve.rb:93:in `block in start'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/commands/serve.rb:93:in `each'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/commands/serve.rb:93:in `start'
/home/diaz/gems/gems/jekyll-3.8.6/lib/jekyll/commands/serve.rb:75:in `block (2 levels) in init_with_program'
/home/diaz/gems/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `block in execute'
/home/diaz/gems/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `each'
/home/diaz/gems/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `execute'
/home/diaz/gems/gems/mercenary-0.3.6/lib/mercenary/program.rb:42:in `go'
/home/diaz/gems/gems/mercenary-0.3.6/lib/mercenary.rb:19:in `program'
/home/diaz/gems/gems/jekyll-3.8.6/exe/jekyll:15:in `<top (required)>'
/home/diaz/gems/bin/jekyll:23:in `load'
/home/diaz/gems/bin/jekyll:23:in `<top (required)>'
Hi @diazsepta ๐
First weird thing I see ๐ => in your _config.yml
you copy-pasted the example from the docs, to customize the plugin options:
jekyll_timeago:
depth: 4
translations_path: '/path_to_your_translations/*.yaml'
default_locale: 'en'
fallbacks: true
available_locales:
- 'en'
- 'es'
- 'fr'
You only need to override those entries in case you want to change defaults, and of course with "valid" options: /path_to_your_translations/*.yaml
is just an example, that path probably doesn't exist in your repo... You can just โ๏ธ the entire section from the _config.yml
, if defaults are fine for you.
@markets thanks for reply, you right, its work now. but i have new problem. i think your plugin not work on _includes statement (maybe, if I not wrong ๐), so i want to make my header post with timeago, but the header is was includes on _includes/header.html
which will be called on _layouts/default.html
. now the is problem, when i puts {{ page.date | timeago }}
on _includes/header.html
it will be get error:
Liquid Exception: Liquid error (_includes/header.html line 2): invalid date included in /_layouts/default.html
i try puts on any place in _includes/header.html
or any file on _includes folder and it's still error. but {{ page.date | timeago }}
work perfectly on _layouts\post.html & _layouts\home.html
maybe you can explain to me, what is my problem now?
I'm not 100% sure (I have no access to code, so this is just intuition...), but I think the last problem is due to: you can't access the page
object in "includes" files (cause they are generic to the whole site, and not page
specific like page.date
).
Maybe this guide will be helpful: https://jekyllrb.com/docs/includes/#using-variables-names-for-the-include-file. The whole section explains really well how "includes" works in Jekyll. I recommend you to read it to understand better how this Jekyll feature works.
Please re-open in case you suspect this is really a jekyll-timeago
bug and not a Jekyll misuse.