alo*_*oha 31 python ipython-notebook jupyter-notebook nbconvert
我有一个带有大量数字和文字的大笔记本.我想将其转换为html文件.但是,我不想导出代码.我使用以下命令
ipython nbconvert --to html notebook.ipynb
Run Code Online (Sandbox Code Playgroud)
但是这个选项也会导出代码.有没有办法将笔记本转换为没有代码的HTML?
Esp*_*azi 27
我发现这篇文章很有趣,它解释了如何删除输入列:
您只需要在与要转换的笔记本相同的目录中创建名为"hidecode.tplx"的模板文件,并在其中添加以下行:
((*- extends 'article.tplx' -*))
((* block input_group *))
((*- if cell.metadata.get('nbconvert', {}).get('show_code', False) -*))
((( super() )))
((*- endif -*))
((* endblock input_group *))
Run Code Online (Sandbox Code Playgroud)
运行此命令后,它将使用pdfLatex通过latex转换为PDF格式的笔记本:
jupyter nbconvert --to pdf --template hidecode Example.ipynb
Run Code Online (Sandbox Code Playgroud)
或者如果要编辑,可以将其转换为.tex文档,并使用pdfLatex将其放入pdf中:
jupyter nbconvert --to latex --template hidecode Example.ipynb
Run Code Online (Sandbox Code Playgroud)
编辑2018年9月:
ipython nbconvert已弃用.它将被替换为jupyter nbconvert:所以我们更换命令ipython用jupyter
Boy*_*ing 13
我在SO中寻找同样的问题,最后以一种非常直接的方式:
假设使用Firefox(57)+ Win7
F12在控制台中运行以下命令:
document.querySelectorAll("div.input").forEach(function(a){a.remove()})
Run Code Online (Sandbox Code Playgroud)代码删除所有输入div DOM,然后单击right mouse button并选择"将页面另存为"并保存"完整页面"(不是单页)
您将在Windows中获得一个包含相关文件夹的页面.使用zip技巧通过压缩html页面,然后提取解除绑定关联.(该文件夹无用)
现在它是一个没有代码的单个html页面.您可以重新分发它或以PDF格式打印它
如果您不使用Firefox或Windows,请调整以上3-6步骤.
我是这样做的:我只是将我的笔记本下载为 html。
然后运行这个 python 脚本来转换那个 html 文件,这样提示和代码单元格就消失了:
FILE = "/somewhere/myHTMLFile.html"
with open(FILE, 'r') as html_file:
content = html_file.read()
# Get rid off prompts and source code
content = content.replace("div.input_area {","div.input_area {\n\tdisplay: none;")
content = content.replace(".prompt {",".prompt {\n\tdisplay: none;")
f = open(FILE, 'w')
f.write(content)
f.close()
Run Code Online (Sandbox Code Playgroud)
该脚本基本上为“prompt”或“input_area”类的所有div添加了CSS“display:none”属性。
作为一个概括这个答案,让hidecode模板可以从多个位置访问:
进入你的主目录:
cd ~/.jupyter
Run Code Online (Sandbox Code Playgroud)jupyter_nbconvert_config.py在这个目录下创建。
将以下内容写入.py文件(更改user_name为您的用户名):
c = get_config()
c.TemplateExporter.template_path = ['.', "~/.jupyter" ]
c.LatexExporter.template_path = ['.', "~/.jupyter"]
Run Code Online (Sandbox Code Playgroud)在这个目录下创建一个模板文件,命名为hidecode.tplxor hidecode.tpl:
((*- extends 'article.tplx' -*))
((* block input_group *))
((*- if cell.metadata.get('nbconvert', {}).get('show_code', False) -*))
((( super() )))
((*- endif -*))
((* endblock input_group *))
Run Code Online (Sandbox Code Playgroud)然后,以下内容应生成没有.ipynb文件代码的 PDF (更改file_name为您的文件名):
jupyter nbconvert --to pdf '<file_name>.ipynb' --template=hidecode.tpl
Run Code Online (Sandbox Code Playgroud)您可以将此css添加到页面,然后从浏览器打印到PDF.请注意,代码只是隐藏,而不是删除.
div.output_prompt { visibility: hidden; }
*{ font-family: "Palatino Linotype", "Book Antiqua", Palatino, serif !important }
.input,#header { display: none; }
Run Code Online (Sandbox Code Playgroud)
要确保删除代码,您应该使用类似的东西
$(".input").remove()
Run Code Online (Sandbox Code Playgroud)
据我所知,没有办法通过乳胶生成不包含代码的PDF.虽然有一个jupyter笔记本扩展程序,但它会很棒...
| 归档时间: |
|
| 查看次数: |
28336 次 |
| 最近记录: |