UI for creating hypertext stories
Python JavaScript HTML NSIS
Latest commit f0e6caf Feb 27, 2016 @webbedspace webbedspace If one testplays from the Start, use the non-quiet History#display().
This means that the initial transition-in fade will be used, as if starting the story in a non-test play.
Permalink
Failed to load latest commit information.
appicons Some OS X maintenance Dec 6, 2013
icons Some external passage follow-ups Mar 25, 2014
targets If one testplays from the Start, use the non-quiet History#display(). Feb 27, 2016
.gitignore Added pyc files in targets sub-directories Feb 2, 2014
.project Changes to project house keeping files Apr 24, 2012
.pydevproject Changes to project house keeping files Apr 24, 2012
README.md Updated README to mention py2exe and py2app. Mar 14, 2015
app.py Added recovery if the last story's format is missing. Feb 4, 2015
buildapp.py pylint: Add annotations to suppress false positives Jul 15, 2014
buildexe.py pylint: Add annotations to suppress false positives Jul 15, 2014
fseditframe.py Fixed some long-standing bugs. Mar 14, 2015
geometry.py pylint: Add annotations to suppress false positives Jul 15, 2014
gpl.txt HTML import now decodes obfuscated source Nov 26, 2013
header.py Added an old-style custom Header class file load fallback (load order… Jun 12, 2015
images.py Font import improvements: May 4, 2015
install.nsi 1.4.2 post-release bugfixes Jun 7, 2014
metrics.py Whitespace cleanup Jul 14, 2014
passageframe.py Fixed some long-standing bugs. Mar 14, 2015
passagesearchframe.py Removed unnecessary lambdas Jul 15, 2014
passagewidget.py Compare to None using "is"/"is not" Jul 21, 2014
prefframe.py pylint: Add annotations to suppress false positives Jul 15, 2014
pylintrc pylint: Add configuration file for pylint 1.2.0 Jul 14, 2014
requirements.txt Removed whitespace at end of lines Feb 9, 2014
searchpanels.py Removed space before argument list on class or function definition Feb 9, 2014
statisticsdialog.py Removed unnecessary semicolons Jul 14, 2014
storyframe.py Test/Debug Mode update. Feb 27, 2016
storymetadataframe.py Removed unused variables Jul 15, 2014
storypanel.py Font import improvements: May 4, 2015
storysearchframes.py Removed unused imports Jul 15, 2014
tiddlywiki.py Fixed a bug where storeArea <div>s with hidden="" couldn't be imported. Jun 1, 2015
twee twee: Removed -a/--author option Jul 24, 2014
tweelexer.py Get rid of most remaining old-style classes Jul 15, 2014
tweeregex.py Some scant fixes May 17, 2014
tweestyler.py Removed unnecessary parentheses Jul 15, 2014
untwee untwee: Added passage reorder command line option Feb 21, 2014
utils.py Add isURL() utility function Jul 21, 2014
version.py 1.4.2 post-release bugfixes Jun 7, 2014

README.md

Twine

Introduction

A visual tool for creating interactive stories for the Web, based on the Twee story engine. Twine is written primarily in Python and Javascript, with UI widgets provided by wxPython. Twine was written by Chris Klimas. More information is available at http://twinery.org/

Twine 1 development is presently resigned to bugfixes and maintenance - although contributions for new features may still be considered for acceptance.

A web-application "sequel" to Twine 1, called Twine 2, is in active development. Its repositories are here and here.

Installation

The easiest way to install Twine is to download the installable versions for Windows or Mac OS X:

Set up a development environment

You can set up a development environment if you want to contribute to the project or if you want to run Twine on another platform (such as Linux).

You may want to run your development environment in a virtualenv:

virtualenv tweecode
cd tweecode/
source bin/activate

Get the code:

git clone git@github.com:tweecode/twine.git

Install required modules (note, wxPython will need to be installed separately from the pip requirements):

cd twine/
pip install -r requirements.txt

You also need to install py2exe (on Windows) or py2app (on OS X) to compile standalone binaries.

Other than that, you should now have a working Twine setup. To start Twine:

python app.py

Contributing to Twine development

If you have bug fixes for Twine, the easiest way to contribute them back is as follows:

  • fork this repository (see link at top of the project page on github)
  • make your fixes and push them to your own fork on github
  • make a pull request (see link at top of the github project page)

To report bugs, issues or feature requests, use the github issues system.