From 4fff2dbcb9d1d83fc0bc4f24a3166c0f6212ac63 Mon Sep 17 00:00:00 2001 From: Martin Weismann <30837766+martinweismann@users.noreply.github.com> Date: Fri, 8 Mar 2019 14:37:26 +0200 Subject: [PATCH] Add MarkdownToPDF-conversion (#11) --- .travis.yml | 54 ++++++++++++++++++++++++++++ markdownToPDF/install_wkhtmltopdf.sh | 29 +++++++++++++++ markdownToPDF/mdToPDF.sh | 48 +++++++++++++++++++++++++ 3 files changed, 131 insertions(+) create mode 100644 .travis.yml create mode 100755 markdownToPDF/install_wkhtmltopdf.sh create mode 100755 markdownToPDF/mdToPDF.sh diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..9fc3452 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,54 @@ +# 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. +# +# Configuration file for Travis CI (https://travis-ci.org) +# It is used to create am easily distributable and printable PDF +# version of a specification document written in markdown (3MF-style). + +# Documentation: +# https://github.com/3MFConsortium/spec_conventions/blob/master/generatePDFs/generatePDFs.md + +dist: xenial +language: python +python: 3.7 + +env: + - SPECNAME="3MF Slice Extension" +install: + - pip install grip + - ./markdownToPDF/install_wkhtmltopdf.sh + +script: + - ./markdownToPDF/mdToPDF.sh "$SPECNAME" + +deploy: + provider: releases + api_key: '$GITHUB_API_KEY' + file: '${SPECNAME}.pdf' + skip_cleanup: true + draft: true + name: "Snapshot" + body: "This is an autogenerated PDF version of $SPECNAME." + prerelease: true + on: + branch: master diff --git a/markdownToPDF/install_wkhtmltopdf.sh b/markdownToPDF/install_wkhtmltopdf.sh new file mode 100755 index 0000000..88ee5b1 --- /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 \ No newline at end of file diff --git a/markdownToPDF/mdToPDF.sh b/markdownToPDF/mdToPDF.sh new file mode 100755 index 0000000..331835b --- /dev/null +++ b/markdownToPDF/mdToPDF.sh @@ -0,0 +1,48 @@ +# 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 ~/.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|