diff --git a/.github/workflows/compile-test.yaml b/.github/workflows/compile.yaml similarity index 100% rename from .github/workflows/compile-test.yaml rename to .github/workflows/compile.yaml diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/documentation.yaml similarity index 73% rename from .github/workflows/deploy-docs.yaml rename to .github/workflows/documentation.yaml index e57448b..823b6fd 100644 --- a/.github/workflows/deploy-docs.yaml +++ b/.github/workflows/documentation.yaml @@ -4,7 +4,6 @@ on: push: branches: - main - workflow_dispatch: jobs: compile: @@ -21,18 +20,6 @@ jobs: name: docs path: ./docs/docs.pdf - release: - runs-on: ubuntu-latest - needs: compile - steps: - - uses: actions/download-artifact@v4 - with: - name: docs - - uses: softprops/action-gh-release@v2 - if: ${{ startsWith(github.ref, 'refs/tags/') }} - with: - files: ./docs/docs.pdf - deploy: runs-on: ubuntu-latest permissions: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..d51c2ef --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,20 @@ +name: Release + +on: + push: + tags: + - 'v*.*.*' + +permissions: + contents: write + +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Release + uses: softprops/action-gh-release@v2 + with: + generate_release_notes: true \ No newline at end of file diff --git a/README.md b/README.md index 5edd311..0ea5007 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ It is recommended to: For the time being, upgrade can be achieved by manually "find and replace" the import statements in batch in your favorite IDE. For example: ```typst -#import "@preview/brilliant-cv:2.0.0" -> #import "@preview/brilliant-cv:2.0.2" +#import "@preview/brilliant-cv:2.0.0" -> #import "@preview/brilliant-cv:2.0.3" ``` **Make sure you read the release notes to notice any breaking changes. We estimate that there would still be some as Typst has not reached to a stable release neither.** diff --git a/cv.typ b/cv.typ index a9b6730..296e474 100644 --- a/cv.typ +++ b/cv.typ @@ -14,7 +14,13 @@ /// - regularColors (array): the regular colors of the CV. /// - awesomeColors (array): the awesome colors of the CV. /// -> content -#let _cvHeader(metadata, profilePhoto, headerFont, regularColors, awesomeColors) = { +#let _cvHeader( + metadata, + profilePhoto, + headerFont, + regularColors, + awesomeColors, +) = { // Parameters let hasPhoto = metadata.layout.header.display_profile_photo let align = eval(metadata.layout.header.header_align) @@ -199,15 +205,13 @@ text(size: 8pt, fill: rgb("#999999"), smallcaps(str)) } - place( - bottom, - table( - columns: (1fr, auto), - inset: 0pt, - stroke: none, - footerStyle([#firstName #lastName]), footerStyle(footerText), - ), + return table( + columns: (1fr, auto), + inset: -5pt, + stroke: none, + footerStyle([#firstName #lastName]), footerStyle(footerText), ) + } /// Add the title of a section. diff --git a/letter.typ b/letter.typ index 072fdee..0c949f7 100644 --- a/letter.typ +++ b/letter.typ @@ -62,14 +62,11 @@ text(size: 8pt, fill: rgb("#999999"), smallcaps(str)) } - place( - bottom, - table( - columns: (1fr, auto), - inset: 0pt, - stroke: none, - footerStyle([#firstName #lastName]), - footerStyle(metadata.lang.at(metadata.language).letter_footer), - ), + return table( + columns: (1fr, auto), + inset: 0pt, + stroke: none, + footerStyle([#firstName #lastName]), + footerStyle(metadata.lang.at(metadata.language).letter_footer), ) } diff --git a/lib.typ b/lib.typ index abc4c75..d3db210 100644 --- a/lib.typ +++ b/lib.typ @@ -10,9 +10,10 @@ /* Layout */ #let cv( - metadata, + metadata, profilePhoto: image("./template/src/avatar.png"), - doc) = { + doc, +) = { // Non Latin Logic let lang = metadata.language let fontList = latinFontList @@ -31,11 +32,11 @@ set page( paper: "a4", margin: (left: 1.4cm, right: 1.4cm, top: .8cm, bottom: .4cm), + footer: _cvFooter(metadata), ) _cvHeader(metadata, profilePhoto, headerFont, regularColors, awesomeColors) doc - _cvFooter(metadata) } #let letter( @@ -63,23 +64,21 @@ set page( paper: "a4", margin: (left: 1.4cm, right: 1.4cm, top: .8cm, bottom: .4cm), + footer: letterHeader( + myAddress: myAddress, + recipientName: recipientName, + recipientAddress: recipientAddress, + date: date, + subject: subject, + metadata: metadata, + awesomeColors: awesomeColors, + ), ) set text(size: 12pt) - letterHeader( - myAddress: myAddress, - recipientName: recipientName, - recipientAddress: recipientAddress, - date: date, - subject: subject, - metadata: metadata, - awesomeColors: awesomeColors, - ) - doc if signature != "" { letterSignature(signature) } - letterFooter(metadata) } diff --git a/metadata.toml.schema.json b/metadata.toml.schema.json index 839d50c..748caab 100644 --- a/metadata.toml.schema.json +++ b/metadata.toml.schema.json @@ -157,8 +157,7 @@ }, "additionalProperties": false } - }, - "required": ["github", "phone", "email", "linkedin"] + } } }, "required": ["first_name", "last_name", "info"] diff --git a/template/cv.typ b/template/cv.typ index 3399334..26bc258 100644 --- a/template/cv.typ +++ b/template/cv.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": cv +#import "@preview/brilliant-cv:2.0.3": cv #let metadata = toml("./metadata.toml") #let importModules(modules, lang: metadata.language) = { for module in modules { @@ -12,11 +12,12 @@ #show: cv.with( metadata, - profilePhoto: image("./src/avatar.png") + profilePhoto: image("./src/avatar.png"), ) #importModules(( "education", "professional", + "professional", "projects", "certificates", "publications", diff --git a/template/letter.typ b/template/letter.typ index 99a40ba..8328364 100644 --- a/template/letter.typ +++ b/template/letter.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": letter +#import "@preview/brilliant-cv:2.0.3": letter #let metadata = toml("./metadata.toml") diff --git a/template/modules_en/certificates.typ b/template/modules_en/certificates.typ index b954d06..98cc2f9 100644 --- a/template/modules_en/certificates.typ +++ b/template/modules_en/certificates.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": cvSection, cvHonor +#import "@preview/brilliant-cv:2.0.3": cvSection, cvHonor #let metadata = toml("../metadata.toml") #let cvSection = cvSection.with(metadata: metadata) #let cvHonor = cvHonor.with(metadata: metadata) @@ -22,5 +22,5 @@ #cvHonor( date: [], title: [SQL Fundamentals Track], - issuer: [Datacamp] + issuer: [Datacamp], ) diff --git a/template/modules_en/education.typ b/template/modules_en/education.typ index c8cfba3..a0fe959 100644 --- a/template/modules_en/education.typ +++ b/template/modules_en/education.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": cvSection, cvEntry, hBar +#import "@preview/brilliant-cv:2.0.3": cvSection, cvEntry, hBar #let metadata = toml("../metadata.toml") #let cvSection = cvSection.with(metadata: metadata) #let cvEntry = cvEntry.with(metadata: metadata) diff --git a/template/modules_en/professional.typ b/template/modules_en/professional.typ index 645abd5..b40aa17 100644 --- a/template/modules_en/professional.typ +++ b/template/modules_en/professional.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": cvSection, cvEntry +#import "@preview/brilliant-cv:2.0.3": cvSection, cvEntry #let metadata = toml("../metadata.toml") #let cvSection = cvSection.with(metadata: metadata) #let cvEntry = cvEntry.with(metadata: metadata) @@ -38,7 +38,5 @@ logo: image("../src/logos/pqr_corp.png"), date: [Summer 2017], location: [Chicago, IL], - description: list( - [Assisted with data cleaning, processing, and analysis using Python and Excel, participated in team meetings and contributed to project planning and execution], - ), + description: list([Assisted with data cleaning, processing, and analysis using Python and Excel, participated in team meetings and contributed to project planning and execution]), ) diff --git a/template/modules_en/projects.typ b/template/modules_en/projects.typ index a4bfe97..c4a635c 100644 --- a/template/modules_en/projects.typ +++ b/template/modules_en/projects.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": cvSection, cvEntry +#import "@preview/brilliant-cv:2.0.3": cvSection, cvEntry #let metadata = toml("../metadata.toml") #let cvSection = cvSection.with(metadata: metadata) #let cvEntry = cvEntry.with(metadata: metadata) diff --git a/template/modules_en/publications.typ b/template/modules_en/publications.typ index 4df68eb..cb5030b 100644 --- a/template/modules_en/publications.typ +++ b/template/modules_en/publications.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": cvSection, cvPublication +#import "@preview/brilliant-cv:2.0.3": cvSection, cvPublication #let metadata = toml("../metadata.toml") #let cvSection = cvSection.with(metadata: metadata) diff --git a/template/modules_en/skills.typ b/template/modules_en/skills.typ index 94d4624..086373e 100644 --- a/template/modules_en/skills.typ +++ b/template/modules_en/skills.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": cvSection, cvSkill, hBar +#import "@preview/brilliant-cv:2.0.3": cvSection, cvSkill, hBar #let metadata = toml("../metadata.toml") #let cvSection = cvSection.with(metadata: metadata) diff --git a/template/modules_fr/certificates.typ b/template/modules_fr/certificates.typ index 4df213b..c334b8d 100644 --- a/template/modules_fr/certificates.typ +++ b/template/modules_fr/certificates.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": cvSection, cvHonor +#import "@preview/brilliant-cv:2.0.3": cvSection, cvHonor #let metadata = toml("../metadata.toml") #let cvSection = cvSection.with(metadata: metadata) #let cvHonor = cvHonor.with(metadata: metadata) @@ -22,5 +22,5 @@ #cvHonor( date: [], title: [Bases de données et requêtes SQL], - issuer: [OpenClassrooms] + issuer: [OpenClassrooms], ) diff --git a/template/modules_fr/education.typ b/template/modules_fr/education.typ index 6b44627..6a8678c 100644 --- a/template/modules_fr/education.typ +++ b/template/modules_fr/education.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": cvSection, cvEntry, hBar +#import "@preview/brilliant-cv:2.0.3": cvSection, cvEntry, hBar #let metadata = toml("../metadata.toml") #let cvSection = cvSection.with(metadata: metadata) #let cvEntry = cvEntry.with(metadata: metadata) diff --git a/template/modules_fr/professional.typ b/template/modules_fr/professional.typ index 0058895..bc95de1 100644 --- a/template/modules_fr/professional.typ +++ b/template/modules_fr/professional.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": cvSection, cvEntry +#import "@preview/brilliant-cv:2.0.3": cvSection, cvEntry #let metadata = toml("../metadata.toml") #let cvSection = cvSection.with(metadata: metadata) #let cvEntry = cvEntry.with(metadata: metadata) @@ -17,7 +17,7 @@ [Diriger une équipe de scientifiques et d'analystes de données pour développer et mettre en œuvre des stratégies axées sur les données, développer des modèles prédictifs et des algorithmes pour soutenir la prise de décisions dans toute l'organisation], [Collaborer avec la direction pour identifier les opportunités d'affaires et stimuler la croissance, mettre en œuvre les meilleures pratiques en matière de gouvernance, de qualité et de sécurité des données], ), - tags : ("Exemple de tags ici", "Dataiku", "Snowflake", "SparkSQL") + tags: ("Exemple de tags ici", "Dataiku", "Snowflake", "SparkSQL"), ) #cvEntry( @@ -38,7 +38,5 @@ date: [été 2017], location: [Chicago, IL], logo: image("../src/logos/pqr_corp.png"), - description: list( - [Aider à la préparation, au traitement et à l'analyse de données à l'aide de Python et Excel, participer aux réunions d'équipe et contribuer à la planification et à l'exécution de projets], - ), + description: list([Aider à la préparation, au traitement et à l'analyse de données à l'aide de Python et Excel, participer aux réunions d'équipe et contribuer à la planification et à l'exécution de projets]), ) diff --git a/template/modules_fr/projects.typ b/template/modules_fr/projects.typ index 5ce3df9..59208c5 100644 --- a/template/modules_fr/projects.typ +++ b/template/modules_fr/projects.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": cvSection, cvEntry +#import "@preview/brilliant-cv:2.0.3": cvSection, cvEntry #let metadata = toml("../metadata.toml") #let cvSection = cvSection.with(metadata: metadata) #let cvEntry = cvEntry.with(metadata: metadata) diff --git a/template/modules_fr/publications.typ b/template/modules_fr/publications.typ index 9a98f22..cb5030b 100644 --- a/template/modules_fr/publications.typ +++ b/template/modules_fr/publications.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": cvSection, cvPublication +#import "@preview/brilliant-cv:2.0.3": cvSection, cvPublication #let metadata = toml("../metadata.toml") #let cvSection = cvSection.with(metadata: metadata) @@ -11,7 +11,7 @@ keyList: ( "smith2020", "jones2021", - "wilson2022" + "wilson2022", ), refStyle: "apa", ) diff --git a/template/modules_fr/skills.typ b/template/modules_fr/skills.typ index 31d20a1..be0a75c 100644 --- a/template/modules_fr/skills.typ +++ b/template/modules_fr/skills.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": cvSection, cvSkill, hBar +#import "@preview/brilliant-cv:2.0.3": cvSection, cvSkill, hBar #let metadata = toml("../metadata.toml") #let cvSection = cvSection.with(metadata: metadata) diff --git a/template/modules_zh/certificates.typ b/template/modules_zh/certificates.typ index 0928439..e5aeb1e 100644 --- a/template/modules_zh/certificates.typ +++ b/template/modules_zh/certificates.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": cvSection, cvHonor +#import "@preview/brilliant-cv:2.0.3": cvSection, cvHonor #let metadata = toml("../metadata.toml") #let cvSection = cvSection.with(metadata: metadata) #let cvHonor = cvHonor.with(metadata: metadata) diff --git a/template/modules_zh/education.typ b/template/modules_zh/education.typ index a5fc8f4..e9d9037 100644 --- a/template/modules_zh/education.typ +++ b/template/modules_zh/education.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": cvSection, cvEntry, hBar +#import "@preview/brilliant-cv:2.0.3": cvSection, cvEntry, hBar #let metadata = toml("../metadata.toml") #let cvSection = cvSection.with(metadata: metadata) #let cvEntry = cvEntry.with(metadata: metadata) diff --git a/template/modules_zh/professional.typ b/template/modules_zh/professional.typ index bab79b4..d9c7378 100644 --- a/template/modules_zh/professional.typ +++ b/template/modules_zh/professional.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": cvSection, cvEntry +#import "@preview/brilliant-cv:2.0.3": cvSection, cvEntry #let metadata = toml("../metadata.toml") #let cvSection = cvSection.with(metadata: metadata) #let cvEntry = cvEntry.with(metadata: metadata) @@ -38,7 +38,5 @@ logo: image("../src/logos/pqr_corp.png"), date: [2017年夏季], location: [芝加哥, IL], - description: list( - [协助使用 Python 和 Excel 进行数据清洗、处理和分析,参与团队会议并为项目规划和执行做出贡献], - ), + description: list([协助使用 Python 和 Excel 进行数据清洗、处理和分析,参与团队会议并为项目规划和执行做出贡献]), ) diff --git a/template/modules_zh/projects.typ b/template/modules_zh/projects.typ index 18a4a04..383fe3d 100644 --- a/template/modules_zh/projects.typ +++ b/template/modules_zh/projects.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": cvSection, cvEntry +#import "@preview/brilliant-cv:2.0.3": cvSection, cvEntry #let metadata = toml("../metadata.toml") #let cvSection = cvSection.with(metadata: metadata) #let cvEntry = cvEntry.with(metadata: metadata) diff --git a/template/modules_zh/publications.typ b/template/modules_zh/publications.typ index bcc815d..68aa8a1 100644 --- a/template/modules_zh/publications.typ +++ b/template/modules_zh/publications.typ @@ -1,5 +1,5 @@ // Imports -#import "@preview/brilliant-cv:2.0.2": cvSection, cvPublication +#import "@preview/brilliant-cv:2.0.3": cvSection, cvPublication #let metadata = toml("../metadata.toml") #let cvSection = cvSection.with(metadata: metadata) diff --git a/template/modules_zh/skills.typ b/template/modules_zh/skills.typ index 054bc5d..dd7c843 100644 --- a/template/modules_zh/skills.typ +++ b/template/modules_zh/skills.typ @@ -1,5 +1,5 @@ // Import -#import "@preview/brilliant-cv:2.0.2": cvSection, cvSkill, hBar +#import "@preview/brilliant-cv:2.0.3": cvSection, cvSkill, hBar #let metadata = toml("../metadata.toml") #let cvSection = cvSection.with(metadata: metadata) diff --git a/typst.toml b/typst.toml index 345d991..d21fde3 100644 --- a/typst.toml +++ b/typst.toml @@ -1,6 +1,6 @@ [package] name = "brilliant-cv" -version = "2.0.2" +version = "2.0.3" entrypoint = "lib.typ" authors = ["Yunan Wang "] license = "Apache-2.0"