def main(name): engine = tenjin.Engine(path=[name], postfix='.html', cache=tenjin.MemoryCacheStorage(), pp=None) helpers = { 'to_str': str_type, 'escape': escape, 'capture_as': capture_as, 'captured_as': captured_as, 'cache_as': cache_as } return lambda ctx: engine.render('welcome.html', ctx, helpers)
def build_categories_coffee(): products = ProductPackaging().all_details_dict_pallet() data = {'products': products} ## change to store template cache into memory instead of file system tenjin.Engine.cache = tenjin.MemoryCacheStorage() engine = tenjin.Engine(cache=tenjin.MemoryCacheStorage(), path=[settings.TENJIN_TEMPLATES_DIR]) txt = engine.render('js.pyhtml', data) local_data_dir = os.path.join(settings.BASE_DIR, 'renesola', 'coffee_script', 'freight_calculator', 'locally_built_data') coffee_script_file = os.path.join(local_data_dir, 'categories.coffee') if not os.path.exists(local_data_dir): os.makedirs(local_data_dir) fo = open(coffee_script_file, 'w') fo.write(txt) fo.close() msg = 'wrote categories.coffee from import_xl' logger.info(msg)
def _create_jetty_web_xml(self, projectname, project_path, kwargs): try: if "pn" in kwargs: if kwargs["pn"].lower() == "true": engine = tenjin.Engine(cache=tenjin.MemoryCacheStorage()) web_xml = engine.render( os.path.join(env.mytemplateDir, 'jetty-web.xml'), {"project_name": projectname}) f = open( os.path.join(project_path, 'WEB-INF', 'jetty-web.xml'), 'w') f.write(web_xml) f.close() except Exception, e: dlog.write(e, console=True)
def render(self, templatefile, context, save=True): u''' Examples: | Render | template.xml | {"timestamp":"12323213"} | Template Engine: tenjin ''' dlog.write(context) templatefile = CONTEXT.get_path(templatefile) if type(context) is unicode: # context = json.loads(context, encoding="utf-8") context = eval(context) path = '\\'.join((templatefile.split('\\'))[:-1]) tfile = templatefile.split('\\')[-1] engine = tenjin.Engine(path=[path], cache=tenjin.MemoryCacheStorage()) newstring = engine.render(tfile, context) return newstring
@type bbcode_content: str or unicode @param bbcode_content: 用于转换的BBCode内容 @type escape: bool @param escape: 是否进行HTML实体转义 @type exclude_tags: str or unicode @param exclude_tags: 不进行解析的BBCode标签 ''' return render_bbcode(bbcode_content, auto_urls=False, clean=False, exclude_tags=exclude_tags, escape=escape) def parse_plain_text(content): return escape(content).replace('\n', '<br/>').replace(' ', '  ').replace('\t', '    ') engine = tenjin.Engine(path=[os.path.join('template', theme) for theme in THEMES] + ['template'], cache=tenjin.MemoryCacheStorage(), preprocess=True) class BaseHandler(yui.HtmlRequestHandler): if ONLINE_VISITORS_EXPIRY_TIME > 0: def before(self, *args, **kw): super(BaseHandler, self).before(*args, **kw) now = int(time()) online_visitors = memcache.get('online_visitors') or {} for visitor, expiry_time in online_visitors.copy().iteritems(): if expiry_time < now: del online_visitors[visitor] request = self.request current_user = request.user online_visitors[current_user.email() if current_user else request.client_ip] = now + ONLINE_VISITORS_EXPIRY_TIME memcache.set('online_visitors', online_visitors)
#encoding:utf-8 import os import urllib import urlparse import tenjin import tornado.web from tenjin.helpers import * crm_engine = tenjin.Engine( path=[os.path.join(os.path.dirname(__file__), 'templates')], cache=tenjin.MemoryCacheStorage(), preprocess=True) mobile_engine = tenjin.Engine( path=[os.path.join(os.path.dirname(__file__), 'weixin_mobile')], cache=tenjin.MemoryCacheStorage(), preprocess=True) web_engine = crm_engine #tenjin.Engine(path=[os.path.join(os.path.dirname(__file__),'gongzhuhao_web')], cache=tenjin.MemoryCacheStorage(),preprocess=True) from raven.contrib.tornado import SentryMixin class TenjinBase(tornado.web.RequestHandler, SentryMixin): def __init__(self, *argc, **argkw): self.title = '' self.description = '' self.keywords = '' super(TenjinBase, self).__init__(*argc, **argkw)
key_with_suffix = req.request.path mc = pylibmc.Client() html = mc.get(key_with_suffix) request_time = int(req.request.request_time()*1000) if html: req.write(html) #req.write(RQT_RE.sub('<span id="requesttime">%d</span>'%request_time, html)) else: result = method(*args, **kwargs) mc.set(key_with_suffix, result, time) return _wrapper return _decorate ### engine = tenjin.Engine(path=[os.path.join('templates', theme) for theme in [THEME,'admin']] + ['templates'], cache=tenjin.MemoryCacheStorage(), preprocess=True) class BaseHandler(tornado.web.RequestHandler): def render(self, template, context=None, globals=None, layout=False): if context is None: context = {} context.update({ 'request':self.request, }) return engine.render(template, context, globals, layout) def echo(self, template, context=None, globals=None, layout=False): self.write(self.render(template, context, globals, layout)) def set_cache(self, seconds, is_privacy=None): if seconds <= 0:
from doodle.config import CONFIG from doodle.core.models.fragment_cache import FragmentCache from doodle.core.models.auth import Auth from doodle.core.models.user import User if CONFIG.DEBUG_MODE: Engine = tenjin.Engine else: class Engine(tenjin.Engine): def _get_template_from_cache(self, cachepath, filepath): # skip file time checking return self.cache.get(cachepath, self.templateclass) fragment_cache.store = FragmentCache engine = Engine(path=[CONFIG.TEMPLATE_PATH], cache=tenjin.MemoryCacheStorage(), preprocess=True) TEMPLATE_GLOBALS = { 'to_str': to_str, 'escape': escape, '_decode_params': _decode_params, 'CONFIG': CONFIG } MIME_TYPE_ABBREVIATIONS = { 'atom': 'application/atom+xml', 'html': 'text/html', 'json': 'application/json', 'plain': 'text/plain', 'rss': 'application/rss+xml' }
if key_suffix_calc_func: key_suffix = key_suffix_calc_func(*args, **kw) if key_suffix: key_with_suffix = '%s:%s' % (key, key_suffix) value = memcache.get(key_with_suffix, namespace) if not value: value = func(*args, **kw) memcache.set(key_with_suffix, value, cache_time, namespace) return value return cached_func return wrap ### engine = tenjin.Engine(path=[os.path.join('templates', THEME), 'templates'], cache=tenjin.MemoryCacheStorage(), preprocess=True) class BaseHandler(yui.HtmlRequestHandler): __IOS_PATTERN = re.compile('(iPod|iPhone|Android|Opera Mini|BlackBerry|webOS|UCWEB|Blazer|PSP)', re.I) def render(self, template, context=None, globals=None, layout=False): return engine.render(template, context, globals, layout) def echo(self, template, context=None, globals=None, layout=False): if context is None: context = {'request': self.request} else: context['request'] = self.request context['cur_user'] = self.cur_user#() if self.request.user and not context['cur_user'] and self.request.path != '/setname':
#!/usr/bin/env python3 import sys,os import tenjin from tenjin.helpers import * eng = tenjin.Engine(postfix='.pyyar', cache=tenjin.MemoryCacheStorage()) def die(s): sys.stderr.write(s) quit(1) def main(cr): global eng path = 'countries/{}-ipv6.zone'.format(cr) if not os.path.exists(path): die('Error: {} doesn\'t exists\n'.format(path)) addrs = [] with open(path, 'r') as fd: lines = fd.readlines() for line in lines: if line[0] == '#' or len(line) == 0: continue addrs.append(line[0:line.find('::')] + ':') output = eng.render(':rule', context={ 'cr':cr, 'addrs': addrs }) print(output)