[IPython-dev] Making custom converter/template with nbconvert

Matthias BUSSONNIER bussonniermatthias at gmail.com
Thu Dec 18 11:09:08 EST 2014


Le 18 déc. 2014 à 15:49, Rafał Skolasiński a écrit :

> Hi Thomas,
> 
> Yes, that sounds like a logical way. But I still have few question about how to do it.
> 
> First, do I also need to have custom preprocessor? At which point of conversion it will be the most convenient to make changes? 

that's up to how you want to design your exporter. 
You can either have a preprocessor that split the notebooks in chunks and do the conversion after. 
So virtually running nbconvert N times on n chucks of the notebook.

> Should my custom exporter class inherit from a TemplateExporter? Or maybe separation into files should happen at this level?

You are not obliged to, but I think you should at least inherit Exporter if you like your custom one to be accepted by nbconvert. 
The architecture is not really meant to export into many files, except  for the resources file (Png, Svg) that do into a separate folder. 

If you write your custom writer then your Exporter can most likely produce many file that would be written at once. 

> 
> And last, once I will have my exporter class will it be enough to specify which exporter should be used in config file and provide config to nbconvert via --config mycfg.py ?

Yes that should be enough., any trait lets of your custom class should be automatically set to the value of the config.

> 
> Thanks for all your help!

Feel free to send us feedback on what you think of the APi or what limitation there is. 

Thanks !

-- 
M


> 
> Best,
> Rafal
> 
> P.S. If there are any useful guides or FAQs about writing custom converters that would be very helpful. I looked for some on my own but didn't have much luck.
> 
> 2014-12-16 23:13 GMT+01:00 Thomas Kluyver <takowl at gmail.com>:
> Hi Rafał,
> 
> On 16 December 2014 at 13:40, Rafał Skolasiński <rjtskolasinski at gmail.com> wrote:
> Unfortunately each unit must go into separate html file and here comes my first question: what is the easiest way to force nbconverter to export one notebook into few html files (let's say Heading 1 will start every unit and at the same time will be the name of it)? 
> 
> I think you will need to make a custom exporter - nbconvert supports different output formats with exporter classes, which you can find here: https://github.com/ipython/ipython/tree/master/IPython/nbconvert/exporters
> 
> Your case will be a bit trickier than most of those examples, because all the TemplateExporter subclasses assume that they are writing a single main output file. But there's no reason that an exporter class couldn't write several files from one notebook.
> 
> Thomas
> 
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev
> 
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20141218/cb779c65/attachment.html>


More information about the IPython-dev mailing list