mirror of
https://github.com/jannikmenzel/iFSR-Website.git
synced 2025-06-01 15:28:48 +02:00
init
This commit is contained in:
commit
25c9dc1586
33 changed files with 588 additions and 0 deletions
95
.github/workflows/hugo.yaml
vendored
Normal file
95
.github/workflows/hugo.yaml
vendored
Normal file
|
@ -0,0 +1,95 @@
|
|||
# Sample workflow for building and deploying a Hugo site to GitHub Pages
|
||||
name: Deploy Hugo site to Pages
|
||||
|
||||
on:
|
||||
# Runs on pushes targeting the default branch
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
||||
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
||||
concurrency:
|
||||
group: "pages"
|
||||
cancel-in-progress: false
|
||||
|
||||
# Default to bash
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
jobs:
|
||||
# Build job
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
HUGO_VERSION: 0.147.1
|
||||
HUGO_ENVIRONMENT: production
|
||||
TZ: America/Los_Angeles
|
||||
steps:
|
||||
- name: Install Hugo CLI
|
||||
run: |
|
||||
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
|
||||
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
|
||||
- name: Install Dart Sass
|
||||
run: sudo snap install dart-sass
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
fetch-depth: 0
|
||||
- name: Setup Pages
|
||||
id: pages
|
||||
uses: actions/configure-pages@v5
|
||||
- name: Install Node.js dependencies
|
||||
run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
|
||||
- name: Cache Restore
|
||||
id: cache-restore
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: |
|
||||
${{ runner.temp }}/hugo_cache
|
||||
key: hugo-${{ github.run_id }}
|
||||
restore-keys:
|
||||
hugo-
|
||||
- name: Configure Git
|
||||
run: git config core.quotepath false
|
||||
- name: Build with Hugo
|
||||
run: |
|
||||
hugo \
|
||||
--gc \
|
||||
--minify \
|
||||
--baseURL "${{ steps.pages.outputs.base_url }}/" \
|
||||
--cacheDir "${{ runner.temp }}/hugo_cache"
|
||||
- name: Cache Save
|
||||
id: cache-save
|
||||
uses: actions/cache/save@v4
|
||||
with:
|
||||
path: |
|
||||
${{ runner.temp }}/hugo_cache
|
||||
key: ${{ steps.cache-restore.outputs.cache-primary-key }}
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v3
|
||||
with:
|
||||
path: ./public
|
||||
|
||||
# Deployment job
|
||||
deploy:
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
steps:
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v4
|
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Hugo output
|
||||
/public/
|
||||
/resources/
|
5
archetypes/default.md
Normal file
5
archetypes/default.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
+++
|
||||
date = '{{ .Date }}'
|
||||
draft = true
|
||||
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
|
||||
+++
|
233
assets/css/main.css
Normal file
233
assets/css/main.css
Normal file
|
@ -0,0 +1,233 @@
|
|||
/* ========================
|
||||
Allgemein
|
||||
======================== */
|
||||
html, body {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Cairo', sans-serif;
|
||||
background-color: #f8f9fa;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #191A23;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
main {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5 {
|
||||
font-family: 'Exo 2', sans-serif;
|
||||
font-weight: 500;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 0.5rem;
|
||||
color: #1a1a1a;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 1.6;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.container {
|
||||
width: 100%;
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
padding: 0 15px;
|
||||
}
|
||||
|
||||
/* ========================
|
||||
Navbar
|
||||
======================== */
|
||||
.navbar {
|
||||
padding: 15px 0;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.navbar .container {
|
||||
padding: 10px 15px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
font-family: 'Exo 2', sans-serif;
|
||||
font-size: 1.5rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.navbar-nav .nav-link {
|
||||
font-size: 1.1rem;
|
||||
margin-right: 10px;
|
||||
transition: color 0.3s ease-in-out;
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
.navbar-nav .nav-link:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.nav-item.dropdown {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.show-on-hover:hover > .dropdown-menu {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.dropdown-menu .dropdown-item:active {
|
||||
background-color: #e0e0e0;
|
||||
color: #191A23;
|
||||
}
|
||||
|
||||
/* ========================
|
||||
Hero
|
||||
======================== */
|
||||
.hero-section {
|
||||
padding-top: 6rem;
|
||||
padding-bottom: 6rem;
|
||||
max-width: 45rem;
|
||||
margin: 5rem auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.hero-section h1 {
|
||||
margin-bottom: 1rem;
|
||||
line-height: 1.2;
|
||||
font-size: 3.2rem;
|
||||
}
|
||||
|
||||
.hero-section p {
|
||||
margin-bottom: 0.5rem;
|
||||
font-size: 1.25rem;
|
||||
color: #191A23;
|
||||
max-width: 35rem;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
/* ========================
|
||||
Button
|
||||
======================== */
|
||||
.btn-primary-dark {
|
||||
background-color: #191A23;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.btn-primary-dark:hover {
|
||||
color: #191A23;
|
||||
background-color: transparent;
|
||||
border-color: #191A23;
|
||||
box-shadow: 0 2px 0 0 #191A23;
|
||||
}
|
||||
|
||||
.btn-primary-dark:focus {
|
||||
color: #191A23;
|
||||
background-color: transparent;
|
||||
border-color: #191A23;
|
||||
box-shadow: 0 4px 0 0 #191A23;
|
||||
}
|
||||
|
||||
.btn-primary-light {
|
||||
/* TODO */
|
||||
}
|
||||
|
||||
.btn-primary-light:hover {
|
||||
/* TODO */
|
||||
}
|
||||
|
||||
.btn-primary-light:focus {
|
||||
/* TODO */
|
||||
}
|
||||
|
||||
.btn-primary-green {
|
||||
/* TODO */
|
||||
}
|
||||
|
||||
.btn-primary-green:hover {
|
||||
/* TODO */
|
||||
}
|
||||
|
||||
.btn-primary-green:focus {
|
||||
/* TODO */
|
||||
}
|
||||
|
||||
/* ========================
|
||||
Footer
|
||||
======================== */
|
||||
.footer {
|
||||
padding: 1.5rem 0;
|
||||
width: 100%;
|
||||
margin-top: auto;
|
||||
text-align: center;
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
|
||||
.footer-nav ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0.5rem 0 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 1.5rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.footer-nav li {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.footer-nav a {
|
||||
color: #191A23;
|
||||
text-decoration: none;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
|
||||
.footer-nav a:hover,
|
||||
.footer-nav a:focus {
|
||||
color: #191A23;
|
||||
text-decoration: underline;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.footer-nav ul {
|
||||
flex-direction: column;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
/* ========================
|
||||
404 Error Page
|
||||
======================== */
|
||||
.page-not-found {
|
||||
margin-top: 10rem;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-family: 'Exo 2', sans-serif;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.page-not-found .error-code {
|
||||
font-size: 6rem;
|
||||
font-weight: bold;
|
||||
color: #d9534f;
|
||||
}
|
||||
|
||||
.page-not-found .error-message {
|
||||
font-size: 1.25rem;
|
||||
color: #191A23;
|
||||
}
|
BIN
assets/images/hero-image.png
Normal file
BIN
assets/images/hero-image.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 515 KiB |
0
assets/js/main.js
Normal file
0
assets/js/main.js
Normal file
4
content/_index.md
Normal file
4
content/_index.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
+++
|
||||
title = 'Home'
|
||||
draft = false
|
||||
+++
|
6
content/about.md
Normal file
6
content/about.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = 'Über Uns'
|
||||
draft = false
|
||||
+++
|
||||
|
||||
# Über Uns
|
6
content/about/aemter.md
Normal file
6
content/about/aemter.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = 'Ämter'
|
||||
draft = false
|
||||
+++
|
||||
|
||||
# Ämter
|
6
content/about/aufgaben.md
Normal file
6
content/about/aufgaben.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = 'Aufgaben'
|
||||
draft = false
|
||||
+++
|
||||
|
||||
# Aufgaben
|
6
content/about/entsendungen.md
Normal file
6
content/about/entsendungen.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = 'Entsendungen'
|
||||
draft = false
|
||||
+++
|
||||
|
||||
# Entsendungen
|
6
content/about/mitglieder.md
Normal file
6
content/about/mitglieder.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = 'Mitglieder'
|
||||
draft = false
|
||||
+++
|
||||
|
||||
# Mitglieder
|
6
content/barrierefreiheit.md
Normal file
6
content/barrierefreiheit.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = 'Barrierefreiheit'
|
||||
draft = false
|
||||
+++
|
||||
|
||||
# Barrierefreiheit
|
6
content/datenschutz.md
Normal file
6
content/datenschutz.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = 'Datenschutz'
|
||||
draft = false
|
||||
+++
|
||||
|
||||
# Datenschutz
|
6
content/impressum.md
Normal file
6
content/impressum.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = 'Impressum'
|
||||
draft = false
|
||||
+++
|
||||
|
||||
# Impressum
|
6
content/kontakt.md
Normal file
6
content/kontakt.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = 'Kontakt'
|
||||
draft = false
|
||||
+++
|
||||
|
||||
# Kontakt
|
6
content/studium.md
Normal file
6
content/studium.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = 'Studium'
|
||||
draft = false
|
||||
+++
|
||||
|
||||
# Studium
|
6
content/studium/linksammlung.md
Normal file
6
content/studium/linksammlung.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = 'Linksammlung'
|
||||
draft = false
|
||||
+++
|
||||
|
||||
# Linksammlung
|
6
content/studium/services.md
Normal file
6
content/studium/services.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = 'Services'
|
||||
draft = false
|
||||
+++
|
||||
|
||||
# Services
|
6
content/studium/stoffkiste-und-ftp.md
Normal file
6
content/studium/stoffkiste-und-ftp.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = 'Stoffkiste & FTP'
|
||||
draft = false
|
||||
+++
|
||||
|
||||
# Stoffkiste & FTP
|
6
content/studium/studienberatung.md
Normal file
6
content/studium/studienberatung.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = 'Studienberatung'
|
||||
draft = false
|
||||
+++
|
||||
|
||||
# Studienberatung
|
6
hugo.toml
Normal file
6
hugo.toml
Normal file
|
@ -0,0 +1,6 @@
|
|||
baseURL = 'https://jannikmenzel.me/'
|
||||
languageCode = 'de'
|
||||
title = 'iFSR-Website'
|
||||
disableKinds = ["taxonomy", "RSS"]
|
||||
[minify]
|
||||
disableXML = true
|
6
layouts/404.html
Normal file
6
layouts/404.html
Normal file
|
@ -0,0 +1,6 @@
|
|||
{{- define "main" }}
|
||||
<div class="page-not-found">
|
||||
<div class="error-code">404</div>
|
||||
<div class="error-message">Die Seite, die du suchst, wurde nicht gefunden.</div>
|
||||
</div>
|
||||
{{- end }}
|
24
layouts/_default/baseof.html
Normal file
24
layouts/_default/baseof.html
Normal file
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="{{ site.Language.LanguageCode }}" dir="auto">
|
||||
<head>
|
||||
{{ partial "head.html" . }}
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<div class="container">
|
||||
{{ partial "nav.html" . }}
|
||||
</div>
|
||||
</header>
|
||||
<main>
|
||||
<div class="container">
|
||||
{{ block "main" . }}{{ end }}
|
||||
</div>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="container">
|
||||
{{ partial "footer.html" . }}
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
4
layouts/_default/home.html
Normal file
4
layouts/_default/home.html
Normal file
|
@ -0,0 +1,4 @@
|
|||
{{ define "main" }}
|
||||
{{ partial "hero.html" . }}
|
||||
{{ .Content }}
|
||||
{{ end }}
|
8
layouts/_default/section.html
Normal file
8
layouts/_default/section.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
{{ define "main" }}
|
||||
<h1>{{ .Title }}</h1>
|
||||
{{ .Content }}
|
||||
{{ range .Pages }}
|
||||
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
|
||||
{{ .Summary }}
|
||||
{{ end }}
|
||||
{{ end }}
|
3
layouts/_default/single.html
Normal file
3
layouts/_default/single.html
Normal file
|
@ -0,0 +1,3 @@
|
|||
{{ define "main" }}
|
||||
{{ .Content }}
|
||||
{{ end }}
|
13
layouts/_partials/footer.html
Normal file
13
layouts/_partials/footer.html
Normal file
|
@ -0,0 +1,13 @@
|
|||
<!-- Footer -->
|
||||
<footer class="footer">
|
||||
<div class="container text-center">
|
||||
<p>© 2025 iFSR. Alle Rechte vorbehalten.</p>
|
||||
<nav class="footer-nav">
|
||||
<ul>
|
||||
<li><a href="/barrierefreiheit">Barrierefreiheit</a></li>
|
||||
<li><a href="/datenschutz">Datenschutz</a></li>
|
||||
<li><a href="/impressum">Impressum</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</footer>
|
17
layouts/_partials/head.html
Normal file
17
layouts/_partials/head.html
Normal file
|
@ -0,0 +1,17 @@
|
|||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link
|
||||
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"
|
||||
rel="stylesheet"
|
||||
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH"
|
||||
crossorigin="anonymous"
|
||||
/>
|
||||
<script
|
||||
src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"
|
||||
integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz"
|
||||
crossorigin="anonymous"
|
||||
></script>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Cairo&family=Exo+2:wght@600&display=swap" rel="stylesheet">
|
||||
<title>{{ if .IsHome }}{{ site.Title }}{{ else }}{{ printf "%s | %s" .Title site.Title }}{{ end }}</title>
|
||||
{{ partialCached "head/css.html" . }}
|
||||
{{ partialCached "head/js.html" . }}
|
9
layouts/_partials/head/css.html
Normal file
9
layouts/_partials/head/css.html
Normal file
|
@ -0,0 +1,9 @@
|
|||
{{- with resources.Get "css/main.css" }}
|
||||
{{- if hugo.IsDevelopment }}
|
||||
<link rel="stylesheet" href="{{ .RelPermalink }}">
|
||||
{{- else }}
|
||||
{{- with . | minify | fingerprint }}
|
||||
<link rel="stylesheet" href="{{ .RelPermalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
16
layouts/_partials/head/js.html
Normal file
16
layouts/_partials/head/js.html
Normal file
|
@ -0,0 +1,16 @@
|
|||
{{- with resources.Get "js/main.js" }}
|
||||
{{- $opts := dict
|
||||
"minify" (not hugo.IsDevelopment)
|
||||
"sourceMap" (cond hugo.IsDevelopment "external" "")
|
||||
"targetPath" "js/main.js"
|
||||
}}
|
||||
{{- with . | js.Build $opts }}
|
||||
{{- if hugo.IsDevelopment }}
|
||||
<script src="{{ .RelPermalink }}"></script>
|
||||
{{- else }}
|
||||
{{- with . | fingerprint }}
|
||||
<script src="{{ .RelPermalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous"></script>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
12
layouts/_partials/hero.html
Normal file
12
layouts/_partials/hero.html
Normal file
|
@ -0,0 +1,12 @@
|
|||
<section class="py-5 bg-light hero-section">
|
||||
<div class="container">
|
||||
<div class="row align-items-center">
|
||||
<!-- Text Links -->
|
||||
<div class="col-md-12 text-center mb-4 mb-md-0">
|
||||
<h1 class="display-5 fw-bold text-center">Willkommen auf der Website des FSR Informatik</h1>
|
||||
<p class="lead text-muted text-center">Gemeinsam stark im Studium – dein Fachschaftsrat steht für Austausch, Unterstützung und Mitgestaltung.</p>
|
||||
<a href="#" class="btn btn-primary-dark btn-lg mt-3">mehr erfahren</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
46
layouts/_partials/nav.html
Normal file
46
layouts/_partials/nav.html
Normal file
|
@ -0,0 +1,46 @@
|
|||
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="/">iFSR</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#mainNav">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
|
||||
<div class="collapse navbar-collapse" id="mainNav">
|
||||
<ul class="navbar-nav ms-auto align-items-lg-center">
|
||||
|
||||
<!-- Home -->
|
||||
<li class="nav-item"><a class="nav-link" href="/">Home</a></li>
|
||||
|
||||
<!-- Über uns -->
|
||||
<li class="nav-item dropdown d-flex align-items-center show-on-hover">
|
||||
<a class="nav-link ps-0" href="/about">Über uns</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="/about/aufgaben">Aufgaben</a></li>
|
||||
<li><a class="dropdown-item" href="/about/mitglieder">Mitglieder</a></li>
|
||||
<li><a class="dropdown-item" href="/about/aemter">Ämter</a></li>
|
||||
<li><a class="dropdown-item" href="/about/entsendungen">Entsendungen</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<!-- Studium -->
|
||||
<li class="nav-item dropdown d-flex align-items-center show-on-hover">
|
||||
<a class="nav-link ps-0" href="/studium">Studium</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="/studium/studienberatung">Studienberatung</a></li>
|
||||
<li><a class="dropdown-item" href="/studium/stoffkiste-und-ftp">Stoffkiste & FTP</a></li>
|
||||
<li><a class="dropdown-item" href="/studium/manual">Manual</a></li>
|
||||
<li><a class="dropdown-item" href="/studium/services">Services</a></li>
|
||||
<li><a class="dropdown-item" href="/studium/linksammlung">Linksammlung</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<!-- Sitzung & Protokolle -->
|
||||
<li class="nav-item"><a class="nav-link" href="/sitzung-und-protokolle">Sitzung & Protokolle</a></li>
|
||||
|
||||
<!-- Kontakt -->
|
||||
<li class="nav-item"><a class="nav-link" href="/kontakt">Kontakt</a></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
Loading…
Add table
Add a link
Reference in a new issue