向Lektor添加多态字段类型
lektor-polymorphic-type的Python项目详细描述
Lektor多态型
这个插件添加了一个新的多态lektor字段类型polymorphic
。
字段值的实际类型实现的确定
推迟到评估时间。在
一个激励性的用例是支持拥有一个
格式可以在markdown
和{
安装
从命令行将lektor多态类型添加到项目:
lektor plugins add lektor-polymorphic-type
有关详细信息,请参见the Lektor plugin documentation。在
工作原理
如果字段有polymorphic_type
选项集,则计算该值
结果被解释为
字段。在
如果没有为字段设置polymorphic_type
选项,那么我们将查找
当前记录上的字段,其名称为当前字段的名称
附加“_type
”。在
示例
简单示例
下面是一个简单页面的示例模型文件,具有可选的正文格式:
^{pr2}$在这里,特定页面上的body_type
字段的值将
确定body
字段是否被解释为markdown
,
html
或{
人为的例子
下面是一个人为的示例,演示polymorphic_type
选项的用法:
# page.ini[model]name=Pagelabel={{ this.title }}[fields.title]label=Titletype=string[fields.body]label=Bodytype=polymorphicpolymorphic_type='html' if this.body.lstrip().startswith('<') else 'markdown'
在本例中,body
字段将被解释为原始HTML,如果
该字段的内容以“<
”开头,否则它将是
解释为Markdown文本。在
作者
杰夫·戴里基dairiki@dairiki.org
- 项目
标签: