From d5db5c8f3b1d9088b1e3853bc30bfc7617bf1852 Mon Sep 17 00:00:00 2001 From: Jan Orend <56254096+3dJan@users.noreply.github.com> Date: Fri, 18 Sep 2026 08:17:22 +0200 Subject: [PATCH 1/2] Add GitHub Actions workflow and scripts for Markdown to PDF conversion --- .github/workflows/build.yml | 26 ++++++++ markdownToPDF/install_wkhtmltopdf.sh | 29 +++++++++ markdownToPDF/mdToPDF.sh | 78 ++++++++++++++++++++++++ markdownToPDF/print.css | 90 ++++++++++++++++++++++++++++ 4 files changed, 223 insertions(+) create mode 100644 .github/workflows/build.yml create mode 100644 markdownToPDF/install_wkhtmltopdf.sh create mode 100644 markdownToPDF/mdToPDF.sh create mode 100644 markdownToPDF/print.css diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..0fa039a --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,26 @@ +# It is used to create an easily distributable and printable PDF +# version of a specification document written in markdown (3MF-style). + +# (outdated) Documentation: +# https://github.com/3MFConsortium/spec_conventions/blob/master/generatePDFs/generatePDFs.md + +on: [pull_request, workflow_dispatch] +name: Build +jobs: + build-linux: + runs-on: ubuntu-latest + env: + SPECNAME: "3MF Toolpath Extension" + steps: + - uses: actions/checkout@v4 + with: + submodules: true + - run: pip install wheel + - run: pip install grip + - run: ./markdownToPDF/install_wkhtmltopdf.sh + - run: ./markdownToPDF/mdToPDF.sh "$SPECNAME" + - name: Upload PDF + uses: actions/upload-artifact@v4 + with: + name: ${{ env.SPECNAME }}.pdf + path: ${{ env.SPECNAME }}.pdf \ No newline at end of file diff --git a/markdownToPDF/install_wkhtmltopdf.sh b/markdownToPDF/install_wkhtmltopdf.sh new file mode 100644 index 0000000..f06ce5b --- /dev/null +++ b/markdownToPDF/install_wkhtmltopdf.sh @@ -0,0 +1,29 @@ +# Copyright (c) 2019 3MF Consortium +# All rights reserved. + +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: + +# 1. Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. + +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#!/bin/bash + +wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz +tar vxf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz +cp wkhtmltox/bin/wkhtmltopdf . +chmod a+x wkhtmltopdf diff --git a/markdownToPDF/mdToPDF.sh b/markdownToPDF/mdToPDF.sh new file mode 100644 index 0000000..9114ee0 --- /dev/null +++ b/markdownToPDF/mdToPDF.sh @@ -0,0 +1,78 @@ +# Copyright (c) 2019 3MF Consortium +# All rights reserved. + +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: + +# 1. Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. + +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#!/bin/bash + +mkdir -p ~/.grip +echo "PASSWORD = '${GITHUB_API_KEY}'" > ~/.grip/settings.py + +FILE="$1" +TMPFILE="temp.html" + +grip "$FILE.md" --export "$FILE.html" +sed "s|readme boxed-group clearfix announce instapaper_body md||g" "$FILE.html" > "$TMPFILE" +sed -i "s|.md$||g" "$TMPFILE" +sed -i 's| Date: Fri, 18 Sep 2026 08:21:34 +0200 Subject: [PATCH 2/2] Fix PDF workflow script permissions --- markdownToPDF/install_wkhtmltopdf.sh | 0 markdownToPDF/mdToPDF.sh | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 markdownToPDF/install_wkhtmltopdf.sh mode change 100644 => 100755 markdownToPDF/mdToPDF.sh diff --git a/markdownToPDF/install_wkhtmltopdf.sh b/markdownToPDF/install_wkhtmltopdf.sh old mode 100644 new mode 100755 diff --git a/markdownToPDF/mdToPDF.sh b/markdownToPDF/mdToPDF.sh old mode 100644 new mode 100755