- 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/
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.
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.
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.
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.).
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.
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
- 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).
- 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.
- 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
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.