使用Ipython Notebook生成报告

时间:2016-02-02 14:15:17

标签: ipython-notebook jupyter-notebook

我正在尝试使用Ipython Notebook作为工具来分享我的研究成果。我想以html或pdf格式输出笔记本作为报告。问题是我只想让报告包含降价文本和代码输出(一些图表和表格),并隐藏代码。我怎样才能做到这一点?

我做了一些在线研究,并尝试添加一个代码块,其中包含:

from IPython.display import HTML

HTML('''<script>
code_show=true; 
function code_toggle() {
 if (code_show){
 $('div.input').hide();
 } else {
 $('div.input').show();
 }
 code_show = !code_show
} 
$( document ).ready(code_toggle);
</script>
<form action="javascript:code_toggle()"><input type="submit" value="Click here to toggle on/off the raw code."></form>''')

它确实创建了一个按钮,可以打开/关闭原始代码,但如果我将笔记本下载为html文件并与其他人共享,读者仍然可以使用该按钮查看代码。

有没有更好的方法来分享结果,并隐藏原始代码?

1 个答案:

答案 0 :(得分:0)

我想我只能回答你的部分问题,我还没有测试过pdf输出是如何工作的。

但对于HTML,我尝试过以下解决方案并且有效。

在笔记本中,放置一个代码如下的单元格:

def connect_socket():
    socketIO = SocketIO('10.0.0.4',8080,Namespace)
    socketIO.wait()
if __name__ == '__main__':
    MyKeyboardListener() #keyboard listener, works fine
    socketThread = threading.Thread(target = connect_socket) #creat thread for socket
    socketThread.daemon = True #set daemon flag
    socketThread.start()
    SnakeApp().run

然后在样式文件夹中,创建custom.css,其中包含最后的内容:

#Apply styles
from IPython.core.display import HTML

def css_styling():
    styles = open("styles/custom.css", "r").read()
    return HTML(styles)
css_styling()

然后将笔记本输出为html。

如果结果有效,请告诉我。