For a small side-project I was writing a tiny plugin to display widgets of different social media sites.
Since the documentation of Hexo is lacking I thought I'd write up how you can do this.
The plugin in my case was providing a tag. So something you can use with {\% something \%}
which gets replaced by Hexo with markup.
The documentation says:
hexo.extend.tag.register(name, function(args, content){
// ...
}, options);
That's largely correct.
What confused me is where hexo
comes from. Turns out that you must not require
it in your code or otherwise the consumer will see a large warning in his console, that hexo
was already defined.
SyntaxError: Identifier 'hexo' has already been declared
The value of name
is what will be used for the tag (something
above). The argument args
will contain a list of parameters passed with the tag. content
will only be used if your tag is wrapping other content. In this case, the tag should have an end tag, which you can indicate with the options
argument.
And that's it.