Next-gen group website, built from metadata
  • HTML 47.1%
  • Jinja 17.3%
  • JavaScript 16.1%
  • Python 12.7%
  • CSS 6.8%
Find a file
2026-06-17 19:42:42 +00:00
.datalad [DATALAD] new dataset 2025-10-31 08:12:07 +01:00
.forgejo Update dataset generation workflow and template to show distributions 2026-06-16 22:59:06 +02:00
archetypes [DATALAD RUNCMD] chore: initialize site 2025-10-31 09:12:23 +01:00
assets Demo use case: display a list of distributions from DataDownload documents in bundle 2026-06-16 22:55:24 +02:00
code feat: also represent datasets in the navigation graph 2026-05-21 10:59:11 +02:00
config/_default Customize header to render submenu dropdowns 2026-05-28 22:41:37 +02:00
content chore: auto-generate content from metadata 2026-06-17 19:42:42 +00:00
layouts Change distribution selector from tabs to dropdown 2026-06-17 20:44:30 +02:00
page_templates Update dataset generation workflow and template to show distributions 2026-06-16 22:59:06 +02:00
static chore: auto-generate content from metadata 2026-06-17 19:42:42 +00:00
themes chore: update congo theme to latest v2.13 2026-05-13 07:26:47 +02:00
.gitattributes chore: import placeholder and basic CSS for old member page 2026-02-24 12:00:22 +01:00
.gitignore chore: git(-annex) setup 2025-10-31 09:12:23 +01:00
.gitmodules chore: annotate theme submodule to clone shallow 2026-05-13 06:58:43 +02:00
package.json chore: tooling to tailor CSS 2026-02-24 12:00:22 +01:00
README.md Introduce term page template generalizations 2026-05-31 23:56:10 +02:00

Metadata-based website of the Psychoinformatics group

This website is using hugo to build site content that is (mostly) pulled from a metadata system, using a formal metadata model for all content.

This repository should not see any manual content edits. All custom editing is constraint to the presentation (looks/style). Content changes are exclusively done via editing the respective records in the underlying metadata system.

Requirements

As per congo theme version 2.12.0 (2025-06-22), hugo 0.146.0 or later is required.

Setup notes

Hugo doesn't like symlinks (cheers windows!). Hence all files are annexed in unlocked mode (git annex config --set annex.addunlocked true).

Development and maintenance

Update the navigation graph

The navigation graph is render by a dedicated JS blob that is built from https://hub.psychoinformatics.de/orinoco/things-graph-renderer

Making node/edge styling changes currently need to be done in the JS sources.

The JS code reads the graph from static/graph.json. This file is generated by code/pool2graph.py. Choice of node and edge types to consider for the navigation graph is done at the top of this file.

Layout templates

Taxonomy list pages can be customized to present terms in different formats by specifying configuration properties in the taxonomy-specific _index.md page front matter. Technically, this is done by using the layouts/taxonomy.html template as the main entrypoint for a taxonomy list page rendering, which in turn renders specific partials driven by configuration.

Any given taxonomy list page can be customized to do the following:

  • show all terms vs only terms that have a metadata-generated _index.md page
  • list items in a grid (with a depiction if available) vs list items vertically
  • include vs exclude filtering functionality (inclusion assumes the vertical list layout)
  • specify which filter fields to use (e.g. kind, topic, year), if filtering functionality is active
  • specify which fields to include in the text search functionality, if filtering functionality is active

An example configuration for the publications taxonomy list (including defaults), specified in content/publications/_index.md, is:

---
title: Publications
params:
  list_variant: vertical # grid (default) | vertical (if filter == true, list_variant is set to vertical)
  items: generated # generated (default) | all
  filter: true # false (default) | true
  filter_fields: # no default
    - kind
    - topic
    - year
  search_fields: # default: kind, topic, year, author, title
    - kind
    - topic
    - year
    - author
    - title
---

The term template is also customizable in the same taxonomy's _index.md page front matter. Current customization options are:

  • person_display: When a list of persons are rendered for a given term, what should those people be called? This is a string value that defaults to Contributors.
  • depiction_type: The type of depiction that should be rendered for the given term page (and taxonomy list page list item), if such a file exists in the term bundle. This expects a string that will be matched against image files in the term bundle, and will default to depiction. This option is necessary because the depiction registration workflow saves depiction files with names representing their types, e.g. portrait, logo, etc.
  • show_relations: In which format should term relations be displayed at the bottom of the term page, if at all. The default is to display no relations (explicitly: none). Other options include expandable, which will show list of expandable taxonomy groups, each group containing all terms of that taxonomy that relate to the current term; and congo, which will render the Congo-theme default list of related terms.

Here are two example configurations for the term options:

content/persons/_index.md:

---
title: Persons
params:
  term:
    depiction_type: portrait # portrait | logo | depiction (default)
    show_relations: expandable # expandable | congo | none (default)
---

content/publications/_index.md:

---
title: Publications
params:
  term:
    person_display: Authors # defaults to 'Contributors'
---