I want to write a document using weave, but currently I have to manually rerun the “save to file” or “show preview” commands in vscode.
Is there a server which watches the file and recompiles the changed document?
Maybe even using some caching.
At the moment it seems like vscode is starting a new julia session to rerun the weave commands.
The reason I think this happens is that is takes always a lot of time when running the chunks containing Plots.jl etc
I wrote a crude script to watch for save events to trigger a recompile of the document.
Maybe it is helpful for someone.
To view the generated document I use the Liveserver extension in vscode.
using Weave
using FileWatching
while true
jmdfilepth = normpath("mydoc.jmd")
status = watch_file(jmdfilepth)
outpath = "out"
if status.changed
@info "change detected"
weave(jmdfilepth, doctype="md2html", out_path= "out",cache=:none,fig_path="fig")
for folder in filter((x)->startswith(x,"jl_"),readdir(outpath))
tmpdir = joinpath(outpath,folder)
@info "delete $tmpdir"
rm(tmpdir,recursive=true)
end
end
sleep(1)
end
This might be helpful Livereload with Weave.jl
Unfortunately I didn’t have time to have a look at it, since I focus on two projects in R right now, but it looks promising!
1 Like