[IPython-dev] Making custom converter/template with nbconvert
Rafał Skolasiński
rjtskolasinski at gmail.com
Thu Dec 18 12:06:42 EST 2014
Ok, For last question I think I found answer here:
http://nbviewer.ipython.org/github/ipython/ipython/blob/2.x/examples/Notebook/Importing%20Notebooks.ipynb
I will let you know if I will encounter any problems.
Best,
Rafal
2014-12-18 17:58 GMT+01:00 Rafał Skolasiński <rjtskolasinski at gmail.com>:
>
> Hi guys,
>
> Thanks for extensive response!
>
> In my output there is not need to be any imports. Output files will be
> only htmls to be put into edX course.
>
> The need of splitting notebook into few output files comes from making it
> as friendly as possible to creators of the course content.
> In principle they could write every unit in a separate notebook - but,
> because units together build a subsection of the course which describes one
> topic, it's more convenient to write them in one notebooks and separate by
> the largest headings.
>
> I tested how converting to html, that is already provided in nbconvert, is
> accepted by edX and it went quite well. I only needed to change two things
> in the output file ( change path to the folders with figures and remove
> 'end of paragraph' symbol ) .
>
>
> In this situation maybe what Matthias proposed is a way to go:
>
>
>> 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.
>>
>
>
> Then for example I could have in the notebook to export sth like that:
>
> <Heading 1 cell> first_unit_name </Heading 1 cell>
>
> Cells with stuff for first unit
>
>
> <Heading 2 cell> second_unit_name </Heading 2 cell>
>
> Cells with stuff for second unit
>
> etc...
>
> And with the output I would see first_unit_name.html and
> second_unit_name.html
> where content of each of them would look like it would be created only
> from notebook
> containing cells with corresponding content.
>
>
> Later I would like for example kick out every cells with python code
> leaving only their output (but this is for a later stage of development,
> after having the splitting going well).
>
>
>
>
>
> Oh, I have one question about the preprocessors. I found little old post
> https://blog.safaribooksonline.com/2013/12/18/ipython-notebook-plugins/
> about how to write custom plugins to nbconvert. Despite the fact that
> Jonathan was using transformers instead of preprocessors it worked when I
> changed config file only from:
>
> C = get_config()
> c.Exporter.transformers = [‘exclude_transformer.ExcludeTransformer’]
>
> to:
> c = get_config()
> c.Exporter.preprocessors = ["exclude_transformer.ExcludeTransformer"]
>
>
>
> But when I tried to change usage of Transformer into Preprocessor:
> from http://pastebin.com/rQufqzUr into http://pastebin.com/Q8mgaYAJ
>
> (correcting ofc line in config into c.Exporter.preprocessors =
> ["exclude_preprocessor.ExcludePreprocessor"])
>
> I got the following error: http://pastebin.com/MSAHR2PP
>
> Any idea why?
>
>
> Oh... And one more question :). While writing some code I love to test
> things interactively (this is why I loved ipython so much).
> Is there any easy way to play in ipython notebook with other notebook that
> goes as argument into all converter arguments?
>
> Like I would like to see by hand what every worksheet in code like here
> http://pastebin.com/rQufqzUr contains.
>
>
> Best,
> Rafal
>
>
>
>> 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
>>
>>
>>
>> _______________________________________________
>> 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/9cb7c690/attachment.html>
More information about the IPython-dev
mailing list