diff --git a/packages/preview/modern-hsh-thesis/1.1.2/.gitignore b/packages/preview/modern-hsh-thesis/1.1.2/.gitignore
new file mode 100644
index 0000000000..c43e07ae0e
--- /dev/null
+++ b/packages/preview/modern-hsh-thesis/1.1.2/.gitignore
@@ -0,0 +1,2 @@
+/.idea/
+/modern-hsh-thesis/
\ No newline at end of file
diff --git a/packages/preview/modern-hsh-thesis/1.1.2/CHANGELOG.md b/packages/preview/modern-hsh-thesis/1.1.2/CHANGELOG.md
new file mode 100644
index 0000000000..c0e57e8392
--- /dev/null
+++ b/packages/preview/modern-hsh-thesis/1.1.2/CHANGELOG.md
@@ -0,0 +1,54 @@
+# [v1.1.2](https://github.com/MrToWy/hsh-thesis/releases/tag/v1.1.2)
+## Added
+- Added `custom-logo1` & `custom-logo2` parameter to allow changing the logos on the first page.
+- Added `prof-title` & 'second-prof-title' parameter to allow changing the title of the professors on the first page.
+
+# [v1.1.1](https://github.com/MrToWy/hsh-thesis/releases/tag/v1.1.1)
+## Added
+- Added `justify-title` parameter to allow for disabling the justification of the title.
+
+## Changed
+- Parameter `title` can now be a string or content. Content is useful if you want to use a custom size or color for the title.
+
+# [v1.1.0](https://github.com/MrToWy/hsh-thesis/releases/tag/v1.1.0)
+## Added
+- Added `custom-declaration-of-independence` parameter to allow for a custom declaration of independence.
+
+## Changed
+- Upgraded codly to 1.3.0
+
+# [v1.0.2](https://github.com/MrToWy/hsh-thesis/releases/tag/v1.0.2)
+## Changed
+- Upgraded Typst to version 0.13
+- Upgraded treet to version 0.1.1
+- Upgraded gentle-clues to 1.2.0
+- Upgraded wrap-it to 0.1.1
+- Upgraded Hydra to 0.6.0
+- Upgraded codly to 1.2.0
+
+## Misc
+- Added "Use Git Bash Console" info to readme
+- Added .gitignore
+- Added CONTRIBUTING.md
+
+
+# [v1.0.1](https://github.com/MrToWy/hsh-thesis/releases/tag/v1.0.1)
+## Added
+- Optional Parameter `chapter-break-mode` to control whether a new chapter should start on a new page.
+
+
+## Changed
+- Upgraded Typst to version 0.12
+- Upgraded Hydra to 0.5.1
+
+## Removed
+- get-current-heading (instead use get-current-heading-hydra)
+
+## Misc
+- Added "Just" install step to readme
+
+
+---
+
+# [v1.0.0](https://github.com/MrToWy/hsh-thesis/releases/tag/v1.0.0)
+Initial Release
\ No newline at end of file
diff --git a/packages/preview/modern-hsh-thesis/1.1.2/CONTRIBUTING.md b/packages/preview/modern-hsh-thesis/1.1.2/CONTRIBUTING.md
new file mode 100644
index 0000000000..ed45a2924c
--- /dev/null
+++ b/packages/preview/modern-hsh-thesis/1.1.2/CONTRIBUTING.md
@@ -0,0 +1,16 @@
+# How to contribute
+Everyone is welcome to contribute to this template. Thanks for your work!
+
+## Bugs
+- Create an issue that describes the bug
+- [Optional] Create a PR with your changes and mention the issue you created
+
+
+## Features
+- Create an issue that describes the new feature
+- [Optional] Create a PR with your changes and mention the issue you created
+ - Make sure that your changes won't break exisiting documents. Use optional parameters with a default value for example.
+
+
+## Legal notice
+By contributing to this repo, you agree that your contributions will be licensed under the LICENSE file in the root directory of this source tree.
\ No newline at end of file
diff --git a/packages/preview/modern-hsh-thesis/1.1.2/LICENSE b/packages/preview/modern-hsh-thesis/1.1.2/LICENSE
new file mode 100644
index 0000000000..aa762d7be7
--- /dev/null
+++ b/packages/preview/modern-hsh-thesis/1.1.2/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 Tobias Wylega
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/packages/preview/modern-hsh-thesis/1.1.2/README.md b/packages/preview/modern-hsh-thesis/1.1.2/README.md
new file mode 100644
index 0000000000..76219054c8
--- /dev/null
+++ b/packages/preview/modern-hsh-thesis/1.1.2/README.md
@@ -0,0 +1,137 @@
+# Contributions welcome
+
+All contributions (no matter if small) are always welcome.
+
+To see how you can help and where to start [see Contributing file](CONTRIBUTING.md).
+
+# The `modern-hsh-thesis` Package
+
Version 1.1.2
+
+A template for writing a bachelors or masters thesis at the Hochschule Hannover, Faculty 4.
+
+## Getting Started
+
+### WebApp
+Choose the template in the typst web app and follow the instructions there.
+
+### Terminal
+```bash
+typst init @preview/modern-hsh-thesis:1.1.2
+```
+
+### Import
+```typ
+#import "@preview/modern-hsh-thesis:1.1.2": *
+
+#show: project.with(
+ title: "Beispiel-Titel",
+ subtitle: "Bachelorarbeit im Studiengang Mediendesigninformatik",
+ author: "Vorname Nachname",
+ author_email: "vorname@nachname.tld",
+ matrikelnummer: 1234567,
+ prof: [
+ Prof. Dr. Vorname Nachname\
+ Abteilung Informatik, Fakultät IV\
+ Hochschule Hannover\
+ #link("mailto:vorname.nachname@hs-hannover.de")
+
+ ],
+ second_prof: [
+ Prof. Dr. Vorname Nachname\
+ Abteilung Informatik, Fakultät IV\
+ Hochschule Hannover\
+ #link("mailto:vorname.nachname@hs-hannover.de")
+ ],
+ date: "01. August 2024",
+ glossaryColumns: 1,
+ bibliography: bibliography(("sources.bib", "sources.yaml"), style: "institute-of-electrical-and-electronics-engineers", title: "Literaturverzeichnis")
+)
+```
+
+#### Import parameter
+While subtitle, author and many more parameters are self-explanatory, some parameters require additional context to understand their full meaning and usage.
+
+##### Parameter `title` (optional, String or Fragment)
+The title of the thesis. This can be a string or content. \
+Content is useful if you want to use a custom size or color for the title. \
+Usage for content:
+```typ
+title: [
+ #text(weight: "semibold")[Example-Title]
+ ],
+```
+
+##### Parameter `chapter-break-mode` (optional, String)
+"**default**": Ensures each chapter begins on a left-hand page, potentially inserting an additional blank page if necessary \
+"**recto**": Ensures each chapter begins on a right-hand (recto) page, potentially inserting an additional blank page if necessary \
+"**next-page**": Forces a page break before starting each new chapter
+"**none**": Chapters continue on the current page without interruption
+
+##### Parameter `custom-declaration-of-independence` (optional, String)
+A custom declaration of independence. If not provided, the default declaration will be used.
+
+##### Parameter `justify-title` (optional, boolean, default:true)
+Can be used to disable the justification of the title. Helpful for long titles.
+
+#### Parameter `custom-logo1`, `custom-logo2` (optional, Image)
+Can be used to display custom logos on the title page. If not provided, the default logos will be used.
+Example usage:
+```typ
+ custom-logo1: image("LUH.svg", width: 26%),
+```
+
+
+### Additional functions
+`customFunctions.typ` contains additional functions that can be used in the template.
+
+`#smallLine`: A small line that can be used to separate sections.
+
+`#task`: A card that can be used to create a list of tracks (see example in 1-einleitung.typ).
+
+`#track` or `##narrowTrack`: A track that can be displayed inside a task (see example in 1-einleitung.typ).
+
+`#useCase`: Display a Use Case (see example in 1-einleitung.typ).
+
+`#attributedQuote`: Display a quote with an attribution.
+
+`#diagramFigure`, `#codeFigure`, `#imageFigure`, `#treeFigure`: Wrap an image/code/diagram/tree-list in a figure with a caption.
+
+`#imageFigureNoPad`: Display a figure without padding.
+
+`#getCurrentHeadingHydra`: Get the heading of the current page.
+
+
+
+### Development Environment
+In WebStorm make sure to open a Git Bash Console.
+0. Install Just `winget install --id Casey.Just --exact`
+1. Install Typst https://github.com/typst-community/typst-install
+2. Clone the repository
+3. CD into the repository
+4. Run `git pull && just install && just install-preview` to install/update the template
+5. Run `typst init @local/modern-hsh-thesis:1.1.2 && typst compile modern-hsh-thesis/main.typ` to compile the template
+
+
+## FAQ
+### Change Hyphenation (Silbentrennung)
+```typst
+#set text(lang: "de")
+#set text(hyphenate: true)
+```
+
+### Disable Blocksatz
+```typst
+#set par(justify: false)
+```
+
+### Disable Blocksatz for headings only
+```typst
+#show heading: it => [
+ #set par(justify: false)
+ #it
+]
+```
+
+## Additional Documentation
+
+Take a look at this complete Bachelor's thesis example using the `modern-hsh-thesis` template: [Bachelor's Thesis Example](https://github.com/MrToWy/Bachelorarbeit)
diff --git a/packages/preview/modern-hsh-thesis/1.1.2/docs/manual.pdf b/packages/preview/modern-hsh-thesis/1.1.2/docs/manual.pdf
new file mode 100644
index 0000000000..bf5c91cdab
Binary files /dev/null and b/packages/preview/modern-hsh-thesis/1.1.2/docs/manual.pdf differ
diff --git a/packages/preview/modern-hsh-thesis/1.1.2/src/Logo.svg b/packages/preview/modern-hsh-thesis/1.1.2/src/Logo.svg
new file mode 100644
index 0000000000..800957f352
--- /dev/null
+++ b/packages/preview/modern-hsh-thesis/1.1.2/src/Logo.svg
@@ -0,0 +1,11 @@
+
diff --git a/packages/preview/modern-hsh-thesis/1.1.2/src/Wortmarke.svg b/packages/preview/modern-hsh-thesis/1.1.2/src/Wortmarke.svg
new file mode 100644
index 0000000000..df2488512a
--- /dev/null
+++ b/packages/preview/modern-hsh-thesis/1.1.2/src/Wortmarke.svg
@@ -0,0 +1,95 @@
+
diff --git a/packages/preview/modern-hsh-thesis/1.1.2/src/lib.typ b/packages/preview/modern-hsh-thesis/1.1.2/src/lib.typ
new file mode 100644
index 0000000000..4c55849885
--- /dev/null
+++ b/packages/preview/modern-hsh-thesis/1.1.2/src/lib.typ
@@ -0,0 +1,318 @@
+#import "@preview/hydra:0.6.0": hydra
+#import "@preview/codly:1.3.0": *
+
+#let small-line = line(length: 100%, stroke: 0.045em)
+
+#let get-current-heading-hydra(top-level: false) = {
+ if(top-level){
+ return hydra(1)
+ }
+
+ return hydra(2)
+}
+
+#show par: it => [#it ]
+
+#let project(
+ title: "",
+ subtitle: "",
+ author: "",
+ author-email: "",
+ matrikelnummer: 0,
+ prof: none,
+ prof-title: "Erstprüfer",
+ second-prof: none,
+ second-prof-title: "Zweitprüfer",
+ date: none,
+ glossary-columns: 1,
+ enable-glossary: false,
+ enable-abbildungsverzeichnis: false,
+ bibliography: none,
+ chapter-break-mode: "default",
+ custom-declaration-of-independence: none,
+ justify-title: true,
+ custom-logo1: none,
+ custom-logo2: none,
+ body,
+) = {
+ // Set the document's basic properties.
+ set document(author: author, title: title)
+ set page("a4")
+
+ set page(margin: (inside: 3.5cm, outside: 2cm, y: 3.75cm))
+ //set page(margin: (inside: 2.75cm, outside: 2.75cm, y: 1.75cm))
+
+ set par(justify: true)
+ show table : set table.cell(align: left)
+
+ set text(font: "Arial", lang: "de", size: 12pt, hyphenate: false) // replaced this font: New Computer Modern
+ show math.equation: set text(weight: 400)
+
+
+ // heading size
+ show heading.where(
+ level: 1
+): it => pad(bottom: 1em)[
+ #set text(2em)
+ #it
+]
+
+ // heading size
+ show heading.where(
+ level: 2
+): it => pad(bottom: 0.4em, top: 0.4em)[
+ #set text(1.3em)
+ #it
+]
+
+ // heading size
+ show heading.where(
+ level: 3
+): it => pad(bottom: 0.4em, top: 0.4em)[
+ #set text(1.25em)
+ #it
+]
+
+ // heading size
+ show heading.where(
+ level: 9
+): it => pad(rest: 0em, bottom: -1.45em)[
+ #it
+]
+
+ show heading.where(level: 1): set heading(supplement: [Kapitel])
+
+ show heading.where(level: 2): set heading(supplement: [Abschnitt])
+
+ show heading.where(level: 3): set heading(supplement: [Unterabschnitt])
+
+ show heading.where(level: 9): set heading(supplement: [])
+
+ show figure.where(kind: "code"): it => {
+ if "label" in it.fields() {
+ state("codly-label").update((_) => it.label)
+ it
+ state("codly-label").update((_) => none)
+ } else {
+ it
+ }
+}
+
+ show: codly-init.with()
+ show figure: set block(breakable: true);
+ codly(
+ zebra-fill: white,
+ breakable: true,
+ reference-sep: ", Zeile ",
+ default-color: rgb("#7d7d7d")
+ )
+
+
+ let logo1 = if custom-logo1 != none {
+ if type(custom-logo1) == str { image(custom-logo1, width: 26%) } else { custom-logo1 }
+ } else {
+ image("Logo.svg", width: 26%)
+ }
+
+let logo2 = if custom-logo2 != none {
+ if type(custom-logo2) == str { image(custom-logo2, width: 26%) } else { custom-logo2 }
+} else {
+ image("Wortmarke.svg", width: 26%)
+}
+
+ // Title page.
+ v(0.6fr)
+ align(left, logo2)
+ v(1.6fr)
+
+ if justify-title {
+ if type(title) == str {
+ text(2em, weight: 700, title)
+ }
+ else{
+ title
+ }
+ }
+ else{
+ set par(justify: false)
+ if type(title) == str {
+ text(2em, weight: 700, title)
+ }
+ else{
+ title
+ }
+ }
+
+ v(1.2em, weak: true)
+ text(author)
+ v(1.2em, weak: true)
+ text(subtitle)
+ v(1.2em, weak: true)
+ text(1.1em, date)
+
+ align(right, logo1)
+ pagebreak()
+ pagebreak()
+
+ // Author
+ grid(
+ columns: (1fr, 4fr),
+ rows: (auto),
+ row-gutter: 3em,
+ gutter: 13pt,
+ text("Autor:", weight: "bold"),
+ [#author\
+ #link("mailto:" + author-email)\
+ Matrikelnummer: #matrikelnummer
+ ],
+ text(prof-title + ":", weight: "bold"),
+ prof,
+ text(second-prof-title + ":", weight: "bold"),
+ second-prof,
+ )
+
+ align(bottom)[
+ #align(center, text("Selbständigkeitserklärung", weight: "bold"))
+
+ #if(custom-declaration-of-independence != none){
+ text(custom-declaration-of-independence)
+ } else{
+ text("Hiermit erkläre ich, dass ich die eingereichte Bachelorarbeit selbständig und ohne fremde Hilfe verfasst, andere als die von mir angegebenen Quellen und Hilfsmittel nicht benutzt und die den benutzten Werken wörtlich oder inhaltlich entnommenen Stellen als solche kenntlich gemacht habe.")
+ }
+
+
+ #v(5.2em, weak: true)
+
+ #grid(
+ columns: (auto, 4fr),
+ gutter: 13pt,
+ [Hannover, den #date],
+ align(right)[Unterschrift],
+ )
+ ]
+
+ pagebreak()
+
+
+
+ // Table of contents.
+ show outline.entry.where(
+ level: 1
+ ): it => {
+ if(it.element.has("level")){
+ v(2em, weak: true)
+ strong(it)
+ }
+ else{
+ v(1.2em, weak: true)
+ it
+ }
+
+ }
+ outline(depth: 3, indent: auto)
+ pagebreak()
+
+ if(enable-abbildungsverzeichnis){
+ // table of figures
+set page(numbering: "I")
+counter(page).update(1)
+ {
+ show heading: none
+ heading[Abbildungsverzeichnis]
+}
+outline(
+ title: [Abbildungsverzeichnis],
+ target: figure,
+ indent: true
+)
+
+pagebreak()
+ }
+
+
+ // glossary
+
+ if(enable-glossary){
+ show figure.where(kind: "jkrb_glossary"): it => {emph(it.body)}
+ [
+ = Glossar
+
+ #columns(glossary-columns)[
+ #make-glossary(glossary-pool)
+ ]
+ ]
+ }
+
+
+ // header
+ set page(header: context{
+
+ // dont print anything when the first element on the page is a level 1 heading
+ let chapter = hydra(1)
+
+ if(chapter == none){
+ return
+ }
+
+
+ if calc.even(here().page()) {
+ align(left, smallcaps(get-current-heading-hydra(top-level: true)))
+ }
+ else{
+ align(right, emph(get-current-heading-hydra()))
+ }
+
+ small-line
+ })
+
+
+ // footer
+ set page(footer: context{
+ if calc.even(here().page()) {
+ small-line
+ align(left, counter(page).display("1"));
+ } else {
+ small-line
+ align(right, counter(page).display("1"));
+ }
+ })
+
+ // ensure, that a
+ show heading.where(level:1) : it => {
+ if chapter-break-mode == "default"{
+ //level 1 heading always starts on an empty, left page
+ pagebreak(weak:true, to: "even");
+ }
+ if chapter-break-mode == "recto"{
+ //level 1 heading always starts on an empty, right page
+ pagebreak(weak:true, to: "odd");
+ }
+ if chapter-break-mode == "next-page"{
+ //level 1 heading always starts on an empty page
+ pagebreak(weak:true);
+ }
+ it
+ }
+
+
+ // Main body.
+ set page(numbering: "1", number-align: center)
+ counter(page).update(1)
+ set heading(
+ numbering: "1.1."
+ )
+
+ body
+
+ set page(header: none)
+
+ // bibliography
+ if bibliography != none {
+ bibliography
+ }
+
+ pagebreak()
+ hide("white page")
+
+ //todo-outline
+}
diff --git a/packages/preview/modern-hsh-thesis/1.1.2/template/Code/code.typ b/packages/preview/modern-hsh-thesis/1.1.2/template/Code/code.typ
new file mode 100644
index 0000000000..b34e4716a0
--- /dev/null
+++ b/packages/preview/modern-hsh-thesis/1.1.2/template/Code/code.typ
@@ -0,0 +1,3 @@
+```ts
+ console.log('Hello World');
+```
\ No newline at end of file
diff --git a/packages/preview/modern-hsh-thesis/1.1.2/template/abbreviations.typ b/packages/preview/modern-hsh-thesis/1.1.2/template/abbreviations.typ
new file mode 100644
index 0000000000..8396e36dd4
--- /dev/null
+++ b/packages/preview/modern-hsh-thesis/1.1.2/template/abbreviations.typ
@@ -0,0 +1 @@
+#let hsh = "Hochschule Hannover"
\ No newline at end of file
diff --git a/packages/preview/modern-hsh-thesis/1.1.2/template/chapters/1-einleitung.typ b/packages/preview/modern-hsh-thesis/1.1.2/template/chapters/1-einleitung.typ
new file mode 100644
index 0000000000..f5682b4162
--- /dev/null
+++ b/packages/preview/modern-hsh-thesis/1.1.2/template/chapters/1-einleitung.typ
@@ -0,0 +1,38 @@
+#import "../customFunctions.typ": *
+
+
+= Template
+
+Ein vollständiges Beispiel ist auf GitHub zu finden: #link("https://github.com/MrToWy/Bachelorarbeit")[HIER KLICKEN].
+
+In diesem Template für die #hsh können sowohl .yaml-Dateien @harry, als auch .bib-Dateien @typst verwenden werden.
+
+== Codebeispiel
+
+Für Code @code1 und Bilder können Funktionen aus der `customFunctions.typ` verwendet werden.
+
+#code-figure("Caption", , "code")
+
+== Use Cases
+
+#use-case(1, "Erster Usecase")[
+ Der Use Case beschreibt, wie....
+][
+ Beispielakteur
+][
+ Beispielvorbedingung
+][
+ 1. Schritt 1
+ 2. Schritt 2
+]
+
+== anforderungen
+
+Anforderungen können in Tabellen dargestellt werden.
+
+#task(title: [Aus @code-abschnitt ergeben sich folgende Anforderungen:])[
+#narrow-track("Beispiel 1", type: "F", label: )[Lorem ipsum.] #linebreak()
+#narrow-track("Beispiel 2", type: "F", label: )[Lorem ipsum.] #linebreak()
+]
+
+Auf die Anforderungen kann ebenfalls referenziert werden. @example1
diff --git a/packages/preview/modern-hsh-thesis/1.1.2/template/customFunctions.typ b/packages/preview/modern-hsh-thesis/1.1.2/template/customFunctions.typ
new file mode 100644
index 0000000000..37b272a546
--- /dev/null
+++ b/packages/preview/modern-hsh-thesis/1.1.2/template/customFunctions.typ
@@ -0,0 +1,148 @@
+#import "@preview/gloss-awe:0.0.5": *
+#import "abbreviations.typ": *
+#import "@preview/treet:0.1.1": *
+#import "@preview/big-todo:0.2.0": *
+#import "@preview/gentle-clues:1.2.0": *
+#import "@preview/wrap-it:0.1.1": wrap-content
+#import "@preview/hydra:0.6.0": hydra
+#import "@preview/codly:1.3.0": *
+
+#let colorize = true
+
+#let use-case-color = rgb("E28862")
+#let use-case-color-light = rgb("EEC0AB")
+#let requirement-color = silver
+
+#if not colorize {
+ use-case-color = rgb("AAAAAA")
+ use-case-color-light = rgb("CCCCCC")
+}
+
+#let side-padding = 1em
+#let top-bot-padding = 3em
+
+#let small-line = line(length: 100%, stroke: 0.045em)
+
+#let example-text(content: none) = {
+ if(content == none){
+ return
+ }
+[
+ #linebreak()
+ #text(weight: "semibold")[Beispiel: ]
+ #content
+]
+}
+
+#let track(title, padding: top-bot-padding/8, type: "E", example: none, label:none, content) = {
+ let c = counter(type)
+ c.step()
+ [
+ #box[
+ #context[
+ #pad(top: padding, bottom: padding)[
+ #text(weight: "semibold")[
+ #heading(outlined: false, depth: 9, numbering: (..nums) => {
+ let nums = nums.pos()
+ // the number to actually display
+ let num = nums.last()
+
+ // combine indent and formatted numbering
+ h(0em)
+ numbering(type + "1", num)
+})[#smallcaps(title)]#label
+ ] #linebreak()
+ #content
+ #example-text(content: example)
+ ]]]]
+}
+
+#let narrow-track(title, type: "Info", label:none, content) = [
+ #track(title, padding: 0em, type: type, label:label, content)
+]
+
+#let use-case(nummer, name, kurzbeschreibung, akteur, vorbedingungen, hauptszenario) = [
+ #pad(left: 0em, right: 0em, rest: top-bot-padding/2)[
+ #figure()[
+ #block()[
+ #show table.cell.where(x: 0): set text(weight: "bold")
+
+ #table(
+ columns: (0.4fr, 1fr),
+ fill: (x, y) => if calc.even(x) { use-case-color } else { use-case-color-light },
+ stroke: (x: none, y: 2.5pt + rgb("FFFF")),
+
+ [Name], text([UC] + str(nummer) + " - " + name, weight: "semibold"),
+ [Kurzbeschreibung], kurzbeschreibung,
+ [Akteur], akteur,
+ [Vorbedingungen], vorbedingungen,
+ [Hauptszenario], hauptszenario,
+ // [Nachbedingung], nachbedingung
+ )
+ ]]]
+]
+
+#let attributed-quote(label, body) = [
+ #pad(left: side-padding, right: side-padding, rest: top-bot-padding)[
+ // use a box to prevent the quote from beeing split on two pages
+ #box(
+ quote(
+ block: true, quotes: true, attribution: [#cite(label.target, form: "author") #label])[
+ #body
+ ])
+ ]
+]
+
+#let diagram-figure(caption, plabel, filename, rendered:true) = [
+ #pad(left: side-padding, right: side-padding, rest: top-bot-padding)[
+ #figure(
+ caption: caption,
+ kind: "diagram",
+ supplement: [Diagramm],
+ include "Diagrams/" + (if (rendered){"rendered/"} else {""}) + filename + ".typ"
+ ) #plabel
+]]
+
+#let code-figure(caption, plabel, filename, annotations: none) = [
+ #pad(left: 0em, right: 0em, rest: top-bot-padding/4)[
+
+ #figure(
+ caption: caption,
+ kind: "code",
+ supplement: [Code],
+ include "Code/" + filename + ".typ"
+ ) #plabel
+]]
+
+#let image-figure(plabel, filename, p-caption, height: auto, width: auto) = [
+ #align(center)[
+ #pad(left: side-padding, right: side-padding, rest: top-bot-padding)[
+ #figure(
+ image("Images/" + filename, height: height, width: width),
+ caption: p-caption
+ ) #plabel
+]]]
+
+#let image-figure-no-pad(plabel, filename, p-caption, height: auto, width: auto) = [
+ #align(center)[
+ #figure(
+ image("Images/" + filename, height: height, width: width),
+ caption: p-caption
+ ) #plabel
+]]
+
+#let tree-figure(p-label, p-caption, content) = [
+#pad(left: side-padding, right: side-padding, rest: top-bot-padding)[
+#par(leading: 0.5em)[
+#figure(caption: p-caption)[
+#align(left)[
+#tree-list(content)]] #p-label ]]
+]
+
+#let get-current-heading-hydra(top-level: false) = {
+ if(top-level){
+ return hydra(1)
+ }
+
+ return hydra(2)
+}
diff --git a/packages/preview/modern-hsh-thesis/1.1.2/template/main.typ b/packages/preview/modern-hsh-thesis/1.1.2/template/main.typ
new file mode 100644
index 0000000000..eae8dff174
--- /dev/null
+++ b/packages/preview/modern-hsh-thesis/1.1.2/template/main.typ
@@ -0,0 +1,26 @@
+#import "@preview/modern-hsh-thesis:1.1.1": *
+
+#show: project.with(
+ title: "Beispiel-Titel",
+ subtitle: "Bachelorarbeit im Studiengang Mediendesigninformatik",
+ author: "Vorname Nachname",
+ author-email: "vorname@nachname.tld",
+ matrikelnummer: 1234567,
+ prof: [
+ Prof. Dr. Vorname Nachname\
+ Abteilung Informatik, Fakultät IV\
+ Hochschule Hannover\
+ #link("mailto:vorname.nachname@hs-hannover.de")
+ ],
+ second-prof: [
+ Prof. Dr. Vorname Nachname\
+ Abteilung Informatik, Fakultät IV\
+ Hochschule Hannover\
+ #link("mailto:vorname.nachname@hs-hannover.de")
+ ],
+ date: "01. August 2024",
+ glossary-columns: 1,
+ bibliography: bibliography(("sources.bib", "sources.yaml"), style: "institute-of-electrical-and-electronics-engineers", title: "Literaturverzeichnis")
+)
+
+#include "chapters/1-einleitung.typ"
diff --git a/packages/preview/modern-hsh-thesis/1.1.2/template/sources.bib b/packages/preview/modern-hsh-thesis/1.1.2/template/sources.bib
new file mode 100644
index 0000000000..deff260632
--- /dev/null
+++ b/packages/preview/modern-hsh-thesis/1.1.2/template/sources.bib
@@ -0,0 +1,9 @@
+@online{typst,
+ title = {Typst: Compose papers faster},
+ url = {https://typst.app/},
+ shorttitle = {Typst},
+ abstract = {Focus on your text and let Typst take care of layout and formatting. Sign up now and speed up your writing process.},
+ titleaddon = {Typst},
+ urldate = {2024-07-24},
+ langid = {english},
+}
\ No newline at end of file
diff --git a/packages/preview/modern-hsh-thesis/1.1.2/template/sources.yaml b/packages/preview/modern-hsh-thesis/1.1.2/template/sources.yaml
new file mode 100644
index 0000000000..a1dc858fe8
--- /dev/null
+++ b/packages/preview/modern-hsh-thesis/1.1.2/template/sources.yaml
@@ -0,0 +1,7 @@
+harry:
+ type: Book
+ title: Harry Potter and the Order of the Phoenix
+ author: Rowling, J. K.
+ volume: 5
+ page-total: 768
+ date: 2003-06-21
diff --git a/packages/preview/modern-hsh-thesis/1.1.2/thumbnail.png b/packages/preview/modern-hsh-thesis/1.1.2/thumbnail.png
new file mode 100644
index 0000000000..6a3ca48f3b
Binary files /dev/null and b/packages/preview/modern-hsh-thesis/1.1.2/thumbnail.png differ
diff --git a/packages/preview/modern-hsh-thesis/1.1.2/typst.toml b/packages/preview/modern-hsh-thesis/1.1.2/typst.toml
new file mode 100644
index 0000000000..e03c6bcb4b
--- /dev/null
+++ b/packages/preview/modern-hsh-thesis/1.1.2/typst.toml
@@ -0,0 +1,24 @@
+[package]
+name = "modern-hsh-thesis"
+version = "1.1.2"
+entrypoint = "src/lib.typ"
+authors = ["Tobias Wylega "]
+license = "MIT"
+description = "Template for writing a bachelors or masters thesis at the Hochschule Hannover, Faculty 4."
+repository = "https://github.com/MrToWy/hsh-thesis"
+keywords = ["thesis", "hsh", "Hochschule Hannover"]
+categories = ["thesis"]
+compiler = "0.15.0"
+exclude = [
+ ".github",
+ "docs",
+ "scripts",
+ "tests",
+ ".typstignore",
+ "Justfile",
+]
+
+[template]
+path = "template"
+entrypoint = "main.typ"
+thumbnail = "thumbnail.png"