Shortcodes#
New in version 2.5.
Shortcodes allow you to call Python functions from documents before the Markdown processing starts. This can be useful if you have repeated HTML/Markdown snippets, for example, to link to a video hosting website.
Shortcodes in Liara are written as following: <% function-name key=value /%>
. This will result in a function call to a function registered under the name function-name
, passing on a dictionary { 'key': 'value' }
. New functions can be registered using the liara.signals.register_markdown_shortcodes
signal, typically from a plugin.
For example, you may want to create a small snippet of HTML like this:
<figure>
<a href="/path/to/image.jpg">
<img src="/path/to/image.thumbnail.jpg">
</a>
<figcaption>The caption</figcaption>
</figure>
Instead of having to copy/paste this everywhere, you could replace this with a shortcode like this:
<% figure link="/path/to/image" caption="The caption" /%>
For this to work, you would register a new function:
def figure_shortcode(link, caption, **kwargs):
return f"""<figure>
<a href="{link}.jpg"><img src="{link}.thumbnail.jpg"></a>
<figcaption>{caption}</figcaption>
</figure>"""
If you later decide you need to change the output, from now on you only have to change the shortcode handler, instead of having to touch all documents using it.