django-download-vendor-files
============================
Setup
-----
Install using pip:
```bash
pip install django-vendor-files
```
Add `vendor_files` to `INSTALLED_APPS` in your Django settings:
```python
INSTALLED_APPS = (
...
'vendor_files',
)
```
Put the `vendor` directory in `STATICFILES_DIRS` in your Django settings:
```
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'vendor/'),
...
)
```
Remarks:
- stay first if you wont load vendor libs first
- stay second after you own static if you wish ovveride (patch) vendor lib
Add a `VENDOR` setting to your Django settings, and add your vendor files with URL and SNI, e.g.:
```python
VENDOR = {
'jquery': {
'url': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/',
'js': [
{
# final url will be: https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js
'path': 'jquery.min.js',
'sri': 'sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==',
}
]
},
'bootstrap': {
'url': 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/',
'js': [
{
'path': 'js/bootstrap.min.js',
'sri': 'sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa',
}
],
'css': [
{
'path': 'css/bootstrap.min.css',
'sri': 'sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u',
}
]
}
}
```
Usage
-----
Put `{% load vendor_tags %}` at the top of your Django template and the vendor tag , e.g.: `{% vendor 'jquery' %}`, somewhere in your HTML:
```html
{% load staticfiles %}
{% load vendor_tags %}
<!DOCTYPE html>
<html>
<head>
<title>{{ request.site.name }}</title>
...
{% vendor 'jquery' %}
{% vendor 'bootstrap' %}
</head>
```
Extended tags, extract only js or css (can be usefull example for [django-compressor](https://github.com/django-compressor/django-compressor)):
```html
{% vendor 'jquery' 'js' %}
# or you can use
{% vendor_js 'jquery' %}
{% vendor 'jquery' 'css' %}
# or you can use
{% vendor_css 'jquery' %}
```
Then, you have 2 options:
1) To use a CDN, put `VENDOR_CDN = True` in your Django settings and the vendor tag will be replaced by a `<link>` or `<script>` tag using the URLs in the settings.
2) To use a local copy, put `VENDOR_CDN = False` (or nothing at all) in your Django settings and the vendor tag will be replaced by a `<link>` or `<script>` tag using your `STATIC_PATH`. The files can be downloaded:
```
python ./manage.py download_vendor_files
```
Raw data
{
"_id": null,
"home_page": "https://github.com/aipescience/django-vendor-files",
"name": "django-vendor-files",
"maintainer": "Jochen Klar",
"docs_url": null,
"requires_python": "",
"maintainer_email": "mail@jochenklar.de",
"keywords": "",
"author": "Jochen Klar",
"author_email": "mail@jochenklar.de",
"download_url": "https://files.pythonhosted.org/packages/17/41/30e969deff2b010538952c9fed971b8d88f49aa140a7a70edfffd6e63146/django-vendor-files-0.3.tar.gz",
"platform": "",
"description": "django-download-vendor-files\n============================\n\nSetup\n-----\n\nInstall using pip:\n\n```bash\npip install django-vendor-files\n```\n\nAdd `vendor_files` to `INSTALLED_APPS` in your Django settings:\n\n```python\nINSTALLED_APPS = (\n ...\n 'vendor_files',\n)\n```\n\nPut the `vendor` directory in `STATICFILES_DIRS` in your Django settings:\n\n```\nSTATICFILES_DIRS = (\n os.path.join(BASE_DIR, 'vendor/'), \n ...\n)\n```\nRemarks:\n- stay first if you wont load vendor libs first\n- stay second after you own static if you wish ovveride (patch) vendor lib \n\n\nAdd a `VENDOR` setting to your Django settings, and add your vendor files with URL and SNI, e.g.:\n\n```python\nVENDOR = {\n 'jquery': {\n 'url': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/',\n 'js': [\n {\n # final url will be: https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js\n 'path': 'jquery.min.js', \n 'sri': 'sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==',\n }\n ]\n },\n 'bootstrap': {\n 'url': 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/',\n 'js': [\n {\n 'path': 'js/bootstrap.min.js',\n 'sri': 'sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa',\n }\n ],\n 'css': [\n {\n 'path': 'css/bootstrap.min.css',\n 'sri': 'sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u',\n }\n ]\n }\n}\n```\n\nUsage\n-----\n\nPut `{% load vendor_tags %}` at the top of your Django template and the vendor tag , e.g.: `{% vendor 'jquery' %}`, somewhere in your HTML:\n\n```html\n{% load staticfiles %}\n{% load vendor_tags %}\n\n<!DOCTYPE html>\n<html>\n <head>\n <title>{{ request.site.name }}</title>\n ...\n {% vendor 'jquery' %}\n {% vendor 'bootstrap' %}\n </head>\n```\n\nExtended tags, extract only js or css (can be usefull example for [django-compressor](https://github.com/django-compressor/django-compressor)):\n```html\n{% vendor 'jquery' 'js' %}\n# or you can use\n{% vendor_js 'jquery' %}\n\n{% vendor 'jquery' 'css' %}\n# or you can use\n{% vendor_css 'jquery' %}\n```\n\nThen, you have 2 options:\n\n1) To use a CDN, put `VENDOR_CDN = True` in your Django settings and the vendor tag will be replaced by a `<link>` or `<script>` tag using the URLs in the settings.\n\n2) To use a local copy, put `VENDOR_CDN = False` (or nothing at all) in your Django settings and the vendor tag will be replaced by a `<link>` or `<script>` tag using your `STATIC_PATH`. The files can be downloaded:\n\n ```\n python ./manage.py download_vendor_files\n ```\n\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "A small extension to download css and js vendor files from CDNs and host them locally.",
"version": "0.3",
"project_urls": {
"Homepage": "https://github.com/aipescience/django-vendor-files"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "53694f73bd63aed765ed0e4245f10bc6305db04efdf8f11ca40699c499c99c20",
"md5": "5f75240f118c29449c8162368f46c944",
"sha256": "e404a6aef9daf274d851fae5db03d9a02e58722ef1fd50cd77bb19c9b5367312"
},
"downloads": -1,
"filename": "django_vendor_files-0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5f75240f118c29449c8162368f46c944",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 5325,
"upload_time": "2022-01-11T12:10:34",
"upload_time_iso_8601": "2022-01-11T12:10:34.813260Z",
"url": "https://files.pythonhosted.org/packages/53/69/4f73bd63aed765ed0e4245f10bc6305db04efdf8f11ca40699c499c99c20/django_vendor_files-0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "174130e969deff2b010538952c9fed971b8d88f49aa140a7a70edfffd6e63146",
"md5": "a7295a47251b14e263580291de67d2ee",
"sha256": "9f19af52293140d8aee983cc5523e45810cf37398e332d6b6d0fee034c809c97"
},
"downloads": -1,
"filename": "django-vendor-files-0.3.tar.gz",
"has_sig": false,
"md5_digest": "a7295a47251b14e263580291de67d2ee",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4269,
"upload_time": "2022-01-11T12:10:36",
"upload_time_iso_8601": "2022-01-11T12:10:36.510660Z",
"url": "https://files.pythonhosted.org/packages/17/41/30e969deff2b010538952c9fed971b8d88f49aa140a7a70edfffd6e63146/django-vendor-files-0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-01-11 12:10:36",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "aipescience",
"github_project": "django-vendor-files",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "django-vendor-files"
}