Corrected panda script for reveal

This commit is contained in:
Nathan Schneider
2025-01-08 17:29:49 -07:00
parent df43841ee4
commit 1efcd07e3b
+50 -32
View File
@@ -3,43 +3,55 @@
# Check if the required arguments are provided # Check if the required arguments are provided
if [ $# -lt 1 ]; then if [ $# -lt 1 ]; then
echo "Usage: $0 [required-filename] [output format]" echo "Usage: $0 [required-filename] [output format]"
exit 1 exit 1
fi fi
# Set the filename # Store original directory and move to input file's directory
FILENAME=$1 ORIG_DIR=$(pwd)
cd "$(dirname "$1")"
FILENAME=$(basename "$1")
CURRENT_DIR=$(pwd)
# Set the output format to html if not provided # Set the output format to html if not provided
if [ $# -eq 1 ]; then if [ $# -eq 1 ]; then
OUTPUT_FORMAT="html" OUTPUT_FORMAT="html"
else else
OUTPUT_FORMAT=$2 OUTPUT_FORMAT=$2
fi fi
# Check if the input file exists # Check if the input file exists
if [ ! -f $FILENAME ]; then if [ ! -f "$FILENAME" ]; then
echo "Error: Input file '$FILENAME' does not exist." echo "Error: Input file '$FILENAME' does not exist."
exit 1 exit 1
fi fi
# Set the file extension based on the output format # Set the file extension based on the output format
case $OUTPUT_FORMAT in case $OUTPUT_FORMAT in
pdf) pdf)
FILE_EXT="pdf" FILE_EXT="pdf"
OUTPUT_FORMAT="latex --variable fontsize:12pt" OUTPUT_FORMAT="latex"
;; PANDOC_OPTS="--variable fontsize:12pt"
reveal) ;;
reveal)
FILE_EXT="html"
OUTPUT_FORMAT="revealjs"
PANDOC_OPTS="--standalone --embed-resources -V revealjs-url=/home/ntnsndr/.revealjs/reveal.js -V theme=ntn -V controls=false --slide-level=2"
;;
pptx)
FILE_EXT="pptx"
OUTPUT_FORMAT="pptx"
PANDOC_OPTS="--reference-doc=/home/ntnsndr/.templates/Slideshow.pptx"
;;
html)
FILE_EXT="html" FILE_EXT="html"
OUTPUT_FORMAT="revealjs --standalone --embed-resources -V revealjs-url='/home/ntnsndr/.revealjs/reveal.js' -V theme=ntn -V controls=false --slide-level=2" OUTPUT_FORMAT="html"
;; PANDOC_OPTS="--embed-resources --standalone"
pptx)
FILE_EXT="pptx"
OUTPUT_FORMAT="pptx --reference-doc='/home/ntnsndr/.templates/Slideshow.pptx'"
;;
*)
FILE_EXT=$OUTPUT_FORMAT
;; ;;
*)
FILE_EXT=$OUTPUT_FORMAT
PANDOC_OPTS=""
;;
esac esac
# Create temporary files # Create temporary files
@@ -48,28 +60,34 @@ TMP_OUT_FILE="/tmp/pandoc-out.$FILE_EXT"
# Check if the temporary files can be created # Check if the temporary files can be created
if [ ! -w /tmp ]; then if [ ! -w /tmp ]; then
echo "Error: Cannot create temporary files in '/tmp' directory." echo "Error: Cannot create temporary files in '/tmp' directory."
exit 1 exit 1
fi fi
# Copy the input file to the temporary file # Copy the input file to the temporary file
cp $FILENAME $TMP_IN_FILE cp "$FILENAME" "$TMP_IN_FILE"
# Convert the file using pandoc # Convert the file using pandoc
iconv -t utf-8 $TMP_IN_FILE | pandoc -s -f markdown+smart --citeproc --bibliography $HOME/Zotero/lib.bib --pdf-engine=xelatex -t $OUTPUT_FORMAT -o $TMP_OUT_FILE iconv -t utf-8 "$TMP_IN_FILE" | pandoc -s -f markdown+smart \
--citeproc --bibliography "$HOME/Zotero/lib.bib" \
--pdf-engine=xelatex \
--resource-path="$CURRENT_DIR" \
-t "$OUTPUT_FORMAT" $PANDOC_OPTS -o "$TMP_OUT_FILE"
# Return to original directory
cd "$ORIG_DIR"
# Check if the pandoc command is successful # Check if the pandoc command is successful
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "Error: Pandoc command failed." echo "Error: Pandoc command failed."
exit 1 exit 1
fi fi
# Open the output file # Open the output file
xdg-open $TMP_OUT_FILE xdg-open "$TMP_OUT_FILE"
# Check if the output file can be opened # Check if the output file can be opened
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "Error: Cannot open output file '$TMP_OUT_FILE'." echo "Error: Cannot open output file '$TMP_OUT_FILE'."
exit 1 exit 1
fi fi