Patrick Steadman
Patrick Steadman

Reputation: 738

How to use helpers in Hexo source files?

I have an about page called source/about/index.ejs. In this page, I'd like to use the image_tag() helper within ejs tags, and other helper functions. However, if I do, I get the error image_tag is not defined, and the same for any other helper function.

I assume this means helpers are not loaded when rendering files in the source, only in the theme directory. It also seems that I can't put this type of page in the them directory and have it render with a template. Is there a way I can use helpers in rendering source files? If not, why can't I, or why would it be a bad idea?

Upvotes: 1

Views: 997

Answers (2)

Matt Lyons-Wood
Matt Lyons-Wood

Reputation: 960

The best solution to this is tag plugins.

You'll have to rewrite the helpers you want as tag plugins, but after that they're usable in source files. Check out node_modules/hexo/lib/plugins/tag for examples.

Upvotes: 1

Louis Barranqueiro
Louis Barranqueiro

Reputation: 10238

Hexo Helpers are not reachable in source files. You have to use it in views.
1. Create a view in layout/about.ejs
2. Add your code in it with helpers tag
3. Create a new page with hexo new page "about"
3. Add layout:"about" in the front-matter of source/about/index.md file.

Upvotes: 2

Related Questions