Textivate can do a lot.
It can make activities based on a text, on matching items, or both; sequences and challenges; resources with additional parallel text, an image, audio or video... and all of this based on user input.
All of this user input is introduced into textivate using the "tabbed" front page: