Diff for Twine: A script to convert parser IF transcripts into linear Twines

Tue, 10/21/2014 - 22:06 by LTue, 10/21/2014 - 22:24 by L
Changes to Body
Line 3 Line 3
1) Include this script: 1) Include this script:
<code> <code>
-var currentPassage=new Passage("Start");currentPassage.text="";var id=currentPassage.id=1;tale.get("Transcript").text.split(/\n/g).forEach(function(e){var t=e.indexOf(">");if(t===-1){currentPassage.text+=e+"\n"}else{id+=1;var n="Turn "+id;currentPassage.text+=e.slice(0,t)+"\n > [<b></b>["+e.slice(t+1)+"|"+n+"]]\n";tale.passages[currentPassage.title]=currentPassage;currentPassage=new Passage(n);currentPassage.id=id;currentPassage.text=""}}) +var currentPassage=new Passage("Start");currentPassage.text="";var id=currentPassage.id=1;tale.get("Transcript").text.split(/\n/g).forEach(function(e){var t=e.indexOf(">");if(t===-1){currentPassage.text+=e+"\n"}else{id+=1;var n="Turn "+id;currentPassage.text+=e.slice(0,t)+"\n ''>'' [<b></b>["+e.slice(t+1)+"|"+n+"]]\n";tale.passages[currentPassage.title]=currentPassage;currentPassage=new Passage(n);currentPassage.id=id;currentPassage.text=""}});currentPassage.text = currentPassage.text.trim() || "<<b></b><set window.close()>>";tale.passages[currentPassage.title]=currentPassage;Wikifier.formatters.forEach(function(e){if(e.name=="list")e.match="^(?!.)(?=.)";});
</code> </code>
2) Paste the entire transcript into a passage named "Transcript". 2) Paste the entire transcript into a passage named "Transcript".
-When you run the game, the Start passage and all other passages will be replaced with passages derived from the transcript. +When you run the game, the Start passage and all other passages will be replaced with passages derived from the transcript. Each passage will only have 1 command.
[b]Limitations:[/b] [b]Limitations:[/b]

Revision of Tue, 10/21/2014 - 22:24:

Twine: A script to convert Inform transcripts into linear Twines

I've devised a way to convert Inform game transcripts exported from Gargoyle (using the "script" command) directly into basic Twine games, programmatically. Here is a two-step process:

1) Include this script:

var currentPassage=new Passage("Start");currentPassage.text="";var id=currentPassage.id=1;tale.get("Transcript").text.split(/\n/g).forEach(function(e){var t=e.indexOf(">");if(t===-1){currentPassage.text+=e+"\n"}else{id+=1;var n="Turn "+id;currentPassage.text+=e.slice(0,t)+"\n ''>'' [["+e.slice(t+1)+"|"+n+"]]\n";tale.passages[currentPassage.title]=currentPassage;currentPassage=new Passage(n);currentPassage.id=id;currentPassage.text=""}});currentPassage.text = currentPassage.text.trim() || "<>";tale.passages[currentPassage.title]=currentPassage;Wikifier.formatters.forEach(function(e){if(e.name=="list")e.match="^(?!.)(?=.)";});

2) Paste the entire transcript into a passage named "Transcript".

When you run the game, the Start passage and all other passages will be replaced with passages derived from the transcript. Each passage will only have 1 command.

Limitations:
* This assumes that the ">" character is only used for player commands throughout the entire story - and it also assumes that all player commands end in a line break. If these aren't the case, there'll be trouble.

Suggestions:
* Play in the Jonah format (and optionally remove the title CSS).
* Use basic CSS to make the links larger (similar to how MS Paint Adventures displays its page links).