Use sys.inputs to pass variables via the CLI.
This commit is contained in:
parent
843e4e0595
commit
a759853f08
|
@ -2,4 +2,3 @@
|
||||||
.vscode/
|
.vscode/
|
||||||
build/
|
build/
|
||||||
data/
|
data/
|
||||||
cv.typ
|
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
[env]
|
||||||
|
CV_INCLUDE_LINKS = { condition = { env_not_set = ["CV_INCLUDE_LINKS"] }, value = "true" }
|
||||||
|
CV_VERSION = { condition = { env_not_set = ["CV_VERSION"] }, value = "2024-03-01" }
|
||||||
|
|
||||||
# Shorthand to compile all the languages at once.
|
# Shorthand to compile all the languages at once.
|
||||||
[tasks.build]
|
[tasks.build]
|
||||||
clear = true
|
clear = true
|
||||||
|
@ -5,12 +9,12 @@ dependencies = ["build-en", "build-nl"]
|
||||||
|
|
||||||
# Compile using the English locale.
|
# Compile using the English locale.
|
||||||
[tasks.build-en]
|
[tasks.build-en]
|
||||||
env = { CV_LANG="en" }
|
env = { CV_LANG = "en" }
|
||||||
extend = "compile"
|
extend = "compile"
|
||||||
|
|
||||||
# Compile using the Dutch locale.
|
# Compile using the Dutch locale.
|
||||||
[tasks.build-nl]
|
[tasks.build-nl]
|
||||||
env = { CV_LANG="nl" }
|
env = { CV_LANG = "nl" }
|
||||||
extend = "compile"
|
extend = "compile"
|
||||||
|
|
||||||
# Clean the repository by removing the build directory.
|
# Clean the repository by removing the build directory.
|
||||||
|
@ -23,7 +27,14 @@ args = ["trash", "build"]
|
||||||
[tasks.compile]
|
[tasks.compile]
|
||||||
clear = true
|
clear = true
|
||||||
dependencies = ["ensure-build-dir"]
|
dependencies = ["ensure-build-dir"]
|
||||||
script = "./compile-cv.zsh"
|
command = "typst"
|
||||||
|
args = [
|
||||||
|
"compile", "main.typ",
|
||||||
|
"--input", "language=${CV_LANG}",
|
||||||
|
"--input", "include_links=${CV_INCLUDE_LINKS}",
|
||||||
|
"--input", "version=${CV_VERSION}",
|
||||||
|
"build/CV-Bauke-${CV_LANG}.pdf",
|
||||||
|
]
|
||||||
|
|
||||||
# Ensure that the build directory exists.
|
# Ensure that the build directory exists.
|
||||||
[tasks.ensure-build-dir]
|
[tasks.ensure-build-dir]
|
||||||
|
@ -36,4 +47,4 @@ args = ["-p", "build"]
|
||||||
[tasks.watch]
|
[tasks.watch]
|
||||||
clear = true
|
clear = true
|
||||||
command = "watchexec"
|
command = "watchexec"
|
||||||
args = ["-e", "toml,typ", "-i", "cv.typ", "--no-vcs-ignore", "makers build"]
|
args = ["-e", "toml,typ", "--no-vcs-ignore", "makers build"]
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
#!/usr/bin/env zsh
|
|
||||||
|
|
||||||
# There's currently no way in Typst to provide values from the CLI in some way
|
|
||||||
# so until the next version lands and https://github.com/typst/typst/pull/2894
|
|
||||||
# becomes available, a script that renders a template has to be it for now.
|
|
||||||
|
|
||||||
# Define options based on environment variables or use default values.
|
|
||||||
include_links=${CV_INCLUDE_LINKS:-"true"}
|
|
||||||
language=${CV_LANG:-"en"}
|
|
||||||
version="2024-03-01"
|
|
||||||
|
|
||||||
typst_template="#import \"main.typ\": cv
|
|
||||||
|
|
||||||
#cv(
|
|
||||||
include_links: $include_links,
|
|
||||||
language: \"$language\",
|
|
||||||
version: \"$version\",
|
|
||||||
)"
|
|
||||||
|
|
||||||
echo $typst_template > cv.typ
|
|
||||||
|
|
||||||
typst compile cv.typ "build/CV-Bauke-$CV_LANG.pdf"
|
|
5
main.typ
5
main.typ
|
@ -5,7 +5,10 @@
|
||||||
#import "./utilities/content-to-string.typ": content_to_string
|
#import "./utilities/content-to-string.typ": content_to_string
|
||||||
#import "./utilities/localize.typ": localize
|
#import "./utilities/localize.typ": localize
|
||||||
|
|
||||||
#let cv(include_links: true, language: "", version: "") = {
|
#{
|
||||||
|
let (include_links, language, version) = sys.inputs
|
||||||
|
let include_links = include_links == "true"
|
||||||
|
|
||||||
if language == "" {
|
if language == "" {
|
||||||
panic("No language option specified.")
|
panic("No language option specified.")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue