include ../../../pillar/src/templates/mixins/components doctype html(lang="en") head meta(charset="utf-8") title {% if self.page_title() %}{% block page_title %}{% endblock %} — {% endif %}Blender Cloud meta(name="viewport", content="width=device-width, initial-scale=1, shrink-to-fit=no") meta(name="description", content="Blender Cloud is a web based service developed by Blender Institute that allows people to access the training videos and all the data from the open projects.") meta(name="author", content="Blender Institute") meta(name="theme-color", content="#3e92aa") | {% if config['GOOGLE_SITE_VERIFICATION'] %} meta(name="google-site-verification" content="{{ config['GOOGLE_SITE_VERIFICATION'] }}") | {% endif %} meta(property="og:site_name", content="Blender Cloud") meta(property="og:locale", content="en_US") meta(name="twitter:card", content="summary_large_image") meta(name="twitter:site", content="@Blender_Cloud") | {% block og %} meta(property="og:title", content="Blender Cloud") meta(property="og:url", content="{{ request.url }}") meta(property="og:type", content="website") meta(property="og:image", content="{{ url_for('static', filename='assets/img/backgrounds/background_gleb_locomotive.jpg')}}") meta(property="og:description", content="Blender Cloud is a web based service developed by Blender Institute that allows people to access the training videos and all the data from the open projects.") meta(name="twitter:title", content="Blender Cloud") meta(name="twitter:description", content="Blender Cloud is a web based service developed by Blender Institute that allows people to access the training videos and all the data from the open projects.") meta(name="twitter:image", content="{{ url_for('static', filename='assets/img/backgrounds/background_gleb_locomotive.jpg')}}") | {% endblock og %} script(src="{{ url_for('static_pillar', filename='assets/js/vendor/jquery-3.1.0.min.js')}}") script(src="{{ url_for('static_pillar', filename='assets/js/vendor/jquery.typeahead-0.11.1.min.js')}}") script(src="{{ url_for('static_pillar', filename='assets/js/vendor/js.cookie-2.0.3.min.js')}}") | {% if current_user.is_authenticated %} script(src="{{ url_for('static_pillar', filename='assets/js/vendor/clipboard.min.js')}}") | {% endif %} | {% if current_user.has_cap('subscriber') %} | {# Only load if we can comment (for converting markdown as-we-type) #} script(src="{{ url_for('static_pillar', filename='assets/js/markdown.min.js') }}") | {% endif %} script(src="{{ url_for('static_pillar', filename='assets/js/tutti.min.js') }}") link(href="{{ url_for('static', filename='assets/img/favicon.png') }}", rel="shortcut icon") link(href="{{ url_for('static', filename='assets/img/apple-touch-icon-precomposed.png') }}", rel="icon apple-touch-icon-precomposed", sizes="192x192") | {% block head %}{% endblock %} | {% block css %} link(href="{{ url_for('static_pillar', filename='assets/css/font-pillar.css') }}", rel="stylesheet") | {% if title == 'blog' %} link(href="{{ url_for('static_pillar', filename='assets/css/blog.css') }}", rel="stylesheet") | {% else %} link(href="{{ url_for('static_cloud', filename='assets/css/main.css') }}", rel="stylesheet") | {% endif %} | {% endblock css %} | {% if not title %}{% set title="default" %}{% endif %} body(class="{{ title }}") | {% with messages = get_flashed_messages(with_categories=True) %} | {% if messages %} | {% for (category, message) in messages %} .alert(role="alert", class="alert-{{ category }}") i.alert-icon(class="{{ category }}") span {{ message }} button.close(type="button", data-dismiss="alert") i.pi-cancel | {% endfor %} | {% endif %} | {% endwith %} nav.navbar.navbar-expand-md.fixed-top.bg-white a.navbar-brand( href="{{ url_for('main.homepage') }}", title="Blender Cloud") span.app-logo i.pi-blender-cloud button.navbar-toggler.text-light( data-target=".navbar-collapse", data-toggle="collapse", type="button") span.sr-only Toggle navigation span.navbar-toggler-icon.d-flex.align-items-center i.pi-menu | {% block navigation_tabs %} | {% endblock navigation_tabs %} | {% block navigation_search %} // TODO (pablo) - bring it back asap .search-input input#cloud-search( type="text", placeholder="Search assets, tutorials...") i.search-icon.pi-search | {% endblock navigation_search %} +nav-secondary()(class="ml-auto nav-main") | {% if node and node.properties and node.properties.category %} | {% set category = node.properties.category %} | {% else %} | {% set category = title %} | {% endif %} | {% block navigation_sections %} +nav-secondary-link( href="{{ url_for('main.main_blog') }}", title="Blender Cloud Blog", data-toggle="tooltip", data-placement="bottom", class="{% if category == 'blog' %}active{% endif %} px-2") | Blog li.nav-item.dropdown a.nav-link.dropdown-toggle.px-2( href="", data-toggle="dropdown", title="Libraries") span Libraries i.pi-angle-down ul.dropdown-menu.p-0 li a.navbar-item( href="{{ url_for('projects.view', project_url='hdri') }}", title="HDRI Library", data-toggle="tooltip", data-placement="left") i.pi-globe | HDRI li a.navbar-item( href="{{ url_for('projects.view', project_url='textures') }}", title="Textures Library", data-toggle="tooltip", data-placement="left") i.pi-folder-texture | Textures li a.navbar-item( href="{{ url_for('projects.view', project_url='characters') }}", title="Character Library", data-toggle="tooltip", data-placement="left") i.pi-character | Characters li.nav-item.dropdown a.nav-link.dropdown-toggle.px-2( href="{{ url_for('cloud.workshops') }}" data-toggle="dropdown", title="Training") span Training i.pi-angle-down ul.dropdown-menu li a.navbar-item( href="{{ url_for('cloud.courses') }}", title="Courses", data-toggle="tooltip", data-placement="left") i.pi-graduation-cap | Courses li a.navbar-item( href="{{ url_for('cloud.workshops') }}", title="Workshops", data-toggle="tooltip", data-placement="left") i.pi-lightbulb | Workshops li a.navbar-item( href="{{ url_for('projects.view', project_url='gallery') }}", title="Curated artwork collection", data-toggle="tooltip", data-placement="left") i.pi-image | Art Gallery li.nav-item.dropdown a.nav-link.dropdown-toggle.px-2( href="{{ url_for('cloud.open_projects') }}", title="Browse all the Open Projects", data-toggle="dropdown", class="{% if category in ['open-projects', 'film'] %}active{% endif %}") span Open Projects i.pi-angle-down ul.dropdown-menu li a.navbar-item(href="/p/spring") span.px-2 Spring li a.navbar-item(href="/p/hero") span.px-2 Hero li a.navbar-item(href="/p/dailydweebs") span.px-2 The Daily Dweebs li a.navbar-item(href="/p/agent-327") span.px-2 Agent 327 li a.navbar-item(href="/p/caminandes-3") span.px-2 Caminandes: Llamigos li.dropdown-divider li a.navbar-item(href="{{ url_for('cloud.open_projects') }}") span.pl-2 All Open Projects li.nav-item.dropdown a.nav-link.dropdown-toggle.px-2( href="{{ url_for('cloud.services') }}", title="Blender Cloud Services", data-toggle="dropdown", class="{% if category == 'services' %}active{% endif %}") span Services i.pi-angle-down ul.dropdown-menu.dropdown-menu-right li a.navbar-item( href="/attract", title="Production Management", data-toggle="tooltip", data-placement="left") i.pi-attract | Attract li a.navbar-item( href="/flamenco", title="Render Management", data-toggle="tooltip", data-placement="left") i.pi-flamenco | Flamenco li a.navbar-item( href="/services#blender-cloud-add-on", title="Blender Sync, Texture Browser and more", data-toggle="tooltip", data-placement="left") i.pi-blender | Blender Cloud Add-on li.dropdown-divider li a.navbar-item( href="{{ url_for('cloud.services') }}", title="All Blender Cloud services", data-toggle="tooltip", data-placement="left") i.pi-list | All Services | {% endblock navigation_sections %} | {% block navigation_user %} | {% include 'menus/notifications.html' %} | {% include 'menus/user.html' %} | {% endblock navigation_user %} | {% if current_user.is_anonymous %} li.pt-1 a.btn.btn-sm.btn-primary.px-3.mx-1( href="https://store.blender.org/product/membership/", title="Sign up") Sign up | {% endif %} .loader-bar .page-content #search-overlay | {% block page_overlay %} #page-overlay | {% endblock page_overlay %} .page-body | {% block body %}{% endblock %} | {% block footer_container %} .footer-wrapper | {% block footer_navigation %} .footer-navigation .container .row .col-md-4.col-xs-6 h4 a(href="{{ url_for('main.homepage') }}") i.pi-blender-cloud-logo p.pl-2. Blender Cloud is the creative hub for your projects, powered by Free and Open Source Software. h5.d-flex a.px-2(href="https://twitter.com/Blender_Cloud", title="Follow us on Twitter") i.pi-social-youtube a.px-2(href="https://twitter.com/Blender_Cloud", title="Follow us on Twitter") i.pi-social-twitter a.px-2(href="https://www.facebook.com/BlenderCloudOfficial/", title="Follow us on Facebook") i.pi-social-facebook .col-md-2.col-xs-6 h7.font-weight-bold | TRAINING ul.list-unstyled li a(href="{{ url_for('cloud.courses') }}") | Courses li a(href="{{ url_for('cloud.workshops') }}") | Workshops li a(href="{{ url_for('projects.view', project_url='gallery') }}") | Art Gallery .col-md-2.col-xs-6 h7.font-weight-bold | LIBRARIES ul.list-unstyled li a(href="{{ url_for('main.main_blog') }}", title="Blender Cloud Blog") | HDRIs li a(href="{{ url_for('cloud.services') }}", title="Blender Cloud Services") | Textures li a(href="{{ url_for('cloud.about') }}", title="About Blender Cloud") | Characters .col-md-2.col-xs-6 h7.font-weight-bold a(href="{{ url_for('cloud.services') }}") | SERVICES ul.list-unstyled li a(href="{{ url_for('main.main_blog') }}", title="Blender Cloud Blog") | Add-on li a(href="{{ url_for('main.main_blog') }}", title="Blender Cloud Blog") | Blender Sync li a(href="{{ url_for('cloud.services') }}", title="Blender Cloud Services") | Attract li a(href="{{ url_for('cloud.about') }}", title="About Blender Cloud") | Flamenco li a(href="{{ url_for('cloud.about') }}", title="About Blender Cloud") | Image Sharing .col-md-2.col-xs-6 h7.font-weight-bold | BLENDER ul.list-unstyled li a(href="{{ url_for('main.main_blog') }}", title="Blender Cloud Blog") | blender.org li a(href="{{ url_for('cloud.terms_and_conditions') }}", title="Terms and Conditions") | Terms and Conditions li a(href="{{ url_for('cloud.privacy') }}", title="Privacy") | Privacy | {% endblock footer_navigation %} #hop(title="Be awesome in space") i.pi-angle-up | {% endblock footer_container %} #notification-pop(data-url="", data-read-toggle="") .nc-progress a#pop-close(href="#", title="Dismiss") i.pi-cancel .nc-item .nc-avatar .nc-text span.nc-date a(href="") script(src="{{ url_for('static_cloud', filename='assets/js/bootstrap.min.js') }}") | {% if current_user.is_authenticated %} script(src="{{ url_for('static_pillar', filename='assets/js/vendor/jquery.typewatch-3.0.0.min.js') }}") script. // When sending an AJAX request, always add the X-CSRFToken header to it. var csrf_token = "{{ csrf_token() }}"; $.ajaxSetup({ beforeSend: function (xhr, settings) { if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) { xhr.setRequestHeader("X-CSRFToken", csrf_token); } } }); | {% endif %} script. $(document).ready(function() { {% if current_user.is_authenticated %} getNotificationsLoop(); // Check for new notifications in the background // Resize #notifications and change overflow for scrollbars $(window).on("resize", function() { notificationsResize(); }); {% endif %} }); if (typeof $().tooltip != 'undefined'){ $('[data-toggle="tooltip"]').tooltip({'delay' : {'show': 0, 'hide': 0}}); } | {% block footer_scripts_pre %}{% endblock %} | {% block footer_scripts %}{% endblock %} script. (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', '{{ config.GOOGLE_ANALYTICS_TRACKING_ID }} ', 'auto', {'allowAnchor': true}); ga('send', 'pageview');