Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6,533 changes: 3,407 additions & 3,126 deletions assets/css/compiled/main.css

Large diffs are not rendered by default.

3,664 changes: 3,664 additions & 0 deletions assets/css/compiled/tailwind.css

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions assets/css/tailwind.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
@import "../../themes/blowfish/assets/css/main.css";

/* Your custom Tailwind directives */
@tailwind base;
@tailwind components;
@tailwind utilities;
4 changes: 2 additions & 2 deletions config/_default/params.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ mainSections:
# The real fix is to disable the optimisation only for SVGs and allow optimisation proceed
# for other image types
disableImageOptimization: true
disableTextInHeader: false
disableTextInHeader: true # We don't need the title as we already have an SVG logo
disableImageZoom: true

# defaultBackgroundImage: "IMAGE.jpg" # used as default for background images
Expand Down Expand Up @@ -57,7 +57,7 @@ homepage:
showRecentItems: 3 # Keep this ~<4, but adjust to make sure relevant articles are highlighted
showMoreLink: false
showMoreLinkDest: /posts
cardView: false
cardView: true
cardViewScreenWidth: false
layoutBackgroundBlur: false # only used when layout equals background

Expand Down
35 changes: 21 additions & 14 deletions content/_index.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,44 @@
---
title: European Virtual Institute for Research Software Excellence
title:
description: Overview
identifier: home
draft: false
weight: 10
---
{{< alert icon="bell" iconColor=#80539a cardColor="#3ea3dc" textColor="#e4e4e3" >}}
**Latest:** *Participate to the Community Engagement Event on Thursday, 5 February 2026! [Register here](/news/2025-10-31-community-engagement/)*
{{< /alert >}}


## High Quality Research Software for the Communities by the Communities
{{< hero-header
image="/images/misc/markus-spiske-Skf7HxARcoc-unsplash.jpg"
tag="EVERSE"
headline="European Virtual Institute for Research Software Excellence"
subhead="High Quality Research Software for the Communities by the Communities"
>}}

### *Software for the Communities by the Communities*
{{< alert icon="bell" iconColor="#194158" cardColor="#d8edf8" textColor="#194158" >}}
Latest: Participate to the Community Engagement Event on Thursday, 5 February 2026! [**Register here**](/news/2025-10-31-community-engagement/)
{{< /alert >}}

The **EVERSE** project aims to create a framework for research software and code excellence, collaboratively designed and championed by the research communities, in pursuit of building a **European network of Research Software Quality** and setting the foundations of a future **Virtual Institute for Research Software Excellence**.
{{< flex-content >}}
## Overview

{{< figure src="/images/misc/markus-spiske-Skf7HxARcoc-unsplash.jpg" alt="Colorful software or web code on a computer monitor" >}}
The **EVERSE** project aims to create a framework for research software and code excellence, collaboratively designed and championed by the research communities, in pursuit of building a European network of Research Software Quality and setting the foundations of a future Virtual Institute for Research Software Excellence.

Funded under the Horizon Europe call [HORIZON-INFRA-2023-EOSC-01-02 (#101129744)](https://ec.europa.eu/info/funding-tenders/opportunities/portal/screen/opportunities/topic-details/horizon-infra-2023-eosc-01-02), **EVERSE** focuses on developing a collaborative and community-led structure to evaluate, verify, and improve the quality of research software and code. By leveraging existing tools, practices, and standards from the five EOSC Science Clusters, the project will build a sustainable ecosystem of stakeholders dedicated to ensuring software quality, reliability, and reproducibility in research. Moreover, **EVERSE** will contribute to recognition and career development frameworks for researchers and Research Software Engineers (RSEs) who implement best practices in software quality assurance.
<--->
## Ambition

EVERSE ultimate ambition is to contribute towards a cultural change where research software is recognized as a first-class citizen of the scientific process and the people that contribute to it are credited for their efforts.
The ultimate ambition of **EVERSE** is to contribute towards a cultural change where research software is recognized as a first-class citizen of the scientific process and the people that contribute to it are credited for their efforts.

EVERSE is coordinated by the [Centre for Research and Technology hellas (CERTH)](https://www.certh.gr) and the [Barcelona Supercomputing Center (BSC)](https://www.bsc.es/). EVERSE will be interfacing with the [EOSC science clusters](https://science-clusters.eu) and their emerging use cases:

{{< flex-content >}}
- [ENVRI Community](https://envri.eu): Essential Climate Variables
- [Life Science RI](https://lifescience-ri.eu/home.html): The Workflow Execution Service backend with RO-Crate
- [ESCAPE](https://projectescape.eu/): Particle physics and astrophysics in the Dark Matter Science Project
- [PaNOSC](https://www.panosc.eu/): Photon and neutron science through LEAPS/LENS
- [SSHOC](https://sshopencloud.eu/): UDPipe language processing suite
<--->
{{< figure src="/images/logos/science-clusters-logo.svg" alt="Science Cluster Organisation Logo" >}}

{{< /flex-content >}}

{{< flex-content >}}
{{< figure src="images/logos/EOSCEverse_PosColour_full.svg" alt="EVERSE project full logo" >}}
<--->
{{< figure src="/images/logos/science-clusters-logo.svg" alt="Science Cluster Organisation Logo" >}}
{{< /flex-content >}}
3 changes: 2 additions & 1 deletion content/workpackages/02_Best_Practices/index.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
---
title: "WP2: Community-led best practices for developing high-quality research software"
title: "WP2: Community-led best practices for research software quality"
draft: false
display_in_summary: true
shorthand: WP2
weight: 900
---

Each research community has its own techniques for computing-based research. Work package 2 works towards assessing all these approaches and developing common grounds for best practices applicable to all developers. The Research Software Quality kit [(RSQkit)](/services/rsqkit/) will be a knowledge hub that collects existing expertise while ensuring improvement.

The curated best practices are gathered across four pillars: technical quality, FAIR principles, Openness and Software Sustainability. They are used to find a common framework and act as measurables for indicators of software quality. Woven into the RSQkit, these practices will be incorporated into the future Virtual Institute driven by WP1.
Expand Down
2 changes: 1 addition & 1 deletion content/workpackages/_index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "Workpackages"
title: "Work Packages"
draft: false
weight: 100
showDate: false
Expand Down
77 changes: 77 additions & 0 deletions layouts/partials/article-link/card.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
{{ $disableImageOptimization := .Page.Site.Params.disableImageOptimization | default false }}
{{ with .Params.externalUrl }}
<a href="{{ . }}" target="_blank" rel="external" class="min-w-full">
{{ else }}
<a href="{{ .RelPermalink }}" class="min-w-full">
{{ end }}
<div class="min-h-full rounded overflow-hidden relative shadow bg-gray-100 dark:bg-gray-900">

{{- with $.Params.images -}}
{{- range first 6 . }}
<meta property="og:image" content="{{ . | absURL }}" />{{ end -}}
{{- else -}}
{{- $images := $.Resources.ByType "image" -}}
{{- $featured := $images.GetMatch "*feature*" -}}
{{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
{{ if and .Params.featureimage (not $featured) }}
{{- $url:= .Params.featureimage -}}
{{ $featured = resources.GetRemote $url }}
{{ end }}
{{- if not $featured }}{{ with .Site.Params.defaultFeaturedImage }}{{ $featured = resources.Get . }}{{ end }}{{ end -}}
{{ if .Params.hideFeatureImage }}{{ $featured = false }}{{ end }}
{{- with $featured -}}
{{ if or $disableImageOptimization (strings.HasSuffix $featured ".svg")}}
{{ with . }}
<div class="w-full thumbnail_card nozoom bg-gray-300" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }}
{{ else }}
{{ with .Resize "600x" }}
<div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }}
{{ end }}
{{- else -}}
{{- with $.Site.Params.images }}
<meta property="og:image" content="{{ index . 0 | absURL }}" />{{ end -}}
{{- end -}}
{{- end -}}


{{ if and .Draft .Site.Params.article.showDraftLabel }}
<span class="absolute top-0 right-0 m-2">
{{ partial "badge.html" (i18n "article.draft" | emojify) }}
</span>
{{ end }}

<div class="px-6 py-4">

{{ with .Params.externalUrl }}
<div>
<div
class="font-bold text-xl text-neutral-800 decoration-primary-500 dark:text-neutral">
{{ $.Title | emojify }}
<span class="text-xs align-top cursor-default text-neutral-400 dark:text-neutral-500">
<span class="rtl:hidden">&#8599;</span>
<span class="ltr:hidden">&#8598;</span>
</span>
</div>
</div>
{{ else }}
<div class="font-bold text-xl text-neutral-800 decoration-primary-500 dark:text-neutral mb-2"
href="{{ .RelPermalink }}">{{ .Title | emojify }}</div>
{{ end }}

<div class="text-sm text-neutral-500 dark:text-neutral-400 mb-4">
{{ partial "article-meta/basic.html" . }}
</div>

{{ if .Params.showSummary | default (.Site.Params.list.showSummary | default false) }}
<div class="py-1 prose dark:prose-invert">
{{ .Summary | plainify }}
</div>
{{ end }}
</div>
<div class="px-6 pt-4 pb-2">

</div>
</div>
</a>
183 changes: 183 additions & 0 deletions layouts/partials/header/basic.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
<div style="padding-left:0;padding-right:0;padding-top:2px;padding-bottom:3px"
class="main-menu flex items-center justify-between px-4 py-6 sm:px-6 md:justify-start space-x-3">
{{ if .Site.Params.Logo }}
{{ $logo := resources.Get .Site.Params.Logo }}
{{ if $logo }}
<div>
<a href="{{ "" | relLangURL }}" class="flex">
<span class="sr-only">{{ .Site.Title | markdownify }}</span>

{{ if eq $logo.MediaType.SubType "svg" }}
<span class="logo object-scale-down object-left nozoom">
{{ $logo.Content | safeHTML }}
</span>
{{ else }}
<img src="{{ $logo.RelPermalink }}" width="{{ div $logo.Width 2 }}" height="{{ div $logo.Height 2 }}"
class="logo max-h-[5rem] max-w-[5rem] object-scale-down object-left nozoom" alt="{{ .Site.Title }}" />
{{ end }}

</a>
</div>
{{ end }}
{{- end }}
<div class="flex flex-1 items-center justify-between">
<nav class="flex space-x-3">

{{ if not .Site.Params.disableTextInHeader | default true }}
<a href="{{ "" | relLangURL }}" class="text-base font-medium text-gray-500 hover:text-gray-900">{{
.Site.Title | markdownify
}}</a>
{{ end }}

</nav>
<nav class="hidden md:flex items-center space-x-5 md:ml-12 h-12">

{{ if .Site.Menus.main }}
{{ range .Site.Menus.main }}
{{ partial "header/header-option.html" . }}
{{ end }}
{{ end }}

{{ partial "translations.html" . }}

{{ if .Site.Params.enableSearch | default false }}
<button id="search-button" aria-label="Search" class="text-base hover:text-primary-600 dark:hover:text-primary-400"
title="{{ i18n " search.open_button_title" }}">
{{ partial "icon.html" "search" }}
</button>
{{ end }}


{{/* Appearance switch */}}
{{ if .Site.Params.footer.showAppearanceSwitcher | default false }}
<div
class="{{ if .Site.Params.footer.showScrollToTop | default true -}} ltr:mr-14 rtl:ml-14 {{- end }} flex items-center">
<button id="appearance-switcher" aria-label="Dark mode switcher" type="button" class="text-base hover:text-primary-600 dark:hover:text-primary-400">
<div class="flex items-center justify-center dark:hidden">
{{ partial "icon.html" "moon" }}
</div>
<div class="items-center justify-center hidden dark:flex">
{{ partial "icon.html" "sun" }}
</div>
</button>
</div>
{{ end }}

</nav>
<div class="flex md:hidden items-center space-x-5 md:ml-12 h-12">

<span></span>

{{ partial "translations.html" . }}

{{ if .Site.Params.enableSearch | default false }}
<button id="search-button-mobile" aria-label="Search" class="text-base hover:text-primary-600 dark:hover:text-primary-400"
title="{{ i18n " search.open_button_title" }}">
{{ partial "icon.html" "search" }}
</button>
{{ end }}

{{/* Appearance switch */}}
{{ if .Site.Params.footer.showAppearanceSwitcher | default false }}
<button id="appearance-switcher-mobile" aria-label="Dark mode switcher" type="button" class="text-base hover:text-primary-600 dark:hover:text-primary-400" style="margin-right:5px">
<div class="flex items-center justify-center dark:hidden">
{{ partial "icon.html" "moon" }}
</div>
<div class="items-center justify-center hidden dark:flex">
{{ partial "icon.html" "sun" }}
</div>
</button>
{{ end }}

</div>
</div>
<div class="-my-2 -mr-2 md:hidden">

<label id="menu-button" class="block">
{{ if .Site.Menus.main }}
<div class="cursor-pointer hover:text-primary-600 dark:hover:text-primary-400">
{{ partial "icon.html" "bars" }}
</div>
<div id="menu-wrapper" style="padding-top:5px;"
class="fixed inset-0 z-30 invisible w-screen h-screen m-0 overflow-auto transition-opacity opacity-0 cursor-default bg-neutral-100/50 backdrop-blur-sm dark:bg-neutral-900/50">
<ul
class="flex space-y-2 mt-3 flex-col items-end w-full px-6 py-6 mx-auto overflow-visible list-none ltr:text-right rtl:text-left max-w-7xl">

<li id="menu-close-button">
<span
class="cursor-pointer inline-block align-text-bottom hover:text-primary-600 dark:hover:text-primary-400">{{
partial
"icon.html"
"xmark" }}</span>
</li>

{{ range .Site.Menus.main }}

{{ partial "header/header-mobile-option.html" . }}

{{ end }}

</ul>
{{ if .Site.Menus.subnavigation }}
<hr>
<ul
class="flex mt-4 flex-col items-end w-full px-6 py-6 mx-auto overflow-visible list-none ltr:text-right rtl:text-left max-w-7xl">


{{ range .Site.Menus.subnavigation }}
<li class="mb-1">
<a href="{{ .URL }}" {{ if or (strings.HasPrefix .URL "http:" ) (strings.HasPrefix .URL "https:"
) }} target="_blank" {{ end }} class="flex items-center">
{{ if .Pre }}
<span {{ if and .Pre .Name}} class="mr-3" {{ end }}>
{{ partial "icon.html" .Pre }}
</span>
{{ end }}
<p class="text-sm font-sm text-gray-500 hover:text-gray-900" title="{{ .Title }}">
{{ .Name | markdownify }}
</p>
</a>
</li>
{{ end }}

</ul>
{{ end }}
{{ end }}

</div>
</label>
</div>
</div>

{{ if .Site.Menus.subnavigation }}
<div class="main-menu flex pb-3 flex-col items-end justify-between md:justify-start space-x-3" {{ if .Site.Params.Logo
}} style="margin-top:-15px" {{ end }}>
<div class="hidden md:flex items-center space-x-5">
{{ range .Site.Menus.subnavigation }}
<a href="{{ .URL }}" {{ if or (strings.HasPrefix .URL "http:" ) (strings.HasPrefix .URL "https:" ) }}
target="_blank" {{ end }} class="flex items-center">
{{ if .Pre }}
<span {{ if and .Pre .Name}} class="mr-1" {{ end }}>
{{ partial "icon.html" .Pre }}
</span>
{{ end }}
<p class="text-xs font-light text-gray-500 hover:text-gray-900" title="{{ .Title }}">
{{ .Name | markdownify }}
</p>
</a>
{{ end }}
</div>
</div>
{{ end }}

{{ if .Site.Params.highlightCurrentMenuArea }}
<script>
(function () {
var $mainmenu = $('.main-menu');
var path = window.location.pathname;
$mainmenu.find('a[href="' + path + '"]').each(function (i, e) {
$(e).children('p').addClass('active');
});
})();
</script>
{{ end }}
6 changes: 6 additions & 0 deletions layouts/partials/header/fixed-fill.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<div class="min-h-[148px]"></div>
<div class="fixed inset-x-0 pl-[24px] pr-[24px] bg-everse_sky_light dark:bg-everse_sky_dark shadow" style="z-index:100">
<div class="relative max-w-[64rem] ml-auto mr-auto">
{{ partial "header/basic.html" . }}
</div>
</div>
Loading