|
|
|
|
@ -582,7 +582,7 @@ function markdown(inputfile, outputdir=pwd(); config::AbstractDict=Dict(), kwarg
@@ -582,7 +582,7 @@ function markdown(inputfile, outputdir=pwd(); config::AbstractDict=Dict(), kwarg
|
|
|
|
|
preprocessor(inputfile, outputdir; user_config=config, user_kwargs=kwargs, type=:md) |
|
|
|
|
|
|
|
|
|
# create the markdown file |
|
|
|
|
sb = sandbox() |
|
|
|
|
sb = sandbox(config["literate_outputfile"]) |
|
|
|
|
iomd = IOBuffer() |
|
|
|
|
for (chunknum, chunk) in enumerate(chunks) |
|
|
|
|
if isa(chunk, MDChunk) |
|
|
|
|
@ -789,7 +789,7 @@ function jupyter_notebook(chunks, config)
@@ -789,7 +789,7 @@ function jupyter_notebook(chunks, config)
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
function execute_notebook(nb; inputfile::String, fake_source::String, softscope::Bool) |
|
|
|
|
sb = sandbox() |
|
|
|
|
sb = sandbox(fake_source) |
|
|
|
|
execution_count = 0 |
|
|
|
|
for cell in nb["cells"] |
|
|
|
|
cell["cell_type"] == "code" || continue |
|
|
|
|
@ -851,8 +851,14 @@ function sandbox()
@@ -851,8 +851,14 @@ function sandbox()
|
|
|
|
|
# eval(expr) is available in the REPL (i.e. Main) so we emulate that for the sandbox |
|
|
|
|
Core.eval(m, :(eval(x) = Core.eval($m, x))) |
|
|
|
|
# modules created with Module() does not have include defined |
|
|
|
|
# abspath is needed since this will call `include_relative` |
|
|
|
|
Core.eval(m, :(include(x) = Base.include($m, abspath(x)))) |
|
|
|
|
Core.eval(m, :(include(x) = Base.include($m, x))) |
|
|
|
|
return m |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
function sandbox(source_file) |
|
|
|
|
m = sandbox() |
|
|
|
|
# For `include` to work, the source file must be set. |
|
|
|
|
Core.eval(m, :(current_task().storage[:SOURCE_PATH] = $source_file)) |
|
|
|
|
return m |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|