Skip to main content

用于 Django 的 JavaScript 工具

项目描述

aino-jstools 是一组用于处理 JavaScript 和 Django 的工具。它主要编译javascripts。

设计背景

我们想要制作一个工具,使在模板中包含一堆 JavaScript 变得简单而干净,并将所有这些 JavaScript 编译成生产中的打包片段以获得最佳性能。我们想要实现的另一个目标是将urls.pyMEDIA_URLDEBUG设置中定义的 url 公开给 JavaScript 代码。我们的未来包括在 JavaScript 中为 i18n 提供比 Django 提供的更简洁的实现。

要求

  • Django 1.x

  • Python 2.5+

  • Java(用于编译 JavaScript)

安装

在项目设置中的INSTALLED_APPS中包含jstools 。可以选择在 urls.py 中包含 jstools/ urls.py

(r'^jstools/', include('jstools.urls'))

模板使用

首先在模板中定义您的脚本,如下所示:

{% scripts "js/mysite-min.js" %}
    http://yui.yahooapis.com/3.1.0/build/yui/yui-min.js
    js/a.js
    js/b.js
    {% url jshelper %}
{% endscripts %}

settings.DEBUGTrue时,这将转换为:

<script src="http://yui.yahooapis.com/3.1.0/build/yui/yui-min.js"></script>
<script src="{{ MEDIA_URL }}js/a.js"></script>
<script src="{{ MEDIA_URL }}js/b.js"></script>
<script src="{% url jshelper %}"></script>

settings.DEBUGFalse时,这将转换为:

<script src="{{ MEDIA_URL }}js/mysite-min.js?TIMESTAMP"></script>

其中TIMESTAMP基于 {{ MEDIA_ROOT }}js/myste-min.js的修改日期

编译

编译所有定义的脚本就像运行一样简单:

python manage.py buildjs

如果您使用默认文件系统和/或 app_directories ,此管理命令将查找所有带有 {% scripts %}标签的模板并将其内容编译到标签的第一个参数中。

jshelper 视图

此视图将输出命名 url、settings.MEDIA_URLsettings.DEBUG (我建议您在模板中覆盖它,除非您想在更改DEBUG设置时重新编译脚本)以用于您的 JavaScript 代码。默认情况下,您将可以访问名为JSTOOLS的 JavaScript 对象,您可以通过设置JSTOOLS_NAMESPACE来更改名称。

JSTOOLS.settings.MEDIA_URL

settings.MEDIA_URL

JSTOOLS.settings.DEBUG

设置.DEBUG

JSTOOLS.get_url

此函数将获得在您的urls.py中定义的命名 url 。第一个参数是命名 url 的名称,后续参数是传递给该模式的参数。例子:

JSTOOLS.get_url('jshelper');
JSTOOLS.get_url('blog_entry', 2010, 04, 25, 'aino-jstools');

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

aino-jstools-0.1.0.6.tar.gz (3.8 MB 查看哈希

已上传 source