Commit graph libervia-backend/src/tools/common/template.py
Author SHA1 Message Date
Goffi
80ef13612b core, setup: huge cleaning:
- moved directories from src and frontends/src to sat and sat_frontends, which is the recommanded naming convention
- move twisted directory to root
- removed all hacks from setup.py, and added missing dependencies, it is now clean
- use https URL for website in setup.py
- removed "Environment :: X11 Applications :: GTK", as wix is deprecated and removed
- renamed sat.sh to sat and fixed its installation
- added python_requires to specify Python version needed
- replaced glib2reactor which use deprecated code by gtk3reactor

sat can now be installed directly from virtualenv without using --system-site-packages anymore \o/
2018-04-02 19:44:50 +02:00
Goffi
82b8250fac template: added icon handling:
2 new methods can be used:
- icon_defs to include definitions of svg icons
- icon to use one previously declared svg

plain svg is used instead of icon fonts to improve accessibility.
2018-03-11 19:18:00 +01:00
Goffi
387c10cc0d dates update 2018-01-26 11:14:13 +01:00
Goffi
fa1654964d template: date filter improvments:
new format (i.e. format after date limit has been reached) can now be specified.
0 can now be used for "auto_limit" to use last midnight as date limit.
A new "auto_day" format can be used as shortcut to use last midnight as date limit, short datetime for old format, and time only for new format.
2018-01-03 00:29:18 +01:00
Goffi
f2b0051004 template: boolean attribute can now be specified when importing a script, and default to "defer" 2018-01-03 00:23:36 +01:00
Goffi
87690d88ce core, template (filters): added pygments as a dependency + new highlight filter to use it. 2017-11-30 21:00:24 +01:00
Goffi
5aec6ed680 template (filters): don't crash on invalid date in date_fmt 2017-11-30 20:59:24 +01:00
Goffi
6020cae869 template: remove extension from elements while looking for a path:
this way, extension doesn't need to be provided for a CSS file for a single page.
2017-11-30 20:58:34 +01:00
Goffi
0b0bb0e2c9 template: added dict_ext filter to extend a dictionary 2017-11-09 07:54:28 +01:00
Goffi
95508766f5 template: fixed the use of eval_context_filter in item_filter 2017-11-05 23:36:45 +01:00
Goffi
f5f25e8ab5 misc: date update (yes it's a bit late :p ) 2017-11-03 14:31:42 +01:00
Goffi
ecb3ba897e template: improved date formatter:
the date filter is now named "date_fmt" and can be use to specify several useful formats (see docstring), using the current locale.
The "relative" format return the whole human readable relative date.

The new in_the_past test allow to check if a date is passed.
2017-10-27 18:20:10 +02:00
Goffi
dde17b2b06 template: new item_value filter
this filter is used with XMLUI to specify filters before using a generate method.
2017-10-27 18:17:35 +02:00
Goffi
26751b4f89 template: improved attribute escaping, and added it to filters under the name "attr_escape" 2017-10-27 18:13:25 +02:00
Goffi
3c4dfb4636 template: added media_path to template data 2017-10-27 08:36:24 +02:00
Goffi
8a71ea34b9 template: new "adv_format" filter which use Python's format and return whole value if template is None 2017-10-20 08:49:39 +02:00
Goffi
789a3056d9 template: gidx methods improvment:
gidx methods now use the filtered name to return global indexes.
For instance, if "widget" is filtered name, first index will be "widget", then "widget_1", "widget_2" and so one.
If an other name is used, it restart (e.g. for "label": "label", "label_1", "label_2", etc.).
2017-10-16 07:48:09 +02:00
Goffi
07d5a18b79 template: new "xmlui_class" filter compute class names from name/values of requested fields. 2017-10-16 07:44:08 +02:00
Goffi
d8080c8ad2 template: print warning message and use DEFAULT_LOCALE on bad locale 2017-07-12 19:06:28 +02:00
Goffi
f3a94527b0 tools (common/template): changed blog_date filter to date_days
Instead of returning the whole sentence, date_days only return the number of days between now and the given timestamp.
This way the template author can choose how to use it, and translation can be done template side.
2017-06-24 21:47:06 +02:00
Goffi
92825fc674 tools (common/template): ScriptsHandler fix/improvments:
ScriptsHandler was not used so far, this commit fix it to be usable:
    - script can be imported with "include"
    - generate_scripts is used to generate the <script> elements generation, in base page
    - paths use root_path, so they are adapted to context
    - generate_scripts return a Markup string, so it's not escaped
2017-06-24 20:18:55 +02:00
Goffi
c6ea8e7dbe core (tools/common/template): i18n support
- babel has been added as a new dependencies, and should replace gettext in core in the future
    - added i18n support in template rendered
    - current locale is available as babel Locale in templates through "locale" variable
    - locales can be changed before rendering using setLocale
    - for now, all locales translations are loaded on init, and stay in cache. A more complex cache system may be needed in the future (e.g. keeping only most used and load others from files when needed).
2017-05-21 15:59:47 +02:00
Goffi
6c9255e31d core (tools/common/template): helping methods/filters for templates:
- Indexer class (used with next_gidx/cur_gidx) allows to get per page indexes, usefull to have unique id to reference
    - blog_date is a Q&D filter to get relative dates, should be replaced/improved in the future
    - ScriptsHandler (used with scripts_handler) is intended to be a way to add scripts from template, and group them at a specific location of the page. It is not used yet and may change heavily or disappear in the future.
2017-05-19 12:54:31 +02:00
Goffi
a4934b1955 tools(templates): workflow improvments:
- template theme can be specified in parenthesis: (some_theme)path/to/template.html. Withtout parenthesis, "default" is used
    - static content are supposed to be in [theme]/static, error pages in [theme]/error/[err_code].html
    - default page are used in some case (2 for now): if error page with specified code doesn't exists, a base page is used, and if a page doesn't exist for a theme, the same one for default theme is looked for
    - CSS files are automatically found for HTML pages
    - CSS files can be split, the'll be added in the template according to the page requested.
    - theme CSS file is looked for, and if not found the default theme equivalent is looked for.
    - each element of a path can be associated to a CSS file, and styles.css is always there. For instance if blog/articles.html is requested, the following CSS can be included: "styles.css", "blog.css", "blog_article.css". They all must be in /static
    - if the automatic finding of CSS files is not wanted, css_files arguments can be used instead, with full relative path (i.e. including theme)
    - CSS files can be merged and included inline with css_inline argument
    - root_path can be specified, it will be used as a prefix for static files
    - requested theme (which may differ from actual theme, e.g. if the template is not found and default one is used instead) is available in template with "theme" variable
    - added getThemeAndRoot method to retrieve theme and theme root path from template
2017-03-05 23:41:10 +01:00
Goffi
23cb2e5843 core (tools/common): template renderer first draft:
jinja integration is being rewritten to be used not only in Libervia, this is a first step which put the renderer in backend/frontends tools.
    The renderer is mainly HTML oriented, but may be used for other files.
    sat_templates dependency is needed to use it.
2017-02-21 21:01:39 +01:00