Skip to content
Snippets Groups Projects
Select Git revision
  • ac15bf8504b7815405725a475173f79d97dcb973
  • 2023 default
  • pages protected
  • 2022-matse
  • 2022
  • 2021
  • 2019
  • master
8 results

Makefile

Blame
  • Andreas Herten's avatar
    Andreas Herten authored
    da1cbe39
    History
    Makefile 2.31 KiB
    # 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)
    	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 $@ $<