| Armin Ronacher | de478f6 | 2007-02-28 22:35:04 +0100 | [diff] [blame] | 1 | # -*- coding: utf-8 -*- |
| Armin Ronacher | 5829306 | 2008-02-11 15:36:22 +0100 | [diff] [blame] | 2 | """ |
| Armin Ronacher | 203bfcb | 2008-04-24 21:54:44 +0200 | [diff] [blame] | 3 | Jinja2 |
| 4 | ~~~~~~ |
| Armin Ronacher | 5829306 | 2008-02-11 15:36:22 +0100 | [diff] [blame] | 5 | |
| Armin Ronacher | 203bfcb | 2008-04-24 21:54:44 +0200 | [diff] [blame] | 6 | Jinja2 is a template engine written in pure Python. It provides a |
| 7 | `Django`_ inspired non-XML syntax but supports inline expressions and |
| 8 | an optional `sandboxed`_ environment. |
| Armin Ronacher | 5829306 | 2008-02-11 15:36:22 +0100 | [diff] [blame] | 9 | |
| 10 | Nutshell |
| 11 | -------- |
| 12 | |
| 13 | Here a small example of a Jinja template:: |
| 14 | |
| 15 | {% extends 'base.html' %} |
| 16 | {% block title %}Memberlist{% endblock %} |
| 17 | {% block content %} |
| 18 | <ul> |
| 19 | {% for user in users %} |
| Armin Ronacher | 203bfcb | 2008-04-24 21:54:44 +0200 | [diff] [blame] | 20 | <li><a href="{{ user.url }}">{{ user.username }}</a></li> |
| Armin Ronacher | 5829306 | 2008-02-11 15:36:22 +0100 | [diff] [blame] | 21 | {% endfor %} |
| 22 | </ul> |
| 23 | {% endblock %} |
| 24 | |
| 25 | Philosophy |
| 26 | ---------- |
| 27 | |
| 28 | Application logic is for the controller but don't try to make the life |
| 29 | for the template designer too hard by giving him too few functionality. |
| 30 | |
| Armin Ronacher | f4e1fb4 | 2008-06-09 18:54:56 +0200 | [diff] [blame] | 31 | For more informations visit the new `Jinja2 webpage`_ and `documentation`_. |
| Armin Ronacher | 5829306 | 2008-02-11 15:36:22 +0100 | [diff] [blame] | 32 | |
| Armin Ronacher | 5829306 | 2008-02-11 15:36:22 +0100 | [diff] [blame] | 33 | .. _sandboxed: http://en.wikipedia.org/wiki/Sandbox_(computer_security) |
| 34 | .. _Django: http://www.djangoproject.com/ |
| Armin Ronacher | f4e1fb4 | 2008-06-09 18:54:56 +0200 | [diff] [blame] | 35 | .. _Jinja2 webpage: http://jinja.pocoo.org/ |
| Armin Ronacher | 1a12c8a | 2008-06-09 18:49:14 +0200 | [diff] [blame] | 36 | .. _documentation: http://jinja.pocoo.org/2/documentation/ |
| Armin Ronacher | 5829306 | 2008-02-11 15:36:22 +0100 | [diff] [blame] | 37 | """ |
| Armin Ronacher | d15a4dc | 2007-05-28 18:16:16 +0200 | [diff] [blame] | 38 | import sys |
| Armin Ronacher | ee2c18e | 2007-04-20 22:39:04 +0200 | [diff] [blame] | 39 | |
| Armin Ronacher | 10c34da | 2010-08-17 12:10:27 +0200 | [diff] [blame] | 40 | from setuptools import setup, Extension, Feature |
| Armin Ronacher | 10c34da | 2010-08-17 12:10:27 +0200 | [diff] [blame] | 41 | |
| 42 | debugsupport = Feature( |
| 43 | 'optional C debug support', |
| 44 | standard=False, |
| 45 | ext_modules = [ |
| 46 | Extension('jinja2._debugsupport', ['jinja2/_debugsupport.c']), |
| 47 | ], |
| 48 | ) |
| 49 | |
| Armin Ronacher | de478f6 | 2007-02-28 22:35:04 +0100 | [diff] [blame] | 50 | |
| Armin Ronacher | 4603694 | 2010-08-18 11:10:50 +0200 | [diff] [blame] | 51 | # ignore the old '--with-speedups' flag |
| 52 | try: |
| 53 | speedups_pos = sys.argv.index('--with-speedups') |
| Armin Ronacher | fe22512 | 2010-08-18 11:14:28 +0200 | [diff] [blame] | 54 | except ValueError: |
| Armin Ronacher | 4603694 | 2010-08-18 11:10:50 +0200 | [diff] [blame] | 55 | pass |
| 56 | else: |
| 57 | sys.argv[speedups_pos] = '--with-debugsupport' |
| Armin Ronacher | c4538a8 | 2010-08-18 11:12:52 +0200 | [diff] [blame] | 58 | sys.stderr.write('*' * 74 + '\n') |
| 59 | sys.stderr.write('WARNING:\n') |
| 60 | sys.stderr.write(' the --with-speedups flag is deprecated, assuming ' |
| 61 | '--with-debugsupport\n') |
| 62 | sys.stderr.write(' For the actual speedups install the MarkupSafe ' |
| 63 | 'package.\n') |
| 64 | sys.stderr.write('*' * 74 + '\n') |
| Armin Ronacher | 4603694 | 2010-08-18 11:10:50 +0200 | [diff] [blame] | 65 | |
| Armin Ronacher | 0830e25 | 2007-03-22 23:45:30 +0100 | [diff] [blame] | 66 | |
| Armin Ronacher | de478f6 | 2007-02-28 22:35:04 +0100 | [diff] [blame] | 67 | setup( |
| Armin Ronacher | 203bfcb | 2008-04-24 21:54:44 +0200 | [diff] [blame] | 68 | name='Jinja2', |
| Armin Ronacher | 9b1de00 | 2011-07-24 21:49:07 +0200 | [diff] [blame] | 69 | version='2.7-dev', |
| Armin Ronacher | 015b0c9 | 2007-11-11 00:10:17 +0100 | [diff] [blame] | 70 | url='http://jinja.pocoo.org/', |
| 71 | license='BSD', |
| 72 | author='Armin Ronacher', |
| 73 | author_email='armin.ronacher@active-4.com', |
| 74 | description='A small but fast and easy to use stand-alone template ' |
| 75 | 'engine written in pure python.', |
| Armin Ronacher | bd33f11 | 2008-04-18 09:17:32 +0200 | [diff] [blame] | 76 | long_description=__doc__, |
| Armin Ronacher | 86b5cb5 | 2009-09-13 00:23:27 -0700 | [diff] [blame] | 77 | # jinja is egg safe. But we hate eggs |
| Armin Ronacher | 015b0c9 | 2007-11-11 00:10:17 +0100 | [diff] [blame] | 78 | zip_safe=False, |
| 79 | classifiers=[ |
| Armin Ronacher | a9d5922 | 2008-07-18 00:41:37 +0200 | [diff] [blame] | 80 | 'Development Status :: 5 - Production/Stable', |
| Armin Ronacher | de478f6 | 2007-02-28 22:35:04 +0100 | [diff] [blame] | 81 | 'Environment :: Web Environment', |
| 82 | 'Intended Audience :: Developers', |
| 83 | 'License :: OSI Approved :: BSD License', |
| 84 | 'Operating System :: OS Independent', |
| 85 | 'Programming Language :: Python', |
| Armin Ronacher | d9599c8 | 2010-02-10 02:19:17 +0100 | [diff] [blame] | 86 | 'Programming Language :: Python :: 3', |
| Armin Ronacher | 8ebf1f9 | 2007-03-03 11:22:18 +0100 | [diff] [blame] | 87 | 'Topic :: Internet :: WWW/HTTP :: Dynamic Content', |
| 88 | 'Topic :: Software Development :: Libraries :: Python Modules', |
| 89 | 'Topic :: Text Processing :: Markup :: HTML' |
| 90 | ], |
| Armin Ronacher | f9f5f26 | 2010-08-17 11:57:07 +0200 | [diff] [blame] | 91 | packages=['jinja2', 'jinja2.testsuite', 'jinja2.testsuite.res', |
| 92 | 'jinja2._markupsafe'], |
| Thomas Waldmann | 460251c | 2013-05-18 01:16:18 +0200 | [diff] [blame^] | 93 | install_requires=['six>=1.3.0'], |
| Armin Ronacher | 2b60fe5 | 2008-04-21 08:23:59 +0200 | [diff] [blame] | 94 | extras_require={'i18n': ['Babel>=0.8']}, |
| Armin Ronacher | 7af781c | 2010-02-09 16:05:08 +0100 | [diff] [blame] | 95 | test_suite='jinja2.testsuite.suite', |
| Armin Ronacher | 790b8a8 | 2010-02-10 00:05:46 +0100 | [diff] [blame] | 96 | include_package_data=True, |
| Armin Ronacher | f59bac2 | 2008-04-20 13:11:43 +0200 | [diff] [blame] | 97 | entry_points=""" |
| 98 | [babel.extractors] |
| Armin Ronacher | 7962ce7 | 2008-05-20 17:52:52 +0200 | [diff] [blame] | 99 | jinja2 = jinja2.ext:babel_extract[i18n] |
| Armin Ronacher | 0319c66 | 2010-02-09 02:09:10 +0100 | [diff] [blame] | 100 | """, |
| Thomas Waldmann | 7d29562 | 2013-05-18 00:06:22 +0200 | [diff] [blame] | 101 | features={'debugsupport': debugsupport} |
| Armin Ronacher | de478f6 | 2007-02-28 22:35:04 +0100 | [diff] [blame] | 102 | ) |