Compare commits

...
16 Commits
Author SHA1 Message Date
swaits 8fa2ca99be chore: point repository at git.swaits.com 2026-08-31 17:19:30 -06:00
swaits c47839fe8d chore: remove Sourcehut CI manifest
Migrated to git.swaits.com; Sourcehut builds no longer run.
2026-08-31 17:16:44 -06:00
swaits cfcdc7e2f4 Merge pull request #69 from theRealProHacker/patch-1 2025-10-27 05:47:29 -07:00
theRealProHacker db8d7c9c91 Add option to show/hide last updated date in resume 2025-10-27 08:03:01 +01:00
swaits a869d3ab6b chore: MIGRATING REPO! 2025-10-26 21:26:14 -06:00
swaits b84900ffc1 chore(codly-languages): bump version to 0.1.10
Merges [PR68](https://github.com/swaits/typst-collection/pull/68).

Contributed by [quaggaone](https://github.com/quaggaone) who said:

> **fix layout shifts when using lang-icon**
>
> Currently, there are layout shifts when using codly-languages with lang-icons compared to only using codly.
Most notably the height of the language box changes. This causes the outset of the box to be unbalanced.
> 
> I adjusted the images properties, so the image doesn’t affect the size on the surrounding language box anymore. This fix is regardless of the image’s size.
2025-10-26 16:15:05 -06:00
swaits 0e6d002839 Merge pull request #68 from quaggaone/main
codly-languages: fix layout shifts when using lang-icon
2025-10-26 16:15:05 -06:00
Felix Dimmerling 7b7fd2e53f fix layout shifts when using lang-icon 2025-10-26 16:00:25 -06:00
swaits 1d83997ec3 Merge pull request #67 from Andrew15-5/revert-colors
fix(codly-languages)!: revert changed Typst colors
2025-10-26 16:00:24 -06:00
swaits f856f34421 chore(codly-languages): bump version to 0.1.9 2025-10-26 16:00:24 -06:00
Andrew Voynov 435136303f fix(codly-languages)!: revert changed Typst colors 2025-10-26 16:00:24 -06:00
swaits c1f3a757c1 test(codly-languages): update to codly 1.3.0, clean up tests 2025-10-26 16:00:24 -06:00
swaits b7bcb8a185 Merge pull request #67 from Andrew15-5/revert-colors
fix(codly-languages)!: revert changed Typst colors
2025-10-26 16:00:24 -06:00
Andrew Voynov 934afca4c3 fix(codly-languages)!: revert changed Typst colors 2025-10-26 16:00:24 -06:00
swaits 5a30a0eb62 Merge pull request #56 from t1mlange/main
Remove hardcoded padding for Dherse/codly#90
2025-10-26 16:00:24 -06:00
Tim Lange dfaf8cee93 Remove hardcoded padding for Dherse/codly#90 2025-10-26 16:00:24 -06:00
41 changed files with 197 additions and 50 deletions

No files matched your search

+6
View File
@@ -0,0 +1,6 @@
STOP! This repository is being migrated.
All packages have moved to:
https://github.com/swaits-typst-packages
Do NOT create new issues or PRs here.
-27
View File
@@ -1,27 +0,0 @@
image: alpine/edge
packages:
- git
secrets:
- 88cce185-d2ec-4573-9546-e33f36f79bbf
environment:
# repo and user names on both sr.ht and github
REPO: typst-collection
USER: swaits
tasks:
- fetch-all-branches: |
cd "$HOME/$REPO"
git fetch origin '+refs/heads/*:refs/heads/*' '+refs/tags/*:refs/tags/*' --prune
- get-github-public-key: |
ssh-keyscan -t rsa github.com >> "$HOME/.ssh/known_hosts"
- add-github-remote: |
cd "$HOME/$REPO"
git remote add github "git@github.com:$USER/$REPO.git"
- mirror-to-github: |
cd "$HOME/$REPO"
git push --mirror github
+9
View File
@@ -0,0 +1,9 @@
Migration started: 2025-10-26 21:22
This repository is being split into individual package repositories.
During this transition:
- No new issues or PRs should be created
- Existing issues are being triaged and moved
- The repository will be archived once migration is complete
New organization: https://github.com/swaits-typst-packages
+53
View File
@@ -1,3 +1,54 @@
# 🚨 REPOSITORY MOVING - DO NOT CREATE NEW ISSUES OR PRS HERE 🚨
<div align="center">
## ⛔ THIS REPOSITORY IS BEING MIGRATED ⛔
### **ALL PACKAGES ARE MOVING TO:** [github.com/swaits-typst-packages](https://github.com/swaits-typst-packages)
**DO NOT:**
- ❌ Create new issues here
- ❌ Submit new pull requests here
- ❌ Start new work based on this repo
**INSTEAD:**
- ✅ Go to the new organization: [swaits-typst-packages](https://github.com/swaits-typst-packages)
- ✅ Find your specific package repository there
- ✅ Create issues/PRs in the individual package repos
</div>
---
## 📦 New Repository Locations
| If you're looking for... | Go to... |
|--------------------------|----------|
| **codly-languages** | ➡️ [github.com/swaits-typst-packages/codly-languages](https://github.com/swaits-typst-packages/codly-languages) |
| **easy-typography** | ➡️ [github.com/swaits-typst-packages/easy-typography](https://github.com/swaits-typst-packages/easy-typography) |
| **finely-crafted-cv** | ➡️ [github.com/swaits-typst-packages/finely-crafted-cv](https://github.com/swaits-typst-packages/finely-crafted-cv) |
| **glossy** | ➡️ [github.com/swaits-typst-packages/glossy](https://github.com/swaits-typst-packages/glossy) |
| **pro-letter** | ➡️ [github.com/swaits-typst-packages/pro-letter](https://github.com/swaits-typst-packages/pro-letter) |
| **rfc-vibe** | ➡️ [github.com/swaits-typst-packages/rfc-vibe](https://github.com/swaits-typst-packages/rfc-vibe) |
| **run-liners** | ➡️ [github.com/swaits-typst-packages/run-liners](https://github.com/swaits-typst-packages/run-liners) |
| **swank-tex** | ➡️ [github.com/swaits-typst-packages/swank-tex](https://github.com/swaits-typst-packages/swank-tex) |
| **tasteful-pairings** | ➡️ [github.com/swaits-typst-packages/tasteful-pairings](https://github.com/swaits-typst-packages/tasteful-pairings) |
## ⏳ Migration In Progress
We are currently:
1. Moving existing issues to the appropriate new repositories
2. Redirecting pull requests to the new locations
3. Setting up the new package infrastructure
**Expected completion: [Coming Soon]**
---
<details>
<summary>📜 Original README (click to expand)</summary>
# `typst-collection` # `typst-collection`
A collection of `typst` templates and packages by [swaits](https://swaits.com/about). A collection of `typst` templates and packages by [swaits](https://swaits.com/about).
@@ -35,3 +86,5 @@ links below to their main page.
## License ## License
All content licensed under the [MIT license](LICENSE). All content licensed under the [MIT license](LICENSE).
</details>
+37
View File
@@ -0,0 +1,37 @@
# `typst-collection`
A collection of `typst` templates and packages by [swaits](https://swaits.com/about).
Everything in this collection is available for use at the [`typst`
universe](https://typst.app/universe/). For details on each, please visit the
links below to their main page.
## Packages
- [**codly-languages**](https://typst.app/universe/package/codly-languages): A
set of language configurations for use with
[codly](https://typst.app/universe/package/codly).
- [easy-typography](https://typst.app/universe/package/easy-typography): Sets up
sensible typography defaults.
- [**glossy**](https://typst.app/universe/package/glossy): A very simple
glossary system with easily customizable output.
- [**rfc-vibe**](https://typst.app/universe/package/rfc-vibe): Bring RFC language
into everyday docs.
- [**run-liners**](https://typst.app/universe/package/run-liners): Functions to
create various run-in lists.
- [**swank-tex**](https://typst.app/universe/package/swank-tex): Render those
funky logos for TeX, LaTeX, and friends.
- [**tasteful-pairings**](https://typst.app/universe/package/tasteful-pairings):
A carefully curated collection of font pairings focusing on readability and
typographic harmony.
## Templates
- [**finely-crafted-cv**](https://typst.app/universe/package/finely-crafted-cv):
A modern résumé/curriculum vitæ template with high attention to detail.
- [**pro-letter**](https://typst.app/universe/package/pro-letter): A formal
business letter template.
## License
All content licensed under the [MIT license](LICENSE).
Executable
+69
View File
@@ -0,0 +1,69 @@
#!/usr/bin/env bash
set -euo pipefail
SRC_REPO_ROOT="$(pwd)"
DEST_PARENT="../swaits-typst-collection" # change if you like
DIRS=(
codly-languages
)
command -v git-filter-repo >/dev/null || {
echo "git-filter-repo is required. Install via 'uv tool install git-filter-repo' (or pipx/pip)."
exit 1
}
mkdir -p "$DEST_PARENT"
for d in "${DIRS[@]}"; do
[ -d "$d" ] || {
echo "Skip: '$d' not found in $(pwd)"
continue
}
TARGET="$DEST_PARENT/$d"
echo
echo "==> Splitting '$d' → '$TARGET'"
rm -rf "$TARGET"
git clone --no-local --branch main --origin origin "$SRC_REPO_ROOT" "$TARGET"
(
cd "$TARGET"
git filter-repo --force \
--path "$d/" \
--path-rename "$d/:"
# ---- Tag rename: '<dir>-X.Y.Z' -> 'vX.Y.Z' (annotated, with message) ----
# Peel old tags to the commit/object they point to to avoid nested tags.
while IFS= read -r oldtag; do
# only proceed if the (filtered) repo still has this tag
git rev-parse -q --verify "refs/tags/$oldtag" >/dev/null || continue
peeled=$(git rev-parse -q --verify "${oldtag}^{}" || true)
[ -z "$peeled" ] && continue
ver="${oldtag#${d}-}"
newtag="v${ver}"
if git rev-parse -q --verify "refs/tags/$newtag" >/dev/null; then
echo "Tag exists, deleting old: $oldtag"
git tag -d "$oldtag" >/dev/null
else
# annotated tag with message equal to tag name (avoids interactive prompt)
git -c advice.nestedTag=false tag -a "$newtag" -m "$newtag" "$peeled"
git tag -d "$oldtag" >/dev/null
echo "Renamed: $oldtag -> $newtag (at $peeled)"
fi
done < <(git tag -l "${d}-*")
# standalone: drop the monorepo remote that filter-repo rewired
git remote remove origin || true
echo "Done: $TARGET"
)
done
echo
echo "All splits complete under: $DEST_PARENT"
+2 -2
View File
@@ -10,10 +10,10 @@ Pretty simple. Import `codly`. Initialize it. Import `codly-languages`.
Configure `codly` with the languages. Like this: Configure `codly` with the languages. Like this:
```typst ```typst
#import "@preview/codly:1.2.0": * #import "@preview/codly:1.3.0": *
#show: codly-init #show: codly-init
#import "@preview/codly-languages:0.1.8": * #import "@preview/codly-languages:0.1.10": *
#codly(languages: codly-languages) #codly(languages: codly-languages)
``` ```
+7 -8
View File
@@ -4,21 +4,20 @@
// To use: // To use:
// //
// ```typst // ```typst
// #import "@preview/codly:1.2.0": * // #import "@preview/codly:1.3.0": *
// #show: codly-init // #show: codly-init
// //
// #import "codly-languages.typ:0.1.8": * // #import "codly-languages.typ:0.1.10": *
// #codly(languages: codly-languages) // #codly(languages: codly-languages)
// ``` // ```
#let codly-languages = { #let codly-languages = {
// helper function which takes an image filename and creates an icon // helper function which takes an image filename and creates an icon
let __icon(image-filename) = { let __icon(image-filename) = {
box( box(
image("icons/" + image-filename, height: 0.9em), image("icons/" + image-filename, height: 130%, fit: "contain"),
baseline: 0.05em,
inset: 0pt, inset: 0pt,
outset: 0pt, outset: 0pt,
) + h(0.3em) )
} }
let __emoji(emoji) = { let __emoji(emoji) = {
@@ -26,7 +25,7 @@
emoji, emoji,
inset: 0pt, inset: 0pt,
outset: 0pt, outset: 0pt,
) + h(0.3em) )
} }
// configurations for languages // configurations for languages
@@ -643,9 +642,9 @@
tsx: (name: "TSX", color: rgb("#007acc"), icon: __icon("typescript.svg")), //Devicons tsx: (name: "TSX", color: rgb("#007acc"), icon: __icon("typescript.svg")), //Devicons
typescriptreact: (name: "React", color: rgb("#61dafb"), icon: __icon("react.svg")), //Devicons typescriptreact: (name: "React", color: rgb("#61dafb"), icon: __icon("react.svg")), //Devicons
//Typst //Typst
typst: (name: "Typst", color: rgb("#8b70c3"), icon: __icon("typst.svg")), //Typst typst: (name: "Typst", color: rgb("#458fa0"), icon: __icon("typst.svg")), //Typst
typ: (name: "Typst", color: rgb("#458fa0"), icon: __icon("typst.svg")), //Typst typ: (name: "Typst", color: rgb("#458fa0"), icon: __icon("typst.svg")), //Typst
typc: (name: "Typst", color: rgb("#8b70c3"), icon: __icon("typst.svg")), //Typst typc: (name: "Typst", color: rgb("#458fa0"), icon: __icon("typst.svg")), //Typst
typm: (name: "Typst", color: rgb("#458fa0"), icon: __icon("typst.svg")), //Typst typm: (name: "Typst", color: rgb("#458fa0"), icon: __icon("typst.svg")), //Typst
//UML //UML
uml: (name: "UML", color: rgb("#452e7f"), icon: __icon("unifiedmodelinglanguage.svg")), //Devicons uml: (name: "UML", color: rgb("#452e7f"), icon: __icon("unifiedmodelinglanguage.svg")), //Devicons
Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

@@ -1,4 +1,4 @@
#import "@preview/codly:1.2.0": * #import "@preview/codly:1.3.0": *
#import "/lib.typ": * #import "/lib.typ": *
#show: codly-init #show: codly-init
#codly(languages: codly-languages) #codly(languages: codly-languages)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 254 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.
+1 -1
View File
@@ -1,5 +1,5 @@
#import "/lib.typ": * #import "/lib.typ": *
#import "@preview/codly:1.2.0": * #import "@preview/codly:1.3.0": *
#show: codly-init #show: codly-init
#codly(languages: codly-languages) #codly(languages: codly-languages)
+2 -2
View File
@@ -1,10 +1,10 @@
[package] [package]
name = "codly-languages" name = "codly-languages"
version = "0.1.8" version = "0.1.10"
entrypoint = "lib.typ" entrypoint = "lib.typ"
authors = ["Stephen Waits <steve@waits.net>"] authors = ["Stephen Waits <steve@waits.net>"]
license = "MIT" license = "MIT"
description = "A set of language configurations for use with codly" description = "A set of language configurations for use with codly"
keywords = ["code", "languages", "template", "raw"] keywords = ["code", "languages", "template", "raw"]
repository = "https://github.com/swaits/typst-collection" repository = "https://git.swaits.com/swaits/typst-collection"
exclude = ["thumbnail.png", "tests"] exclude = ["thumbnail.png", "tests"]
+1 -1
View File
@@ -6,5 +6,5 @@ authors = ["Stephen Waits <steve@waits.net>"]
license = "MIT" license = "MIT"
description = "Sets up sensible typography defaults." description = "Sets up sensible typography defaults."
keywords = ["easy", "typography", "defaults"] keywords = ["easy", "typography", "defaults"]
repository = "https://github.com/swaits/typst-collection" repository = "https://git.swaits.com/swaits/typst-collection"
exclude = ["thumbnail.png", "tests"] exclude = ["thumbnail.png", "tests"]
+2 -1
View File
@@ -12,6 +12,7 @@
body-size: BODY_SIZE, body-size: BODY_SIZE,
icon-contact-header: none, icon-contact-header: none,
keywords: "", keywords: "",
show_last_updated: true,
thumbnail: none, // check out https://qrframe.kylezhe.ng/ for QR code generation thumbnail: none, // check out https://qrframe.kylezhe.ng/ for QR code generation
body body
) = { ) = {
@@ -47,7 +48,7 @@
columns: (1fr, 1fr, 1fr), columns: (1fr, 1fr, 1fr),
align: (left, center, right + horizon), align: (left, center, right + horizon),
// left column // left column
[Last updated: #date], if show_last_updated [Last updated: #date],
// center column // center column
if multi_page { counter(page).display(both: true, "1 of 1") }, if multi_page { counter(page).display(both: true, "1 of 1") },
// right column // right column
+1 -1
View File
@@ -8,7 +8,7 @@ description = "A modern résumé/curriculum vitæ template with high attention t
categories = ["cv"] categories = ["cv"]
disciplines = ["business", "communication"] disciplines = ["business", "communication"]
keywords = ["resume", "curriculum", "vitae", "cv"] keywords = ["resume", "curriculum", "vitae", "cv"]
repository = "https://github.com/swaits/typst-collection" repository = "https://git.swaits.com/swaits/typst-collection"
exclude = ["thumbnail.png", "tests"] exclude = ["thumbnail.png", "tests"]
[template] [template]
+1 -1
View File
@@ -8,5 +8,5 @@ license = "MIT"
description = "A very simple glossary system with easily customizable output." description = "A very simple glossary system with easily customizable output."
categories = ["model"] categories = ["model"]
keywords = ["glossary", "index", "dictionary", "gloss"] keywords = ["glossary", "index", "dictionary", "gloss"]
repository = "https://github.com/swaits/typst-collection" repository = "https://git.swaits.com/swaits/typst-collection"
exclude = ["justfile", "thumbnail.png", "themeshots.png", "tests", "bin"] exclude = ["justfile", "thumbnail.png", "themeshots.png", "tests", "bin"]
+1 -1
View File
@@ -8,7 +8,7 @@ description = "A formal business letter template."
categories = ["office"] categories = ["office"]
disciplines = ["business", "communication"] disciplines = ["business", "communication"]
keywords = ["professional", "business", "letter", "correspondence"] keywords = ["professional", "business", "letter", "correspondence"]
repository = "https://github.com/swaits/typst-collection" repository = "https://git.swaits.com/swaits/typst-collection"
[template] [template]
path = "template" path = "template"
+1 -1
View File
@@ -7,5 +7,5 @@ license = "MIT"
description = "Bring RFC language into everyday docs" description = "Bring RFC language into everyday docs"
categories = ["utility"] categories = ["utility"]
keywords = ["rfc", "keywords", "rfc2119", "rfc8174", "bcp14"] keywords = ["rfc", "keywords", "rfc2119", "rfc8174", "bcp14"]
repository = "https://github.com/swaits/typst-collection" repository = "https://git.swaits.com/swaits/typst-collection"
exclude = ["thumbnail.png", "tests"] exclude = ["thumbnail.png", "tests"]
+1 -1
View File
@@ -7,5 +7,5 @@ license = "MIT"
description = "Functions to create various run-in lists." description = "Functions to create various run-in lists."
categories = ["model"] categories = ["model"]
keywords = ["run-in", "enum", "list", "terms"] keywords = ["run-in", "enum", "list", "terms"]
repository = "https://github.com/swaits/typst-collection" repository = "https://git.swaits.com/swaits/typst-collection"
exclude = ["thumbnail.png", "tests", "bin", "docs/manual.pdf"] exclude = ["thumbnail.png", "tests", "bin", "docs/manual.pdf"]
+1 -1
View File
@@ -7,5 +7,5 @@ license = "MIT"
description = "Render those funky logos for TeX, LaTeX, and friends." description = "Render those funky logos for TeX, LaTeX, and friends."
categories = ["utility"] categories = ["utility"]
keywords = ["tex", "latex", "luatex", "xetex", "lualatex", "xelatex", "logo"] keywords = ["tex", "latex", "luatex", "xetex", "lualatex", "xelatex", "logo"]
repository = "https://github.com/swaits/typst-collection" repository = "https://git.swaits.com/swaits/typst-collection"
exclude = ["thumbnail.png", "tests"] exclude = ["thumbnail.png", "tests"]
+1 -1
View File
@@ -6,5 +6,5 @@ authors = ["Stephen Waits <steve@waits.net>"]
license = "MIT" license = "MIT"
description = "A carefully curated collection of font pairings." description = "A carefully curated collection of font pairings."
keywords = ["font", "pairing", "typography"] keywords = ["font", "pairing", "typography"]
repository = "https://github.com/swaits/typst-collection" repository = "https://git.swaits.com/swaits/typst-collection"
exclude = ["thumbnail.png", "tests"] exclude = ["thumbnail.png", "tests"]