comparison sat_frontends/jp/base.py @ 2671:0fa217fafabf

tools (common/template), jp: refactoring to handle multiple sites: - site can now be specified in template header before theme, for instance: (some_site/some_theme)path/to/template.ext - absolute template paths are now implemented, but Renderer must be instanciated with trusted to True for security reason (it's the case for jp) - a new "front_url_filter" callable can be given to Renderer, which will convert template path to URL seen by end-user (default to real path). - the "front_url_filter" can be used in templates with… "front_url" filter - template_data is a new named tuple available in templates, which give site, theme and template relative URL - search order is site/theme, site/default_theme, and default/default_theme where default link to sat_pubsub templates - when loading CSS files, files with _noscript suffixes are now loaded, and used when javascript is not available - "styles_extra.css" is also loaded before "styles.css", useful when a theme want to reuse default style, and just override some rules - new site can be specified in sat.conf [DEFAULT] section, using sites_path_public_dict or sites_path_private_dict (where sites_path_private_dict won't be used in public frontends, like Libervia) - "private" argument of Renderer tells the renderer to load private sites or not - templates are now loaded from "templates" subdirectory, to differenciate them from other data like i18n - jp template output has been updated to handle those changes, and to manage absolute templates
author Goffi <goffi@goffi.org>
date Mon, 10 Sep 2018 08:58:18 +0200
parents b4ecbcc2fd08
children 0bed6df9ee5d
comparison
equal deleted inserted replaced
2670:ef93fcbaa749 2671:0fa217fafabf
552 try: 552 try:
553 self.args._cmd.run() 553 self.args._cmd.run()
554 if self._need_loop or self._auto_loop: 554 if self._need_loop or self._auto_loop:
555 self._start_loop() 555 self._start_loop()
556 except KeyboardInterrupt: 556 except KeyboardInterrupt:
557 log.info(_("User interruption: good bye")) 557 self.disp(_("User interruption: good bye"))
558 558
559 def _start_loop(self): 559 def _start_loop(self):
560 self.loop = JPLoop() 560 self.loop = JPLoop()
561 self.loop.run() 561 self.loop.run()
562 562