Skip to main content

为 jupyter 笔记本集合生成可导航的书状结构

项目描述

存档

由于与Binder的命名冲突,此打包已被存档,并由重命名的版本NBJoint 保留

NBBinder - Jupyter 笔记本活页夹

主要测试工作流程状态 Flake8 Lint 测试工作流程状态 PDF 导出测试工作流程状态 阅读文档徽章

PyPI - 轮子 PyPI - Python 版本

执照:麻省理工学院 GitHub 文件大小(以字节为单位) GitHub 存储库大小

NBBinder为 Jupyter 笔记本的集合生成可导航的书状结构。

目录

描述

这个模块中的主要函数被调用bind()。它从给定目录中读取 Jupyter 笔记本的集合,并在配置后,

  • 目录添加到选定的笔记本文件中,并带有指向其他笔记本的链接;

  • 为每个笔记本添加一个标题单元格,其中包含有关笔记本集合的自定义信息;

  • 为每个笔记本添加一个徽章单元,其中包含以不同平台或格式打开笔记本的链接。例如,可以包括一个Google Colab 徽章和一个Binder 徽章,其中包含在这些云计算平台中打开每个笔记本的链接,一个用于显示使用导出的幻灯片nbconvert的徽章,等等。

  • 在每个笔记本的开头和末尾添加导航器链接,其中包含指向上一个和下一个笔记本以及其他选定笔记本的链接,例如目录和参考;

  • 使用 将笔记本导出nbconvert为其他格式,例如,可以自动批量生成幻灯片。

例子

有点味道

例如,在正确配置后(请参阅下面的带有幻灯片和云计算徽章的笔记本部分),文件夹Water bare collection中的裸笔记本集合绑定到文件夹 Water bound collection,特别是文件00.00-Water_Contents。 ipynb接收目录、标题、导航单元和徽章

Colab 徽章我的活页夹浏览器幻灯片

下面我们将更详细地展示一些示例。

配置文件示例

使用模块或脚本最方便的方法是通过配置文件。配置文件以YAML格式编写。

例如,考虑以下内容config_nb_alice.yml,它包含在tests存储库的文件夹中:

# Configuration file for the python module NBBinder

version: 0.13a

path_to_notes: nb_builds/nb_alice

contents:
  toc_nb_name: 00.00-Alice's_Adventures_in_Wonderland.ipynb
  toc_title: Table of Contents
  show_index_in_toc: True

header: "NBBinder test on a collection of notebooks named after the chapters of 'Alice's Adventures in Wonderland'"

navigators:
  core_navigators:
    - 00.00-Alice's_Adventures_in_Wonderland.ipynb
  show_nb_title_in_nav: False
  show_index_in_nav: False

笔记本收藏

文件夹中包含以下索引笔记本集合tests/nb_builds/nb_alice

00.00-Alice's_Adventures_in_Wonderland.ipynb
01.00-Down_the_Rabbit-Hole.ipynb
02.00-The_Pool_of_Tears.ipynb
03.00-A_Caucus-Race_and_a_Long_Tale.ipynb
04.00-The_Rabbit_Sends_in_a_Little_Bill.ipynb
05.00-Advice_from_a_Caterpillar.ipynb
06.00-Pig_and_Pepper.ipynb
07.00-A_Mad_Tea-Party.ipynb
08.00-The_Queen's_Croquet-Ground.ipynb
09.00-The_Mock_Turtle's_Story.ipynb
10.00-The_Lobster_Quadrille.ipynb
11.00-Who_Stole_the_Tarts?.ipynb
12.00-Alice's_Evidence.ipynb

绑定集合

绑定笔记本集合的一种方法是导入模块并使用bind()此配置文件作为参数的函数:

import nbbinder as nbb
nbb.bind('config_nb_alice.yml')

或者我们在命令行中将其作为脚本执行:

./nbbinder.py config_nb_alice.yml

tests目录中,配置文件实际上和脚本不在同一个文件夹中。该集合是两个文件夹。path_to_notes: nb_builds/nb_alice这由配置文件中给出的参数 指示。

结果

以上述两种方式之一绑定笔记本后,在第一个笔记本中插入以下目录00.00-Alice's_Adventures_in_Wonderland.ipynb

Table of Contents
Alice's Adventures in Wonderland
1. Down the Rabbit-Hole
2. The Pool of Tears
3. A Caucus-Race and a Long Tale
4. The Rabbit Sends in a Little Bill
5. Advice from a Caterpillar
6. Pig and Pepper
7. A Mad Tea-Party
8. The Queen's Croquet-Ground
9. The Mock Turtle's Story
10. The Lobster Quadrille
11. Who Stole the Tarts?
12. Alice's Evidence

有关第一个笔记本的实际绑定版本,请参见00.00-Alice's_Adventures_in_Wonderland.ipynb。请注意笔记本开头的标题以及标题之后和笔记本末尾的导航器单元格尝试使用导航器链接移动到其他笔记本。

带小节的笔记本

通过适当地命名文件,我们可以为目录设置不同的格式。例如,如果您的文件列表是

00.00-Front_Page.ipynb
01.00-Introduction.ipynb
02.00-Project_Requirements.ipynb
03.00-The_History_of_Grammar.ipynb
04.00-Parts_of_Speech.ipynb
04.01-Nouns.ipynb
04.02-Verbs.ipynb
04.03-Adjectives.ipynb
04.04-Adverbs.ipynb
05.00-Sentences.ipynb
05.01-Complex_Sentences.ipynb
05.02-Compound_Sentences.ipynb
06.00-Paragraphs.ipynb
06.01-Descriptive.ipynb
06.02-Expository.ipynb
06.03-Narrative.ipynb
06.04-Persuasive.ipynb
07.00-Conclusion.ipynb
A0.00-Appendix.ipynb
BA.00-Glossary.ipynb
BB.00-Bibliography.ipynb
BC.00-Index.ipynb

通过合适的配置,我们得到了目录

Table of Contents
Front Page
1. Introduction
2. Project Requirements
3. The History of Grammar
4. Parts of Speech
  4.1. Nouns
  4.2. Verbs
  4.3. Adjectives
  4.4. Adverbs
5. Sentences
  5.1. Complex Sentences
  5.2. Compound Sentences
6. Paragraphs
  6.1. Descriptive
  6.2. Expository
  6.3. Narrative
  6.4. Persuasive
7. Conclusion
A. Appendix
Glossary
Bibliography
Index

第一个笔记本的实际绑定版本见00.00-Front-Page.ipynb

此集合中笔记本的活页夹配置为包含徽章,以在nbviewer中呈现Jupyter 笔记本本身或导出到 markdown 的版本。徽章单元位于标题下方。只需用鼠标右键单击徽章即可将其打开。如果在 github 中用右键单击它,则不会发生任何事情。

带预标题的笔记本

这对于讲义特别有用。例如,通过将您的笔记本集合命名为

00.00-Introduction.ipynb
01.00.Lecture-Math_Background.ipynb
01.01-Vector_Calculus.ipynb
01.02-Rigid_Motions.ipynb
02.00.Lecture-Kinematics.ipynb
02.01.Lecture-Velocity_and_Acceleration.ipynb
02.02.Lecture-Different_Types_of_Motions_and_Their_Components.ipynb
03.00.Lecture-Dynamics.ipynb
03.01..Part-Force_and_Momentum.ipynb
03.02..Part-Orbits_of_Planets_and_Satellites.ipynb
03.03..Part-Interception_and_Rendezvous.ipynb
04.00.Lecture-Trajectory_Optimization.ipynb
04.01.Lecture.Part-Performance.ipynb
04.02.Lecture.Part-Gravity_Turn.ipynb
04.03.Lecture.Part-Optimization.ipynb
AA.00-References.ipynb

通过合适的配置,我们得到了目录

Contents
Introduction
Lecture 1. Math Background
  1.1. Vector Calculus
  1.2. Rigid Motions
Lecture 2. Kinematics
  Lecture 2.1. Velocity and Acceleration
  Lecture 2.2. Different Types of Motions and Their Components
Lecture 3. Dynamics
  Part 1. Force and Momentum
  Part 2. Orbits of Planets and Satellites
  Part 3. Interception and Rendezvous
Lecture 4. Trajectory Optimization
  Lecture 4. Part 1. Performance
  Lecture 4. Part 2. Gravity Turn
  Lecture 4. Part 3. Optimization
References

有关第一个笔记本的实际绑定版本,请参见00.00-Introduction.ipynb

请注意,上面显示同一讲义的不同部分的不同形式。

此集合中笔记本的活页夹配置为包含一个徽章,以便在nbviewer中打开它们。徽章位于标题下方。只需用鼠标右键单击徽章即可将其打开。如果在 github 中用右键单击它,则不会发生任何事情。

带有幻灯片和云计算徽章的笔记本

以下配置文件用于Water文件夹中的文件集合:

# Configuration file for the python module NBBinder

version: 0.13a

path_to_notes: nb_builds/nb_water

contents:
  toc_nb_name: 00.00-Water_Contents.ipynb
  toc_title: Table of Contents
  show_index_in_toc: True

header: "[*NBBinder test on a collection of notebooks about some thermodynamic properperties of water*](https://github.com/rmsrosa/nbbinder)"

navigators:
  core_navigators:
    - 00.00-Water_Contents.ipynb
    - BA.00-References.ipynb
  show_nb_title_in_nav: True
  show_index_in_nav: False

badges:
  - title: Open in Google Colab
    url: https://colab.research.google.com/github/rmsrosa/nbbinder/blob/master/tests/nb_builds/nb_water
    src: https://colab.research.google.com/assets/colab-badge.svg
  - title: Open in binder
    url: https://mybinder.org/v2/gh/rmsrosa/nbbinder/master?filepath=tests/nb_builds/nb_water
    src: https://mybinder.org/badge.svg
  - title: View in NBViewer
    url: https://nbviewer.jupyter.org/github/rmsrosa/nbbinder/blob/master/tests/nb_builds/nb_water
    label: view in
    message: nbviewer
    color: orange
  - title: View Slides
    url: https://nbviewer.jupyter.org/github/rmsrosa/nbbinder/blob/master/tests/nb_builds/nb_water_slides
    extension: .slides.html
    label: view
    message: slides
    color: darkgreen

exports:
  - export_path: nb_builds/nb_water_slides
    exporter_name: slides
    exporter_args:
      reveal_scroll: True

绑定集合后,创建文件夹水绑定集合。请参阅第一个笔记本的00.00-Water_Contents.ipynb,其中包含目录。现在,每个笔记本都有一个徽章单元,其中包含用于在Google ColabBindernbviewer中打开笔记本的徽章,以及用于打开相关Reveal.JS幻灯片的最终徽章。

对于幻灯片,根据配置文件中与键关联的参数,通过nbconvert创建文件夹Water Slides 。exports

徽章单元看起来像

Colab 徽章我的活页夹浏览器幻灯片

安装

该模块在PyPI中可用,安装完成

pip install nbbinder

该模块也可以直接从 github.com/rmsrosa/nbbinder 下载。

有关安装过程的更多信息,请参阅 NBBinder 文档的安装部分

文档

NBBinder 的文档托管在nbbinder.readthedocs.io上。

发展

在项目的当前 alpha 阶段,正在master分支中进行开发,这是当前存储库中唯一的分支。

当第一个beta版本发布时,最新的稳定版本将留在master分支中,开发将属于一个单独的development分支。

维护者

@rmsrosa

执照

这个包中的工作是在MIT许可下获得许可的。

这项工作基于Python Data Science Handbook/tools中的一些脚本,被认为是原创作品,由Jake VanderPlasMIT 许可下授权。

查看LICENSE项目根目录下的文件。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

nbbinder-0.13a5.tar.gz (17.3 kB 查看哈希

已上传 source

内置分布

nbbinder-0.13a5-py3-none-any.whl (15.9 kB 查看哈希

已上传 py3