- 
                Notifications
    
You must be signed in to change notification settings  - Fork 138
 
Open
Description
In order to use this for every notebook at once I'm still trying some things out (see #15) for my earlier comments)
As suggested there, I'v added some nbsphinx options and used the global setting in conf.py
def setup(app):
  ...
    #hide or display input, output,....
    app.add_config_value('nbsphinx_exclude_output', False, rebuild='env')
    app.add_config_value('nbsphinx_exclude_input', False, rebuild='env')
    app.add_config_value('nbsphinx_exclude_input_prompt', False, rebuild='env')
    app.add_config_value('nbsphinx_exclude_output_prompt', False, rebuild='env')
    app.add_config_value('nbsphinx_exclude_markdown', False, rebuild='env')
    app.add_config_value('nbsphinx_exclude_code_cell', False, rebuild='env')
which is used then in the config setting of Exporter(nbconvert.RSTExporter)
class Exporter(nbconvert.RSTExporter):
...
    def __init__(self, execute='auto', kernel_name='', execute_arguments=[],
                 allow_errors=False, timeout=30, codecell_lexer='none',
                 exclude_output = False, exclude_input = False, 
                 exclude_input_prompt = False, exclude_output_prompt = False, 
                 exclude_markdown = False, exclude_code_cell = False):
       ...
        self._exclude_output = exclude_output
        self._exclude_input = exclude_input
        self._exclude_input_prompt = exclude_input_prompt
        self._exclude_output_prompt = exclude_output_prompt
        self._exclude_markdown = exclude_markdown
        self._exclude_code_cell = exclude_code_cell 
        
        super(Exporter, self).__init__(
            template_file='nbsphinx-rst.tpl', extra_loaders=[loader],
            config=traitlets.config.Config(
                {'HighlightMagicsPreprocessor': {'enabled': True},
                'TemplateExporter':{
                "exclude_output": exclude_output,
                "exclude_input": exclude_input,
                "exclude_input_prompt": exclude_input_prompt,
                "exclude_output_prompt": exclude_output_prompt,
                "exclude_markdown": exclude_markdown,
                "exclude_code_cell": exclude_code_cell}}),
            filters={
                'convert_pandoc': convert_pandoc,
                'markdown2rst': markdown2rst,
                'get_empty_lines': _get_empty_lines,
                'extract_toctree': _extract_toctree,
                'get_output_type': _get_output_type,
                'json_dumps': json.dumps,
            })
This works fine but not for every output prompt.
I tried to solve it but apparently in class NbOutput(rst.Directive) I don't seem to be able to get hold of the "exclude_output_prompt" setting.
With a global variable I can tackle this but still trying to figure out how to do it correctly without using this 'dirty hack':
class NbOutput(rst.Directive):
 ...
    def run(self):
           ....
            global nbsphinx_args_output_prompt
            if nbsphinx_args_output_prompt:
                text = ''
            else:
                text = 'Out [{}]:'.format(execution_count)
See: changes
Any Idea how I can pass env.config.nbsphinx_exclude_output_prompt to the run method of the class NbOutput?
Metadata
Metadata
Assignees
Labels
No labels