ipptx2md - pointtools - Simple point utilities to hold text presentations. Err bitreich.org 70 hgit clone git://bitreich.org/pointtools/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/pointtools/ URL:git://bitreich.org/pointtools/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/pointtools/ bitreich.org 70 1Log /scm/pointtools/log.gph bitreich.org 70 1Files /scm/pointtools/files.gph bitreich.org 70 1Refs /scm/pointtools/refs.gph bitreich.org 70 1Tags /scm/pointtools/tag bitreich.org 70 1README /scm/pointtools/file/README.md.gph bitreich.org 70 1LICENSE /scm/pointtools/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 ipptx2md (947B) Err bitreich.org 70 i--- Err bitreich.org 70 i 1 #!/bin/sh Err bitreich.org 70 i 2 # Err bitreich.org 70 i 3 # See LICENSE for license details. Err bitreich.org 70 i 4 # Err bitreich.org 70 i 5 # This is based on: Err bitreich.org 70 i 6 # https://github.com/revan/pptx2md Err bitreich.org 70 i 7 # Err bitreich.org 70 i 8 # The algorithm was simplified to the essence of what the ugly Err bitreich.org 70 i 9 # pptx format is capable of. Microsoft amateurs are unable to use Err bitreich.org 70 i 10 # XML properly. Err bitreich.org 70 i 11 # Err bitreich.org 70 i 12 # Requires: xml2tsv (git://bitreich.org/xml2tsv) Err bitreich.org 70 i 13 # Err bitreich.org 70 i 14 Err bitreich.org 70 i 15 if [ $# -lt 1 ]; Err bitreich.org 70 i 16 then Err bitreich.org 70 i 17 printf "usage: %s file.pptx\n" "$(basename "$0")" >&2 Err bitreich.org 70 i 18 exit 1 Err bitreich.org 70 i 19 fi Err bitreich.org 70 i 20 Err bitreich.org 70 i 21 pptxfile="$1" Err bitreich.org 70 i 22 mdfile="$1.md" Err bitreich.org 70 i 23 tmpdir="$(mktemp -u)" Err bitreich.org 70 i 24 Err bitreich.org 70 i 25 unzip -oq -d "${tmpdir}" "${pptxfile}" Err bitreich.org 70 i 26 if [ $? -ne 0 ]; Err bitreich.org 70 i 27 then Err bitreich.org 70 i 28 printf "Failed to extract %s.\n" "${pptxfile}" Err bitreich.org 70 i 29 exit 1 Err bitreich.org 70 i 30 fi Err bitreich.org 70 i 31 Err bitreich.org 70 i 32 for slidefile in ${tmpdir}/ppt/slides/*.xml; Err bitreich.org 70 i 33 do Err bitreich.org 70 i 34 linenum=0 Err bitreich.org 70 i 35 cat "${slidefile}" \ Err bitreich.org 70 i 36 | xml2tsv 2>/dev/null \ Err bitreich.org 70 i 37 | grep a:r/a:t \ Err bitreich.org 70 i 38 | cut -s -f 2 \ Err bitreich.org 70 i 39 | while read -r line; Err bitreich.org 70 i 40 do Err bitreich.org 70 i 41 if [ $linenum -eq 0 ]; Err bitreich.org 70 i 42 then Err bitreich.org 70 i 43 printf "## %s\n" "${line}" >> "${mdfile}" Err bitreich.org 70 i 44 else Err bitreich.org 70 i 45 printf "%s\n" "${line}" >> "${mdfile}" Err bitreich.org 70 i 46 fi Err bitreich.org 70 i 47 linenum=1 Err bitreich.org 70 i 48 done Err bitreich.org 70 i 49 printf "\n" >> "${mdfile}" Err bitreich.org 70 i 50 done Err bitreich.org 70 i 51 Err bitreich.org 70 i 52 Err bitreich.org 70 i 53 rm -r "$tmpdir" Err bitreich.org 70 i 54 exit 0 Err bitreich.org 70 i 55 Err bitreich.org 70 .