Add a template filter for message placeholders

As a first guess placeholders can be added to messages with the
`((placeholder))` syntax.

This commit adds a Jinja template filter to convert strings containing
said-formatted strings into HTML, which can then be styled to highlight which
parts will be substituted in messages.
This commit is contained in:
Chris Hill-Scott
2015-12-10 16:26:53 +00:00
parent a5f4580a7f
commit b46872d2b9
3 changed files with 23 additions and 6 deletions

View File

@@ -1,6 +1,7 @@
import os
import re
from flask import Flask, session
from flask import Flask, session, Markup
from flask._compat import string_types
from flask.ext import assets
from flask.ext.sqlalchemy import SQLAlchemy
@@ -44,6 +45,8 @@ def create_app(config_name):
application.session_interface = ItsdangerousSessionInterface()
admin_api_client.init_app(application)
application.add_template_filter(placeholders)
return application
@@ -153,3 +156,13 @@ def convert_to_boolean(value):
return False
return value
def placeholders(value):
if not value:
return value
return Markup(re.sub(
r"\(\(([^\)]+)\)\)", # anything that looks like ((registration number))
lambda match: "<span class='placeholder'>{}</span>".format(match.group(1)),
value
))