/hyde/ext/plugins/textlinks.py
http://github.com/hyde/hyde · Python · 35 lines · 22 code · 3 blank · 10 comment · 0 complexity · 3049bcd3807dc7130b07ccc13cf5b84c MD5 · raw file
- # -*- coding: utf-8 -*-
- """
- Textlinks plugin
- """
- import re
- from hyde.plugin import Plugin
- class TextlinksPlugin(Plugin):
- """
- The plugin class for syntax text replacement.
- """
- def __init__(self, site):
- super(TextlinksPlugin, self).__init__(site)
- def begin_text_resource(self, resource, text):
- """
- Replace content url pattern [[/abc/def]])
- with
- {{ content_url('/abc/def') }} or equivalent and
- Replace media url pattern [[!!/abc/def]]
- with
- {{ media_url('/abc/def') }} or equivalent.
- """
- if not resource.uses_template:
- return text
- content_link = re.compile('\[\[([^\]^!][^\]]*)\]\]', re.UNICODE|re.MULTILINE)
- media_link = re.compile('\[\[\!\!([^\]]*)\]\]', re.UNICODE|re.MULTILINE)
- def replace_content(match):
- return self.template.get_content_url_statement(match.groups(1)[0])
- def replace_media(match):
- return self.template.get_media_url_statement(match.groups(1)[0])
- text = content_link.sub(replace_content, text)
- text = media_link.sub(replace_media, text)
- return text