[英]How to export and preserve linked Jupyter notebooks?
我有多個相互鏈接的Jupyter筆記本,因此Notebook1.ipydb包含一個指向Notebook2.ipydb的鏈接,其中包含markdown [Notebook2](Notebook2.ipynb)
,反之亦然。
通過nbconvert
將所有筆記本導出為HTML時,將保留指向Notebook2.ipynb的鏈接。 我想將該鏈接更改為導出的Notebook2.html,以便鏈接的HTML文件充當靜態網站。
我嘗試使用get_ipython().__class__.__name__
檢測我是否在iPython中運行,但它在轉換為HTML 之前執行此代碼。
有沒有辦法檢測靜態文件以有條件地呈現正確的降價? 還有另一種方法來保存鏈接的筆記本嗎?
實際上只有兩種選擇。 一種是首先鏈接到Notebook2.html
,另一種是為nbconvert
創建自定義預處理器。
from nbconvert.preprocessors import Preprocessor
import re
class CustomPreprocessor(Preprocessor):
def preprocess_cell(self, cell, resources, index):
if 'source' in cell and cell.cell_type == "markdown":
cell.source = re.sub(r"\[(.*)\]\(\1\.ipynb\)",r"[\1](\1.html)",cell.source)
return cell, resources
將其保存到文件中,然后添加到您的nbconvert配置文件(位於~/.jupyter/jupyter_nbconvert_config.py
或可以使用命令jupyter nbconvert --generate-config
)行:
c.HTMLExporter.preprocessors = ['CustomPreprocessor.CustomPreprocessor']
這假定自定義預處理器文件名為CustomPreprocessor,並且與您嘗試轉換的文件位於同一目錄中。 您也可以將其正確安裝為模塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.