""" :synopsis: Helper functions for use inside the project's Jinja templates. """ import re from flask import Markup ASSET_HTML_TEMPLATES = { 'css': "", 'js': "" } def tag(filename): """ Generate an HTML tag for a CSS/JS asset, based on its file extension. :param filename: The filename of the asset to create a tag for. :type filename: str :return: A string containing a `` tag for JS files, and a `` for CSS files. :rtype: str """ file_ext = filename.split(".")[-1] return Markup(ASSET_HTML_TEMPLATES[file_ext] % filename) def syntax_highlight(msg): """ Inserts HTML `` elements into a string, for symbol/word styling. Args: msg : (str) A message. """ msg.replace("<", "&;lt") msg.replace(">", "&;gt") font_size = 16.0 / len(msg) msg = re.sub('([!()"%])', '\\1', msg) msg = re.sub('([:.;,])', '\\1', msg) msg = msg.replace("404", '404') return "%s" % ( font_size, msg)