Disclaimer: questa non è tanto una domanda quanto una risposta a una domanda. Ho pensato di condividerlo in un post sul blog, ma potrebbe non essere il tipo di hack di cui essere orgoglioso. COSÌ:
Nel profondo della mia mente, stavo cercando un modo per incorporare i flussi di lavoro JMP in un diario in modo che, quando faccio clic su un pulsante in una demo, venga visualizzato un nuovo flusso di lavoro, già popolato con i passaggi. Ho l'abitudine di condividere i diari dopo le demo, quindi volevo che il flusso di lavoro fosse incorporato nel diario invece di dovermi occupare di dire alle persone di "decomprimere tutti i contenuti in un'unica cartella...".
Ecco uno script che fa questo. In breve: lo script richiede un nome file, quindi crea JSL per ricreare quel file sul desktop dell'utente e aprirlo. Lo script viene quindi copiato negli appunti, quindi posso inserirlo in un pulsante in un diario. L'ho testato con alcuni file .jmpflow e .jmpdoe e funziona con tutti quelli con cui l'ho testato.
Ecco la sceneggiatura. Se esiste un approccio migliore o un posto migliore per condividerlo, fatemelo sapere.
//Create a pasteable script to recreate a jmpflow (or jmpdoe) file
//useful for embedding in demo journals
//v0.1
//Jed Campbell
//10/11/23
Names Default To Here (1);
nw = new window ("File Embed Tool",
Button Box( "Embed File into a Script",
//get file name/path
path = Pick File();
fname = Word( -1, path, "/" );
//load into memory
t = Load Text File( path );
//make quotes into escaped quotes
u = Substitute( t, "\!"", "\\!!\!"" );
//chunk together JSL into a string on clipboard
codea = "Save Text File (\!"$DESKTOP/"||fname||"\!", \!"" || u || "\!");";
codeb = "\!nOpen (\!"$DESKTOP/" || fname || "\!");";
script = codea || codeb;
Set Clipboard( script );
//msg user
Caption( "Script copied to clipboard." );
Wait( 1.5 );
Caption( remove );
)
);