Editing Scripts (the film kind) with Trac

As I've mentioned before I've been working on turning [http://trac.edgewall.org Trac] into a comprehensive tool for film preproduction. A major aspect of this task is the creation of the scripts that will be produced. While there are many approaches to the creation of scripts the process that's being used in the projects I'm working on is what I would term "data driven". Each script starts its life as a collection of notes that transform over time into a more and more detailed outline, collection of script fragments (currently managed using the [http://trac-hacks.org/wiki/ScrippetMacro ScrippetMacro]), and finally grow into a complete script created using a screenwriting tool. The problem with this process is that each of these steps are not well integrated together since it's not easy to pass data in between Trac and the other tools used in this process. To me this says that it's probably time to start reevaluating the process. Since I wrote the !ScrippetMacro, [http://johnaugust.com/ John August] (the originator of the idea), has gone on to create a text based script format called [http://fountain.io/ Fountain]. Fountain is much more comprehensive that Scrippet and seems like a much better way to manage script data. So the first task is to bring Fountain into Trac. While I haven't had a chance to do the implementation yet, my current plan is to try and combine an existing [https://github.com/mattdaly/Fountain.js renderer that's been developed for Fountain in JavaScript] and try and adapt that to a new version of the !ScrippetMacro (though probably this will be a new hack specifically for Fountain). Once that's done... well there's other stuff to do. I think the best things would be to provide some additional editing modes for helping with script editing. And there would be some benefits to being able to work with portions of scripts as parts as well as a whole. But the first thing to do is get Fountain integrated with Trac. Hopefully life will calm down soon and let me actually spend some development time on this project.