Skip to content

Commit ddc5cdb

Browse files
committed
Initial repo setup
1 parent da1cc87 commit ddc5cdb

File tree

5 files changed

+233
-1
lines changed

5 files changed

+233
-1
lines changed

.github/dependabot.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# To get started with Dependabot version updates, you'll need to specify which
2+
# package ecosystems to update and where the package manifests are located.
3+
# Please see the documentation for all configuration options:
4+
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5+
6+
version: 2
7+
updates:
8+
- package-ecosystem: "github-actions"
9+
directory: "/"
10+
schedule:
11+
# Check for updates to GitHub Actions every week
12+
interval: "weekly"

.github/workflows/build-release.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Build and release evaluation report
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
build_release_thesis:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v4
17+
with:
18+
fetch-depth: '0'
19+
lfs: true
20+
21+
- name: Create initial tag
22+
run: |
23+
if [ -z "$(git tag -l 'v*')" ]; then
24+
git tag v0.0.0
25+
fi
26+
27+
- name: Bump version and push tag
28+
id: bump
29+
uses: anothrNick/[email protected]
30+
env:
31+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
32+
WITH_V: true
33+
DEFAULT_BUMP: 'patch'
34+
35+
- uses: typst-community/setup-typst@v3
36+
- run: typst compile main.typ report.pdf
37+
38+
- name: Create Release
39+
id: create_release
40+
uses: softprops/action-gh-release@v2
41+
with:
42+
tag_name: ${{ steps.bump.outputs.new_tag }}
43+
name: Version ${{ steps.bump.outputs.new_tag }}
44+
draft: false
45+
prerelease: false
46+
files: |
47+
report.pdf

README.md

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,65 @@
1-
# evaluation-report-template-typst
1+
# Evaluation Report Template (Typst)
2+
3+
This repository contains a template for generating evaluation reports using Typst. The template is designed to be customizable and easy to use for creating professional-looking documents.
4+
5+
## Features
6+
7+
- Customizable title, authors, advisors, and other metadata
8+
- Automatic generation of sections for strengths, weaknesses, and summary
9+
- Localization support for German and English
10+
- Automated build and release process using GitHub Actions
11+
12+
## Installation
13+
14+
For detailed installation instructions, please refer to the [official installation guide](https://github.com/typst/typst). Here, we provide basic steps for installing Typst's CLI:
15+
16+
- You can get sources and pre-built binaries from the [releases page](https://github.com/typst/typst/releases).
17+
- Use package managers like `brew` or `pacman` to install Typst. Be aware that the versions in the package managers might lag behind the latest release.
18+
- If you have a [Rust](https://rustup.rs/) toolchain installed, you can also install the latest development version.
19+
20+
Nix and Docker users, please refer to the official installation guide for detailed instructions.
21+
22+
### Getting Started
23+
24+
1. Clone the repository:
25+
```sh
26+
git clone https://github.com/yourusername/evaluation-report-template-typst.git
27+
cd evaluation-report-template-typst
28+
```
29+
30+
2. Customize the [`main.typ`](./main.typ) file with your report details:
31+
```typ
32+
#import "template.typ": *
33+
#show: gutachten.with(
34+
title: "Your Report Title",
35+
authors: ("Author One", "Author Two"),
36+
advisors: ("Advisor Name",),
37+
type: "Bachelor Thesis",
38+
date: datetime(day: 1, month: 1, year: 2025),
39+
lang: "en",
40+
grade_suggestion: 1.7,
41+
)
42+
= Themenstellung & Ziele
43+
#lorem(100)
44+
45+
= Stärken der Arbeit
46+
#lorem(200)
47+
48+
= Schwächen der Arbeit
49+
#lorem(200)
50+
51+
= Zusammenfassung
52+
#lorem(100)
53+
```
54+
55+
3. Compile the report
56+
```sh
57+
typst compile main.typ report.pdf
58+
```
59+
60+
---
61+
## Further Resources
62+
63+
- [Typst Documentation](https://typst.app/docs/)
64+
- [Typst Guide for LaTeX Users](https://typst.app/docs/guides/guide-for-latex-users/)
65+
- [Typst VS Code Extension (inofficial)](https://marketplace.visualstudio.com/items?itemName=nvarner.typst-lsp)

main.typ

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#import "template.typ": *
2+
3+
#show: gutachten.with(
4+
title: "Es war ein sehr cooles Thema",
5+
authors: ("Max Mustermann", "Erika Musterfrau"),
6+
advisors: ("Prof. Stephan Krusche",),
7+
type: "Bachelorarbeit",
8+
date: datetime(day: 1, month: 1, year: 2025),
9+
grade_suggestion: 1.7,
10+
lang: "de",
11+
)
12+
13+
= Themenstellung & Ziele
14+
#lorem(100)
15+
16+
= Stärken der Arbeit
17+
#lorem(200)
18+
19+
= Schwächen der Arbeit
20+
#lorem(200)
21+
22+
= Zusammenfassung
23+
#lorem(100)

template.typ

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
#import "@preview/oxifmt:0.2.1": strfmt
2+
3+
#let i18n_title = (de: "Gutachten", en: "Review Report")
4+
#let i18n_topic = (de: "Thema", en: "Topic")
5+
#let i18n_worked_on = (de: "Bearbeitet von", en: "Worked on by")
6+
#let i18n_supervised_by = (de: "Betreut von", en: "Supervised by")
7+
#let i18n_handin_date = (de: "Abgabedatum", en: "Hand-in date")
8+
9+
#let i18n_time_date = (de: "Ort und Datum", en: "Time and Date")
10+
#let i18n_grade_suggestions = (de: "Notenvorschlag", en: "Grade Suggestions")
11+
12+
#let gutachten(
13+
title: "",
14+
type: "Bachelorarbeit",
15+
authors: (),
16+
advisors: (),
17+
date: datetime.today(),
18+
grade_suggestion: 4.0,
19+
lang: "de",
20+
body
21+
) = {
22+
// Set the document's basic properties.
23+
set document(
24+
author: advisors,
25+
title: title,
26+
keywords: (i18n_title.at(lang))
27+
)
28+
29+
// Adjust the page's general layout
30+
set page(
31+
numbering: "1",
32+
number-align: center,
33+
header: [
34+
#set text(size: 14pt, lang: "de")
35+
#h(1fr)
36+
#strong(i18n_title.at(lang) + " " + type)
37+
#h(1fr)
38+
]
39+
)
40+
41+
set text(font: "New Computer Modern", size: 10pt, lang: lang)
42+
set par(justify: true)
43+
44+
// Set the document's headings.
45+
set heading(numbering: "A)")
46+
show heading: set text(size: 12pt)
47+
48+
// Indent the document's lists and enumerations a little bit more
49+
set enum(numbering: "1)", indent: 1em)
50+
set list(indent: 2em)
51+
52+
{
53+
// make the table appear a little bit bigger than the rest of the text
54+
set text(size: 12pt)
55+
line(length: 100%, stroke: (thickness: 1pt, dash: "dashed"))
56+
57+
grid(
58+
columns: 2,
59+
gutter: 1em,
60+
align: left,
61+
[#strong(i18n_topic.at(lang) + ":")],[#title],
62+
[#strong(i18n_worked_on.at(lang) + ":")],[#authors.join(", ")],
63+
[#strong(i18n_supervised_by.at(lang) + ":")],[#advisors.join(", ")],
64+
[#strong(i18n_handin_date.at(lang) + ":")],[#date.display("[day].[month].[year]")]
65+
66+
)
67+
68+
line(length: 100%, stroke: (thickness: 1pt, dash: "dashed"))
69+
}
70+
71+
body
72+
73+
v(1cm)
74+
75+
stack(
76+
dir: ltr,
77+
stack(
78+
dir: ttb,
79+
spacing: 0.5em,
80+
strong(i18n_time_date.at(lang)),
81+
"Garching, " + datetime.today().display("[day].[month].[year]")
82+
),
83+
h(1fr),
84+
strong(i18n_grade_suggestions.at(lang) +": " + strfmt("{:.1}", grade_suggestion))
85+
)
86+
}

0 commit comments

Comments
 (0)