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 100755 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 100755 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|