簡體   English   中英

如何導出和保存鏈接的Jupyter筆記本?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM