4 Commits

18 changed files with 217 additions and 45 deletions

63
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,63 @@
name: Bug Report
description: Something isn't working as expected
labels: ["bug"]
assignees: [kristoferssolo]
body:
- type: markdown
attributes:
value: |
Before submitting, check [existing issues](../../issues) to avoid duplicates.
- type: input
id: typst-version
attributes:
label: Typst Version
description: Run `typst --version`
placeholder: "e.g. typst 0.14.0"
validations:
required: true
- type: input
id: template-version
attributes:
label: Template Version
description: Release tag or commit hash
placeholder: "e.g. v1.0.0 or a3f5c2d"
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: Clear and concise description of the bug.
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Minimal Reproduction
description: >
A minimal `.typ` snippet that reproduces the issue. Remove everything not necessary to trigger the bug.
render: typst
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Behavior
validations:
required: true
- type: textarea
id: actual
attributes:
label: Actual Behavior
validations:
required: true
- type: textarea
id: additional
attributes:
label: Additional Context
description: >
Screenshots, PDF output snippets, compiler errors, or anything else relevant.
validations:
required: false

1
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1 @@
blank_issues_enabled: true

View File

@@ -0,0 +1,27 @@
name: Documentation
description: Missing, incorrect, or unclear documentation
labels: ["documentation"]
assignees: [kristoferssolo]
body:
- type: input
id: location
attributes:
label: Location
description: File, section, or page where the issue is.
placeholder: "e.g. README.md > Usage, or docs/structure.md"
validations:
required: true
- type: textarea
id: description
attributes:
label: What's Wrong
description: What is missing, incorrect, or unclear?
validations:
required: true
- type: textarea
id: suggestion
attributes:
label: Suggested Improvement
description: How should it read or what should be added?
validations:
required: false

View File

@@ -0,0 +1,39 @@
name: Feature Request
description: Suggest new functionality or an enhancement
labels: ["feature"]
assignees: [kristoferssolo]
body:
- type: markdown
attributes:
value: |
Before submitting, check [existing issues](../../issues) to avoid duplicates.
- type: textarea
id: problem
attributes:
label: Problem / Motivation
description: What problem does this solve? Why is it needed?
validations:
required: true
- type: textarea
id: solution
attributes:
label: Proposed Solution
description: Describe the feature and how it should work.
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives Considered
description: Any workarounds or other approaches you've considered.
validations:
required: false
- type: checkboxes
id: lu-scope
attributes:
label: Scope
options:
- label: >
This is required or implied by University of Latvia thesis guidelines
- label: This is a general usability or quality-of-life improvement

33
.github/ISSUE_TEMPLATE/question.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
name: Question
description: Ask a question about using the template
labels: ["question"]
assignees: [kristoferssolo]
body:
- type: markdown
attributes:
value: |
Check the [README](../../blob/main/README.md) and
[existing issues](../../issues) first.
- type: textarea
id: question
attributes:
label: Question
validations:
required: true
- type: textarea
id: context
attributes:
label: Context
description: >
What are you trying to achieve? What have you already tried?
validations:
required: false
- type: input
id: typst-version
attributes:
label: Typst Version
description: If relevant, run `typst --version`
placeholder: "e.g. typst 0.14.0"
validations:
required: false

View File

@@ -48,7 +48,7 @@ function in a show rule. If you want to change an existing project to use this
template, you can add a show rule like this at the top of your file: template, you can add a show rule like this at the top of your file:
```typst ```typst
#import "@preview/solo-lu-df:1.1.1": * #import "@preview/solo-lu-df:1.1.2": *
#show: ludf.with( #show: ludf.with(
title: "Darba Nosaukums", title: "Darba Nosaukums",
@@ -85,12 +85,12 @@ template, you can add a show rule like this at the top of your file:
Ready-to-edit examples for different thesis types are included: Ready-to-edit examples for different thesis types are included:
- **Qualification thesis**: [`examples/qualification-thesis/`](https://github.com/kristoferssolo/LU-DF-Typst-Template/tree/main/examples/qualification-thesis) - **Qualification thesis**: [`examples/qualification-thesis/`](https://github.com/kristoferssolo/LU-DF-Typst-Template/tree/v1.1.2/examples/qualification-thesis)
- **Course work**: [`examples/course-work/`](https://github.com/kristoferssolo/LU-DF-Typst-Template/tree/main/examples/course-work) - **Course work**: [`examples/course-work/`](https://github.com/kristoferssolo/LU-DF-Typst-Template/tree/v1.1.2/examples/course-work)
- **Bachelor thesis**: [`examples/bachelor-thesis/`](https://github.com/kristoferssolo/LU-DF-Typst-Template/tree/main/examples/bachelor-thesis) - **Bachelor thesis**: [`examples/bachelor-thesis/`](https://github.com/kristoferssolo/LU-DF-Typst-Template/tree/v1.1.2/examples/bachelor-thesis)
- **Master thesis**: [`examples/master-thesis/`](https://github.com/kristoferssolo/LU-DF-Typst-Template/tree/main/examples/master-thesis) - **Master thesis**: [`examples/master-thesis/`](https://github.com/kristoferssolo/LU-DF-Typst-Template/tree/v1.1.2/examples/master-thesis)
View the examples on GitHub: <https://github.com/kristoferssolo/LU-DF-Typst-Template/tree/main/examples> Browse all examples on GitHub: <https://github.com/kristoferssolo/LU-DF-Typst-Template/tree/v1.1.2/examples>
The qualification thesis example contains `main.typ`, `bibliography.yml` and small helpers under The qualification thesis example contains `main.typ`, `bibliography.yml` and small helpers under
`utils/`. Use it as a starting point or copy it into a new project. `utils/`. Use it as a starting point or copy it into a new project.

View File

@@ -3,8 +3,8 @@ Bachelor thesis example (solo-lu-df)
This folder contains a ready-to-edit bachelor thesis example built with This folder contains a ready-to-edit bachelor thesis example built with
the `solo-lu-df` Typst template: the `solo-lu-df` Typst template:
- `main.typ` Typst source (the example document). - `main.typ` Typst source (the example document).
- `bibliography.yml` example bibliography entries (create as needed). - `bibliography.yml` example bibliography entries (create as needed).
## How to edit ## How to edit
@@ -23,4 +23,4 @@ documentary page for bachelor theses.
## License ## License
This project is licensed under the MIT-0 License - see the [LICENSE](./../../LICENSE) file for details. This project is licensed under the MIT-0 License see the [LICENSE](./../../LICENSE) file for details.

View File

@@ -1,4 +1,4 @@
#import "@preview/solo-lu-df:1.1.1": * #import "@preview/solo-lu-df:1.1.2": *
#show: ludf.with( #show: ludf.with(
title: "Bakalaura Darba Nosaukums", title: "Bakalaura Darba Nosaukums",

View File

@@ -3,8 +3,8 @@ Course work example (solo-lu-df)
This folder contains a ready-to-edit course work example built with This folder contains a ready-to-edit course work example built with
the `solo-lu-df` Typst template: the `solo-lu-df` Typst template:
- `main.typ` Typst source (the example document). - `main.typ` Typst source (the example document).
- `bibliography.yml` example bibliography entries (create as needed). - `bibliography.yml` example bibliography entries (create as needed).
## How to edit ## How to edit
@@ -22,4 +22,4 @@ documentary page for course works.
## License ## License
This project is licensed under the MIT-0 License - see the [LICENSE](./../../LICENSE) file for details. This project is licensed under the MIT-0 License see the [LICENSE](./../../LICENSE) file for details.

View File

@@ -1,4 +1,4 @@
#import "@preview/solo-lu-df:1.1.1": * #import "@preview/solo-lu-df:1.1.2": *
#show: ludf.with( #show: ludf.with(
title: "Kursa Darba Nosaukums", title: "Kursa Darba Nosaukums",

View File

@@ -3,8 +3,8 @@ Master thesis example (solo-lu-df)
This folder contains a ready-to-edit master thesis example built with This folder contains a ready-to-edit master thesis example built with
the `solo-lu-df` Typst template: the `solo-lu-df` Typst template:
- `main.typ` Typst source (the example document). - `main.typ` Typst source (the example document).
- `bibliography.yml` example bibliography entries (create as needed). - `bibliography.yml` example bibliography entries (create as needed).
## How to edit ## How to edit
@@ -25,4 +25,4 @@ instead of "bakalaura" in the footer).
## License ## License
This project is licensed under the MIT-0 License - see the [LICENSE](./../../LICENSE) file for details. This project is licensed under the MIT-0 License see the [LICENSE](./../../LICENSE) file for details.

View File

@@ -1,4 +1,4 @@
#import "@preview/solo-lu-df:1.1.1": * #import "@preview/solo-lu-df:1.1.2": *
#show: ludf.with( #show: ludf.with(
title: "Maģistra Darba Nosaukums", title: "Maģistra Darba Nosaukums",

View File

@@ -3,9 +3,9 @@ Qualification thesis example (solo-lu-df)
This folder contains a ready-to-edit qualification-thesis example built with This folder contains a ready-to-edit qualification-thesis example built with
the `solo-lu-df` Typst template: the `solo-lu-df` Typst template:
- `main.typ` Typst source (the example document). - `main.typ` Typst source (the example document).
- `bibliography.yml` example bibliography entries. - `bibliography.yml` example bibliography entries.
- `utils/` helper snippets for diagrams/tables used by the example. - `utils/` helper snippets for diagrams/tables used by the example.
## How to edit ## How to edit
@@ -25,4 +25,4 @@ documentary page for course works.
## License ## License
This project is licensed under the MIT-0 License - see the [LICENSE](./../../LICENSE) file for details. This project is licensed under the MIT-0 License see the [LICENSE](./../../LICENSE) file for details.

View File

@@ -127,6 +127,32 @@
] ]
} }
#let normalize-title(title) = {
if type(title) != content or "children" not in title.fields() {
return title
}
let children = title
.fields()
.children
.filter(it => it.func() != linebreak)
.fold((), (acc, it) => {
if it == [ ] and (acc.len() == 0 or acc.last() == [ ]) {
acc
} else {
acc + (it,)
}
})
let children = if children.len() > 0 and children.last() == [ ] {
children.slice(0, -1)
} else {
children
}
children.join("")
}
#let make-documentary-page( #let make-documentary-page(
title, title,
authors, authors,
@@ -137,11 +163,11 @@
presentation-date, presentation-date,
) = { ) = {
set page(numbering: none) set page(numbering: none)
heading(level: 1, outlined: false, numbering: none, "Dokumentārā lapa")
set par(spacing: 2em) set par(spacing: 2em)
heading(level: 1, outlined: false, numbering: none, "Dokumentārā lapa")
make-dokumentary( make-dokumentary(
title, normalize-title(title),
authors, authors,
advisors, advisors,
reviewer, reviewer,
@@ -150,3 +176,4 @@
fmt-date(presentation-date), fmt-date(presentation-date),
) )
} }

View File

@@ -293,26 +293,9 @@
make-attachments(attachment-title, attachments) make-attachments(attachment-title, attachments)
let title-text = if type(title) == content and "children" in title.fields() {
title
.fields()
.children
.filter(it => it.func() != linebreak)
.fold((), (acc, it) => {
if it == [ ] and acc.last() == [ ] {
acc
} else {
acc + (it,)
}
})
.join("")
} else {
title
}
if display-documentary { if display-documentary {
make-documentary-page( make-documentary-page(
title-text, title,
authors, authors,
advisors, advisors,
reviewer, reviewer,

View File

@@ -1,6 +1,5 @@
#import "documentary-page.typ": get-thesis-label, make-documentary-page #import "documentary-page.typ": get-thesis-label, make-documentary-page
#let merge(a, b) = { #let merge(a, b) = {
let result = a let result = a
for (k, v) in b { result.at(k) = v } for (k, v) in b { result.at(k) = v }

View File

@@ -1,4 +1,4 @@
#import "@preview/solo-lu-df:1.1.1": * #import "@preview/solo-lu-df:1.1.2": *
#show: ludf.with( #show: ludf.with(
title: "Darba Nosaukums", title: "Darba Nosaukums",

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "solo-lu-df" name = "solo-lu-df"
version = "1.1.1" version = "1.1.2"
entrypoint = "src/lib.typ" entrypoint = "src/lib.typ"
authors = ["Kristofers Solo <dev@kristofers.xyz>"] authors = ["Kristofers Solo <dev@kristofers.xyz>"]
license = "MIT-0" license = "MIT-0"