nbconvert + Jupyter does not do much for image positioning out of the gate. However, please open an issue on
nbconvert and we can try to figure out the right way to go about
1. storing the metadata in the notebook
2. extracting that metadata from the notebook somewhere using an nbconvert Preprocessor
3. exposing the metadata in the correct way in a Jinja template
nbconvert also allows you to execute notebooks on the command line using the --execute flag, or programmatically in python with the
ExecutePreprocessor API. Then, if you wanted to directly handle the plots, you could extract images written during the plotting calls from the resulting outputs. From that point, you could rearrange the images into subplots as you would like.
You also might want to look at
papermill, it sounds like that's solving a similar class of problems, though it is deploying the notebooks in parallel in containerized environments. NB: you're running things locally, you'll have to worry about side-effects if you try to parallelise this using the standard nbconvert API.
Does that give you a good idea of where to go for next steps? If not, is there anything else I can help answer?