mirror of
https://github.com/Hopiu/cookiecutter-django.git
synced 2026-05-17 08:41:08 +00:00
* Add support for Webpack as frontend pipeline * Rename CI jobs * Fix a couple of issues with Webpack + Docker * Don't include Boostrap CSS from CDN with Webpack * Rename variable * Set publicPath in prod webpack config * Fix removal of SASS files in post-gen hooks * Add Webpack to readme usage section * Run Django + Webpack dev server concurrently without Docker * Fix async runserver command with Gulp/Webpack * Upgrade django-webpack-loader to 1.5.0 * Pass variables required by Webpack at build time * Upgrade django-webpack-loader to 1.7.0 * Add missing condition * Add support for Azure Storage + Webpack * Whitespaces * Rename ROOT_DIR -> BASE_DIR * Rename jobs * Bump django-webpack-loader to latest * Document limitation of Docker + Webpack + no Whitenoise * Update section on custom Bootstrap compilation in generated readme
151 lines
7 KiB
HTML
151 lines
7 KiB
HTML
{% raw %}{% load static i18n {% endraw %}
|
|
{%- if cookiecutter.frontend_pipeline == 'Django Compressor' %}compress
|
|
{%- endif %}{% raw %}%}{% endraw %}
|
|
{%- if cookiecutter.frontend_pipeline == 'Webpack' %}{% raw %}{% load render_bundle from webpack_loader %}{% endraw %}
|
|
{%- endif %}{% raw %}<!DOCTYPE html>
|
|
{% get_current_language as LANGUAGE_CODE %}
|
|
<html lang="{{ LANGUAGE_CODE }}">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
|
<title>{% block title %}{% endraw %}{{ cookiecutter.project_name }}{% raw %}{% endblock title %}</title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="description" content="{% endraw %}{{ cookiecutter.description }}{% raw %}">
|
|
<meta name="author" content="{% endraw %}{{ cookiecutter.author_name }}{% raw %}">
|
|
|
|
<link rel="icon" href="{% static 'images/favicons/favicon.ico' %}">
|
|
|
|
{% block css %}
|
|
{%- endraw %}
|
|
{%- if cookiecutter.frontend_pipeline in ['None', 'Django Compressor'] %}
|
|
{%- raw %}
|
|
<!-- Latest compiled and minified Bootstrap CSS -->
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.1.3/css/bootstrap.min.css" integrity="sha512-GQGU0fMMi238uA+a/bdWJfpUGKUkBdgfFdgBm72SUQ6BeyWjoY/ton0tEjH+OSH9iP4Dfh+7HM0I9f5eR0L/4w==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
|
{%- endraw %}
|
|
{%- endif %}
|
|
{%- raw %}
|
|
<!-- Your stuff: Third-party CSS libraries go here -->
|
|
|
|
<!-- This file stores project-specific CSS -->
|
|
{%- endraw %}{% if cookiecutter.frontend_pipeline == 'None' %}{% raw %}
|
|
<link href="{% static 'css/project.css' %}" rel="stylesheet">
|
|
{%- endraw %}{% elif cookiecutter.frontend_pipeline == 'Django Compressor' %}{% raw %}
|
|
{% compress css %}
|
|
<link href="{% static 'css/project.css' %}" rel="stylesheet">
|
|
{% endcompress %}
|
|
{%- endraw %}{% elif cookiecutter.frontend_pipeline == 'Gulp' %}{% raw %}
|
|
<link href="{% static 'css/project.min.css' %}" rel="stylesheet">
|
|
{%- endraw %}{% elif cookiecutter.frontend_pipeline == "Webpack" %}{% raw %}
|
|
{% render_bundle 'project' 'css' %}
|
|
{%- endraw %}{% endif %}{% raw %}
|
|
{% endblock %}
|
|
<!-- Le javascript
|
|
================================================== -->
|
|
{# Placed at the top of the document so pages load faster with defer #}
|
|
{% block javascript %}
|
|
{%- endraw %}{% if cookiecutter.frontend_pipeline == 'Gulp' %}{% raw %}
|
|
<!-- Vendor dependencies bundled as one file -->
|
|
<script defer src="{% static 'js/vendors.min.js' %}"></script>
|
|
{%- endraw %}{% elif cookiecutter.frontend_pipeline == "Webpack" %}{% raw %}
|
|
<!-- Vendor dependencies bundled as one file -->
|
|
{% render_bundle 'vendors' 'js' attrs='defer' %}
|
|
{%- endraw %}{% else %}{% raw %}
|
|
<!-- Bootstrap JS -->
|
|
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.1.3/js/bootstrap.min.js" integrity="sha512-OvBgP9A2JBgiRad/mM36mkzXSXaJE9BEIENnVEmeZdITvwT09xnxLtT4twkCa8m/loMbPHsvPl0T8lRGVBwjlQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
|
<!-- Your stuff: Third-party javascript libraries go here -->
|
|
{%- endraw %}{% endif %}{% raw %}
|
|
|
|
<!-- place project specific Javascript in this file -->
|
|
{%- endraw %}{% if cookiecutter.frontend_pipeline == 'None' %}{% raw %}
|
|
<script defer src="{% static 'js/project.js' %}"></script>
|
|
{%- endraw %}{% elif cookiecutter.frontend_pipeline == 'Django Compressor' %}{% raw %}
|
|
{% compress js %}
|
|
<script defer src="{% static 'js/project.js' %}"></script>
|
|
{% endcompress %}
|
|
{%- endraw %}{% elif cookiecutter.frontend_pipeline == 'Gulp' %}{% raw %}
|
|
<script defer src="{% static 'js/project.min.js' %}"></script>
|
|
{%- endraw %}{% elif cookiecutter.frontend_pipeline == "Webpack" %}{% raw %}
|
|
{% render_bundle 'project' 'js' attrs='defer' %}
|
|
{%- endraw %}{% endif %}{% raw %}
|
|
|
|
{% endblock javascript %}
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div class="mb-1">
|
|
<nav class="navbar navbar-expand-md navbar-light bg-light">
|
|
<div class="container-fluid">
|
|
<button class="navbar-toggler navbar-toggler-right" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
<a class="navbar-brand" href="{% url 'home' %}">{% endraw %}{{ cookiecutter.project_name }}{% raw %}</a>
|
|
|
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
|
<ul class="navbar-nav mr-auto">
|
|
<li class="nav-item active">
|
|
<a class="nav-link" href="{% url 'home' %}">Home <span class="visually-hidden">(current)</span></a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="{% url 'about' %}">About</a>
|
|
</li>
|
|
{% if request.user.is_authenticated %}
|
|
<li class="nav-item">
|
|
{# URL provided by django-allauth/account/urls.py #}
|
|
<a class="nav-link" href="{% url 'users:detail' request.user.username %}">{% translate "My Profile" %}</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
{# URL provided by django-allauth/account/urls.py #}
|
|
<a class="nav-link" href="{% url 'account_logout' %}">{% translate "Sign Out" %}</a>
|
|
</li>
|
|
{% else %}
|
|
{% if ACCOUNT_ALLOW_REGISTRATION %}
|
|
<li class="nav-item">
|
|
{# URL provided by django-allauth/account/urls.py #}
|
|
<a id="sign-up-link" class="nav-link" href="{% url 'account_signup' %}">{% translate "Sign Up" %}</a>
|
|
</li>
|
|
{% endif %}
|
|
<li class="nav-item">
|
|
{# URL provided by django-allauth/account/urls.py #}
|
|
<a id="log-in-link" class="nav-link" href="{% url 'account_login' %}">{% translate "Sign In" %}</a>
|
|
</li>
|
|
{% endif %}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
</div>
|
|
|
|
<div class="container">
|
|
|
|
{% if messages %}
|
|
{% for message in messages %}
|
|
<div class="alert alert-dismissible {% if message.tags %}alert-{{ message.tags }}{% endif %}">
|
|
{{ message }}
|
|
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
|
</div>
|
|
{% endfor %}
|
|
{% endif %}
|
|
|
|
{% block content %}
|
|
<p>Use this document as a way to quick start any new project.</p>
|
|
{% endblock content %}
|
|
|
|
</div> <!-- /container -->
|
|
|
|
{% block modal %}{% endblock modal %}
|
|
|
|
{% block inline_javascript %}
|
|
{% comment %}
|
|
Script tags with only code, no src (defer by default). To run
|
|
with a "defer" so that you run inline code:
|
|
<script>
|
|
window.addEventListener('DOMContentLoaded', () => {/* Run whatever you want */});
|
|
</script>
|
|
{% endcomment %}
|
|
{% endblock inline_javascript %}
|
|
</body>
|
|
</html>
|
|
{%- endraw %}
|