Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Save a notebook to a file that is formatted to maximize readability when viewing changes in version control systems
ResourceFunction["SaveReadableNotebook"][notebook,"file"] saves notebook to "file" as a Notebook expression formatted for readability. |
| Notebook[…] | a notebook expression |
| NotebookObject[…] | a currently open notebook |
| "path" | a pathname of a saved notebook |
| "ExcludedCellOptions" | {CellChangeTimes,ExpressionUUID} | cell options that should be discarded from the saved notebook |
| "ExcludedNotebookOptions" | {WindowSize,WindowMargins} | notebook options that should be discarded |
Save a NotebookObject to a human-readable file:
| In[1]:= | ![]() |
| Out[1]= |
| In[2]:= |
| Out[2]= |
| In[3]:= |

Save a Notebook expression:
| In[4]:= | ![]() |
| Out[4]= |
| In[5]:= |

Save a copy of a notebook file that already exists:
| In[6]:= | ![]() |
| Out[6]= |
| In[7]:= |

By default, some cell options are automatically stripped:
| In[8]:= | ![]() |

Preserve all cell options:
| In[9]:= | ![]() |

Ignore specific options:
| In[10]:= | ![]() |

By default, some notebook options are automatically stripped:
| In[11]:= | ![]() |

Preserve all notebook options:
| In[12]:= | ![]() |

Ignore specific options:
| In[13]:= | ![]() |

SaveReadableNotebook can be used to create notebook files that are well suited for version control systems that look at changes to files on a line-by-line basis.
Here’s a test notebook:
| In[14]:= | ![]() |
Now make changes to the notebook, then save to a new file:
| In[15]:= |
It can be difficult to visualize what actually changed:
| In[16]:= | ![]() |
| In[17]:= | ![]() |
| Out[17]= | ![]() |
Create a formatted version of each notebook and view changes for those files instead:
| In[18]:= | ![]() |
| Out[20]= | ![]() |
The formatted notebook files still open normally:
| In[21]:= |
| Out[21]= |
Wolfram Language 11.3 (March 2018) or above
This work is licensed under a Creative Commons Attribution 4.0 International License