Initial commit

This commit is contained in:
2026-05-12 23:33:46 +02:00
commit ccf32dcece
104 changed files with 17439 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
<a href="{{ link ?: post.link }}" class="swiper-slide agenda-card" dir="ltr">
<div class="agenda-card__dates">
<div class="agenda-date-box">
<span class="agenda-date-day">{{ day }}{% if day == 1 %}<sup>er</sup>{% endif %}</span>
<span class="agenda-date-month">{{ month }}</span>
<span class="agenda-date-year">{{ year }}</span>
</div>
{% if end_day %}
<span class="agenda-date-arrow">→</span>
<div class="agenda-date-box">
<span class="agenda-date-day">{{ end_day }}</span>
<span class="agenda-date-month">{{ end_month }}</span>
<span class="agenda-date-year">{{ end_year }}</span>
</div>
{% endif %}
</div>
<div class="agenda-card__body">
<div class="agenda-card__meta">
{% if date_label %}<span class="agenda-card__date-label">{{ date_label }}</span>{% endif %}
{% if type_label %}<span>{{ type_label }}</span>{% endif %}
{% if lieu %}<span>{{ lieu }}</span>{% endif %}
</div>
<p class="agenda-card__title">{{ post.title }}</p>
</div>
</a>

View File

@@ -0,0 +1,18 @@
<article class="author-card">
<a href="{{ author.url }}" class="author-card__visual" tabindex="-1" aria-hidden="true">
{% if author.avatar_url %}
<img src="{{ author.avatar_url }}" alt="{{ author.name }}" loading="lazy">
{% else %}
<span class="author-card__initials">{{ author.initials }}</span>
{% endif %}
</a>
<div class="author-card__info">
<h2 class="author-card__name"><a href="{{ author.url }}">{{ author.name }}</a></h2>
{% if author.role_label %}
<p class="author-card__role">{{ author.role_label }}</p>
{% endif %}
{% if author.affiliation %}
<p class="author-card__affiliation">{{ author.affiliation }}</p>
{% endif %}
</div>
</article>

View File

@@ -0,0 +1,171 @@
<div class="filters-bar">
<button class="filters-toggle-btn" id="category-filters-toggle" aria-expanded="false">
{{ current_language == 'en' ? 'Filters' : 'Filtres' }}
<i class="iconoir-nav-arrow-down filters-chevron"></i>
</button>
<div class="filters-active-chips">
{% if filter_parents is defined and active_rubrique %}
{% for parent in filter_parents %}
{% if parent.id == active_rubrique %}
<a href="{{ annonces_url }}" class="filter-chip">{{ parent.name }}<i class="iconoir-xmark"></i></a>
{% endif %}
{% endfor %}
{% endif %}
{% if filter_categories is defined and active_category_id and active_category_id != active_rubrique %}
{% for cat in filter_categories %}
{% if cat.id == active_category_id %}
{% set cat_reset_url = annonces_url %}
{% if filter_parents is defined %}
{% for parent in filter_parents %}
{% if parent.id == active_rubrique %}{% set cat_reset_url = parent.link %}{% endif %}
{% endfor %}
{% endif %}
<a href="{{ cat_reset_url }}" class="filter-chip">{{ cat.name }}<i class="iconoir-xmark"></i></a>
{% endif %}
{% endfor %}
{% endif %}
{% if active_date_from or active_date_to %}
<a href="{{ function('remove_query_arg', ['date_from', 'date_to'])|en_url }}" class="filter-chip">
{%- if active_date_from %}{{ active_date_from|date('d/m/Y') }}{% endif -%}
{{- active_date_from and active_date_to ? ' → ' : '' -}}
{%- if active_date_to %}{{ active_date_to|date('d/m/Y') }}{% endif -%}
<i class="iconoir-xmark"></i>
</a>
{% endif %}
{% if active_axe is defined and active_axe and filter_axes is defined %}
{% for axe in filter_axes %}
{% if axe.id == active_axe %}
<a href="{{ (axe_taxonomy_mode ? annonces_url : function('remove_query_arg', ['axe']))|en_url }}" class="filter-chip">{{ axe.name }}<i class="iconoir-xmark"></i></a>
{% endif %}
{% endfor %}
{% endif %}
</div>
</div>
<div class="category-filters" id="category-filters">
{% if filter_parents is defined and filter_parents %}
<div class="filtre-rubrique">
<div class="filter-section-header">
<p class="section-title">{{ current_language == 'en' ? 'Filter by section' : 'Filtrer par rubrique' }}</p>
{% if active_rubrique %}
<a href="{{ annonces_url }}" class="date-reset-link">
{{ current_language == 'en' ? 'Reset' : 'Réinitialiser' }}
</a>
{% endif %}
</div>
<ul>
{% for parent in filter_parents %}
<li{% if parent.id == active_rubrique %} class="is-active"{% endif %}>
<a href="{{ parent.link }}">{{ parent.name }}</a>
</li>
{% endfor %}
</ul>
</div>
{% endif %}
{% if filter_categories is defined and filter_categories %}
<div class="filtre-categorie">
<div class="filter-section-header">
<p class="section-title">{{ current_language == 'en' ? 'Filter by category' : 'Filtrer par catégorie' }}</p>
{% if active_category_id and active_category_id != active_rubrique %}
{% for parent in filter_parents %}
{% if parent.id == active_rubrique %}
<a href="{{ parent.link }}" class="date-reset-link">
{{ current_language == 'en' ? 'Reset' : 'Réinitialiser' }}
</a>
{% endif %}
{% endfor %}
{% endif %}
</div>
<ul>
{% for cat in filter_categories %}
<li{% if cat.id == active_category_id %} class="is-active"{% endif %}>
<a href="{{ cat.link }}">{{ cat.name }}</a>
</li>
{% endfor %}
</ul>
</div>
{% endif %}
<div class="filtre-date">
<div class="filter-section-header">
<p class="section-title">{{ current_language == 'en' ? 'Filter by date' : 'Filtrer par date' }}</p>
{% if active_date_from or active_date_to %}
<a href="{{ function('remove_query_arg', ['date_from', 'date_to'])|en_url }}" class="date-reset-link">
{{ current_language == 'en' ? 'Reset' : 'Réinitialiser' }}
</a>
{% endif %}
</div>
<div class="filter-dd{% if active_date_from or active_date_to %} is-active{% endif %}" id="filter-date-dd">
<div class="dd-title" id="filter-date-btn">
<p id="filter-date-label">
{%- if active_date_from or active_date_to -%}
{%- if active_date_from -%}{{ active_date_from|date('d/m/Y') }}{%- endif -%}
{{- active_date_from and active_date_to ? ' → ' : '' -}}
{%- if active_date_to -%}{{ active_date_to|date('d/m/Y') }}{%- endif -%}
{%- else -%}
{{ current_language == 'en' ? 'Show all' : 'Tout afficher' }}
{%- endif -%}
</p>
<i class="iconoir-nav-arrow-down"></i>
</div>
<div class="dd-content" id="filter-date-popover" style="display: none;">
<ul>
<li data-preset="week">{{ current_language == 'en' ? 'This week' : 'Cette semaine' }}</li>
<li data-preset="month">{{ current_language == 'en' ? 'This month' : 'Ce mois-ci' }}</li>
<li data-preset="upcoming">{{ current_language == 'en' ? 'Upcoming' : 'À venir' }}</li>
<li data-preset="lastmonth">{{ current_language == 'en' ? 'Last month' : 'Le mois dernier' }}</li>
</ul>
<div class="dd-date-fields">
<label>
{{ current_language == 'en' ? 'From' : 'De' }}
<input type="date" id="filter-date-from" value="{{ active_date_from }}" lang="{{ current_language == 'en' ? 'en-GB' : 'fr-FR' }}">
</label>
<label>
{{ current_language == 'en' ? 'To' : 'À' }}
<input type="date" id="filter-date-to" value="{{ active_date_to }}" lang="{{ current_language == 'en' ? 'en-GB' : 'fr-FR' }}">
</label>
<button type="button" class="link-button dd-date-apply" id="filter-date-apply">
{{ current_language == 'en' ? 'Apply' : 'Appliquer' }}
</button>
</div>
</div>
</div>
</div>
{% if filter_axes is defined and filter_axes %}
<div class="filtre-axe">
<div class="filter-section-header">
<p class="section-title">{{ current_language == 'en' ? 'Filter by thematic axis' : 'Filtrer par axe thématique' }}</p>
{% if active_axe and not axe_taxonomy_mode %}
<a href="{{ function('remove_query_arg', ['axe'])|en_url }}" class="date-reset-link">
{{ current_language == 'en' ? 'Reset' : 'Réinitialiser' }}
</a>
{% endif %}
</div>
<div class="filter-dd{% if active_axe %} is-active{% endif %}" id="filter-axe-dd">
<div class="dd-title" id="filter-axe-btn">
<p id="filter-axe-label">
{%- set axe_label = current_language == 'en' ? 'All axes' : 'Tous les axes' -%}
{%- for axe in filter_axes -%}
{%- if axe.id == active_axe -%}
{%- set axe_label = axe.name -%}
{%- endif -%}
{%- endfor -%}
{{ axe_label }}
</p>
<i class="iconoir-nav-arrow-down"></i>
</div>
<div class="dd-content" id="filter-axe-popover" style="display: none;">
<ul>
{% if not axe_taxonomy_mode %}
<li data-axe-id="">{{ current_language == 'en' ? 'All axes' : 'Tous les axes' }}</li>
{% endif %}
{% for axe in filter_axes %}
<li data-axe-id="{{ axe.id }}"{% if not axe_stay_on_page %} data-axe-href="{{ axe.href }}"{% endif %}>{{ axe.name }}</li>
{% endfor %}
</ul>
</div>
</div>
</div>
{% endif %}
</div>

View File

@@ -0,0 +1,24 @@
<footer>
<div class="footer-content">
<nav class="footer-nav">
<ul id="{{ current_language == 'en' ? 'menu-footer-en' : 'menu-footer' }}">
{% for item in footer_menu.items %}
<li class="{{ item.classes|join(' ') }}">
<a href="{{ item.url }}">{{ item.title | bilingual(current_language) }}</a>
</li>
{% endfor %}
</ul>
</nav>
<div class="footer-logos">
<a href="https://www.cnrs.fr/" target="_blank">
<img src="{{ theme.uri }}/assets/images/cnrs.png" alt="Logo CNRS">
</a>
<a href="https://www.sorbonne-nouvelle.fr/" target="_blank">
<img src="{{ theme.uri }}/assets/images/sorbonne.png" alt="Logo Sorbonne Nouvelle">
</a>
<a href="https://www.ens.psl.eu/" target="_blank">
<img src="{{ theme.uri }}/assets/images/ens.png" alt="Logo ENS">
</a>
</div>
</div>
</footer>

View File

@@ -0,0 +1,57 @@
<header>
<div class="header-left">
<div class="main-logo-container">
<div class="main-logo">
<a href="{{ current_language == 'en' ? function('home_url', '/en/') : site.url }}">
<img src="{{ theme.uri }}/assets/images/thalim-logo.svg" alt="Logo Thalim">
</a>
</div>
</div>
<div class="description">
<div>{{ gc.umr }}</div>
<div>{{ gc.thalim }}</div>
<div>{{ gc.siecles }}</div>
</div>
</div>
<div class="header-right">
<div class="secondary-logo-container">
<div class="main-logo">
<a href="{{ current_language == 'en' ? function('home_url', '/en/') : site.url }}">
<img src="{{ theme.uri }}/assets/images/thalim-logo.svg" alt="Logo Thalim">
</a>
</div>
</div>
<div class="lang-switch">
{% if languages %}
<ul class="language-switcher">
{% for lang in languages %}
<li class="{{ lang.current_lang ? 'active' : '' }}">
<a href="{{ lang.url }}">
{{ lang.slug == 'fr' ? 'Français' : 'English' }}
</a>
</li>
{% endfor %}
</ul>
{% endif %}
</div>
<div class="search-button">
<div>
<i class="iconoir-search"></i>
</div>
</div>
<div class="menu-toggle">
<div>
<div>
<i class="iconoir-menu"></i>
</div>
<p>Menu</p>
</div>
</div>
</div>
</header>
<div class="overlay"></div>
{% include 'partials/search-panel.twig' %}
{% include 'partials/navigation.twig' %}

View File

@@ -0,0 +1,34 @@
<nav class="main-menu">
<div class="{{ current_language == 'en' ? 'menu-navigation-en-container' : 'menu-navigation-container' }}">
<ul>
{% for item in menu.items %}
{% set is_first_col = loop.index == 1 %}
<li class="{{ item.classes|join(' ') }}">
<a href="{{ item.url }}">{{ item.title | bilingual(current_language) }}</a>
{% if item.children %}
<ul class="sub-menu">
{% for child in item.children %}
<li class="{{ child.classes|join(' ') }}">
<a href="{{ child.url }}">{{ child.title | bilingual(current_language) }}</a>
</li>
{% if is_first_col and loop.index == 2 and axes_courants %}
<li class="nav-axes-item">
<div class="nav-axes-trigger" aria-expanded="false">
{{ current_language == 'en' ? 'Thematic axes' : 'Axes thématiques' }}
<i class="iconoir-nav-arrow-down"></i>
</div>
<ul class="nav-axes-list">
{% for axe in axes_courants %}
<li><a href="{{ axe.link }}">{{ axe.name }}</a></li>
{% endfor %}
</ul>
</li>
{% endif %}
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</div>
</nav>

View File

@@ -0,0 +1,116 @@
<article class="post-card gradient--{{ card.parent_slug }}">
<a href="{{ card.card_link ?: post.link }}" class="gradient-container">
{% if card.card_image %}
<img src="{{ card.card_image }}" alt="{{ post.title|bilingual(current_language) }}" loading="lazy">
{% else %}
<h2>{{ post.title|bilingual(current_language) }}</h2>
{% endif %}
</a>
<div class="contextual-infos">
<div class="authors">
{% set autres = post.meta('autrepersonnes') %}
{% set autres_list = autres ? autres|split(', ') : [] %}
{% set membres_count = card.card_membres|length %}
{% set total = membres_count + autres_list|length %}
{% set slots_left = 3 - membres_count %}
{% for membre in card.card_membres|slice(0, 3) %}
<span><a href="{{ membre.url }}">{{ membre.name }}</a></span>
{% endfor %}
{% if slots_left > 0 and autres_list|length > 0 %}
<span>{{ autres_list|slice(0, slots_left)|join(', ') }}</span>
{% endif %}
{% if total > 3 %}{% endif %}
</div>
{% if show_category %}
<div class="date-category">
<time class="date" datetime="{{ card.card_event_date_iso ?: post.date('Y-m-d') }}">{{ card.card_event_date ?: post.date('d/m/Y') }}</time>
{% if card.card_type %}
<a class="card-type" href="{{ card.card_category_url }}">{{ card.card_type }}</a>
{% elseif card.card_category_name and not type_only %}
<a class="card-type" href="{{ card.card_category_url }}">{{ card.card_category_name }}</a>
{% endif %}
</div>
{% else %}
<time class="date" datetime="{{ card.card_event_date_iso ?: post.date('Y-m-d') }}">{{ card.card_event_date ?: post.date('d/m/Y') }}</time>
{% endif %}
</div>
{% if card.card_image %}
<h2 class="title-bottom">
<a href="{{ card.card_link ?: post.link }}">{{ post.title|bilingual(current_language) }}</a>
</h2>
{% endif %}
</article>
{#
<article class="post-card">
{% if card.card_image %}
<div class="post-card__image">
<img src="{{ card.card_image }}" alt="{{ post.title }}" loading="lazy">
</div>
{% endif %}
<div class="post-card__content">
<h3 class="post-card__title">
<a href="{{ post.link }}">{{ post.title }}</a>
</h3>
{% if post.meta('sous-titre') %}
<p class="post-card__subtitle">{{ post.meta('sous-titre') }}</p>
{% endif %}
<time class="post-card__date" datetime="{{ post.date('Y-m-d') }}">{{ post.date('d/m/Y') }}</time>
{% if card.card_membres is not empty or post.meta('autrepersonnes') %}
<div class="post-card__authors">
{% for name in card.card_membres %}
<span class="post-card__author">{{ name }}</span>
{% endfor %}
{% if post.meta('autrepersonnes') %}
<span class="post-card__author post-card__author--external">{{ post.meta('autrepersonnes') }}</span>
{% endif %}
</div>
{% endif %}
{% if post.meta('fonction_auteur') %}
<span class="post-card__role">{{ post.meta('fonction_auteur') }}</span>
{% endif %}
{% if post.meta('editeur') %}
<span class="post-card__publisher">{{ post.meta('editeur') }}</span>
{% endif %}
{% if post.meta('journal') %}
<span class="post-card__journal">{{ post.meta('journal') }}</span>
{% endif %}
{% if card.card_axes is not empty %}
<div class="post-card__axes">
{% for axe in card.card_axes %}
<span class="post-card__axe">{{ axe }}</span>
{% endfor %}
</div>
{% endif %}
{% if card.card_etiquettes is not empty %}
<div class="post-card__tags">
{% for tag in card.card_etiquettes %}
<span class="post-card__tag">{{ tag }}</span>
{% endfor %}
</div>
{% endif %}
<div class="post-card__links">
{% if post.meta('lien_externe_1') %}
<a href="{{ post.meta('lien_externe_1') }}" class="post-card__link" target="_blank" rel="noopener">
{{ post.meta('titre_du_lien_externe_1') ?: post.meta('lien_externe_1') }}
</a>
{% endif %}
{% if post.meta('hal_url') %}
<a href="{{ post.meta('hal_url') }}" class="post-card__link post-card__link--hal" target="_blank" rel="noopener">
HAL
</a>
{% endif %}
</div>
</div>
</article>
#}

View File

@@ -0,0 +1,17 @@
<div class="search-panel">
<div class="search-panel__inner">
<p class="search-panel__title">{{ current_language == 'en' ? 'Search the site' : 'Rechercher sur le site' }}</p>
<p class="search-panel__desc">{{ current_language == 'en' ? 'Search for an event, a lab member, a publication…' : 'Rechercher un événement, un membre du laboratoire, un ouvrage…' }}</p>
<form class="search-panel__form" role="search" method="get" action="{{ function('home_url', current_language == 'en' ? '/en/' : '/') }}">
<div class="search-panel__input-wrap">
<input type="search" name="s" class="search-panel__input"
placeholder="{{ current_language == 'en' ? 'Type your search…' : 'Écrire la recherche…' }}"
autocomplete="off">
<button type="submit" class="search-panel__icon-btn" aria-label="{{ current_language == 'en' ? 'Search' : 'Rechercher sur le site' }}"><i class="iconoir-search"></i></button>
</div>
<button type="submit" class="search-panel__submit">
{{ current_language == 'en' ? 'Search' : 'Rechercher sur le site' }}
</button>
</form>
</div>
</div>

View File

@@ -0,0 +1,27 @@
{% if section_posts %}
<section class="swiper-section full-block" data-swiper>
<div class="section-title">
<p>{{ section_title }}</p>
</div>
<div class="swiper_content_controls">
<div class="swiper-button-prev">
<i class="iconoir-arrow-left"></i>
</div>
<div class="swiper">
<div class="swiper-wrapper">
{% for post in section_posts %}
<div class="swiper-slide">
{% include 'partials/post-card.twig' with { post: post, card: section_cards[post.ID], show_category: true } %}
</div>
{% endfor %}
</div>
</div>
<div class="swiper-button-next">
<i class="iconoir-arrow-right"></i>
</div>
</div>
<div class="button-annonces">
<a href="{{ all_link }}" class="link-button">{{ all_label }}</a>
</div>
</section>
{% endif %}