You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求提供wikiexpand可调用模板示例实现(维基文本转文本)

wikiexpand 自定义可调用模板实现示例

wikiexpand 无法识别通过 {{#invoke:}} 调用的 Lua 模块,需通过 TemplateStore.callable_templates 注册自定义渲染函数来处理维基模板。以下是针对 {{ISBN}} 和 {{Date de naissance}} 两个模板的实现示例:

实现逻辑

为目标模板分别定义接收参数列表的渲染函数,根据模板功能返回对应格式的普通文本,再将函数以模板名为键,注册到 callable_templates 字典中。

完整代码示例

from wikiexpand.expand import expand_wikitext
from wikiexpand.expand.templates import TemplateStore

# 处理{{ISBN}}模板的函数
def render_isbn(params):
    # 提取ISBN号码并格式化输出
    if params:
        return f"ISBN: {params[0]}"
    return ""

# 处理{{Date de naissance}}(法语"出生日期")模板的函数
def render_date_de_naissance(params):
    # 解析日、月、年参数,转换为中文日期格式
    if len(params) >= 3:
        day, month_fr, year = params[0], params[1], params[2]
        # 法语月份与中文月份的映射
        month_map = {
            "janvier": "1月", "février": "2月", "mars": "3月",
            "avril": "4月", "mai": "5月", "juin": "6月",
            "juillet": "7月", "août": "8月", "septembre": "9月",
            "octobre": "10月", "novembre": "11月", "décembre": "12月"
        }
        month_cn = month_map.get(month_fr, month_fr)
        return f"{year}年{month_cn}{day}日"
    return ""

# 注册可调用模板
template_store = TemplateStore()
template_store.callable_templates = {
    "ISBN": render_isbn,
    "Date de naissance": render_date_de_naissance
}

# 测试维基文本扩展
test_wikitext = """
{{ISBN|978-2-84066-599-1}}
{{Date de naissance|11|novembre|1866}}
"""

result = expand_wikitext(test_wikitext, template_store=template_store)
print(result.strip())

输出结果

ISBN: 978-2-84066-599-1
1866年11月11日

内容的提问来源于stack exchange,提问作者LeMoussel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 07:42:45