def METHOD_NAME(self):
    # check if raw html is supported
    if not self.state.document.settings.raw_enabled:
        raise self.warning('"%s" directive disabled.' % self.name)
    # get path to notebook
    nb_rel_path = self.arguments[0]
    nb_abs_path = "{}/../{}".format(setup.confdir, nb_rel_path)
    nb_abs_path = os.path.abspath(nb_abs_path)
    nb_name = os.path.basename(nb_rel_path).split(".")[0]
    dest_dir = "{}/{}/{}".format(
        setup.app.builder.outdir,
        os.path.dirname(nb_rel_path),
        nb_name)
    fmt = {'wd': dest_dir, 'name': nb_name}
    if not os.path.exists(dest_dir):
        os.makedirs(dest_dir)
    shutil.copyfile(nb_abs_path, "{wd}/{name}.ipynb".format(**fmt))
    # TODO: Actually save evaluated notebook
    shutil.copyfile(nb_abs_path, "{wd}/{name}_eval.ipynb".format(**fmt))
    html = export_html(**fmt)
    export_python(**fmt)
    # Create link to notebook and script files
    link_rst = "({uneval}; {eval}; {py})".format(
        uneval=formatted_link("{wd}/{name}.ipynb".format(**fmt)),
        eval=formatted_link("{wd}/{name}_eval.ipynb".format(**fmt)),
        py=formatted_link("{wd}/{name}.py".format(**fmt)),
    )
    rst_file = self.state_machine.document.attributes['source']
    self.state_machine.insert_input([link_rst], rst_file)
    # create notebook node
    attributes = {'format': 'html', 'source': 'nb_path'}
    nb_node = notebook_node('', html, **attributes)
    nb_node.source, nb_node.line = self.state_machine \
        .get_source_and_line(self.lineno)
    # add dependency
    self.state.document.settings.record_dependencies.add(nb_abs_path)
    return [nb_node]