# Subnotebooks need https://pypi.org/project/notebook-splitter/ SLIDES = Introduction-to-Pandas--slides.html SUBNOTEBOOKS = Introduction-to-Pandas--slides.ipynb Introduction-to-Pandas--tasks.ipynb Introduction-to-Pandas--solution.ipynb MASTER_NOTEBOOK = Introduction-to-Pandas--master.ipynb DEP_PRESENTATION = fzj-reveal.js/ Makefile patch-00--add-fzj-reveal-subdir.patch _TMPFILE1 := .tmp1 _TMPFILE2 := .tmp2 .PHONY: all presentation subnotebooks presentation-pdf all: presentation subnotebooks presentation: $(SLIDES) presentation-pdf: $(SLIDES:html=pdf) subnotebooks: $(SUBNOTEBOOKS) %.html: %.ipynb $(DEP_PRESENTATION) jupyter nbconvert --to=slides --reveal-prefix=reveal.js --stdout $< > $(_TMPFILE1) gsed -i 's#<script src=#\n<script src=#g' $(_TMPFILE1) gsed -i '/require.min.js/d' $(_TMPFILE1) patch --silent --unified --input=fzj-reveal.js/patch-00--new-revealjs-api.patch --output=$(_TMPFILE2) $(_TMPFILE1) && mv $(_TMPFILE2) $(_TMPFILE1) patch --silent --unified --input=fzj-reveal.js/patch-01--add-fzj-js.patch --output=$(_TMPFILE2) $(_TMPFILE1) && mv $(_TMPFILE2) $(_TMPFILE1) patch --silent --unified --input=fzj-reveal.js/patch-02--add-fzj-css.patch --output=$(_TMPFILE2) $(_TMPFILE1) && mv $(_TMPFILE2) $(_TMPFILE1) patch --silent --unified --input=fzj-reveal.js/patch-03--modify-canvas.patch --output=$(_TMPFILE2) $(_TMPFILE1) && mv $(_TMPFILE2) $(_TMPFILE1) patch --silent --unified --input=patch-00--add-fzj-reveal-subdir.patch --output=$(_TMPFILE2) $(_TMPFILE1) && mv $(_TMPFILE2) $(_TMPFILE1) patch --silent --unified --input=patch-01--add-ah-css.patch --output=$(_TMPFILE2) $(_TMPFILE1) && mv $(_TMPFILE2) $(_TMPFILE1) mv $(_TMPFILE1) $@ %.pdf: %.html $(DEP_PRESENTATION) # This needs to have artificially large paper size in order to fix bug https://github.com/astefanutti/decktape/issues/151#issuecomment-456166075 docker run --rm -t -v $(PWD):/slides astefanutti/decktape --size "2560x1440" reveal $< $@ Introduction-to-Pandas--slides.ipynb: $(MASTER_NOTEBOOK) notebook-splitter --keep task --keep solution --keep onlypresentation --remove onlytask --remove onlysolution --remove nopresentation -o $@ $< Introduction-to-Pandas--tasks.ipynb: $(MASTER_NOTEBOOK) notebook-splitter --keep task --keep nopresentation --keep onlytask --remove solution --remove all -o $@ $< Introduction-to-Pandas--solution.ipynb: $(MASTER_NOTEBOOK) notebook-splitter --keep task --keep nopresentation --keep solution --keep onlysolution --remove all -o $@ $<