feat: dynamic main icon
This commit is contained in:
@@ -105,8 +105,8 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if section.content %}
|
||||
<div class="glass-card fade-in">
|
||||
<div class="rich-content" style="padding: 2rem;" data-readmore="200">{{ section.rendered_content }}</div>
|
||||
<div class="glass-card fade-in about-custom-card">
|
||||
<div class="rich-content" data-readmore="200">{{ section.rendered_content }}</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% with items=section.items.all %}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
<section class="section" aria-labelledby="contact-form-heading">
|
||||
<div class="container">
|
||||
<div class="contact-layout">
|
||||
<div class="contact-layout{% if not site_contact.has_contact_sidebar %} contact-layout--full{% endif %}">
|
||||
|
||||
<div class="contact-form-wrap glass-card fade-in">
|
||||
<h2 class="contact-form-title" id="contact-form-heading">Send a Message</h2>
|
||||
@@ -75,7 +75,9 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
{% if site_contact.has_contact_sidebar %}
|
||||
<aside class="contact-sidebar">
|
||||
{% if site_contact.has_support_email %}
|
||||
<div class="contact-card glass-card fade-in">
|
||||
<div class="contact-icon" aria-hidden="true">
|
||||
<svg width="28" height="28" viewBox="0 0 32 32" fill="none">
|
||||
@@ -83,22 +85,30 @@
|
||||
<path d="M5 9L16 16L27 9" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="contact-card-title">Email Support</h3>
|
||||
<p class="contact-card-desc">For direct software support:</p>
|
||||
<a href="mailto:support@radiuma.com" class="contact-email-link">support@radiuma.com</a>
|
||||
<h3 class="contact-card-title">{{ site_contact.email_card_title_display }}</h3>
|
||||
{% if site_contact.email_card_description %}
|
||||
<p class="contact-card-desc">{{ site_contact.email_card_description }}</p>
|
||||
{% endif %}
|
||||
{% include "partials/_contact_email.html" with link_class="contact-email-link" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if site_contact.has_discord %}
|
||||
<div class="contact-card glass-card fade-in">
|
||||
<div class="contact-icon" aria-hidden="true">
|
||||
<svg width="28" height="28" viewBox="0 0 24 24" fill="currentColor">
|
||||
<path d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057.1 18.08.114 18.1.133 18.11a19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="contact-card-title">Discord Community</h3>
|
||||
<p class="contact-card-desc">Join for community support and announcements.</p>
|
||||
<a href="https://discord.gg/9XxA6pV9hb" class="btn-primary btn--sm" target="_blank" rel="noopener noreferrer">Join Discord</a>
|
||||
<h3 class="contact-card-title">{{ site_contact.discord_card_title_display }}</h3>
|
||||
{% if site_contact.discord_card_description %}
|
||||
<p class="contact-card-desc">{{ site_contact.discord_card_description }}</p>
|
||||
{% endif %}
|
||||
{% include "partials/_contact_discord.html" with button_class="btn-primary btn--sm" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if site_contact.has_office_address %}
|
||||
<div class="contact-card glass-card fade-in">
|
||||
<div class="contact-icon" aria-hidden="true">
|
||||
<svg width="28" height="28" viewBox="0 0 32 32" fill="none">
|
||||
@@ -106,15 +116,12 @@
|
||||
<circle cx="16" cy="12" r="3" stroke="currentColor" stroke-width="1.5"/>
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="contact-card-title">Office</h3>
|
||||
<address class="contact-address">
|
||||
<p>BC Cancer Research Center</p>
|
||||
<p>675 West 10th Ave, Office 6-112</p>
|
||||
<p>Vancouver, BC, V5Z 1L3</p>
|
||||
<p>Canada</p>
|
||||
</address>
|
||||
<h3 class="contact-card-title">{{ site_contact.office_card_title_display }}</h3>
|
||||
{% include "partials/_contact_office.html" with address_class="contact-address" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</aside>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
{% load static %}
|
||||
{% if placement == "footer" %}
|
||||
<img
|
||||
{% if site_branding.icon %}src="{{ site_branding.icon.url }}"{% else %}src="{% static 'images/favicon-180.png' %}"{% endif %}
|
||||
{% if site_branding.icon_alt %}alt="{{ site_branding.icon_alt }}"{% else %}alt="" aria-hidden="true"{% endif %}
|
||||
class="brand-icon"
|
||||
width="{{ site_branding.footer_icon_size }}"
|
||||
height="{{ site_branding.footer_icon_size }}"
|
||||
style="{{ site_branding.footer_icon_style }}"
|
||||
/>
|
||||
{% else %}
|
||||
<img
|
||||
{% if site_branding.icon %}src="{{ site_branding.icon.url }}"{% else %}src="{% static 'images/favicon-180.png' %}"{% endif %}
|
||||
{% if site_branding.icon_alt %}alt="{{ site_branding.icon_alt }}"{% else %}alt="" aria-hidden="true"{% endif %}
|
||||
class="brand-icon"
|
||||
width="{{ site_branding.navbar_icon_size }}"
|
||||
height="{{ site_branding.navbar_icon_size }}"
|
||||
style="{{ site_branding.navbar_icon_style }}"
|
||||
/>
|
||||
{% endif %}
|
||||
@@ -0,0 +1,8 @@
|
||||
{% if site_contact.has_discord %}
|
||||
<a href="{{ site_contact.discord_url }}" class="{{ button_class|default:'btn-ghost btn-sm' }}" target="_blank" rel="noopener noreferrer">
|
||||
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
|
||||
<path d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057.1 18.08.114 18.1.133 18.11a19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03z"/>
|
||||
</svg>
|
||||
{{ site_contact.discord_label_display }}
|
||||
</a>
|
||||
{% endif %}
|
||||
@@ -0,0 +1,3 @@
|
||||
{% if site_contact.has_support_email %}
|
||||
<a href="mailto:{{ site_contact.support_email }}" class="{{ link_class|default:'footer-email' }}">{{ site_contact.support_email }}</a>
|
||||
{% endif %}
|
||||
@@ -0,0 +1,7 @@
|
||||
{% if site_contact.has_office_address %}
|
||||
<address class="{{ address_class|default:'footer-address' }}">
|
||||
{% for line in site_contact.office_address_lines %}
|
||||
<p>{{ line }}</p>
|
||||
{% endfor %}
|
||||
</address>
|
||||
{% endif %}
|
||||
@@ -9,18 +9,13 @@
|
||||
|
||||
<div class="footer-brand-col">
|
||||
<a href="{% url 'pages:home' %}" class="footer-logo" aria-label="Radiuma home">
|
||||
<img src="{% static 'images/favicon-180.png' %}" alt="" class="brand-icon" width="34" height="34" aria-hidden="true" />
|
||||
{% include "partials/_brand_icon.html" with placement="footer" %}
|
||||
<span class="brand-name">Radiuma</span>
|
||||
</a>
|
||||
<p class="footer-tagline">
|
||||
Advancing medical imaging and radiomics research through innovative, standardized software solutions.
|
||||
</p>
|
||||
<a href="https://discord.gg/9XxA6pV9hb" class="btn-ghost btn-sm" target="_blank" rel="noopener noreferrer">
|
||||
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
|
||||
<path d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057.1 18.08.114 18.1.133 18.11a19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03z"/>
|
||||
</svg>
|
||||
Join Discord
|
||||
</a>
|
||||
{% include "partials/_contact_discord.html" with button_class="btn-ghost btn-sm" %}
|
||||
</div>
|
||||
|
||||
<div class="footer-links-col">
|
||||
@@ -34,29 +29,27 @@
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{% if footer_sub_products %}
|
||||
{% if footer_main_products %}
|
||||
<div class="footer-links-col">
|
||||
<h3 class="footer-heading">Products</h3>
|
||||
<ul class="footer-links" role="list">
|
||||
{% for sub in footer_sub_products %}
|
||||
<li><a href="{{ sub.get_absolute_url }}">{{ sub.name }}</a></li>
|
||||
{% for product in footer_main_products %}
|
||||
<li><a href="{{ product.get_absolute_url }}">{{ product.name }}</a></li>
|
||||
{% endfor %}
|
||||
{% if footer_sub_products_has_more %}
|
||||
<li><a href="/products/radiuma/">more</a></li>
|
||||
{% if footer_main_products_has_more %}
|
||||
<li><a href="{% url 'products:main_product_detail' main_slug='radiuma' %}">more</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if site_contact.has_footer_contact %}
|
||||
<div class="footer-contact-col">
|
||||
<h3 class="footer-heading">Contact</h3>
|
||||
<address class="footer-address">
|
||||
<p>BC Cancer Research Center</p>
|
||||
<p>675 West 10th Ave, Office 6-112</p>
|
||||
<p>Vancouver, BC, V5Z 1L3</p>
|
||||
</address>
|
||||
<a href="mailto:support@radiuma.com" class="footer-email">support@radiuma.com</a>
|
||||
{% include "partials/_contact_office.html" with address_class="footer-address" %}
|
||||
{% include "partials/_contact_email.html" with link_class="footer-email" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<div class="navbar-container">
|
||||
|
||||
<a href="{% url 'pages:home' %}" class="navbar-brand" aria-label="Radiuma home">
|
||||
<img src="{% static 'images/favicon-180.png' %}" alt="" class="brand-icon" width="24" height="24" aria-hidden="true" />
|
||||
{% include "partials/_brand_icon.html" with placement="navbar" %}
|
||||
<span class="brand-name">Radiuma</span>
|
||||
</a>
|
||||
|
||||
@@ -32,34 +32,33 @@
|
||||
</a>
|
||||
<div class="megamenu" role="menu" aria-labelledby="productsTrigger">
|
||||
<div class="megamenu-inner">
|
||||
<div class="megamenu-grid">
|
||||
{% for product in nav_main_products %}
|
||||
<div class="megamenu-column">
|
||||
<a href="{{ product.get_absolute_url }}" class="megamenu-product-title" role="menuitem">
|
||||
{{ product.name }}
|
||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" aria-hidden="true">
|
||||
<path d="M3 7H11M11 7L8 4M11 7L8 10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</a>
|
||||
<p class="megamenu-product-desc">{{ product.short_description }}</p>
|
||||
{% with subs=product.sub_products.all %}
|
||||
{% if subs %}
|
||||
<ul class="megamenu-sublist" role="list">
|
||||
{% for sub in subs %}
|
||||
{% if sub.is_active %}
|
||||
<li>
|
||||
<a href="{{ sub.get_absolute_url }}" class="megamenu-sublink" role="menuitem">
|
||||
<span class="sublink-dot"></span>
|
||||
{{ sub.name }}
|
||||
</a>
|
||||
</li>
|
||||
<div class="megamenu-products-scroll" tabindex="0" aria-label="Product list">
|
||||
<ul class="megamenu-products" role="list">
|
||||
{% for product in nav_main_products %}
|
||||
<li class="megamenu-product-item{% if product.sub_products.all %} has-subproducts{% endif %}">
|
||||
<a href="{{ product.get_absolute_url }}" class="megamenu-product-link" role="menuitem">
|
||||
<span class="megamenu-product-name">
|
||||
{{ product.name }}
|
||||
{% if product.sub_products.all %}
|
||||
<svg class="megamenu-sub-chevron" width="12" height="12" viewBox="0 0 12 12" fill="none" aria-hidden="true">
|
||||
<path d="M2 4L6 8L10 4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
{% endif %}
|
||||
</span>
|
||||
<span class="megamenu-product-desc">{{ product.short_description }}</span>
|
||||
</a>
|
||||
{% if product.sub_products.all %}
|
||||
<ul class="megamenu-sublist" role="list" aria-label="{{ product.name }} modules">
|
||||
{% for sub in product.sub_products.all %}
|
||||
<li>
|
||||
<a href="{{ sub.get_absolute_url }}" class="megamenu-sublink" role="menuitem">{{ sub.name }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
{% if articles %}
|
||||
<section aria-label="Content sections">
|
||||
<div class="articles-list">
|
||||
{% for article in articles %}
|
||||
<article class="article-card glass-card fade-in" aria-labelledby="article-{{ article.pk }}-title">
|
||||
{% if article.badge %}<div class="article-card-header"><div class="section-badge article-badge">{{ article.badge }}</div></div>{% endif %}
|
||||
<h3 class="article-title" id="article-{{ article.pk }}-title">{{ article.title }}</h3>
|
||||
<div class="article-description rich-content" data-readmore="260">{{ article.rendered_description }}</div>
|
||||
{% if article.sections.all %}
|
||||
<div class="article-sections">
|
||||
<dl class="article-sections-list">
|
||||
{% for section in article.sections.all %}
|
||||
<div class="article-section-item">
|
||||
<dt class="section-key">{{ section.title }}</dt>
|
||||
<dd class="section-value rich-content" data-readmore="160">{{ section.rendered_value }}</dd>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</dl>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if article.citations.all %}
|
||||
<div class="article-citations" id="article-{{ article.pk }}-citations">
|
||||
<h4 class="article-citations-title">Citations</h4>
|
||||
<ol class="article-citations-list">
|
||||
{% for citation in article.citations.all %}
|
||||
<li class="article-citation-item">
|
||||
<span class="citation-text">{{ citation.text }}</span>
|
||||
{% if citation.url %}
|
||||
<span class="citation-actions">
|
||||
<a href="{{ citation.url }}" class="citation-link" target="_blank" rel="noopener noreferrer" aria-label="Open citation source">
|
||||
<svg width="13" height="13" viewBox="0 0 16 16" fill="none" aria-hidden="true">
|
||||
<path d="M7 3H3a1 1 0 00-1 1v9a1 1 0 001 1h9a1 1 0 001-1V9M10 2h4m0 0v4m0-4L7 9" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</a>
|
||||
<button type="button" class="citation-copy" data-citation-url="{{ citation.url }}" aria-label="Copy citation link">
|
||||
<svg class="citation-copy-icon" width="15" height="15" viewBox="0 0 16 16" fill="none" aria-hidden="true">
|
||||
<rect x="5" y="5" width="8" height="8" rx="1" stroke="currentColor" stroke-width="1.5"/>
|
||||
<path d="M3 11V3a1 1 0 011-1h8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
|
||||
</svg>
|
||||
<svg class="citation-copy-icon-done" width="13" height="13" viewBox="0 0 16 16" fill="none" aria-hidden="true">
|
||||
<path d="M3.5 8.5L6.5 11.5L12.5 4.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
<span class="citation-copy-feedback" aria-live="polite" hidden>Copied!</span>
|
||||
</button>
|
||||
</span>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ol>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if article.citation_count_display is not None or article.citation_count_label %}
|
||||
{% if article.citations.exists %}
|
||||
<a href="#article-{{ article.pk }}-citations" class="citation-count-badge" aria-label="{% if article.citation_count_display %}{{ article.citation_count_display }} {% endif %}{% if article.citation_count_label %}{{ article.citation_count_label }}{% endif %}">
|
||||
{% if article.citation_count_display is not None %}<span class="citation-count-number">{{ article.citation_count_display }}</span>{% endif %}
|
||||
{% if article.citation_count_label %}<span class="citation-count-label">{{ article.citation_count_label }}</span>{% endif %}
|
||||
</a>
|
||||
{% else %}
|
||||
<div class="citation-count-badge" aria-label="{% if article.citation_count_display %}{{ article.citation_count_display }} {% endif %}{% if article.citation_count_label %}{{ article.citation_count_label }}{% endif %}">
|
||||
{% if article.citation_count_display is not None %}<span class="citation-count-number">{{ article.citation_count_display }}</span>{% endif %}
|
||||
{% if article.citation_count_label %}<span class="citation-count-label">{{ article.citation_count_label }}</span>{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</article>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
{% endif %}
|
||||
@@ -0,0 +1,101 @@
|
||||
{% load static %}
|
||||
{% if show_releases_section %}
|
||||
{% if distribution_installable %}
|
||||
<section class="sub-downloads fade-in" aria-labelledby="sub-dl-heading">
|
||||
<h2 class="sub-downloads-title" id="sub-dl-heading">
|
||||
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
||||
<path d="M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/>
|
||||
</svg>
|
||||
Downloads
|
||||
</h2>
|
||||
|
||||
<div class="sub-downloads-channel">
|
||||
{% if featured_version.is_featured_stable %}
|
||||
<span class="release-channel-label release-channel-label--stable">
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
||||
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>
|
||||
</svg>
|
||||
Stable
|
||||
</span>
|
||||
{% endif %}
|
||||
{% if featured_install_cells %}
|
||||
<div class="sub-downloads-grid">
|
||||
{% for cell in featured_install_cells %}
|
||||
<div class="sub-dl-item">
|
||||
<div class="sub-dl-icon-wrap">
|
||||
{% if cell.icon %}
|
||||
<img src="{% static cell.icon %}" alt="" width="32" height="32" class="platform-icon sub-dl-icon" aria-hidden="true" />
|
||||
{% else %}
|
||||
<span class="sub-dl-source-mark" aria-hidden="true">
|
||||
<svg class="sub-dl-source-svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.85" stroke-linecap="round">
|
||||
<polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/>
|
||||
</svg>
|
||||
</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
<span class="sub-dl-platform">{{ cell.label }}</span>
|
||||
<span class="download-version">v{{ featured_version.version }}</span>
|
||||
<a href="{{ cell.url }}" class="btn-primary btn--sm"{% if cell.label == "Source code" %} target="_blank" rel="noopener noreferrer"{% endif %}>{% if cell.label == "Source code" %}Source{% else %}Download{% endif %}</a>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% if featured_version.package_resource_url %}
|
||||
<p class="sub-install-extra-resource">
|
||||
<a href="{{ featured_version.package_resource_url }}" target="_blank" rel="noopener noreferrer">Package resource</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
{% if featured_version.release_notes %}
|
||||
<p class="sub-release-notes">{{ featured_version.release_notes }}</p>
|
||||
{% endif %}
|
||||
|
||||
{% if show_older_versions_link %}
|
||||
<p class="sub-older-versions-inner">
|
||||
<a href="{{ versions_archive_url }}" class="link-arrow">Older releases</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
</section>
|
||||
|
||||
{% elif distribution_package %}
|
||||
<section class="sub-downloads sub-downloads--package fade-in" aria-labelledby="sub-resources-heading">
|
||||
<h2 class="sub-downloads-title" id="sub-resources-heading">
|
||||
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
||||
<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/>
|
||||
<path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/>
|
||||
</svg>
|
||||
Resources
|
||||
</h2>
|
||||
<ul class="pkg-version-list" role="list">
|
||||
{% for ver in package_versions %}
|
||||
<li class="pkg-version-row">
|
||||
<div class="pkg-version-meta">
|
||||
<span class="download-version">v{{ ver.version }}</span>
|
||||
{% if ver.is_featured_stable %}
|
||||
<span class="release-channel-label release-channel-label--stable pkg-stable-inline">
|
||||
<svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
||||
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>
|
||||
</svg>
|
||||
Stable
|
||||
</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="pkg-version-actions">
|
||||
{% if ver.package_resource_url %}
|
||||
<a href="{{ ver.package_resource_url }}" class="btn-primary btn--sm" target="_blank" rel="noopener noreferrer">Open</a>
|
||||
{% endif %}
|
||||
{% if ver.source_code_url %}
|
||||
<a href="{{ ver.source_code_url }}" class="btn-ghost btn--sm" target="_blank" rel="noopener noreferrer">Source</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if ver.release_notes %}
|
||||
<p class="pkg-version-notes">{{ ver.release_notes }}</p>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</section>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
@@ -0,0 +1,64 @@
|
||||
{% load static %}
|
||||
{% if not archive_versions %}
|
||||
<p class="versions-empty glass-card">There are no archived releases{% if sub_product %} for this module{% else %} for this product{% endif %}.</p>
|
||||
{% elif distribution_installable %}
|
||||
<div class="versions-table-wrap glass-card fade-in">
|
||||
<table class="versions-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Version</th>
|
||||
{% for fname, label, icon in archive_specs %}
|
||||
<th scope="col">{{ label }}</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for row in archive_rows_installable %}
|
||||
<tr>
|
||||
<th scope="row">{{ row.version_obj.version }}</th>
|
||||
{% for cell in row.cells %}
|
||||
<td>
|
||||
{% if cell.url %}
|
||||
{% if cell.icon %}
|
||||
<a href="{{ cell.url }}" class="versions-table-link">
|
||||
<img src="{% static cell.icon %}" alt="" width="22" height="22" class="versions-table-icon" aria-hidden="true" />
|
||||
<span class="sr-only">{{ cell.label }}</span>
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="{{ cell.url }}" class="versions-table-text-link" rel="noopener noreferrer">Source</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<span class="versions-na">—</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% if row.version_obj.release_notes %}
|
||||
<tr class="versions-notes-row">
|
||||
<td colspan="{{ archive_specs|length|add:1 }}">
|
||||
<span class="versions-notes-label">Notes</span>
|
||||
<p class="versions-notes-body">{{ row.version_obj.release_notes }}</p>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
<ul class="versions-package-list" role="list">
|
||||
{% for ver in archive_versions %}
|
||||
<li class="versions-package-card glass-card fade-in">
|
||||
<div class="versions-package-head">
|
||||
<span class="download-version">v{{ ver.version }}</span>
|
||||
{% if ver.package_resource_url %}
|
||||
<a href="{{ ver.package_resource_url }}" class="btn-ghost btn--sm" target="_blank" rel="noopener noreferrer">Open</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if ver.release_notes %}
|
||||
<p class="versions-notes-body">{{ ver.release_notes }}</p>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
@@ -31,24 +31,36 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section" aria-labelledby="product-desc-heading">
|
||||
<section class="section main-product-layout" aria-labelledby="product-desc-heading">
|
||||
<div class="container">
|
||||
<div class="product-detail-intro glass-card fade-in">
|
||||
<h2 class="sr-only" id="product-desc-heading">About {{ main_product.name }}</h2>
|
||||
<div class="product-detail-image">
|
||||
{% if main_product.image %}
|
||||
<img src="{{ main_product.image.url }}" alt="{{ main_product.name }}" loading="lazy" />
|
||||
{% else %}
|
||||
<img src="{% static 'images/logo.png' %}" alt="{{ main_product.name }} logo" loading="lazy" class="product-logo-img" />
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="product-detail-text">
|
||||
<div class="product-detail-desc rich-content" data-readmore="220">{{ main_product.rendered_description }}</div>
|
||||
<div class="main-product-main">
|
||||
<div class="product-detail-intro glass-card fade-in">
|
||||
<div class="product-detail-image">
|
||||
{% if main_product.image %}
|
||||
<img src="{{ main_product.image.url }}" alt="{{ main_product.name }}" loading="lazy" />
|
||||
{% else %}
|
||||
<img src="{% static 'images/logo.png' %}" alt="{{ main_product.name }} logo" loading="lazy" class="product-logo-img" />
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="product-detail-text">
|
||||
<h2 id="product-desc-heading">About {{ main_product.name }}</h2>
|
||||
<div class="product-detail-desc rich-content" data-readmore="220">{{ main_product.rendered_description }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% include "products/_releases_section.html" %}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% if articles %}
|
||||
<section class="section" aria-label="Product articles">
|
||||
<div class="container">
|
||||
{% include "products/_article_list.html" %}
|
||||
</div>
|
||||
</section>
|
||||
{% endif %}
|
||||
|
||||
{% with subs=main_product.sub_products.all %}
|
||||
{% if subs %}
|
||||
<section class="section" aria-labelledby="subproducts-heading">
|
||||
|
||||
@@ -47,177 +47,9 @@
|
||||
<div class="rich-content" data-readmore="220">{{ sub_product.rendered_description }}</div>
|
||||
</div>
|
||||
|
||||
{% if show_releases_section %}
|
||||
{% if distribution_installable %}
|
||||
<section class="sub-downloads fade-in" aria-labelledby="sub-dl-heading">
|
||||
<h2 class="sub-downloads-title" id="sub-dl-heading">
|
||||
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
||||
<path d="M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/>
|
||||
</svg>
|
||||
Downloads
|
||||
</h2>
|
||||
{% include "products/_releases_section.html" %}
|
||||
|
||||
<div class="sub-downloads-channel">
|
||||
{% if featured_version.is_featured_stable %}
|
||||
<span class="release-channel-label release-channel-label--stable">
|
||||
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
||||
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>
|
||||
</svg>
|
||||
Stable
|
||||
</span>
|
||||
{% endif %}
|
||||
{% if featured_install_cells %}
|
||||
<div class="sub-downloads-grid">
|
||||
{% for cell in featured_install_cells %}
|
||||
<div class="sub-dl-item">
|
||||
<div class="sub-dl-icon-wrap">
|
||||
{% if cell.icon %}
|
||||
<img src="{% static cell.icon %}" alt="" width="32" height="32" class="platform-icon sub-dl-icon" aria-hidden="true" />
|
||||
{% else %}
|
||||
<span class="sub-dl-source-mark" aria-hidden="true">
|
||||
<svg class="sub-dl-source-svg" width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.85" stroke-linecap="round">
|
||||
<polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/>
|
||||
</svg>
|
||||
</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
<span class="sub-dl-platform">{{ cell.label }}</span>
|
||||
<span class="download-version">v{{ featured_version.version }}</span>
|
||||
<a href="{{ cell.url }}" class="btn-primary btn--sm"{% if cell.label == "Source code" %} target="_blank" rel="noopener noreferrer"{% endif %}>{% if cell.label == "Source code" %}Source{% else %}Download{% endif %}</a>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% if featured_version.package_resource_url %}
|
||||
<p class="sub-install-extra-resource">
|
||||
<a href="{{ featured_version.package_resource_url }}" target="_blank" rel="noopener noreferrer">Package resource</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
{% if featured_version.release_notes %}
|
||||
<p class="sub-release-notes">{{ featured_version.release_notes }}</p>
|
||||
{% endif %}
|
||||
|
||||
{% if show_older_versions_link %}
|
||||
<p class="sub-older-versions-inner">
|
||||
<a href="{{ sub_product.get_versions_archive_url }}" class="link-arrow">Older releases</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
</section>
|
||||
|
||||
{% elif distribution_package %}
|
||||
<section class="sub-downloads sub-downloads--package fade-in" aria-labelledby="sub-resources-heading">
|
||||
<h2 class="sub-downloads-title" id="sub-resources-heading">
|
||||
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
||||
<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/>
|
||||
<path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/>
|
||||
</svg>
|
||||
Resources
|
||||
</h2>
|
||||
<ul class="pkg-version-list" role="list">
|
||||
{% for ver in package_versions %}
|
||||
<li class="pkg-version-row">
|
||||
<div class="pkg-version-meta">
|
||||
<span class="download-version">v{{ ver.version }}</span>
|
||||
{% if ver.is_featured_stable %}
|
||||
<span class="release-channel-label release-channel-label--stable pkg-stable-inline">
|
||||
<svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
|
||||
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>
|
||||
</svg>
|
||||
Stable
|
||||
</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="pkg-version-actions">
|
||||
{% if ver.package_resource_url %}
|
||||
<a href="{{ ver.package_resource_url }}" class="btn-primary btn--sm" target="_blank" rel="noopener noreferrer">Open</a>
|
||||
{% endif %}
|
||||
{% if ver.source_code_url %}
|
||||
<a href="{{ ver.source_code_url }}" class="btn-ghost btn--sm" target="_blank" rel="noopener noreferrer">Source</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if ver.release_notes %}
|
||||
<p class="pkg-version-notes">{{ ver.release_notes }}</p>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</section>
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% if articles %}
|
||||
<section aria-label="Content sections">
|
||||
<div class="articles-list">
|
||||
{% for article in articles %}
|
||||
<article class="article-card glass-card fade-in" aria-labelledby="article-{{ article.pk }}-title">
|
||||
{% if article.badge %}<div class="article-card-header"><div class="section-badge article-badge">{{ article.badge }}</div></div>{% endif %}
|
||||
<h3 class="article-title" id="article-{{ article.pk }}-title">{{ article.title }}</h3>
|
||||
<div class="article-description rich-content" data-readmore="260">{{ article.rendered_description }}</div>
|
||||
{% if article.sections.all %}
|
||||
<div class="article-sections">
|
||||
<dl class="article-sections-list">
|
||||
{% for section in article.sections.all %}
|
||||
<div class="article-section-item">
|
||||
<dt class="section-key">{{ section.title }}</dt>
|
||||
<dd class="section-value rich-content" data-readmore="160">{{ section.rendered_value }}</dd>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</dl>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if article.citations.all %}
|
||||
<div class="article-citations" id="article-{{ article.pk }}-citations">
|
||||
<h4 class="article-citations-title">Citations</h4>
|
||||
<ol class="article-citations-list">
|
||||
{% for citation in article.citations.all %}
|
||||
<li class="article-citation-item">
|
||||
<span class="citation-text">{{ citation.text }}</span>
|
||||
{% if citation.url %}
|
||||
<span class="citation-actions">
|
||||
<a href="{{ citation.url }}" class="citation-link" target="_blank" rel="noopener noreferrer" aria-label="Open citation source">
|
||||
<svg width="13" height="13" viewBox="0 0 16 16" fill="none" aria-hidden="true">
|
||||
<path d="M7 3H3a1 1 0 00-1 1v9a1 1 0 001 1h9a1 1 0 001-1V9M10 2h4m0 0v4m0-4L7 9" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
</a>
|
||||
<button type="button" class="citation-copy" data-citation-url="{{ citation.url }}" aria-label="Copy citation link">
|
||||
<svg class="citation-copy-icon" width="15" height="15" viewBox="0 0 16 16" fill="none" aria-hidden="true">
|
||||
<rect x="5" y="5" width="8" height="8" rx="1" stroke="currentColor" stroke-width="1.5"/>
|
||||
<path d="M3 11V3a1 1 0 011-1h8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
|
||||
</svg>
|
||||
<svg class="citation-copy-icon-done" width="13" height="13" viewBox="0 0 16 16" fill="none" aria-hidden="true">
|
||||
<path d="M3.5 8.5L6.5 11.5L12.5 4.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
<span class="citation-copy-feedback" aria-live="polite" hidden>Copied!</span>
|
||||
</button>
|
||||
</span>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ol>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if article.citation_count_display is not None or article.citation_count_label %}
|
||||
{% if article.citations.exists %}
|
||||
<a href="#article-{{ article.pk }}-citations" class="citation-count-badge" aria-label="{% if article.citation_count_display %}{{ article.citation_count_display }} {% endif %}{% if article.citation_count_label %}{{ article.citation_count_label }}{% endif %}">
|
||||
{% if article.citation_count_display is not None %}<span class="citation-count-number">{{ article.citation_count_display }}</span>{% endif %}
|
||||
{% if article.citation_count_label %}<span class="citation-count-label">{{ article.citation_count_label }}</span>{% endif %}
|
||||
</a>
|
||||
{% else %}
|
||||
<div class="citation-count-badge" aria-label="{% if article.citation_count_display %}{{ article.citation_count_display }} {% endif %}{% if article.citation_count_label %}{{ article.citation_count_label }}{% endif %}">
|
||||
{% if article.citation_count_display is not None %}<span class="citation-count-number">{{ article.citation_count_display }}</span>{% endif %}
|
||||
{% if article.citation_count_label %}<span class="citation-count-label">{{ article.citation_count_label }}</span>{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</article>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
{% endif %}
|
||||
{% include "products/_article_list.html" %}
|
||||
</main>
|
||||
|
||||
<aside class="sub-product-sidebar" aria-label="Related modules">
|
||||
|
||||
@@ -1,104 +0,0 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block title %}Older releases — {{ sub_product.name }} — {{ main_product.name }}{% endblock %}
|
||||
{% block meta_description %}Archived releases for {{ sub_product.name }}.{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<section class="page-hero" aria-labelledby="versions-heading">
|
||||
<div class="page-hero-blobs" aria-hidden="true">
|
||||
<div class="blob blob--1"></div>
|
||||
<div class="blob blob--2"></div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol class="breadcrumb-list" role="list">
|
||||
<li><a href="{% url 'pages:home' %}">Home</a></li>
|
||||
<li aria-hidden="true" class="breadcrumb-sep">›</li>
|
||||
<li><a href="{% url 'products:overview' %}">Products</a></li>
|
||||
<li aria-hidden="true" class="breadcrumb-sep">›</li>
|
||||
<li><a href="{{ main_product.get_absolute_url }}">{{ main_product.name }}</a></li>
|
||||
<li aria-hidden="true" class="breadcrumb-sep">›</li>
|
||||
<li><a href="{{ sub_product.get_absolute_url }}">{{ sub_product.name }}</a></li>
|
||||
<li aria-hidden="true" class="breadcrumb-sep">›</li>
|
||||
<li aria-current="page">Older releases</li>
|
||||
</ol>
|
||||
</nav>
|
||||
<div class="page-hero-content">
|
||||
<div class="section-badge">{{ sub_product.name }}</div>
|
||||
<h1 class="page-hero-title" id="versions-heading">Older releases</h1>
|
||||
<p class="page-hero-subtitle">Archived versions of this module.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section versions-archive-section">
|
||||
<div class="container">
|
||||
{% if not archive_versions %}
|
||||
<p class="versions-empty glass-card">There are no archived releases for this module.</p>
|
||||
{% elif distribution_installable %}
|
||||
<div class="versions-table-wrap glass-card fade-in">
|
||||
<table class="versions-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Version</th>
|
||||
{% for fname, label, icon in archive_specs %}
|
||||
<th scope="col">{{ label }}</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for row in archive_rows_installable %}
|
||||
<tr>
|
||||
<th scope="row">{{ row.version_obj.version }}</th>
|
||||
{% for cell in row.cells %}
|
||||
<td>
|
||||
{% if cell.url %}
|
||||
{% if cell.icon %}
|
||||
<a href="{{ cell.url }}" class="versions-table-link">
|
||||
<img src="{% static cell.icon %}" alt="" width="22" height="22" class="versions-table-icon" aria-hidden="true" />
|
||||
<span class="sr-only">{{ cell.label }}</span>
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="{{ cell.url }}" class="versions-table-text-link" rel="noopener noreferrer">Source</a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<span class="versions-na">—</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% if row.version_obj.release_notes %}
|
||||
<tr class="versions-notes-row">
|
||||
<td colspan="{{ archive_specs|length|add:1 }}">
|
||||
<span class="versions-notes-label">Notes</span>
|
||||
<p class="versions-notes-body">{{ row.version_obj.release_notes }}</p>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
<ul class="versions-package-list" role="list">
|
||||
{% for ver in archive_versions %}
|
||||
<li class="versions-package-card glass-card fade-in">
|
||||
<div class="versions-package-head">
|
||||
<span class="download-version">v{{ ver.version }}</span>
|
||||
{% if ver.package_resource_url %}
|
||||
<a href="{{ ver.package_resource_url }}" class="btn-ghost btn--sm" target="_blank" rel="noopener noreferrer">Open</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if ver.release_notes %}
|
||||
<p class="versions-notes-body">{{ ver.release_notes }}</p>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,43 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Older releases — {% if sub_product %}{{ sub_product.name }} — {% endif %}{{ main_product.name }}{% endblock %}
|
||||
{% block meta_description %}Archived releases{% if sub_product %} for {{ sub_product.name }}{% else %} for {{ main_product.name }}{% endif %}.{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<section class="page-hero" aria-labelledby="versions-heading">
|
||||
<div class="page-hero-blobs" aria-hidden="true">
|
||||
<div class="blob blob--1"></div>
|
||||
<div class="blob blob--2"></div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol class="breadcrumb-list" role="list">
|
||||
<li><a href="{% url 'pages:home' %}">Home</a></li>
|
||||
<li aria-hidden="true" class="breadcrumb-sep">›</li>
|
||||
<li><a href="{% url 'products:overview' %}">Products</a></li>
|
||||
<li aria-hidden="true" class="breadcrumb-sep">›</li>
|
||||
<li><a href="{{ main_product.get_absolute_url }}">{{ main_product.name }}</a></li>
|
||||
{% if sub_product %}
|
||||
<li aria-hidden="true" class="breadcrumb-sep">›</li>
|
||||
<li><a href="{{ sub_product.get_absolute_url }}">{{ sub_product.name }}</a></li>
|
||||
{% endif %}
|
||||
<li aria-hidden="true" class="breadcrumb-sep">›</li>
|
||||
<li aria-current="page">Older releases</li>
|
||||
</ol>
|
||||
</nav>
|
||||
<div class="page-hero-content">
|
||||
<div class="section-badge">{% if sub_product %}{{ sub_product.name }}{% else %}{{ main_product.name }}{% endif %}</div>
|
||||
<h1 class="page-hero-title" id="versions-heading">Older releases</h1>
|
||||
<p class="page-hero-subtitle">Archived versions of this {% if sub_product %}module{% else %}product{% endif %}.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="section versions-archive-section">
|
||||
<div class="container">
|
||||
{% include "products/_versions_archive_body.html" %}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user