blogfilter.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:django-torina-blog 作者: naritotakizawa 项目源码 文件源码
def blog(value, autoescape=True):
    """[spam]ham[end]????????????HTML???????.

    >>> blog('[filter html]<h1>Hello</h1>[end]')
    '<h1>Hello</h1>'

    >>> blog('[filter html]<h1>Hello</h1>[end]\
    [filter url]https://torina.top[end]')

    '<h1>Hello</h1><a target="_blank" rel="nofollow" \
    href="https://torina.top" rel="nofollow">https://torina.top</a>'

    """
    autoescape = autoescape and not isinstance(value, SafeData)
    if autoescape:
        value = escape(value)
    filters = re.finditer(r'\[filter (?P<tag_name>.*?)\].*?\[end\]', value)
    results = []
    for f in filters:
        filter_name = f.group('tag_name')
        origin_text = f.group()
        filter_function = globals().get(filter_name)
        if filter_function and callable(filter_function):
            result_text = filter_function(origin_text)
        else:
            result_text = origin_text
        results.append((origin_text, result_text))

    for origin_text, result_text in results:
        if origin_text != result_text:
            value = value.replace(origin_text, result_text)

    return mark_safe(value)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号