Notebooks 
Parse and process notebooks
isDirective 
typescript
const isDirective = (ln: string) => booleanCell 
typescript
export type Cell = z.infer<typeof cellSchema>;RawCell 
typescript
export type RawCell = z.infer<typeof rawCellSchema>;Nb 
typescript
export type Nb = z.infer<typeof nbSchema>;loadNb 
typescript
const loadNb = (nbPath: string) => Promise<Nb>saveNb 
typescript
const saveNb = (nb: Nb) => Promise<void>Get notebook title 
Try to get a human readable title for a notebook using the following approach:
- grab the first md cell in the notebook, and return first h1 inside of
 - if this fails, return notebook filename
 
getNbTitle 
typescript
const getNbTitle = (nb: Nb) => stringParse cell output 
Jurassic needs to be able to convert individual cell output to test that can be displayed inside documentation
getCellOutput 
typescript
const getCellOutput = (cell: Cell) => stringSome cells don't contain any output - return empty strings for those
Cells can output text
Cells can output markdown