The building block of Notebooks. Contains code, output and reactivity data.


Start a Pluto server synchronously (i.e. blocking call) on http://localhost:[port]/.

This will start the static HTTP server and a WebSocket server. Pluto Notebooks will be started dynamically (by user input).


Will hold all 'response handlers': functions that respond to a WebSocket request from the client. These are defined in src/webserver/Dynamic.jl.


Information container about the cells to run in a reactive call and any cells that will err.


Return all variables that a cell assigns to, including mutable globals assigned through function calls.


Return all functions called by a cell, and all functions called by those functions, et cetera.


Return all variables that a cell references, including those referenced through function calls.


Return a CellTopology that lists the cells to be evaluated in a single reactive run, in topological order. Includes the given roots.


Account for globals referenced in function calls by including SymbolsStates from called functions in the cell itself.


For internal use. Takes a Set of NotebookPaths and gives each a short path (e.g. to/file.jl from /path/to/file.jl), with the guarantee that all final short paths will be distinct.

For example, the set

/a/b/c.jl, /a/P/c.jl, /Q/b/c.jl, '/a/b/R.jl'

will become

/a/b/c.jl, P/c.jl, /Q/b/c.jl, 'R.jl'


Attempts to find the MIME pair corresponding to the extension of a filename. Defaults to text/plain.


Check if two savefiles are identical, up to their version numbers and a possible line shuffle.

If a notebook has not yet had all of its cells run, we can't deduce the topological cell order.


Send error to the frontend without backtrace. Runtime errors are handled by WorkspaceManager.eval_fetch_in_workspace - this function is for Reactivity errors.


Run a single cell non-reactively, return run information.


Update the combined collection of function definitions, where multiple specialisations of a function are combined into a single SymbolsState.


Return the cells that assign to any of the given symbols. Recurses down functions calls, but not down cells.


Return the cells that reference any of the given symbols. Recurses down functions calls, but not down cells.