diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index bc4eec0..7211b71 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -2,9 +2,6 @@ name: Build'n check run-name: Performing Typst compilation on: push: - pull_request: - branches: - - main jobs: run-ci-linux: runs-on: ubuntu-latest @@ -12,8 +9,7 @@ jobs: # push with commit containing "Run-Checks" if: > (contains(github.event.head_commit.message, 'Run-Checks') && - github.event_name == 'push') || - github.event_name == 'pull_request' + github.event_name == 'push') steps: - name: Check out repository code uses: actions/checkout@v3 diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml new file mode 100644 index 0000000..18156b2 --- /dev/null +++ b/.gitea/workflows/release.yml @@ -0,0 +1,79 @@ +name: Build'n check +on: + pull_request: + branches: + - main + types: + - closed +jobs: + build: + name: Check Template and Build example + runs-on: ubuntu-latest + steps: + - name: Check out repository code + uses: actions/checkout@v3 + - name: Install dependencies for Nix setup action + run: | + apt update -y + apt install sudo -y + - name: Setup Nix + uses: cachix/install-nix-action@v27 + with: + nix_path: nixpkgs=channel:nixos-unstable + - name: Stylecheck + run: nix-shell --run "./run-fmt.sh --check src/lib.typ" + - id: build + name: Build + run: | + nix-shell --run ./run-ci.sh + - name: Upload artifact + id: artifact-upload + uses: actions/upload-artifact@v3 + with: + name: example-document + path: ${{ github.workspace }}/example.pdf + if-no-files-found: error + retention-days: 1 + - name: Output artifact ID + run: echo 'Artifact ID is ${{ steps.artifact-upload.outputs.artifact-id }}' + release: + runs-on: ubuntu-latest + needs: build + if: contains(github.event.head_commit.message, 'Release-As:') + env: + USERNAME: servostar + steps: + - name: Check out repository code + uses: actions/checkout@v3 + - name: Setup go + uses: actions/setup-go@v4 + with: + go-version: '>=1.20.1' + - name: Download Artifact + id: download + uses: actions/download-artifact@v3 + with: + name: example-document + path: ${{ github.workspace }}/Example.pdf + - name: 'Artifact Download Path' + run: echo ${{ steps.download.outputs.download-path }} + - name: Prepare Release + run: echo ${{ github.sha }} > Release.txt + - name: Tag Release Commit + run: | + echo ${{github.event.head_commit.message}} | grep -Po '(?<=Release-As: )v\d+\.\d+\.\d+' > Version.txt + echo "==> Tagging for version: $(cat Version.txt)" + git config --global credential.helper store + echo "https://${USERNAME}:${{secrets.RELEASE_TOKEN}}}@${{github.repositoryUrl}}" > ~/.git-credentials + git tag -m "Release" $(cat Version.txt) + git push ${{github.repositoryUrl}} $(cat Version.txt) + - name: Create release + id: create-release + uses: https://gitea.com/actions/release-action@main + with: + files: |- + Example.pdf + Release.txt + Version.txt + LICENSE + api_key: '${{secrets.RELEASE_TOKEN}}' diff --git a/shell.nix b/shell.nix index e3ea31b..12fabe3 100644 --- a/shell.nix +++ b/shell.nix @@ -9,5 +9,6 @@ pkgs.mkShellNoCC { python312Packages.pyyaml typst typstyle + ripgrep ]; } diff --git a/src/glossarium.typ b/src/glossarium.typ index 2da8c9d..9db2172 100644 --- a/src/glossarium.typ +++ b/src/glossarium.typ @@ -200,46 +200,49 @@ SOFTWARE.*/ #block( below: 1.5em, width: 100%, - par(hanging-indent: 1em, align(left)[ - #text(weight: "bold", entry.short) - #if hasLong and hasDesc [ - (#text(entry.long)) - ] else if hasLong { - text(entry.long) - } - #if hasDesc [ #sym.dash.en ] - #if hasDesc [ #desc ] - #if disable-back-references != true { - term_references - .map(x => x.location()) - .sorted(key: x => x.page()) - .fold( - (values: (), pages: ()), - ((values, pages), x) => if pages.contains( - x.page(), - ) { - (values: values, pages: pages) - } else { - values.push(x) - pages.push(x.page()) - (values: values, pages: pages) - }, - ) - .values - .map(x => { - let page-numbering = x.page-numbering() - if page-numbering == none { - page-numbering = "1" + par( + hanging-indent: 1em, + align(left)[ + #text(weight: "bold", entry.short) + #if hasLong and hasDesc [ + (#text(entry.long)) + ] else if hasLong { + text(entry.long) + } + #if hasDesc [ #sym.dash.en ] + #if hasDesc [ #desc ] + #if disable-back-references != true { + term_references + .map(x => x.location()) + .sorted(key: x => x.page()) + .fold( + (values: (), pages: ()), + ((values, pages), x) => if pages.contains( + x.page(), + ) { + (values: values, pages: pages) + } else { + values.push(x) + pages.push(x.page()) + (values: values, pages: pages) + }, + ) + .values + .map(x => { + let page-numbering = x.page-numbering() + if page-numbering == none { + page-numbering = "1" + } + link(x)[#numbering( + page-numbering, + ..counter(page).at(x), + )] } - link(x)[#numbering( - page-numbering, - ..counter(page).at(x), - )] - } - ) - .join(", ") - } - ]), + ) + .join(", ") + } + ], + ), ) ] }