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
121 changes: 121 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
# Project Guidelines — dhbern.github.io

Academic website for the Digital Humanities department at the University of Bern. Built with **Quarto** and hosted on **GitHub Pages**.

## Architecture

- **Quarto website** (`_quarto.yml`) with listings-driven homepage
- Content lives in `content/` with four main types: `posts/`, `events/`, `projects/`, `services/`
- `content/intro-lecture/` is a special synced section (from external repo via GitHub Actions) — do not edit directly
- Styling: `_brand.yml` → `custom.scss` → `styles.css` (Bootstrap + brand tokens + custom SCSS)
- Static assets (fonts) in `assets/fonts/`

## Build & Dev

```bash
npm install # Node deps (Prettier, git-cliff)
uv sync # Python environment
npm run check # Lint with Prettier
npm run format # Auto-format with Prettier
uv run quarto preview # Local dev server
uv run quarto render # Full build → _site/
```

CI runs `npm run check` (lint) then Quarto render on every push to `main`.

## Content Conventions

### Folder naming

- Posts: `content/posts/YYYYMMDD-short-slug/index.qmd`
- Events: `content/events/YYYYMMDD-short-slug/index.qmd`
- Projects: `content/projects/short-slug/index.qmd`
- Services: `content/services/short-slug/index.qmd`

### Frontmatter patterns

Every content page needs `title` and `categories` for listings to work.

**Post:**

```yaml
title: 'Post Title'
author: 'Author Name'
date: '2025.04.02'
categories: [Post]
```

**Event:**

```yaml
title: 'Event Title'
subtitle: 'Optional subtitle'
event-date: '2025-04-30'
date: '2025-04-25'
categories: [Event]
location: 'Room, Building, City'
author: 'Organizer'
```

**Project:**

```yaml
title: 'Project Name'
subtitle: 'Short description'
image: image.png
author:
- name: 'Researcher'
orcid: '0000-0000-0000-0000'
categories: [Project]
```

**Service:**

```yaml
title: 'Service Name'
author: 'Team'
categories: [Services]
```

Note: Services category is `Services` (plural), while others are singular (`Post`, `Event`, `Project`).

### Author field

Can be a plain string or a structured object with `name`, `orcid`, `email`, `affiliations`, `role`.

### Links

Use `other-links` list for external resources:

```yaml
other-links:
- text: 'GitHub Repository'
icon: github
href: https://github.com/example/repo
```

## Git Conventions

- **Commit messages**: Conventional Commits — `feat:`, `fix:`, `doc:`, `refactor:`, `style:`, `test:`, `chore:`, `perf:`
- **Versioning**: SemVer. Changelog auto-generated by `git-cliff`
- **PRs**: Require discussion before opening; need 2 approvals. See [CONTRIBUTING.md](../CONTRIBUTING.md)

## Key Files

| File | Purpose |
| ---------------------------- | --------------------------------------- |
| `_quarto.yml` | Site config, navbar, sidebar, listings |
| `_brand.yml` | Brand colors and typography tokens |
| `custom.scss` | SCSS overrides (layout, navbar, footer) |
| `styles.css` | Font-face declarations, utility classes |
| `index.qmd` | Homepage with three listing sections |
| `content/projects/index.qmd` | Projects listing page |
| `content/services/index.qmd` | Services listing page |

## Gotchas

- `content/intro-lecture/` is **synced from an external repo** — edits here will be overwritten
- Date format varies: posts use `YYYY.MM.DD`, events use ISO `YYYY-MM-DD` for `event-date`
- The `freeze: auto` setting caches computed outputs — delete `_freeze/` if outputs seem stale
- Rendered site goes to `_site/` (gitignored) — do not commit build artifacts
- Primary brand color is `#d6002b` (University of Bern red)
4 changes: 3 additions & 1 deletion .github/workflows/quarto-publish.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
on:
schedule:
- cron: '0 6 * * *'
push:
branches:
- main
Expand Down Expand Up @@ -43,7 +45,7 @@ jobs:
run: npm install

- name: Check for linting errors
run: npm run check
run: npm run format

build-optimize:
name: Build, Optimize, and Upload Artifacts
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ _site/
_freeze/
.venv/

# Generated by pre-render script
upcoming-events.yml
past-events.yml

# Exclude example.env
!example.env

Expand Down
7 changes: 3 additions & 4 deletions _quarto.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
project:
type: website
pre-render: python scripts/split-events.py
resources:
- content/intro-lecture/quiz/questions.json
- content/intro-lecture/quiz/exam-questions.h5p
Expand All @@ -25,6 +26,8 @@ website:
- icon: github
url: https://github.com/DHBern/dhbern.github.io/
left:
- text: Events
href: /#events
- text: Studies
href: https://www.dh.unibe.ch/studium/index_ger.html
- text: Research
Expand All @@ -43,10 +46,6 @@ website:
style: 'docked'
collapse-level: 1
contents:
- text: Blog
href: /
- text: Events
href: /#events
- text: Projects
href: content/projects/index.qmd
contents: content/projects/*/index.qmd
Expand Down
Original file line number Diff line number Diff line change
@@ -1,78 +1,79 @@
---
title: "Linked Open Data in Dialogue (2023)"
subtitle: "…in Dialogue — Digital Humanities, University of Bern"
date: 2023-11-15
lang: en
date: "2023-11-15"
Comment thread
flicksolutions marked this conversation as resolved.
event-date: "2023-11-15"
categories: [Event]
lang: "en"
---
Comment thread
coderabbitai[bot] marked this conversation as resolved.

# Linked Open Data in Dialogue (2023)

The event **Linked Open Data in Dialogue** took place on **15 November 2023** at the University of Bern. It was part of the *…in Dialogue* series and focused on the use, publication, and sustainability of Linked Open Data (LOD) in the Humanities and Social Sciences.

**Location:** Room 501 (Kuppelraum), Hochschulstrasse 4, 3012 Bern
**Format:** On‑site and online (Zoom)
**Location:** Room 501 (Kuppelraum), Hochschulstrasse 4, 3012 Bern\
**Format:** On‑site and online (Zoom)\
**Language:** English

---
------------------------------------------------------------------------

## About the Event

The event was jointly organized by the **Digital Humanities Unit** and the **University Library of Bern** within the framework of the **LOD4HSS** project. It aimed to foster exchange between researchers, librarians, and developers working with Linked Open Data and semantic technologies.

Special emphasis was placed on practical applications, interoperability, and the integration of research data into sustainable infrastructures such as **Geovistory** and **OntoME**.

---
------------------------------------------------------------------------

## Program

### Morning Session

**09:00 – Welcome**
Ursula Loosli, Stephen Hart, Tobias Hodel
**09:00 – Welcome**\
Ursula Loosli, Stephen Hart, Tobias Hodel

**09:15 – 10:00**
*Linked Open Data for Research: Towards a Paradigm Shift in the Humanities and Social Sciences*
Francesco Beretta
**09:15 – 10:00**\
*Linked Open Data for Research: Towards a Paradigm Shift in the Humanities and Social Sciences*\
Francesco Beretta

**10:15 – 11:25 – Geovistory Workshops**
Parallel sessions for beginners and advanced users
**10:15 – 11:25 – Geovistory Workshops**\
Parallel sessions for beginners and advanced users

**11:30 – 12:30 – Project Presentations**
- *The MURELCO Seminar – A Teaching Tool* — Matthieu Gillabert & Stephen Hart
- *The Processetti Inquiries (16th–17th c.)* — David Knecht
- *Switzerland and Beyond* — Tobias Hodel
- *Diaries of Anna Maria Preiswerk-Iselin* — Morgane Pica
- *OntoME – Ontology Management Environment* — Vincent Alamercery
**11:30 – 12:30 – Project Presentations** - *The MURELCO Seminar – A Teaching Tool* — Matthieu Gillabert & Stephen Hart\
- *The Processetti Inquiries (16th–17th c.)* — David Knecht\
- *Switzerland and Beyond* — Tobias Hodel\
- *Diaries of Anna Maria Preiswerk-Iselin* — Morgane Pica\
- *OntoME – Ontology Management Environment* — Vincent Alamercery
Comment thread
flicksolutions marked this conversation as resolved.

---
------------------------------------------------------------------------

### Afternoon Session

**14:00 – 15:15**
*Archival Descriptions as Linked Open Data: Why, How, and Where To*
Oliver Schihin
**14:00 – 15:15**\
*Archival Descriptions as Linked Open Data: Why, How, and Where To*\
Oliver Schihin

*Linked Open Data in Numismatics – nomisma.org and beyond*
Rahel C. Ackermann
*Linked Open Data in Numismatics – nomisma.org and beyond*\
Rahel C. Ackermann

*LOD Pilot Project “Berner Ortsgeschichten”*
René Frei & Thomas Hayoz
*LOD Pilot Project “Berner Ortsgeschichten”*\
René Frei & Thomas Hayoz

**15:45 – 17:00**
*Wikidata Hands-on: Introduction, Analysis and Visualization*
Benedikt Hitz-Gamper
**15:45 – 17:00**\
*Wikidata Hands-on: Introduction, Analysis and Visualization*\
Benedikt Hitz-Gamper

**17:00 – 17:15**
Closing remarks & Apéro
Tobias Hodel & Gero Schreier
**17:00 – 17:15**\
Closing remarks & Apéro\
Tobias Hodel & Gero Schreier

---
------------------------------------------------------------------------

## Contact

For further information, please contact:
**imdialog@ub.unibe.ch**
For further information, please contact:\
**imdialog\@ub.unibe.ch**

---
------------------------------------------------------------------------

*This event was part of the “im Dialog” series by the Digital Humanities initiative at the University of Bern.*
*This event was part of the “im Dialog” series by the Digital Humanities initiative at the University of Bern.*
30 changes: 25 additions & 5 deletions index.qmd
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
title: "Digital Humanities Bern"
title-block: false
sidebar: false
listing:
- id: blog
contents: content
Expand All @@ -9,16 +10,27 @@ listing:
include:
categories: Post
- id: events
contents: content
include:
categories: Event
contents:
- upcoming-events.yml
type: table
categories: false
sort: "event-date desc"
sort: "event-date asc"
sort-ui: false
filter-ui: false
fields: [event-date, title, location, author]
field-display-names:
field-display-names:
event-date: 'Date'
title: 'Title'
location: 'Location'
author: 'Organizer'
- id: past-events
contents:
- past-events.yml
type: table
categories: false
sort: "event-date desc"
Comment thread
flicksolutions marked this conversation as resolved.
fields: [event-date, title, location, author]
field-display-names:
event-date: 'Date'
title: 'Title'
location: 'Location'
Expand Down Expand Up @@ -54,6 +66,14 @@ We are a research and teaching unit at the University of Bern, connecting humani

::: {#events}
:::

<details>
<summary>Past Events</summary>

::: {#past-events}
:::

</details>
:::

::: {.home-section}
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ version = "0.1.0"
description = "This repository contains Digital Humanities at the University of Bern."
readme = "README.md"
requires-python = ">=3.13"
dependencies = []
dependencies = ["pyyaml"]
Loading
Loading