@@ -29,6 +29,7 @@ import {
2929 kFigPos ,
3030 kIpynbProduceSourceNotebook ,
3131 kKeepHidden ,
32+ kKeepIpynb ,
3233} from "../config/constants.ts" ;
3334import {
3435 isHtmlCompatible ,
@@ -39,7 +40,11 @@ import {
3940} from "../config/format.ts" ;
4041import { resourcePath } from "../core/resources.ts" ;
4142import { quartoRuntimeDir } from "../core/appdirs.ts" ;
42- import { normalizePath , pathWithForwardSlashes } from "../core/path.ts" ;
43+ import {
44+ dirAndStem ,
45+ normalizePath ,
46+ pathWithForwardSlashes ,
47+ } from "../core/path.ts" ;
4348import { isInteractiveSession } from "../core/platform.ts" ;
4449import { runningInCI } from "../core/ci-info.ts" ;
4550import { sleep } from "../core/async.ts" ;
@@ -211,6 +216,13 @@ export const juliaEngine: ExecutionEngine = {
211216 } ,
212217 ) ;
213218
219+ // Write notebook to file if keep-ipynb is set
220+ if ( options . format . execute [ kKeepIpynb ] ) {
221+ const [ fileDir , fileStem ] = dirAndStem ( options . target . source ) ;
222+ const ipynbPath = join ( fileDir , fileStem + ".ipynb" ) ;
223+ Deno . writeTextFileSync ( ipynbPath , JSON . stringify ( nb , null , 2 ) ) ;
224+ }
225+
214226 // return dependencies as either includes or raw dependencies
215227 let includes : PandocIncludes | undefined ;
216228 let engineDependencies : Record < string , Array < unknown > > | undefined ;
0 commit comments