Пробую написать простое расширение на уровне перекодирования всего содержимого в base64, но не выходит. Не понимаю где ошибка:
class Base64Extension(Extension):
tags = {'base64'}
def __init__(self, environment):
super(Base64Extension, self).__init__(environment)
def parse(self, parser):
lineno = next(parser.stream).lineno
args = [parser.parse_expression()]
call = self.call_method('_render', args)
return nodes.Output([call], lineno=lineno)
def _render(self, text):
return base64.b64encode(bytes(text, 'utf-8')).decode('utf-8')
env = Environment(loader=FileSystemLoader('project/test'), extensions=[Base64Extension], trim_blocks=True,block_start_string='[[',block_end_string=']]',variable_start_string='[', variable_end_string=']')
print(env.get_template('data2.txt').render())
Шаблон так же выглядит очень просто:
[base64]
Привет текста.
[endbase64]
На выходе просто текст без тегов. Простых примеров написания своих расширений не нешле, может быть у кого то есть примеры например uppercase или тот же base64?