diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml
index 35834a2..4f3751e 100644
--- a/.github/workflows/update.yml
+++ b/.github/workflows/update.yml
@@ -30,32 +30,49 @@ jobs:
           LOG="${LOG//$'\n'/'%0A'}"
           LOG="${LOG//$'\r'/'%0D'}"
 
+          echo $LOG
+
           echo "update_log=${LOG}" >> $GITHUB_OUTPUT
 
-          cat << EOF >> ../body.md
-          - The following Nix Flake inputs were updated
-
-          \`\`\`
-          EOF
-
-          cat update.log >> ../body.md
-
-          cat << EOF >> ../body.md
-          \`\`\`
-
-          Auto-generated by [update.yml][1] with the help of
-          [create-pull-request][2]
-
-          [1]: https://forgejo.stefka.eu/jiriks74/action-update_flake_lock
-          [2]: https://forgejo.stefka.eu/jiriks74/create-pull-request
-          EOF
-
           rm update.log
 
+      - name: Write PR body template
+        uses: https://github.com/DamianReeves/write-file-action@v1.3
+        with:
+          path: pr_body.template
+          contents: |
+            - The following Nix Flake inputs were updated:
+
+            ```
+            ${{ steps.update.output.update_log }}
+            ```
+
+            Auto-generated by [update.yml][1] with the help of
+            [create-pull-request][2]
+
+            [1]: https://forgejo.stefka.eu/jiriks74/nix.nvim/src/branch/main/.github/workflows/update.yml
+            [2]: https://forgejo.stefka.eu/jiriks74/create-pull-request
+
+      - name: Generate PR body
+        uses: pedrolamas/handlebars-action@2995d7eadacbc8f2f6ab8431a01d84a5fa3b8bb4 # v2.4.0
+        with:
+          files: "pr_body.template"
+          output-filename: "pr_body.md"
+      - name: Save the PR body
+        id: pr_body
+        uses: juliangruber/read-file-action@v1
+        with:
+          path: "pr_body.md"
+
+      - name: Remove temporary files
+        run: |
+          rm pr_body.template
+          rm pr_body.md
+
       - name: Create Pull Request
         id: create-pull-request
         uses: https://forgejo.stefka.eu/jiriks74/create-pull-request@9791a4f146d5369620ea3b934822e717d3d90034
-        body-path: ../body.md
+        body: ${{ steps.pr_body.outputs.content }}
         with:
             token: ${{ secrets.FORGEJO_TOKEN_FOR_UPDATES  }}
             commit-message: Update `flake.lock`
@@ -65,4 +82,3 @@ jobs:
       - name: Print PR number
         run: |
           echo "Pull request number is ${{ steps.create-pull-request.outputs.pull-request-number }}."
-          echo ${{ steps.update.output.update_log }}