跳转到主要内容

添加WordPress-like短代码,以增强Django中的Markdown编写功能的实用工具。

项目描述

# Django的Markdown短代码

提供在内容中使用WordPress-like "短代码"的能力,这些短代码将被渲染为HTML。

这里的想法是扩展Markdown编写功能。例如,在内容主体的流程中渲染一个更复杂的组件,显示特色内容 - 或者简单地渲染一个全宽Vimeo视频。

由于这些短代码将非常项目特定,因此此包不附带大量预定义的短代码。

相反,它提供了一个注册系统(通过一个小装饰器),短代码处理程序和一个模板过滤器以方便使用。

## 安装

通过pip安装

pip安装django-markdown-shortcodes

请在Django项目的设置中将`markdown_shortcodes`添加到`INSTALLED_APPS`中。


## 定义短代码

预期的短代码函数名称应以`shortcode_`开头,后跟在内容中出现的字符串/名称。

以下示例创建了对`[[youtube]]`短代码的支持。

定义处理函数,使用`shortcode`装饰器将函数注册为处理程序

from markdown_shortcodes import shortcode

@shortcode
def shortcode_youtube(*args)
return render_to_string("shortcodes/youtube.html", {
'id': args[0],
'title': args[1] if len(args) > 1 else '',
'alternate_uri': args[2] if len(args) > 2 else '',
})

创建一个模板文件

<div class="shortcode-block">
<div class="fluid-iframe -ratio-16-9">
<iframe src="//www.youtube.com/embed/#{{ id }}"
标题:{{ title }}
frameborder="0"
webkitallowfullscreen
mozallowfullscreen
allowfullscreen>
此视频需要具有框架功能的浏览器。
{% if alternate_uri %}
<a href="{{ alternate_uri }}">查看 {{ title }} 的替代内容</a>
{% else %}
<a href="https://www.youtube.com/watch?v=#{{ id }}">在 YouTube 上观看 {{ title }}</a>
{% endif %}
</iframe>
</div>
</div>

您的内容

您知道 Whoa McTuggins 吗?我看到了他关于准备番茄的采访。这改变了我的一生

[[youtube XTJIGGBN8l4 "对番茄切块的激动人心的探索"]]

现在我几乎每周都要准备酸辣酱!


在您的内容模板中,如下所示(`expand_shortcodes` 由本包提供)

...
{% load shortcodes %}

<div class="Post-BodyText -u-awesome">
{{ post.body|expand_shortcodes|safe|your_markdown_filter }}
</div>

...

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

django-markdown-shortcodes-1.3.tar.gz (3.8 kB 查看哈希值)

上传时间

由以下支持