Formats

IPYNB

Jupyter Notebook Format

Introduction

The Jupyter Notebook Format (previously known the IPython Notebook (IPYNB) format), is a JSON-based format that integrates code, visualizations, equations, and narrative text in a single document. It is designed to support reproducible computational workflows by allowing users to execute code in real time while interweaving multimedia content and explanatory text.

Usage

Use the .ipynb file extension, or the --to ipynb or --from ipynb options, when converting to/from Jupyter Notebooks e.g.

stencila convert doc.smd doc.ipynb

Implementation

Stencila support bi-directional conversion between Stencila documents and ipynb files powered by the nbformat Rust crate.

Support

Stencila supports these operations for IPYNB:

  • decoding from a file
  • decoding from a string
  • encoding to a file
  • encoding to a string

Support and degree of loss by node type:

Node type Encoding Decoding Notes
Works
Article 🔷 Low loss 🔷 Low loss
AudioObject 🔷 Low loss 🔷 Low loss
AuthorRole 🔷 Low loss 🔷 Low loss
Chat 🔷 Low loss 🔷 Low loss
ChatMessage 🔷 Low loss 🔷 Low loss
ChatMessageGroup 🔷 Low loss 🔷 Low loss
Claim 🔷 Low loss 🔷 Low loss
Collection 🔷 Low loss 🔷 Low loss
Comment 🔷 Low loss 🔷 Low loss
CreativeWork 🔷 Low loss 🔷 Low loss
Directory 🔷 Low loss 🔷 Low loss
Figure 🔷 Low loss 🔷 Low loss
File 🔷 Low loss 🔷 Low loss
ImageObject 🔷 Low loss 🔷 Low loss
MediaObject 🔷 Low loss 🔷 Low loss
Periodical 🔷 Low loss 🔷 Low loss
Prompt 🔷 Low loss 🔷 Low loss
PublicationIssue 🔷 Low loss 🔷 Low loss
PublicationVolume 🔷 Low loss 🔷 Low loss
Review 🔷 Low loss 🔷 Low loss
SoftwareApplication 🔷 Low loss 🔷 Low loss
SoftwareSourceCode 🔷 Low loss 🔷 Low loss
Table 🔷 Low loss 🔷 Low loss
TableCell 🔷 Low loss 🔷 Low loss
TableRow 🔷 Low loss 🔷 Low loss
VideoObject 🔷 Low loss 🔷 Low loss
Prose
Admonition 🔷 Low loss 🔷 Low loss
Annotation 🔷 Low loss 🔷 Low loss
Cite 🔷 Low loss 🔷 Low loss
CiteGroup 🔷 Low loss 🔷 Low loss
DefinedTerm 🔷 Low loss 🔷 Low loss
Emphasis 🔷 Low loss 🔷 Low loss
Heading 🔷 Low loss 🔷 Low loss
Link 🔷 Low loss 🔷 Low loss
List 🔷 Low loss 🔷 Low loss
ListItem 🔷 Low loss 🔷 Low loss
Note 🔷 Low loss 🔷 Low loss
Paragraph 🔷 Low loss 🔷 Low loss
QuoteBlock 🔷 Low loss 🔷 Low loss
QuoteInline 🔷 Low loss 🔷 Low loss
Section 🔷 Low loss 🔷 Low loss
Strikeout 🔷 Low loss 🔷 Low loss
Strong 🔷 Low loss 🔷 Low loss
Subscript 🔷 Low loss 🔷 Low loss
Superscript 🔷 Low loss 🔷 Low loss
Text 🔷 Low loss 🔷 Low loss
ThematicBreak 🔷 Low loss 🔷 Low loss
Underline 🔷 Low loss 🔷 Low loss
Math
MathBlock 🔷 Low loss 🔷 Low loss
MathInline 🔷 Low loss 🔷 Low loss
Code
CodeBlock 🔷 Low loss 🔷 Low loss
CodeChunk 🔷 Low loss 🔷 Low loss
CodeExpression 🔷 Low loss 🔷 Low loss
CodeInline 🔷 Low loss 🔷 Low loss
CompilationMessage 🔷 Low loss 🔷 Low loss
ExecutionMessage 🔷 Low loss 🔷 Low loss
Data
Array 🔷 Low loss 🔷 Low loss
ArrayHint 🔷 Low loss 🔷 Low loss
ArrayValidator 🔷 Low loss 🔷 Low loss
Boolean 🔷 Low loss 🔷 Low loss
BooleanValidator 🔷 Low loss 🔷 Low loss
ConstantValidator 🔷 Low loss 🔷 Low loss
Cord 🔷 Low loss 🔷 Low loss
Datatable 🔷 Low loss 🔷 Low loss
DatatableColumn 🔷 Low loss 🔷 Low loss
DatatableColumnHint 🔷 Low loss 🔷 Low loss
DatatableHint 🔷 Low loss 🔷 Low loss
Date 🔷 Low loss 🔷 Low loss
DateTime 🔷 Low loss 🔷 Low loss
DateTimeValidator 🔷 Low loss 🔷 Low loss
DateValidator 🔷 Low loss 🔷 Low loss
Duration 🔷 Low loss 🔷 Low loss
DurationValidator 🔷 Low loss 🔷 Low loss
EnumValidator 🔷 Low loss 🔷 Low loss
Integer 🔷 Low loss 🔷 Low loss
IntegerValidator 🔷 Low loss 🔷 Low loss
Null 🔷 Low loss 🔷 Low loss
Number 🔷 Low loss 🔷 Low loss
NumberValidator 🔷 Low loss 🔷 Low loss
Object 🔷 Low loss 🔷 Low loss
ObjectHint 🔷 Low loss 🔷 Low loss
String 🔷 Low loss 🔷 Low loss
StringHint 🔷 Low loss 🔷 Low loss
StringValidator 🔷 Low loss 🔷 Low loss
Time 🔷 Low loss 🔷 Low loss
TimeValidator 🔷 Low loss 🔷 Low loss
Timestamp 🔷 Low loss 🔷 Low loss
TimestampValidator 🔷 Low loss 🔷 Low loss
TupleValidator 🔷 Low loss 🔷 Low loss
Unknown 🔷 Low loss 🔷 Low loss
UnsignedInteger 🔷 Low loss 🔷 Low loss
Flow
Button 🔷 Low loss 🔷 Low loss
CallArgument 🔷 Low loss 🔷 Low loss
CallBlock 🔷 Low loss 🔷 Low loss
CodeLocation 🔷 Low loss 🔷 Low loss
CompilationDigest 🔷 Low loss 🔷 Low loss
ExecutionDependant 🔷 Low loss 🔷 Low loss
ExecutionDependency 🔷 Low loss 🔷 Low loss
ExecutionTag 🔷 Low loss 🔷 Low loss
ForBlock 🔷 Low loss 🔷 Low loss
Form 🔷 Low loss 🔷 Low loss
Function 🔷 Low loss 🔷 Low loss
IfBlock 🔷 Low loss 🔷 Low loss
IfBlockClause 🔷 Low loss 🔷 Low loss
IncludeBlock 🔷 Low loss 🔷 Low loss
Parameter 🔷 Low loss 🔷 Low loss
Variable 🔷 Low loss 🔷 Low loss
Walkthrough 🔷 Low loss 🔷 Low loss
WalkthroughStep 🔷 Low loss 🔷 Low loss
Style
StyledBlock 🔷 Low loss 🔷 Low loss
StyledInline 🔷 Low loss 🔷 Low loss
Edits
InstructionBlock 🔷 Low loss 🔷 Low loss
InstructionInline 🔷 Low loss 🔷 Low loss
InstructionMessage 🔷 Low loss 🔷 Low loss
PromptBlock 🔷 Low loss 🔷 Low loss
SuggestionBlock 🔷 Low loss 🔷 Low loss
SuggestionInline 🔷 Low loss 🔷 Low loss
Config
Config 🔷 Low loss 🔷 Low loss
Other
Brand 🔷 Low loss 🔷 Low loss
ContactPoint 🔷 Low loss 🔷 Low loss
Enumeration 🔷 Low loss 🔷 Low loss
Grant 🔷 Low loss 🔷 Low loss
ModelParameters 🔷 Low loss 🔷 Low loss
MonetaryGrant 🔷 Low loss 🔷 Low loss
Organization 🔷 Low loss 🔷 Low loss
Person 🔷 Low loss 🔷 Low loss
PostalAddress 🔷 Low loss 🔷 Low loss
Product 🔷 Low loss 🔷 Low loss
PropertyValue 🔷 Low loss 🔷 Low loss
ProvenanceCount 🔷 Low loss 🔷 Low loss
RawBlock 🔷 Low loss 🔷 Low loss
Thing 🔷 Low loss 🔷 Low loss

See the Rust crate codec-ipynb for more details.