跳转到主要内容

Lektor Shortcodes插件允许您在字段(而非模板)中使用短代码(短代码类似于自定义标签),这样您的内容就不需要重复使用相同的代码片段。

项目描述

Lektor Shortcodes

PyPI

Lektor Shortcodes插件允许您在字段(而非模板)中使用短代码(短代码类似于自定义标签),这样您的内容就不需要重复使用相同的代码片段。

例如,我的博客有一些特定的HTML,当我想显示带有边框和标题的图片时,我会添加这些HTML。HTML看起来像这样

    <div class="alignright">
        <a href="image-large.jpg">
            <img src="image.jpg" />
            <span class="caption">The caption</span>
        </a>
    </div>

每次都复制粘贴很麻烦,我必须在每个内容文件中搜索和替换它,每当我想要更改时。使用短代码插件,这可以写成

[% image align=right link="image-large.jpg" image=image.jpg caption="The caption" %]

更简单、更干净、更少重复。

安装

要安装插件,只需从命令行将 lektor-shortcodes 添加到您的插件中

lektor plugins add lektor-shortcodes

用法

使用插件很简单。只需在您的 configs 目录中创建一个名为 shortcodes.ini 的配置文件,并指定一些短代码模板。模板是完整的Jinja模板,尽管(由于ini文件的一些限制)它们需要在一行上。

例如,对于上面的示例,配置文件可以是

[global]
image = '<div class="align{{ align }}">{% if link %}<a href="{{ link }}"{% if not link.startswith("http") %} data-lightbox="gallery"{% endif %}>{% endif %}<img src="{{ image }}">{% if link %}</a>{% endif %}{% if caption %}<span class="caption">{{ caption }}</span>{% endif %}</div>'

这将允许您使用带有可选参数的短代码,如下所示

# An image with no caption or link:
[% image align=right image=hello.jpg %]


# An image with a link:
[% image align=right link=http://www.example.com image=hello.jpg %]

# Link and caption:
[% image align=right link=http://www.example.com image=hello.jpg caption="Hello!" %]

在名为 global 的部分中定义的短代码将在您网站的Markdown内容中自动处理。也可以定义仅在页面的Jinja2模板明确请求时才展开的短代码。在除 global 之外的部分中定义的短代码仅在模板通过名为 shortcode 的Jinja2过滤器传递内容时应用。例如,如果您的HTML模板引用了一个名为 body 的字段,并且您的配置有一个名为 [special] 的部分,您可以通过以下方式请求展开 special 部分中定义的短代码

{{ body|shortcodes(section="special") }}

这将启用指定部分的所有简码,以及所有全局定义的简码。如果没有指定部分,过滤器默认为名为 main 的部分(因此它将包括 main 中的简码,除非您请求不同的部分,并且它始终包括 global 中的简码,无论什么情况)。

杂项

如果您发现错误或有功能请求,请打开一个问题或提交一个PR。谢谢!

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

lektor-shortcodes-0.2.7.tar.gz (6.3 kB 查看哈希)

上传时间

构建分布

lektor_shortcodes-0.2.7-py3-none-any.whl (6.7 kB 查看哈希)

上传时间 Python 3

由以下支持